From 4eb140e58786db18b45f6bfb63044d40a7536034 Mon Sep 17 00:00:00 2001 From: summivox Date: Mon, 21 Mar 2016 22:57:24 -0400 Subject: [PATCH 01/10] fix #854 (warning: see full commit message) `[.. for [to 10]]` is wrongly rewritten by lexer into `[.. for [from 0 to 10]]` (not quite, see below). Patching the lexer could be non-trivial as said rewriting is currently ad-hoc (`forange` in `lexer.ls`, see #854 for discussion). This temporary solution relaxes the grammar and allow the malformed lexer output. Caveat: `[from x to y]` is *not* supported directly from source despite the change in grammar due to the same lexer hack. The `from` is currently considered a literal rather than a `FROM` token. A possibly cleaner solution is to getting rid of `forange` and support `from` elision in a separate lexer rewrite step or in parser instead. --- src/grammar.ls | 4 ++++ test/loop.ls | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/grammar.ls b/src/grammar.ls index 2f0f61e82..fe1e503fd 100644 --- a/src/grammar.ls +++ b/src/grammar.ls @@ -112,6 +112,10 @@ bnf = , -> Chain L 2 4 new For from: $2, op: $3, to: $4, in-comprehension: true o '[ Expression TO Expression BY Expression ]' , -> Chain L 2 6 new For from: $2, op: $3, to: $4, step: $6, in-comprehension: true + o '[ FROM Expression TO Expression ]' + , -> Chain L 2 5 new For from: $3, op: $4, to: $5, in-comprehension: true + o '[ FROM Expression TO Expression BY Expression ]' + , -> Chain L 2 7 new For from: $3, op: $4, to: $5, step: $7, in-comprehension: true o '[ TO Expression ]' , -> Chain L 2 3 new For from: (Chain Literal 0), op: $2, to: $3, in-comprehension: true o '[ TO Expression BY Expression ]' diff --git a/test/loop.ls b/test/loop.ls index 08af3064d..107d451e2 100644 --- a/test/loop.ls +++ b/test/loop.ls @@ -300,6 +300,9 @@ deep-equal [3,5] [.. + 2 for from 1 to 3 when .. % 2 isnt 0] deep-equal [5,4,3] [.. + 2 for from 3 to 1 by -1] deep-equal [5,3] [.. + 2 for from 3 to 1 by -1 when .. % 2 isnt 0] +# gkz/LiveScript#854 +deep-equal [2,3,4,5] [.. + 2 for [to 3]] + list-of-obj = * ha: 1 mo: 8 From 195e5ca550f71e7d82fbfeabb4eb31d7c551f1fa Mon Sep 17 00:00:00 2001 From: summivox Date: Mon, 21 Mar 2016 23:44:01 -0400 Subject: [PATCH 02/10] update lib --- lib/grammar.js | 15 +++ lib/parser.js | 295 ++++++++++++++++++++++++++----------------------- 2 files changed, 171 insertions(+), 139 deletions(-) diff --git a/lib/grammar.js b/lib/grammar.js index e885958f6..4955d1784 100644 --- a/lib/grammar.js +++ b/lib/grammar.js @@ -86,6 +86,21 @@ bnf = { step: $6, inComprehension: true }))); + }), o('[ FROM Expression TO Expression ]', function(){ + return Chain(L(2, 5, new For({ + from: $3, + op: $4, + to: $5, + inComprehension: true + }))); + }), o('[ FROM Expression TO Expression BY Expression ]', function(){ + return Chain(L(2, 7, new For({ + from: $3, + op: $4, + to: $5, + step: $7, + inComprehension: true + }))); }), o('[ TO Expression ]', function(){ return Chain(L(2, 3, new For({ from: Chain(Literal(0)), diff --git a/lib/parser.js b/lib/parser.js index bba7afc17..e6ada056e 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -72,12 +72,12 @@ } */ var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,59],$V1=[1,31],$V2=[1,34],$V3=[1,35],$V4=[1,36],$V5=[1,37],$V6=[1,38],$V7=[1,39],$V8=[1,8],$V9=[1,15],$Va=[1,14],$Vb=[1,40],$Vc=[1,41],$Vd=[1,29],$Ve=[1,6],$Vf=[1,10],$Vg=[1,9],$Vh=[1,11],$Vi=[1,16],$Vj=[1,17],$Vk=[1,18],$Vl=[1,19],$Vm=[1,20],$Vn=[1,21],$Vo=[1,23],$Vp=[1,42],$Vq=[1,24],$Vr=[1,25],$Vs=[1,26],$Vt=[1,27],$Vu=[1,28],$Vv=[1,30],$Vw=[1,43],$Vx=[1,22,27,45],$Vy=[22,45],$Vz=[2,63],$VA=[1,47],$VB=[1,48],$VC=[1,49],$VD=[1,50],$VE=[1,51],$VF=[1,52],$VG=[1,53],$VH=[1,54],$VI=[1,55],$VJ=[1,56],$VK=[1,57],$VL=[1,58],$VM=[1,59],$VN=[1,60],$VO=[1,61],$VP=[32,44,45,46],$VQ=[2,49],$VR=[1,66],$VS=[1,65],$VT=[1,68],$VU=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,56,57,60,61,62,63,64,65,66,67,68,69,70,77,80,81,104],$VV=[2,74],$VW=[1,75],$VX=[1,76],$VY=[1,77],$VZ=[1,72],$V_=[1,70],$V$=[1,71],$V01=[1,73],$V11=[1,74],$V21=[1,81],$V31=[1,85],$V41=[1,84],$V51=[1,82],$V61=[1,93],$V71=[1,106],$V81=[46,104],$V91=[2,207],$Va1=[1,110],$Vb1=[2,1],$Vc1=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,77,80,81,95,101,102,104],$Vd1=[21,44,45,46],$Ve1=[24,44,45],$Vf1=[2,162],$Vg1=[1,131],$Vh1=[1,132],$Vi1=[1,129],$Vj1=[1,130],$Vk1=[1,133],$Vl1=[1,121],$Vm1=[1,125],$Vn1=[1,126],$Vo1=[1,124],$Vp1=[27,45],$Vq1=[1,147],$Vr1=[1,148],$Vs1=[32,45,46],$Vt1=[2,57],$Vu1=[1,170],$Vv1=[14,21,22,32,44,45,46],$Vw1=[2,54],$Vx1=[2,70],$Vy1=[14,44,45,46],$Vz1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,56,57,60,61,62,64,65,66,68,69,70,77,80,81,104],$VA1=[22,44,45,46],$VB1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,77,80,81,104],$VC1=[2,171],$VD1=[1,202],$VE1=[1,206],$VF1=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,56,57,60,61,62,63,64,65,66,67,68,69,70,77,80,104],$VG1=[1,209],$VH1=[44,46,81],$VI1=[2,209],$VJ1=[1,215],$VK1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,69,70,77,80,81,104],$VL1=[1,222],$VM1=[21,45,46],$VN1=[24,45],$VO1=[1,227],$VP1=[22,24,44,45],$VQ1=[1,229],$VR1=[22,24,44,45,55,61],$VS1=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,77,80,81,95,99,101,102,104],$VT1=[1,257],$VU1=[1,256],$VV1=[21,22,24,39,45,46,80],$VW1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,56,60,61,64,65,66,68,69,70,77,80,81,104],$VX1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,61,65,69,70,77,80,81,104],$VY1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,60,61,65,68,69,70,77,80,81,104],$VZ1=[1,268],$V_1=[1,269],$V$1=[2,58],$V02=[14,45,46],$V12=[22,45,46],$V22=[1,306],$V32=[1,307],$V42=[1,315],$V52=[1,345],$V62=[1,346],$V72=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,56,57,60,61,62,63,64,65,66,67,68,69,70,77,80,81,87,88,104],$V82=[1,417]; +var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,61],$V1=[1,31],$V2=[1,34],$V3=[1,35],$V4=[1,36],$V5=[1,37],$V6=[1,38],$V7=[1,39],$V8=[1,8],$V9=[1,15],$Va=[1,14],$Vb=[1,40],$Vc=[1,41],$Vd=[1,29],$Ve=[1,6],$Vf=[1,10],$Vg=[1,9],$Vh=[1,11],$Vi=[1,16],$Vj=[1,17],$Vk=[1,18],$Vl=[1,19],$Vm=[1,20],$Vn=[1,21],$Vo=[1,23],$Vp=[1,42],$Vq=[1,24],$Vr=[1,25],$Vs=[1,26],$Vt=[1,27],$Vu=[1,28],$Vv=[1,30],$Vw=[1,43],$Vx=[1,22,27,46],$Vy=[22,46],$Vz=[2,65],$VA=[1,47],$VB=[1,48],$VC=[1,49],$VD=[1,50],$VE=[1,51],$VF=[1,52],$VG=[1,53],$VH=[1,54],$VI=[1,55],$VJ=[1,56],$VK=[1,57],$VL=[1,58],$VM=[1,59],$VN=[1,60],$VO=[1,61],$VP=[32,45,46,47],$VQ=[2,51],$VR=[1,66],$VS=[1,65],$VT=[1,68],$VU=[1,14,21,22,24,26,27,28,32,35,36,37,40,45,46,47,57,58,61,62,63,64,65,66,67,68,69,70,71,78,81,82,104],$VV=[2,76],$VW=[1,75],$VX=[1,76],$VY=[1,77],$VZ=[1,72],$V_=[1,70],$V$=[1,71],$V01=[1,73],$V11=[1,74],$V21=[1,81],$V31=[1,85],$V41=[1,84],$V51=[1,82],$V61=[1,93],$V71=[1,106],$V81=[47,104],$V91=[2,209],$Va1=[1,110],$Vb1=[2,1],$Vc1=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,40,45,46,47,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,78,81,82,96,102,103,104],$Vd1=[21,45,46,47],$Ve1=[24,45,46],$Vf1=[2,164],$Vg1=[1,132],$Vh1=[1,133],$Vi1=[1,130],$Vj1=[1,131],$Vk1=[1,134],$Vl1=[1,122],$Vm1=[1,126],$Vn1=[1,127],$Vo1=[1,125],$Vp1=[27,46],$Vq1=[1,148],$Vr1=[1,149],$Vs1=[32,46,47],$Vt1=[2,59],$Vu1=[1,171],$Vv1=[14,21,22,32,45,46,47],$Vw1=[2,56],$Vx1=[2,72],$Vy1=[14,45,46,47],$Vz1=[1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,57,58,61,62,63,65,66,67,69,70,71,78,81,82,104],$VA1=[22,45,46,47],$VB1=[1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,78,81,82,104],$VC1=[2,173],$VD1=[1,203],$VE1=[1,207],$VF1=[1,14,21,22,24,26,27,28,32,35,36,37,40,45,46,47,57,58,61,62,63,64,65,66,67,68,69,70,71,78,81,104],$VG1=[1,210],$VH1=[45,47,82],$VI1=[2,211],$VJ1=[1,216],$VK1=[1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,70,71,78,81,82,104],$VL1=[1,223],$VM1=[21,46,47],$VN1=[24,46],$VO1=[1,229],$VP1=[22,24,45,46],$VQ1=[1,231],$VR1=[22,24,45,46,56,62],$VS1=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,40,45,46,47,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,78,81,82,96,100,102,103,104],$VT1=[1,259],$VU1=[1,258],$VV1=[21,22,24,40,46,47,81],$VW1=[1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,57,61,62,65,66,67,69,70,71,78,81,82,104],$VX1=[1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,62,66,70,71,78,81,82,104],$VY1=[1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,61,62,66,69,70,71,78,81,82,104],$VZ1=[1,270],$V_1=[1,271],$V$1=[2,60],$V02=[14,46,47],$V12=[22,46,47],$V22=[1,308],$V32=[1,309],$V42=[1,318],$V52=[1,348],$V62=[1,349],$V72=[1,14,21,22,24,26,27,28,32,35,36,37,40,45,46,47,57,58,61,62,63,64,65,66,67,68,69,70,71,78,81,82,88,89,104],$V82=[1,423]; var parser = {trace: function trace() { }, yy: {}, -symbols_: {"error":2,"Chain":3,"ID":4,"Parenthetical":5,"List":6,"STRNUM":7,"LITERAL":8,"DOT":9,"Key":10,"CALL(":11,"ArgList":12,"OptComma":13,")CALL":14,"?":15,"LET":16,"Block":17,"[":18,"Expression":19,"LoopHeads":20,"]":21,"DEDENT":22,"{":23,"}":24,"(":25,"BIOP":26,")":27,"BIOPR":28,"BIOPBP":29,"BIOPP":30,"PARAM(":31,")PARAM":32,"UNARY":33,"CREMENT":34,"BACKTICK":35,"TO":36,"BY":37,"WITH":38,"FOR":39,"Properties":40,"LABEL":41,"KeyBase":42,"Arg":43,",":44,"NEWLINE":45,"INDENT":46,"...":47,"Lines":48,"Line":49,"<-":50,"COMMENT":51,"REQUIRE":52,"SplatChain":53,"CLONEPORT":54,"ASSIGN":55,"IMPORT":56,"+-":57,"CLONE":58,"YIELD":59,"COMPARE":60,"LOGIC":61,"MATH":62,"POWER":63,"SHIFT":64,"BITWISE":65,"CONCAT":66,"COMPOSE":67,"RELATION":68,"PIPE":69,"BACKPIPE":70,"!?":71,"->":72,"FUNCTION":73,"GENERATOR":74,"IF":75,"Else":76,"POST_IF":77,"LoopHead":78,"DO":79,"WHILE":80,"CASE":81,"HURL":82,"JUMP":83,"SWITCH":84,"Exprs":85,"Cases":86,"DEFAULT":87,"ELSE":88,"TRY":89,"CATCH":90,"FINALLY":91,"CLASS":92,"OptExtends":93,"OptImplements":94,"EXTENDS":95,"DECL":96,"KeyValue":97,"Property":98,":":99,"Body":100,"IN":101,"OF":102,"FROM":103,"IMPLEMENTS":104,"Root":105,"$accept":0,"$end":1}, -terminals_: {2:"error",4:"ID",7:"STRNUM",8:"LITERAL",9:"DOT",11:"CALL(",14:")CALL",15:"?",16:"LET",18:"[",21:"]",22:"DEDENT",23:"{",24:"}",25:"(",26:"BIOP",27:")",28:"BIOPR",29:"BIOPBP",30:"BIOPP",31:"PARAM(",32:")PARAM",33:"UNARY",34:"CREMENT",35:"BACKTICK",36:"TO",37:"BY",38:"WITH",39:"FOR",41:"LABEL",44:",",45:"NEWLINE",46:"INDENT",47:"...",50:"<-",51:"COMMENT",52:"REQUIRE",54:"CLONEPORT",55:"ASSIGN",56:"IMPORT",57:"+-",58:"CLONE",59:"YIELD",60:"COMPARE",61:"LOGIC",62:"MATH",63:"POWER",64:"SHIFT",65:"BITWISE",66:"CONCAT",67:"COMPOSE",68:"RELATION",69:"PIPE",70:"BACKPIPE",71:"!?",72:"->",73:"FUNCTION",74:"GENERATOR",75:"IF",77:"POST_IF",79:"DO",80:"WHILE",81:"CASE",82:"HURL",83:"JUMP",84:"SWITCH",87:"DEFAULT",88:"ELSE",89:"TRY",90:"CATCH",91:"FINALLY",92:"CLASS",95:"EXTENDS",96:"DECL",99:":",101:"IN",102:"OF",103:"FROM",104:"IMPLEMENTS"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,3],[3,3],[3,5],[3,2],[3,6],[3,4],[3,5],[3,7],[3,3],[3,4],[3,4],[3,3],[3,4],[3,4],[3,3],[3,7],[3,3],[3,7],[3,3],[3,3],[3,5],[3,6],[3,6],[3,5],[3,7],[3,4],[3,6],[3,9],[3,8],[3,7],[3,6],[3,6],[3,5],[3,3],[3,3],[6,4],[6,4],[6,5],[6,5],[10,1],[10,1],[42,1],[42,1],[12,0],[12,1],[12,3],[12,4],[12,6],[43,1],[43,2],[43,1],[13,0],[13,1],[48,0],[48,1],[48,3],[48,2],[49,1],[49,2],[49,6],[49,1],[49,1],[49,2],[17,3],[53,2],[19,3],[19,3],[19,5],[19,1],[19,3],[19,3],[19,6],[19,3],[19,6],[19,2],[19,2],[19,3],[19,2],[19,3],[19,3],[19,3],[19,4],[19,4],[19,4],[19,2],[19,2],[19,2],[19,3],[19,3],[19,3],[19,6],[19,5],[19,1],[19,2],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,2],[19,6],[19,6],[19,6],[19,4],[19,3],[19,3],[19,4],[19,6],[19,2],[19,5],[19,1],[19,1],[19,2],[19,3],[19,5],[19,5],[19,2],[19,4],[19,4],[19,2],[19,2],[19,4],[19,6],[19,5],[19,7],[19,4],[19,5],[19,4],[19,3],[19,2],[19,2],[19,5],[85,1],[85,3],[97,1],[97,1],[97,3],[97,3],[97,5],[97,5],[98,3],[98,6],[98,1],[98,3],[98,3],[98,2],[98,2],[98,2],[98,1],[40,0],[40,1],[40,3],[40,4],[40,4],[5,3],[100,1],[100,1],[100,3],[76,0],[76,2],[76,5],[78,4],[78,6],[78,6],[78,8],[78,2],[78,4],[78,4],[78,6],[78,4],[78,6],[78,6],[78,8],[78,6],[78,5],[78,8],[78,7],[78,8],[78,7],[78,10],[78,9],[78,10],[78,9],[78,2],[78,4],[78,4],[78,6],[20,1],[20,2],[20,3],[20,3],[86,3],[86,4],[93,2],[93,0],[94,2],[94,0],[105,1]], +symbols_: {"error":2,"Chain":3,"ID":4,"Parenthetical":5,"List":6,"STRNUM":7,"LITERAL":8,"DOT":9,"Key":10,"CALL(":11,"ArgList":12,"OptComma":13,")CALL":14,"?":15,"LET":16,"Block":17,"[":18,"Expression":19,"LoopHeads":20,"]":21,"DEDENT":22,"{":23,"}":24,"(":25,"BIOP":26,")":27,"BIOPR":28,"BIOPBP":29,"BIOPP":30,"PARAM(":31,")PARAM":32,"UNARY":33,"CREMENT":34,"BACKTICK":35,"TO":36,"BY":37,"FROM":38,"WITH":39,"FOR":40,"Properties":41,"LABEL":42,"KeyBase":43,"Arg":44,",":45,"NEWLINE":46,"INDENT":47,"...":48,"Lines":49,"Line":50,"<-":51,"COMMENT":52,"REQUIRE":53,"SplatChain":54,"CLONEPORT":55,"ASSIGN":56,"IMPORT":57,"+-":58,"CLONE":59,"YIELD":60,"COMPARE":61,"LOGIC":62,"MATH":63,"POWER":64,"SHIFT":65,"BITWISE":66,"CONCAT":67,"COMPOSE":68,"RELATION":69,"PIPE":70,"BACKPIPE":71,"!?":72,"->":73,"FUNCTION":74,"GENERATOR":75,"IF":76,"Else":77,"POST_IF":78,"LoopHead":79,"DO":80,"WHILE":81,"CASE":82,"HURL":83,"JUMP":84,"SWITCH":85,"Exprs":86,"Cases":87,"DEFAULT":88,"ELSE":89,"TRY":90,"CATCH":91,"FINALLY":92,"CLASS":93,"OptExtends":94,"OptImplements":95,"EXTENDS":96,"DECL":97,"KeyValue":98,"Property":99,":":100,"Body":101,"IN":102,"OF":103,"IMPLEMENTS":104,"Root":105,"$accept":0,"$end":1}, +terminals_: {2:"error",4:"ID",7:"STRNUM",8:"LITERAL",9:"DOT",11:"CALL(",14:")CALL",15:"?",16:"LET",18:"[",21:"]",22:"DEDENT",23:"{",24:"}",25:"(",26:"BIOP",27:")",28:"BIOPR",29:"BIOPBP",30:"BIOPP",31:"PARAM(",32:")PARAM",33:"UNARY",34:"CREMENT",35:"BACKTICK",36:"TO",37:"BY",38:"FROM",39:"WITH",40:"FOR",42:"LABEL",45:",",46:"NEWLINE",47:"INDENT",48:"...",51:"<-",52:"COMMENT",53:"REQUIRE",55:"CLONEPORT",56:"ASSIGN",57:"IMPORT",58:"+-",59:"CLONE",60:"YIELD",61:"COMPARE",62:"LOGIC",63:"MATH",64:"POWER",65:"SHIFT",66:"BITWISE",67:"CONCAT",68:"COMPOSE",69:"RELATION",70:"PIPE",71:"BACKPIPE",72:"!?",73:"->",74:"FUNCTION",75:"GENERATOR",76:"IF",78:"POST_IF",80:"DO",81:"WHILE",82:"CASE",83:"HURL",84:"JUMP",85:"SWITCH",88:"DEFAULT",89:"ELSE",90:"TRY",91:"CATCH",92:"FINALLY",93:"CLASS",96:"EXTENDS",97:"DECL",100:":",102:"IN",103:"OF",104:"IMPLEMENTS"}, +productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,3],[3,3],[3,5],[3,2],[3,6],[3,4],[3,5],[3,7],[3,3],[3,4],[3,4],[3,3],[3,4],[3,4],[3,3],[3,7],[3,3],[3,7],[3,3],[3,3],[3,5],[3,6],[3,6],[3,5],[3,7],[3,6],[3,8],[3,4],[3,6],[3,9],[3,8],[3,7],[3,6],[3,6],[3,5],[3,3],[3,3],[6,4],[6,4],[6,5],[6,5],[10,1],[10,1],[43,1],[43,1],[12,0],[12,1],[12,3],[12,4],[12,6],[44,1],[44,2],[44,1],[13,0],[13,1],[49,0],[49,1],[49,3],[49,2],[50,1],[50,2],[50,6],[50,1],[50,1],[50,2],[17,3],[54,2],[19,3],[19,3],[19,5],[19,1],[19,3],[19,3],[19,6],[19,3],[19,6],[19,2],[19,2],[19,3],[19,2],[19,3],[19,3],[19,3],[19,4],[19,4],[19,4],[19,2],[19,2],[19,2],[19,3],[19,3],[19,3],[19,6],[19,5],[19,1],[19,2],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,2],[19,6],[19,6],[19,6],[19,4],[19,3],[19,3],[19,4],[19,6],[19,2],[19,5],[19,1],[19,1],[19,2],[19,3],[19,5],[19,5],[19,2],[19,4],[19,4],[19,2],[19,2],[19,4],[19,6],[19,5],[19,7],[19,4],[19,5],[19,4],[19,3],[19,2],[19,2],[19,5],[86,1],[86,3],[98,1],[98,1],[98,3],[98,3],[98,5],[98,5],[99,3],[99,6],[99,1],[99,3],[99,3],[99,2],[99,2],[99,2],[99,1],[41,0],[41,1],[41,3],[41,4],[41,4],[5,3],[101,1],[101,1],[101,3],[77,0],[77,2],[77,5],[79,4],[79,6],[79,6],[79,8],[79,2],[79,4],[79,4],[79,6],[79,4],[79,6],[79,6],[79,8],[79,6],[79,5],[79,8],[79,7],[79,8],[79,7],[79,10],[79,9],[79,10],[79,9],[79,2],[79,4],[79,4],[79,6],[20,1],[20,2],[20,3],[20,3],[87,3],[87,4],[94,2],[94,0],[95,2],[95,0],[105,1]], performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { /* this == yyval */ @@ -173,6 +173,23 @@ this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0-1], new yy.For({ })))); break; case 31: +this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0-1], new yy.For({ + from: $$[$0-3], + op: $$[$0-2], + to: $$[$0-1], + inComprehension: true + })))); +break; +case 32: +this.$ = yy.L(_$[$0-7], _$[$0],yy.Chain(yy.L(_$[$0-6],_$[$0-1], new yy.For({ + from: $$[$0-5], + op: $$[$0-4], + to: $$[$0-3], + step: $$[$0-1], + inComprehension: true + })))); +break; +case 33: this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], new yy.For({ from: yy.Chain(yy.Literal(0)), op: $$[$0-2], @@ -180,7 +197,7 @@ this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], new yy.For({ inComprehension: true })))); break; -case 32: +case 34: this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0-1], new yy.For({ from: yy.Chain(yy.Literal(0)), op: $$[$0-4], @@ -189,7 +206,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0-1], new yy.For({ inComprehension: true })))); break; -case 33: +case 35: this.$ = yy.L(_$[$0-8], _$[$0],yy.Chain(yy.L(_$[$0-8],_$[$0], new yy.StepSlice({ op: $$[$0-4], target: $$[$0-8], @@ -198,7 +215,7 @@ this.$ = yy.L(_$[$0-8], _$[$0],yy.Chain(yy.L(_$[$0-8],_$[$0], new yy.StepSlice({ step: $$[$0-1] })))); break; -case 34: +case 36: this.$ = yy.L(_$[$0-7], _$[$0],yy.Chain(yy.L(_$[$0-7],_$[$0], new yy.StepSlice({ op: $$[$0-4], target: $$[$0-7], @@ -207,7 +224,7 @@ this.$ = yy.L(_$[$0-7], _$[$0],yy.Chain(yy.L(_$[$0-7],_$[$0], new yy.StepSlice({ step: $$[$0-1] })))); break; -case 35: +case 37: this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-6],_$[$0], yy.Slice({ type: $$[$0-2], target: $$[$0-6], @@ -215,30 +232,30 @@ this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-6],_$[$0], yy.Slice({ to: $$[$0-1] })))); break; -case 36: +case 38: this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0], yy.Slice({ type: $$[$0-1], target: $$[$0-5], from: $$[$0-2] })))); break; -case 37: +case 39: this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0], yy.Slice({ type: $$[$0-2], target: $$[$0-5], to: $$[$0-1] })))); break; -case 38: +case 40: this.$ = yy.L(_$[$0-4], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0], yy.Slice({ type: $$[$0-1], target: $$[$0-4] })))); break; -case 39: +case 41: this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], yy.Cascade($$[$0-1], $$[$0], 'with')))); break; -case 40: +case 42: this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], new yy.For({ kind: $$[$0-2], source: $$[$0-1], @@ -246,235 +263,235 @@ this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], new yy.For({ ref: true }).addBody($$[$0])))); break; -case 41: +case 43: this.$ = yy.L(_$[$0-3], _$[$0],yy.Arr($$[$0-2])); break; -case 42: +case 44: this.$ = yy.L(_$[$0-3], _$[$0],yy.Obj($$[$0-2])); break; -case 43: +case 45: this.$ = yy.L(_$[$0-4], _$[$0],yy.Arr($$[$0-3]).named($$[$0])); break; -case 44: +case 46: this.$ = yy.L(_$[$0-4], _$[$0],yy.Obj($$[$0-3]).named($$[$0])); break; -case 45: case 46: case 54: case 57: case 58: case 62: case 63: case 147: case 155: case 168: case 169: +case 47: case 48: case 56: case 59: case 60: case 64: case 65: case 149: case 157: case 170: case 171: break; -case 47: +case 49: this.$ = yy.L(_$[$0], _$[$0],yy.Key($$[$0])); break; -case 48: +case 50: this.$ = yy.L(_$[$0], _$[$0],yy.Literal($$[$0])); break; -case 49: case 162: +case 51: case 164: this.$ = yy.L(_$[$0], _$[$0],[]); break; -case 50: case 145: case 163: case 200: +case 52: case 147: case 165: case 202: this.$ = yy.L(_$[$0], _$[$0],[$$[$0]]); break; -case 51: case 146: case 164: case 202: case 203: +case 53: case 148: case 166: case 204: case 205: this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].concat($$[$0])); break; -case 52: case 165: +case 54: case 167: this.$ = yy.L(_$[$0-3], _$[$0],$$[$0-3].concat($$[$0])); break; -case 53: +case 55: this.$ = yy.L(_$[$0-5], _$[$0-2],$$[$0-5].concat($$[$0-2])); break; -case 55: case 160: +case 57: case 162: this.$ = yy.L(_$[$0-1], _$[$0],yy.Splat($$[$0])); break; -case 56: +case 58: this.$ = yy.L(_$[$0], _$[$0],yy.Splat(yy.L(_$[$0],_$[$0],yy.Arr()), true)); break; -case 59: +case 61: this.$ = yy.L(_$[$0], _$[$0],yy.Block()); break; -case 60: +case 62: this.$ = yy.L(_$[$0], _$[$0],yy.Block($$[$0])); break; -case 61: case 170: +case 63: case 172: this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].add($$[$0])); break; -case 64: +case 66: this.$ = yy.L(_$[$0-1], _$[$0],yy.Cascade($$[$0-1], $$[$0], 'cascade')); break; -case 65: +case 67: this.$ = yy.L(_$[$0-5], _$[$0],yy.Call.back($$[$0-4], $$[$0], /~/.test($$[$0-1]), /--|~~/.test($$[$0-1]), /!/.test($$[$0-1]), /\*/.test($$[$0-1]))); break; -case 66: case 161: +case 68: case 163: this.$ = yy.L(_$[$0], _$[$0],yy.JS($$[$0], true, true)); break; -case 67: +case 69: this.$ = yy.L(_$[$0], _$[$0],yy.Throw(yy.L(_$[$0],_$[$0],yy.JS("Error('unimplemented')")))); break; -case 68: +case 70: this.$ = yy.L(_$[$0-1], _$[$0],yy.Require($$[$0].unwrap())); break; -case 69: +case 71: this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-1]); break; -case 70: +case 72: this.$ = yy.L(_$[$0-1], _$[$0],yy.Splat($$[$0].unwrap())); break; -case 71: +case 73: this.$ = yy.L(_$[$0-2], _$[$0],yy.Import(yy.L(_$[$0-2],_$[$0-1], yy.Unary('^^', $$[$0-2], { prec: 'yy.UNARY' })), $$[$0], false)); break; -case 72: +case 74: this.$ = yy.L(_$[$0-2], _$[$0],yy.Import(yy.L(_$[$0-2],_$[$0-1], yy.Unary('^^', $$[$0-2], { prec: 'yy.UNARY' })), $$[$0].unwrap(), false)); break; -case 73: +case 75: this.$ = yy.L(_$[$0-4], _$[$0],$$[$0-2].add(yy.L(_$[$0-4],_$[$0], yy.Call([$$[$0-4], $$[$0]])))); break; -case 74: +case 76: this.$ = yy.L(_$[$0], _$[$0],$$[$0].unwrap()); break; -case 75: +case 77: this.$ = yy.L(_$[$0-2], _$[$0],yy.Assign($$[$0-2].unwrap(), $$[$0], yy.L(_$[$0-1],_$[$0-1],yy.Box($$[$0-1])))); break; -case 76: +case 78: this.$ = yy.L(_$[$0-2], _$[$0],yy.Assign($$[$0-2], $$[$0], yy.L(_$[$0-1],_$[$0-1],yy.Box($$[$0-1])))); break; -case 77: +case 79: this.$ = yy.L(_$[$0-5], _$[$0],yy.Assign($$[$0-5].unwrap(), yy.Arr.maybe($$[$0-2]), yy.L(_$[$0-4],_$[$0-4],yy.Box($$[$0-4])))); break; -case 78: +case 80: this.$ = yy.L(_$[$0-2], _$[$0],yy.Import($$[$0-2], $$[$0], $$[$0-1] === '<<<<')); break; -case 79: +case 81: this.$ = yy.L(_$[$0-5], _$[$0],yy.Import($$[$0-5], yy.Arr.maybe($$[$0-2]), $$[$0-4] === '<<<<')); break; -case 80: +case 82: this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0-1], $$[$0].unwrap())); break; -case 81: +case 83: this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0], $$[$0-1].unwrap(), true)); break; -case 82: +case 84: this.$ = yy.L(_$[$0-2], _$[$0],yy.Unary($$[$0-2], yy.Splat($$[$0].unwrap()))); break; -case 83: +case 85: this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0], $$[$0-1], true)); break; -case 84: case 85: case 86: +case 86: case 87: case 88: this.$ = yy.L(_$[$0-2], _$[$0],yy.Assign($$[$0].unwrap(), [$$[$0-2]], yy.L(_$[$0-1],_$[$0-1],yy.Box($$[$0-1])))); break; -case 87: case 88: case 89: +case 89: case 90: case 91: this.$ = yy.L(_$[$0-3], _$[$0],yy.Assign(yy.Splat($$[$0].unwrap()), [$$[$0-3]], yy.L(_$[$0-2],_$[$0-2],yy.Box($$[$0-2])))); break; -case 90: case 91: case 92: +case 92: case 93: case 94: this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0-1], $$[$0])); break; -case 93: case 94: case 95: +case 95: case 96: case 97: this.$ = yy.L(_$[$0-2], _$[$0],yy.Unary($$[$0-2], yy.Splat($$[$0]))); break; -case 96: +case 98: this.$ = yy.L(_$[$0-5], _$[$0],yy.Unary($$[$0-5], yy.Splat(yy.Arr($$[$0-2])))); break; -case 97: +case 99: this.$ = yy.L(_$[$0-4], _$[$0],yy.Unary($$[$0-4], yy.Arr.maybe($$[$0-2]))); break; -case 98: +case 100: this.$ = yy.L(_$[$0], _$[$0],yy.Yield($$[$0])); break; -case 99: +case 101: this.$ = yy.L(_$[$0-1], _$[$0],yy.Yield($$[$0-1], $$[$0])); break; -case 100: case 101: case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 156: +case 102: case 103: case 104: case 105: case 106: case 107: case 108: case 109: case 110: case 158: this.$ = (yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1], $$[$0-2], $$[$0]))); break; -case 109: +case 111: this.$ = yy.L(_$[$0-2], _$[$0],'!' === $$[$0-1].charAt(0) ? yy.Binary($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert() : yy.Binary($$[$0-1], $$[$0-2], $$[$0])); break; -case 110: +case 112: this.$ = yy.L(_$[$0-2], _$[$0],yy.Block($$[$0-2]).pipe($$[$0], $$[$0-1])); break; -case 111: +case 113: this.$ = yy.L(_$[$0-2], _$[$0],yy.Block($$[$0-2]).pipe([$$[$0]], $$[$0-1])); break; -case 112: +case 114: this.$ = yy.L(_$[$0-1], _$[$0],yy.Existence($$[$0-1].unwrap(), true)); break; -case 113: +case 115: this.$ = yy.L(_$[$0-5], _$[$0],yy.Fun($$[$0-4], $$[$0], /~/.test($$[$0-1]), /--|~~/.test($$[$0-1]), /!/.test($$[$0-1]), /\*/.test($$[$0-1]))); break; -case 114: +case 116: this.$ = yy.L(_$[$0-5], _$[$0],yy.Fun($$[$0-3], $$[$0]).named($$[$0-5])); break; -case 115: +case 117: this.$ = yy.L(_$[$0-5], _$[$0],yy.Fun($$[$0-3], $$[$0], false, false, false, true).named($$[$0-5])); break; -case 116: +case 118: this.$ = (yy.L(_$[$0-3],_$[$0-2], yy.If($$[$0-2], $$[$0-1], $$[$0-3] === 'unless')).addElse($$[$0])); break; -case 117: +case 119: this.$ = (yy.L(_$[$0-1],_$[$0], yy.If($$[$0], $$[$0-2], $$[$0-1] === 'unless'))); break; -case 118: +case 120: this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].addBody($$[$0-1]).addElse($$[$0])); break; -case 119: +case 121: this.$ = yy.L(_$[$0-3], _$[$0],new yy.While($$[$0], $$[$0-1] === 'until', true).addBody($$[$0-2])); break; -case 120: +case 122: this.$ = yy.L(_$[$0-5], _$[$0],new yy.While($$[$0-2], $$[$0-3] === 'until', true).addGuard($$[$0]).addBody($$[$0-4])); break; -case 121: +case 123: this.$ = yy.L(_$[$0-1], _$[$0],yy.Jump[$$[$0-1]]($$[$0])); break; -case 122: +case 124: this.$ = yy.L(_$[$0-4], _$[$0],yy.Jump[$$[$0-4]](yy.Arr.maybe($$[$0-2]))); break; -case 123: +case 125: this.$ = yy.L(_$[$0], _$[$0],yy.Jump[$$[$0]]()); break; -case 124: +case 126: this.$ = yy.L(_$[$0], _$[$0],new yy.Jump($$[$0])); break; -case 125: +case 127: this.$ = yy.L(_$[$0-1], _$[$0],new yy.Jump($$[$0-1], $$[$0])); break; -case 126: +case 128: this.$ = yy.L(_$[$0-2], _$[$0],new yy.Switch($$[$0-2], $$[$0-1], $$[$0])); break; -case 127: case 128: +case 129: case 130: this.$ = yy.L(_$[$0-4], _$[$0],new yy.Switch($$[$0-4], $$[$0-3], $$[$0-2], $$[$0])); break; -case 129: +case 131: this.$ = yy.L(_$[$0-1], _$[$0],new yy.Switch($$[$0-1], null, $$[$0])); break; -case 130: case 131: +case 132: case 133: this.$ = yy.L(_$[$0-3], _$[$0],new yy.Switch($$[$0-3], null, $$[$0-2], $$[$0])); break; -case 132: +case 134: this.$ = yy.L(_$[$0-1], _$[$0],new yy.Switch($$[$0-1], null, [], $$[$0])); break; -case 133: +case 135: this.$ = yy.L(_$[$0-1], _$[$0],new yy.Try($$[$0])); break; -case 134: +case 136: this.$ = yy.L(_$[$0-3], _$[$0],new yy.Try($$[$0-2], void 8, yy.L(_$[$0-1],_$[$0-1],$$[$0]))); break; -case 135: +case 137: this.$ = yy.L(_$[$0-5], _$[$0],new yy.Try($$[$0-4], void 8, yy.L(_$[$0-3],_$[$0-3],$$[$0-2]), yy.L(_$[$0-1],_$[$0-1],$$[$0]))); break; -case 136: +case 138: this.$ = yy.L(_$[$0-4], _$[$0],new yy.Try($$[$0-3], $$[$0-1], yy.L(_$[$0-2],_$[$0-1], $$[$0]))); break; -case 137: +case 139: this.$ = yy.L(_$[$0-6], _$[$0],new yy.Try($$[$0-5], $$[$0-3], yy.L(_$[$0-4],_$[$0-3], $$[$0-2]), yy.L(_$[$0-1],_$[$0-1],$$[$0]))); break; -case 138: +case 140: this.$ = yy.L(_$[$0-3], _$[$0],new yy.Try($$[$0-2], void 8, void 8, yy.L(_$[$0-1],_$[$0-1],$$[$0]))); break; -case 139: +case 141: this.$ = yy.L(_$[$0-4], _$[$0],new yy.Class({ title: $$[$0-3].unwrap(), sup: $$[$0-2], @@ -482,68 +499,68 @@ this.$ = yy.L(_$[$0-4], _$[$0],new yy.Class({ body: $$[$0] })); break; -case 140: +case 142: this.$ = yy.L(_$[$0-3], _$[$0],new yy.Class({ sup: $$[$0-2], mixins: $$[$0-1], body: $$[$0] })); break; -case 141: +case 143: this.$ = yy.L(_$[$0-2], _$[$0],yy.Util.Extends($$[$0-2].unwrap(), $$[$0])); break; -case 142: case 143: +case 144: case 145: this.$ = yy.L(_$[$0-1], _$[$0],new yy.Label($$[$0-1], $$[$0])); break; -case 144: +case 146: this.$ = yy.L(_$[$0-4], _$[$0],yy.Decl($$[$0-4], $$[$0-2], yylineno + 1)); break; -case 148: +case 150: this.$ = yy.L(_$[$0], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0], $$[$0] !== 'arguments' && $$[$0] !== 'eval')), yy.L(_$[$0],_$[$0],yy.Literal($$[$0])))); break; -case 149: +case 151: this.$ = yy.L(_$[$0-2], _$[$0],yy.Prop($$[$0], yy.Chain($$[$0-2], [yy.L(_$[$0-1],_$[$0], yy.Index($$[$0], $$[$0-1]))]))); break; -case 150: +case 152: this.$ = yy.L(_$[$0-2], _$[$0],yy.Prop($$[$0], yy.Chain(yy.L(_$[$0-2],_$[$0-2],yy.Literal($$[$0-2])), [yy.L(_$[$0-1],_$[$0], yy.Index($$[$0], $$[$0-1]))]))); break; -case 151: +case 153: this.$ = yy.L(_$[$0-4], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0])), yy.L(_$[$0-4],_$[$0-1], yy.Obj($$[$0-3]).named($$[$0])))); break; -case 152: +case 154: this.$ = yy.L(_$[$0-4], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0])), yy.L(_$[$0-4],_$[$0-1], yy.Arr($$[$0-3]).named($$[$0])))); break; -case 153: +case 155: this.$ = yy.L(_$[$0-2], _$[$0],yy.Prop($$[$0-2], $$[$0])); break; -case 154: +case 156: this.$ = yy.L(_$[$0-5], _$[$0],yy.Prop($$[$0-5], yy.Arr.maybe($$[$0-2]))); break; -case 157: +case 159: this.$ = (yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1], $$[$0-2], $$[$0], true))); break; -case 158: +case 160: this.$ = yy.L(_$[$0-1], _$[$0],yy.Prop($$[$0].maybeKey(), yy.L(_$[$0-1],_$[$0-1],yy.Literal($$[$0-1] === '+')))); break; -case 159: +case 161: this.$ = yy.L(_$[$0-1], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0], true)), yy.L(_$[$0-1],_$[$0-1],yy.Literal($$[$0-1] === '+')))); break; -case 166: +case 168: this.$ = yy.L(_$[$0-3], _$[$0],$$[$0-2]); break; -case 167: +case 169: this.$ = yy.L(_$[$0-2], _$[$0],yy.Parens($$[$0-1].chomp().unwrap(), false, $$[$0-2] === '"', yy.L(_$[$0-2],_$[$0-2],{}), yy.L(_$[$0],_$[$0],{}))); break; -case 171: case 207: case 209: +case 173: case 209: case 211: this.$ = yy.L(_$[$0], _$[$0],null); break; -case 172: case 206: case 208: +case 174: case 208: case 210: this.$ = yy.L(_$[$0-1], _$[$0],$$[$0]); break; -case 173: +case 175: this.$ = yy.L(_$[$0-4], _$[$0],yy.If($$[$0-2], $$[$0-1], $$[$0-3] === 'unless').addElse($$[$0])); break; -case 174: +case 176: this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ kind: $$[$0-3], item: $$[$0-2].unwrap(), @@ -551,7 +568,7 @@ this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ source: $$[$0] })); break; -case 175: +case 177: this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ kind: $$[$0-5], item: $$[$0-4].unwrap(), @@ -560,7 +577,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 176: +case 178: this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ kind: $$[$0-5], item: $$[$0-4].unwrap(), @@ -569,7 +586,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ step: $$[$0] })); break; -case 177: +case 179: this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ kind: $$[$0-7], item: $$[$0-6].unwrap(), @@ -579,14 +596,14 @@ this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 178: +case 180: this.$ = yy.L(_$[$0-1], _$[$0],new yy.For({ kind: $$[$0-1], source: $$[$0], ref: true })); break; -case 179: +case 181: this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ kind: $$[$0-3], source: $$[$0-2], @@ -594,7 +611,7 @@ this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 180: +case 182: this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ kind: $$[$0-3], source: $$[$0-2], @@ -602,7 +619,7 @@ this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ step: $$[$0] })); break; -case 181: +case 183: this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ kind: $$[$0-5], source: $$[$0-4], @@ -611,7 +628,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 182: +case 184: this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ object: true, kind: $$[$0-3], @@ -619,7 +636,7 @@ this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ source: $$[$0] })); break; -case 183: +case 185: this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ object: true, kind: $$[$0-5], @@ -628,7 +645,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 184: +case 186: this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ object: true, kind: $$[$0-5], @@ -637,7 +654,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ source: $$[$0] })); break; -case 185: +case 187: this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ object: true, kind: $$[$0-7], @@ -647,7 +664,7 @@ this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 186: +case 188: this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ kind: $$[$0-5], index: $$[$0-4], @@ -656,7 +673,7 @@ this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ to: $$[$0] })); break; -case 187: +case 189: this.$ = yy.L(_$[$0-4], _$[$0],new yy.For({ kind: $$[$0-4], from: $$[$0-2], @@ -665,7 +682,7 @@ this.$ = yy.L(_$[$0-4], _$[$0],new yy.For({ ref: true })); break; -case 188: +case 190: this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ kind: $$[$0-7], index: $$[$0-6], @@ -675,7 +692,7 @@ this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 189: +case 191: this.$ = yy.L(_$[$0-6], _$[$0],new yy.For({ kind: $$[$0-6], from: $$[$0-4], @@ -685,7 +702,7 @@ this.$ = yy.L(_$[$0-6], _$[$0],new yy.For({ ref: true })); break; -case 190: +case 192: this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ kind: $$[$0-7], index: $$[$0-6], @@ -695,7 +712,7 @@ this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ step: $$[$0] })); break; -case 191: +case 193: this.$ = yy.L(_$[$0-6], _$[$0],new yy.For({ kind: $$[$0-6], from: $$[$0-4], @@ -705,7 +722,7 @@ this.$ = yy.L(_$[$0-6], _$[$0],new yy.For({ ref: true })); break; -case 192: +case 194: this.$ = yy.L(_$[$0-9], _$[$0],new yy.For({ kind: $$[$0-9], index: $$[$0-8], @@ -716,7 +733,7 @@ this.$ = yy.L(_$[$0-9], _$[$0],new yy.For({ guard: $$[$0] })); break; -case 193: +case 195: this.$ = yy.L(_$[$0-8], _$[$0],new yy.For({ kind: $$[$0-8], from: $$[$0-6], @@ -727,7 +744,7 @@ this.$ = yy.L(_$[$0-8], _$[$0],new yy.For({ ref: true })); break; -case 194: +case 196: this.$ = yy.L(_$[$0-9], _$[$0],new yy.For({ kind: $$[$0-9], index: $$[$0-8], @@ -738,7 +755,7 @@ this.$ = yy.L(_$[$0-9], _$[$0],new yy.For({ step: $$[$0] })); break; -case 195: +case 197: this.$ = yy.L(_$[$0-8], _$[$0],new yy.For({ kind: $$[$0-8], from: $$[$0-6], @@ -749,34 +766,34 @@ this.$ = yy.L(_$[$0-8], _$[$0],new yy.For({ ref: true })); break; -case 196: +case 198: this.$ = yy.L(_$[$0-1], _$[$0],new yy.While($$[$0], $$[$0-1] === 'until')); break; -case 197: +case 199: this.$ = yy.L(_$[$0-3], _$[$0],new yy.While($$[$0-2], $$[$0-3] === 'until').addGuard($$[$0])); break; -case 198: +case 200: this.$ = yy.L(_$[$0-3], _$[$0],new yy.While($$[$0-2], $$[$0-3] === 'until', $$[$0])); break; -case 199: +case 201: this.$ = yy.L(_$[$0-5], _$[$0],new yy.While($$[$0-4], $$[$0-5] === 'until', $$[$0-2]).addGuard($$[$0])); break; -case 201: +case 203: this.$ = yy.L(_$[$0-1], _$[$0],$$[$0-1].concat($$[$0])); break; -case 204: +case 206: this.$ = yy.L(_$[$0-2], _$[$0],[yy.L(_$[$0-2],_$[$0-1], new yy.Case($$[$0-1], $$[$0]))]); break; -case 205: +case 207: this.$ = yy.L(_$[$0-3], _$[$0],$$[$0-3].concat(yy.L(_$[$0-2],_$[$0-1], new yy.Case($$[$0-1], $$[$0])))); break; -case 210: +case 212: return this.$ break; } }, -table: [o([1,45],$V0,{105:1,100:2,48:3,17:4,49:5,19:7,3:12,53:13,78:22,5:32,6:33,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$Vf,51:$Vg,52:$Vh,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{1:[3]},{1:[2,210]},o($Vt,[2,168],{45:$Vw}),o($Vt,[2,169],{45:[1,44]}),o($Vx,[2,60]),o($Vy,$V0,{49:5,19:7,3:12,53:13,78:22,5:32,6:33,48:45,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$Vf,51:$Vg,52:$Vh,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vx,$Vz,{17:46,35:$VA,46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VP,$VQ,{3:12,53:13,78:22,5:32,6:33,12:62,43:63,19:64,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vx,[2,66]),o($Vx,[2,67],{5:32,6:33,3:67,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT}),{3:69,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($VU,$VV,{9:$VW,11:$VX,15:$VY,34:$VZ,54:$V_,55:$V$,71:$V01,95:$V11}),{34:[1,79],55:[1,78]},{3:80,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT,47:$V21},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:83,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$V31,47:$V41,53:13,55:$V51,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:87,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:[1,88],53:13,55:[1,86],57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:90,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:[1,91],53:13,55:[1,89],57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o([1,14,21,22,24,26,27,28,32,35,36,37,44,45,46,56,60,61,62,63,64,65,66,67,68,69,70,77,81,104],[2,98],{3:12,53:13,78:22,5:32,6:33,19:92,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{11:[1,94]},{11:[1,95]},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:96,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{17:97,46:$Ve},{17:98,46:$Ve},o([1,14,21,22,24,26,27,28,32,35,36,37,44,45,56,60,61,62,63,64,65,66,67,68,69,70,77,81,104],[2,123],{3:12,53:13,78:22,5:32,6:33,19:99,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,100],47:$V61,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($VU,[2,124],{4:[1,101]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:104,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,81:$V71,82:$Vq,83:$Vr,84:$Vs,85:102,86:103,89:$Vt,92:$Vu,96:$Vv},{17:107,46:$Ve},o($V81,$V91,{5:32,6:33,3:108,93:109,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT,95:$Va1}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:112,18:$V5,19:111,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{46:[1,113]},o([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,77,80,81,95,102,104],$Vb1),o($Vc1,[2,2]),o($Vc1,[2,3]),o($Vc1,[2,4]),o($Vc1,[2,5]),{11:[1,114]},o($Vd1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:115,12:117,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,36:[1,116],38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Ve1,$Vf1,{40:119,98:120,10:122,97:123,42:127,5:128,4:$Vg1,7:$Vh1,8:$Vi1,18:[1,118],23:$Vj1,25:$Vk1,46:$Vl1,47:$Vm1,51:$Vn1,57:$Vo1}),o($Vp1,$V0,{48:3,17:4,49:5,3:12,53:13,78:22,5:32,6:33,19:135,100:143,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,26:[1,134],28:[1,136],29:[1,137],30:[1,138],31:[1,139],33:[1,140],34:[1,141],35:[1,142],38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$Vf,51:$Vg,52:$Vh,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:144,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:146,4:$Vq1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:145,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv,103:$Vr1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:149,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vx,[2,62],{19:7,3:12,53:13,78:22,5:32,6:33,49:150,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$Vf,51:$Vg,52:$Vh,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o([1,27,45],$V0,{49:5,19:7,3:12,53:13,78:22,5:32,6:33,48:151,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$Vf,51:$Vg,52:$Vh,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{22:[1,152],45:$Vw},o($Vx,[2,64]),{3:153,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:154,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,155],47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:156,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:157,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:158,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:159,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:160,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:161,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:162,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:163,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:164,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:165,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:166,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:167,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:168,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vs1,$Vt1,{13:169,44:$Vu1}),o($Vv1,[2,50]),o($Vv1,$Vw1,{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($Vv1,[2,56],{53:13,78:22,5:32,6:33,19:171,3:172,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($VP,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:173,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o([34,55],$Vx1,{9:$VW,11:$VX,15:$VY}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:174,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vx,[2,68],{9:$VW,11:$VX,15:$VY}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:176,18:$V5,19:175,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:177,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,178],47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VU,[2,81]),o($VU,[2,112]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:179,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{4:$Vg1,5:128,6:181,7:$Vh1,10:180,18:[1,182],23:[1,183],25:$Vk1,42:127},o($Vy1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:184,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vc1,[2,9]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:185,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VU,[2,83]),o($VU,[2,80],{9:$VW,11:$VX,15:$VY}),{3:186,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{3:187,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT,47:[1,188]},o($Vz1,[2,90],{35:$VA,63:$VG,67:$VK}),{3:172,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:189,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,190],47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:191,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{3:192,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT,47:[1,193]},o($Vz1,[2,91],{35:$VA,63:$VG,67:$VK}),{3:172,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:194,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:195,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT,47:[1,196]},o($Vz1,[2,92],{35:$VA,63:$VG,67:$VK}),{3:172,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:197,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VB1,[2,99],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN}),{3:67,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vy1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:198,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vy1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:199,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{17:200,35:$VA,46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($VU,$VC1,{76:201,88:$VD1}),{80:[1,203]},o($VB1,[2,121],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN}),o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:204,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($VU,[2,125]),{44:$VE1,81:$V71,86:205},o($VF1,[2,129],{81:$VG1,87:[1,207],88:[1,208]}),o($VU,[2,132]),o($VH1,[2,145],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,85:210,89:$Vt,92:$Vu,96:$Vv},o($VU,[2,133],{90:[1,211],91:[1,212]}),o($V81,$V91,{93:213,9:$VW,11:$VX,15:$VY,95:$Va1}),{46:$VI1,94:214,104:$VJ1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:216,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VK1,[2,142],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL}),o($VU,[2,143]),o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:217,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vy1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:218,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vd1,$Vw1,{20:219,78:221,35:$VA,36:[1,220],39:$VL1,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,80:$Vp}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:223,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VM1,$Vt1,{13:224,44:$Vu1}),o($Vd1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:225,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($VN1,$Vt1,{13:226,44:$VO1}),o($VP1,[2,163]),o([22,44,45],$Vf1,{98:120,10:122,97:123,42:127,5:128,40:228,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,46:$Vl1,47:$Vm1,51:$Vn1,57:$Vo1}),o($VR1,[2,147],{9:[1,231],99:[1,230]}),o($VP1,[2,155],{55:[1,233],61:[1,232]}),{4:$Vg1,5:128,7:$Vh1,8:[1,235],10:234,25:$Vk1,42:127},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:236,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VP1,[2,161]),o($VS1,[2,45]),o($VS1,[2,46]),o($VR1,[2,148],{9:[1,237]}),o($Ve1,$Vf1,{98:120,10:122,97:123,42:127,5:128,40:238,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,46:$Vl1,47:$Vm1,51:$Vn1,57:$Vo1}),o($VS1,[2,47]),o($VS1,[2,48]),o($Vp1,$V0,{48:3,17:4,49:5,19:7,3:12,53:13,78:22,5:32,6:33,100:143,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$Vf,51:$Vg,52:$Vh,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:240,23:$V6,25:$V7,27:[1,239],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vp1,$Vz,{17:46,26:[1,241],28:[1,242],35:[1,243],46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:245,23:$V6,25:$V7,27:[1,244],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{11:[1,247],27:[1,246]},{27:[1,248]},o($VP,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:249,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:83,23:$V6,25:$V7,27:[1,250],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$V31,47:$V41,53:13,55:$V51,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:80,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,27:[1,251],38:$Vb,39:$VT,47:$V21},{3:252,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{27:[1,253]},{17:254,35:$VA,46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{17:255,35:$VA,37:$VT1,46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:$VU1},o([21,22,24,35,37,39,45,46,56,57,60,61,62,63,64,65,66,67,68,69,70,77,80,81],$VV,{9:$VW,11:$VX,15:$VY,34:$VZ,54:$V_,55:$V$,71:$V01,95:$V11,101:[1,258]}),o([9,11,15,21,22,24,34,35,37,39,45,46,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,77,80,81,95,101],$Vb1,{44:[1,260],102:[1,259],103:[1,261]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:262,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,196],{35:$VA,44:[1,264],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,263]}),o($Vx,[2,61]),o($Vt,[2,170],{45:$Vw}),o([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,54,55,56,57,60,61,62,63,64,65,66,67,68,69,70,71,77,80,81,87,88,90,91,95,101,102,104],[2,69]),{9:$VW,11:$VX,15:$VY,35:[1,265]},o($VW1,[2,78],{35:$VA,57:$VC,62:$VF,63:$VG,67:$VK}),o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:266,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,56,57,60,61,64,65,66,68,69,70,77,80,81,104],[2,100],{35:$VA,62:$VF,63:$VG,67:$VK}),o($VX1,[2,101],{35:$VA,56:$VB,57:$VC,60:$VD,62:$VF,63:$VG,64:$VH,66:$VJ,67:$VK,68:$VL}),o($VK1,[2,102],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL}),o($Vz1,[2,103],{35:$VA,63:$VG,67:$VK}),o($Vz1,[2,104],{35:$VA,63:$VG,67:$VK}),o($VW1,[2,105],{35:$VA,57:$VC,62:$VF,63:$VG,67:$VK}),o($VX1,[2,106],{35:$VA,56:$VB,57:$VC,60:$VD,62:$VF,63:$VG,64:$VH,66:$VJ,67:$VK,68:$VL}),o($VY1,[2,107],{35:$VA,56:$VB,57:$VC,62:$VF,63:$VG,64:$VH,66:$VJ,67:$VK}),o([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,56,57,60,61,62,63,64,65,66,68,69,70,77,80,81,104],[2,108],{35:$VA,67:$VK}),o($VY1,[2,109],{35:$VA,56:$VB,57:$VC,62:$VF,63:$VG,64:$VH,66:$VJ,67:$VK}),o($VK1,[2,110],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL}),o($VB1,[2,111],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN}),o($VB1,[2,117],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN}),{32:[1,267],45:$VZ1,46:$V_1},o([14,21,22,32,45,46],$V$1,{3:12,53:13,78:22,5:32,6:33,19:64,43:270,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vv1,[2,55],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VU,$VV,{9:$VW,11:$VX,15:$VY,34:$Vx1,55:$Vx1,54:$V_,71:$V01,95:$V11}),o($Vs1,$Vt1,{13:271,44:$Vu1}),{17:255,35:$VA,46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($VW1,[2,71],{35:$VA,57:$VC,62:$VF,63:$VG,67:$VK}),o($VU,[2,72]),o($VB1,[2,75],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN}),o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:272,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($VK1,[2,141],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL}),o($Vc1,[2,6]),o($Vc1,[2,7]),o($Vd1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,12:117,19:273,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,36:[1,274],38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Ve1,$Vf1,{40:119,98:120,10:122,97:123,42:127,5:128,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,46:$Vl1,47:$Vm1,51:$Vn1,57:$Vo1}),o($V02,$Vt1,{13:275,44:$Vu1}),o($VB1,[2,76],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN}),o($VU,[2,82],{9:$VW,11:$VX,15:$VY}),o($VU,[2,84],{9:$VW,11:$VX,15:$VY}),{3:276,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vz1,[2,93],{35:$VA,63:$VG,67:$VK}),o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:277,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($V12,$Vt1,{13:278,44:$Vu1}),o($VU,[2,85],{9:$VW,11:$VX,15:$VY}),{3:279,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vz1,[2,94],{35:$VA,63:$VG,67:$VK}),o($VU,[2,86],{9:$VW,11:$VX,15:$VY}),{3:280,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vz1,[2,95],{35:$VA,63:$VG,67:$VK}),o($V02,$Vt1,{13:281,44:$Vu1}),o($V02,$Vt1,{13:282,44:$Vu1}),o($VU,$VC1,{76:283,88:$VD1}),o($VU,[2,118]),{17:284,46:$Ve,75:[1,285]},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:286,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($V12,$Vt1,{13:287,44:$Vu1}),o($VF1,[2,126],{81:$VG1,87:[1,288],88:[1,289]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:290,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{17:291,46:$Ve},{17:292,46:$Ve},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,85:293,89:$Vt,92:$Vu,96:$Vv},{17:294,44:$VE1,46:$Ve},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:295,18:$V5,19:64,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,43:296,46:$Ve,47:$VS,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{17:297,46:$Ve},{46:$VI1,94:298,104:$VJ1},{17:299,46:$Ve},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,85:300,89:$Vt,92:$Vu,96:$Vv},o($V81,[2,206],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($V12,$Vt1,{13:301,44:$Vu1}),o($V02,$Vt1,{13:302,44:$Vu1}),{21:[1,303],22:[1,304],39:$VL1,45:$V22,46:$V32,78:305,80:$Vp},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:308,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,200]),{3:146,4:$Vq1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:309,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv,103:$Vr1},{21:[1,310],35:$VA,37:[1,311],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{21:[1,312],45:$VZ1,46:$V_1},o($VM1,$Vt1,{13:313,44:$Vu1}),{24:[1,314],45:$V42},o([22,24,45],$V$1,{10:122,97:123,42:127,5:128,98:316,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,47:$Vm1,51:$Vn1,57:$Vo1}),o($Vy,$Vt1,{13:317,44:$VO1}),o($Vd1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:318,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:319,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,320],47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{4:$Vg1,7:$Vh1,42:321},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:322,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:323,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VP1,[2,158]),o($VP1,[2,159]),o($VP1,[2,160],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),{4:$Vg1,7:$Vh1,42:324},o($VN1,$Vt1,{13:325,44:$VO1}),o($Vc1,[2,14]),{27:[1,326],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{27:[1,327]},{27:[1,328]},{3:329,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vc1,[2,17]),{27:[1,330],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($Vc1,[2,20]),o($Vy1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:331,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vc1,[2,22]),o($Vs1,$Vt1,{13:332,44:$Vu1}),o($Vc1,[2,24]),o($Vc1,[2,25]),{9:$VW,11:$VX,15:$VY,35:[1,333]},o($VS1,[2,167]),o($Vc1,[2,39]),o($Vc1,[2,40]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:334,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:335,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:336,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:337,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:338,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:339,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{35:$VA,36:[1,340],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:341,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:342,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:343,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($V12,$Vt1,{13:344,44:$Vu1}),{50:$V52,72:$V62},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:64,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,43:347,47:$VS,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:348,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($Vv1,[2,51]),{32:[1,349],45:$VZ1,46:$V_1},o($V12,$Vt1,{13:350,44:$Vu1}),o($Vd1,$Vw1,{35:$VA,36:[1,351],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:352,21:[1,353],23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{14:[1,354],45:$VZ1,46:$V_1},o($VU,[2,87],{9:$VW,11:$VX,15:$VY}),o($V12,$Vt1,{13:355,44:$Vu1}),{22:[1,356],45:$VZ1,46:$V_1},o($VU,[2,88],{9:$VW,11:$VX,15:$VY}),o($VU,[2,89],{9:$VW,11:$VX,15:$VY}),{14:[1,357],45:$VZ1,46:$V_1},{14:[1,358],45:$VZ1,46:$V_1},o($VU,[2,116]),o($VU,[2,172]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:359,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,69,70,77,80,104],[2,119],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,81:[1,360]}),{22:[1,361],45:$VZ1,46:$V_1},{17:362,46:$Ve},{17:363,46:$Ve},o($VH1,[2,146],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VU,[2,130]),o($VU,[2,131]),{17:364,44:$VE1,46:$Ve},o($V72,[2,204]),o($VU,[2,134],{91:[1,365]}),{17:366,46:$Ve},o($VU,[2,138]),{17:367,46:$Ve},o($VU,[2,140]),{44:$VE1,46:[2,208]},{22:[1,368],45:$VZ1,46:$V_1},{14:[1,369],45:$VZ1,46:$V_1},o($Vc1,[2,11]),{21:[1,370]},o($VV1,[2,201]),{39:$VL1,78:371,80:$Vp},{39:$VL1,78:372,80:$Vp},{21:[1,373],35:$VA,37:[1,374],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($VV1,[2,178],{35:$VA,37:$VT1,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:$VU1}),o($Vc1,[2,31]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:375,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vc1,[2,41],{41:[1,376]}),{21:[1,377],45:$VZ1,46:$V_1},o($Vc1,[2,42],{41:[1,378]}),{4:$Vg1,5:128,7:$Vh1,8:$Vi1,10:122,18:$VQ1,23:$Vj1,25:$Vk1,42:127,47:$Vm1,51:$Vn1,57:$Vo1,97:123,98:379},o($VP1,[2,164]),{22:[1,380],45:$V42},o($VM1,$Vt1,{13:381,44:$Vu1}),o($VP1,[2,153],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VA1,$VQ,{3:12,53:13,78:22,5:32,6:33,43:63,19:64,12:382,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv}),o($VR1,[2,149]),o($VP1,[2,156],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VP1,[2,157],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VR1,[2,150]),{24:[1,383],45:$V42},o($Vc1,[2,15]),o($Vc1,[2,16]),o($Vc1,[2,19]),{9:$VW,11:$VX,15:$VY,35:[1,384]},o($Vc1,[2,18]),o($V02,$Vt1,{13:385,44:$Vu1}),{32:[1,386],45:$VZ1,46:$V_1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:388,23:$V6,25:$V7,27:[1,387],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,179],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,180],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,389]}),o($VV1,[2,174],{35:$VA,37:[1,391],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,390]}),o($VV1,[2,182],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,392]}),{9:$VW,11:$VX,15:$VY,102:[1,393]},{35:$VA,36:[1,394],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:395,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,197],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,198],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,396]}),o($VU,[2,73]),{22:[1,397],45:$VZ1,46:$V_1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:398,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{17:399,46:$Ve},o($Vv1,[2,52]),o($V12,$Vt1,{13:400,44:$Vu1}),{72:$V62},{22:[1,401],45:$VZ1,46:$V_1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:402,21:[1,403],23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{21:[1,405],35:$VA,37:[1,404],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($Vc1,[2,38]),o($Vc1,[2,8]),{22:[1,406],45:$VZ1,46:$V_1},o($VU,[2,97]),{17:407,46:$Ve},{17:408,46:$Ve},{17:409,35:$VA,46:$Ve,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:410,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VU,[2,122]),o($VU,[2,127]),o($VU,[2,128]),o($V72,[2,205]),{17:411,46:$Ve},o($VU,[2,136],{91:[1,412]}),o($VU,[2,139]),o($VU,[2,144]),{17:413,46:$Ve},o($Vc1,[2,12]),o($VV1,[2,202]),o($VV1,[2,203]),o($Vc1,[2,29]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:414,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{21:[1,415],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($Vc1,[2,43]),{20:416,39:$VL1,41:$V82,78:221,80:$Vp},o($Vc1,[2,44]),o($VP1,[2,165]),o($VP1,[2,166]),{21:[1,418],45:$VZ1,46:$V_1},o($V12,$Vt1,{13:419,44:$Vu1}),{41:[1,420]},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:343,23:$V6,25:$V7,27:[1,421],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{14:[1,422],45:$VZ1,46:$V_1},{30:[1,423],50:$V52,72:$V62},o($Vc1,[2,26]),{27:[1,424],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:425,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:426,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:427,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:428,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:429,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:430,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,187],{35:$VA,37:[1,432],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,431]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:433,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VU,[2,79]),o($Vx,[2,65],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VU,[2,113]),{22:[1,434],45:$VZ1,46:$V_1},o($VU,[2,77]),{21:[1,436],35:$VA,37:[1,435],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($Vc1,[2,36]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:437,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vc1,[2,37]),o($VU,[2,96]),o($VU,[2,114]),o($VU,[2,115]),o($VU,$VC1,{76:438,88:$VD1}),o($VK1,[2,120],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL}),o($VU,[2,135]),{17:439,46:$Ve},o($Vc1,[2,10]),{21:[1,440],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($Vc1,[2,32]),{24:[1,441],39:$VL1,45:$V22,46:$V32,78:305,80:$Vp},o($VR1,[2,152]),{41:$V82},{22:[1,442],45:$VZ1,46:$V_1},o($VR1,[2,151]),o($Vc1,[2,27]),{27:[1,443]},{27:[1,444]},o($Vc1,[2,28]),o($VV1,[2,181],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,175],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,176],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,445]}),o($VV1,[2,183],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,184],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,446]}),o($VV1,[2,186],{35:$VA,37:[1,448],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,447]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:449,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:450,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,199],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($Vv1,[2,53]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:451,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vc1,[2,35]),{21:[1,452],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($VU,[2,173]),o($VU,[2,137]),o($Vc1,[2,30]),o($Vc1,[2,13]),o($VP1,[2,154]),o($Vc1,[2,21]),o($Vc1,[2,23]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:453,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:454,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:455,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:456,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,189],{35:$VA,37:[1,457],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,191],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,458]}),{21:[1,459],35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO},o($Vc1,[2,34]),o($VV1,[2,177],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,185],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,188],{35:$VA,37:[1,460],56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,190],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO,81:[1,461]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:462,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:463,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($Vc1,[2,33]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:464,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:465,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$V61,53:13,57:$Vi,58:$Vj,59:$Vk,73:$Vl,74:$Vm,75:$Vn,78:22,79:$Vo,80:$Vp,82:$Vq,83:$Vr,84:$Vs,89:$Vt,92:$Vu,96:$Vv},o($VV1,[2,195],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,193],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,194],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO}),o($VV1,[2,192],{35:$VA,56:$VB,57:$VC,60:$VD,61:$VE,62:$VF,63:$VG,64:$VH,65:$VI,66:$VJ,67:$VK,68:$VL,69:$VM,70:$VN,77:$VO})], -defaultActions: {2:[2,210]}, +table: [o([1,46],$V0,{105:1,101:2,49:3,17:4,50:5,19:7,3:12,54:13,79:22,5:32,6:33,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$Ve,48:$Vf,52:$Vg,53:$Vh,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{1:[3]},{1:[2,212]},o($Vt,[2,170],{46:$Vw}),o($Vt,[2,171],{46:[1,44]}),o($Vx,[2,62]),o($Vy,$V0,{50:5,19:7,3:12,54:13,79:22,5:32,6:33,49:45,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$Vf,52:$Vg,53:$Vh,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vx,$Vz,{17:46,35:$VA,47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VP,$VQ,{3:12,54:13,79:22,5:32,6:33,12:62,44:63,19:64,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vx,[2,68]),o($Vx,[2,69],{5:32,6:33,3:67,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT}),{3:69,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},o($VU,$VV,{9:$VW,11:$VX,15:$VY,34:$VZ,55:$V_,56:$V$,72:$V01,96:$V11}),{34:[1,79],56:[1,78]},{3:80,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT,48:$V21},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:83,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$V31,48:$V41,54:13,56:$V51,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:87,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:[1,88],54:13,56:[1,86],58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:90,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:[1,91],54:13,56:[1,89],58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o([1,14,21,22,24,26,27,28,32,35,36,37,45,46,47,57,61,62,63,64,65,66,67,68,69,70,71,78,82,104],[2,100],{3:12,54:13,79:22,5:32,6:33,19:92,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{11:[1,94]},{11:[1,95]},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:96,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{17:97,47:$Ve},{17:98,47:$Ve},o([1,14,21,22,24,26,27,28,32,35,36,37,45,46,57,61,62,63,64,65,66,67,68,69,70,71,78,82,104],[2,125],{3:12,54:13,79:22,5:32,6:33,19:99,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:[1,100],48:$V61,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($VU,[2,126],{4:[1,101]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:104,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$Ve,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,82:$V71,83:$Vq,84:$Vr,85:$Vs,86:102,87:103,90:$Vt,93:$Vu,97:$Vv},{17:107,47:$Ve},o($V81,$V91,{5:32,6:33,3:108,94:109,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT,96:$Va1}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:112,18:$V5,19:111,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$Ve,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{47:[1,113]},o([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,40,45,46,47,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,78,81,82,96,103,104],$Vb1),o($Vc1,[2,2]),o($Vc1,[2,3]),o($Vc1,[2,4]),o($Vc1,[2,5]),{11:[1,114]},o($Vd1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:115,12:118,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,36:[1,117],38:[1,116],39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Ve1,$Vf1,{41:120,99:121,10:123,98:124,43:128,5:129,4:$Vg1,7:$Vh1,8:$Vi1,18:[1,119],23:$Vj1,25:$Vk1,47:$Vl1,48:$Vm1,52:$Vn1,58:$Vo1}),o($Vp1,$V0,{49:3,17:4,50:5,3:12,54:13,79:22,5:32,6:33,19:136,101:144,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,26:[1,135],28:[1,137],29:[1,138],30:[1,139],31:[1,140],33:[1,141],34:[1,142],35:[1,143],39:$Vb,40:$Vc,42:$Vd,47:$Ve,48:$Vf,52:$Vg,53:$Vh,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:145,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:147,4:$Vq1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:146,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vr1,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:150,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vx,[2,64],{19:7,3:12,54:13,79:22,5:32,6:33,50:151,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$Vf,52:$Vg,53:$Vh,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o([1,27,46],$V0,{50:5,19:7,3:12,54:13,79:22,5:32,6:33,49:152,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$Vf,52:$Vg,53:$Vh,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{22:[1,153],46:$Vw},o($Vx,[2,66]),{3:154,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:155,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:[1,156],48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:157,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:158,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:159,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:160,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:161,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:162,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:163,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:164,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:165,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:166,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:167,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:168,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:169,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vs1,$Vt1,{13:170,45:$Vu1}),o($Vv1,[2,52]),o($Vv1,$Vw1,{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($Vv1,[2,58],{54:13,79:22,5:32,6:33,19:172,3:173,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($VP,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:174,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o([34,56],$Vx1,{9:$VW,11:$VX,15:$VY}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:175,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vx,[2,70],{9:$VW,11:$VX,15:$VY}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:177,18:$V5,19:176,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$Ve,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:178,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:[1,179],48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VU,[2,83]),o($VU,[2,114]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:180,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{4:$Vg1,5:129,6:182,7:$Vh1,10:181,18:[1,183],23:[1,184],25:$Vk1,43:128},o($Vy1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:185,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vc1,[2,9]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:186,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VU,[2,85]),o($VU,[2,82],{9:$VW,11:$VX,15:$VY}),{3:187,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},{3:188,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT,48:[1,189]},o($Vz1,[2,92],{35:$VA,64:$VG,68:$VK}),{3:173,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:190,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:[1,191],48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:192,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{3:193,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT,48:[1,194]},o($Vz1,[2,93],{35:$VA,64:$VG,68:$VK}),{3:173,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:195,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:196,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT,48:[1,197]},o($Vz1,[2,94],{35:$VA,64:$VG,68:$VK}),{3:173,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:198,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VB1,[2,101],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN}),{3:67,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},o($Vy1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:199,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vy1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:200,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{17:201,35:$VA,47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($VU,$VC1,{77:202,89:$VD1}),{81:[1,204]},o($VB1,[2,123],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN}),o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:205,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($VU,[2,127]),{45:$VE1,82:$V71,87:206},o($VF1,[2,131],{82:$VG1,88:[1,208],89:[1,209]}),o($VU,[2,134]),o($VH1,[2,147],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,86:211,90:$Vt,93:$Vu,97:$Vv},o($VU,[2,135],{91:[1,212],92:[1,213]}),o($V81,$V91,{94:214,9:$VW,11:$VX,15:$VY,96:$Va1}),{47:$VI1,95:215,104:$VJ1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:217,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VK1,[2,144],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL}),o($VU,[2,145]),o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:218,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vy1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:219,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vd1,$Vw1,{20:220,79:222,35:$VA,36:[1,221],40:$VL1,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,81:$Vp}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:224,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:225,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VM1,$Vt1,{13:226,45:$Vu1}),o($Vd1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:227,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($VN1,$Vt1,{13:228,45:$VO1}),o($VP1,[2,165]),o([22,45,46],$Vf1,{99:121,10:123,98:124,43:128,5:129,41:230,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,47:$Vl1,48:$Vm1,52:$Vn1,58:$Vo1}),o($VR1,[2,149],{9:[1,233],100:[1,232]}),o($VP1,[2,157],{56:[1,235],62:[1,234]}),{4:$Vg1,5:129,7:$Vh1,8:[1,237],10:236,25:$Vk1,43:128},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:238,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VP1,[2,163]),o($VS1,[2,47]),o($VS1,[2,48]),o($VR1,[2,150],{9:[1,239]}),o($Ve1,$Vf1,{99:121,10:123,98:124,43:128,5:129,41:240,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,47:$Vl1,48:$Vm1,52:$Vn1,58:$Vo1}),o($VS1,[2,49]),o($VS1,[2,50]),o($Vp1,$V0,{49:3,17:4,50:5,19:7,3:12,54:13,79:22,5:32,6:33,101:144,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$Ve,48:$Vf,52:$Vg,53:$Vh,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:242,23:$V6,25:$V7,27:[1,241],31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vp1,$Vz,{17:46,26:[1,243],28:[1,244],35:[1,245],47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:247,23:$V6,25:$V7,27:[1,246],31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{11:[1,249],27:[1,248]},{27:[1,250]},o($VP,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:251,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:83,23:$V6,25:$V7,27:[1,252],31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:$V31,48:$V41,54:13,56:$V51,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:80,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,27:[1,253],39:$Vb,40:$VT,48:$V21},{3:254,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},{27:[1,255]},{17:256,35:$VA,47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{17:257,35:$VA,37:$VT1,47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:$VU1},o([21,22,24,35,37,40,46,47,57,58,61,62,63,64,65,66,67,68,69,70,71,78,81,82],$VV,{9:$VW,11:$VX,15:$VY,34:$VZ,55:$V_,56:$V$,72:$V01,96:$V11,102:[1,260]}),o([9,11,15,21,22,24,34,35,37,40,46,47,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,78,81,82,96,102],$Vb1,{38:[1,263],45:[1,262],103:[1,261]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:264,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,198],{35:$VA,45:[1,266],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,265]}),o($Vx,[2,63]),o($Vt,[2,172],{46:$Vw}),o([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,40,45,46,47,55,56,57,58,61,62,63,64,65,66,67,68,69,70,71,72,78,81,82,88,89,91,92,96,102,103,104],[2,71]),{9:$VW,11:$VX,15:$VY,35:[1,267]},o($VW1,[2,80],{35:$VA,58:$VC,63:$VF,64:$VG,68:$VK}),o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:268,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o([1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,57,58,61,62,65,66,67,69,70,71,78,81,82,104],[2,102],{35:$VA,63:$VF,64:$VG,68:$VK}),o($VX1,[2,103],{35:$VA,57:$VB,58:$VC,61:$VD,63:$VF,64:$VG,65:$VH,67:$VJ,68:$VK,69:$VL}),o($VK1,[2,104],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL}),o($Vz1,[2,105],{35:$VA,64:$VG,68:$VK}),o($Vz1,[2,106],{35:$VA,64:$VG,68:$VK}),o($VW1,[2,107],{35:$VA,58:$VC,63:$VF,64:$VG,68:$VK}),o($VX1,[2,108],{35:$VA,57:$VB,58:$VC,61:$VD,63:$VF,64:$VG,65:$VH,67:$VJ,68:$VK,69:$VL}),o($VY1,[2,109],{35:$VA,57:$VB,58:$VC,63:$VF,64:$VG,65:$VH,67:$VJ,68:$VK}),o([1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,57,58,61,62,63,64,65,66,67,69,70,71,78,81,82,104],[2,110],{35:$VA,68:$VK}),o($VY1,[2,111],{35:$VA,57:$VB,58:$VC,63:$VF,64:$VG,65:$VH,67:$VJ,68:$VK}),o($VK1,[2,112],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL}),o($VB1,[2,113],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN}),o($VB1,[2,119],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN}),{32:[1,269],46:$VZ1,47:$V_1},o([14,21,22,32,46,47],$V$1,{3:12,54:13,79:22,5:32,6:33,19:64,44:272,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vv1,[2,57],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VU,$VV,{9:$VW,11:$VX,15:$VY,34:$Vx1,56:$Vx1,55:$V_,72:$V01,96:$V11}),o($Vs1,$Vt1,{13:273,45:$Vu1}),{17:257,35:$VA,47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($VW1,[2,73],{35:$VA,58:$VC,63:$VF,64:$VG,68:$VK}),o($VU,[2,74]),o($VB1,[2,77],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN}),o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:274,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($VK1,[2,143],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL}),o($Vc1,[2,6]),o($Vc1,[2,7]),o($Vd1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,12:118,19:275,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,36:[1,276],39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Ve1,$Vf1,{41:120,99:121,10:123,98:124,43:128,5:129,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,47:$Vl1,48:$Vm1,52:$Vn1,58:$Vo1}),o($V02,$Vt1,{13:277,45:$Vu1}),o($VB1,[2,78],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN}),o($VU,[2,84],{9:$VW,11:$VX,15:$VY}),o($VU,[2,86],{9:$VW,11:$VX,15:$VY}),{3:278,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},o($Vz1,[2,95],{35:$VA,64:$VG,68:$VK}),o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:279,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($V12,$Vt1,{13:280,45:$Vu1}),o($VU,[2,87],{9:$VW,11:$VX,15:$VY}),{3:281,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},o($Vz1,[2,96],{35:$VA,64:$VG,68:$VK}),o($VU,[2,88],{9:$VW,11:$VX,15:$VY}),{3:282,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},o($Vz1,[2,97],{35:$VA,64:$VG,68:$VK}),o($V02,$Vt1,{13:283,45:$Vu1}),o($V02,$Vt1,{13:284,45:$Vu1}),o($VU,$VC1,{77:285,89:$VD1}),o($VU,[2,120]),{17:286,47:$Ve,76:[1,287]},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:288,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($V12,$Vt1,{13:289,45:$Vu1}),o($VF1,[2,128],{82:$VG1,88:[1,290],89:[1,291]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:292,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{17:293,47:$Ve},{17:294,47:$Ve},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,86:295,90:$Vt,93:$Vu,97:$Vv},{17:296,45:$VE1,47:$Ve},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,17:297,18:$V5,19:64,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,44:298,47:$Ve,48:$VS,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{17:299,47:$Ve},{47:$VI1,95:300,104:$VJ1},{17:301,47:$Ve},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:105,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,86:302,90:$Vt,93:$Vu,97:$Vv},o($V81,[2,208],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($V12,$Vt1,{13:303,45:$Vu1}),o($V02,$Vt1,{13:304,45:$Vu1}),{21:[1,305],22:[1,306],40:$VL1,46:$V22,47:$V32,79:307,81:$Vp},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:310,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,202]),{3:147,4:$Vq1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:311,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vr1,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{35:$VA,36:[1,312],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{21:[1,313],35:$VA,37:[1,314],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{21:[1,315],46:$VZ1,47:$V_1},o($VM1,$Vt1,{13:316,45:$Vu1}),{24:[1,317],46:$V42},o([22,24,46],$V$1,{10:123,98:124,43:128,5:129,99:319,4:$Vg1,7:$Vh1,8:$Vi1,18:$VQ1,23:$Vj1,25:$Vk1,48:$Vm1,52:$Vn1,58:$Vo1}),o($Vy,$Vt1,{13:320,45:$VO1}),o($Vd1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:321,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:322,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,47:[1,323],48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{4:$Vg1,7:$Vh1,43:324},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:325,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:326,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VP1,[2,160]),o($VP1,[2,161]),o($VP1,[2,162],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),{4:$Vg1,7:$Vh1,43:327},o($VN1,$Vt1,{13:328,45:$VO1}),o($Vc1,[2,14]),{27:[1,329],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{27:[1,330]},{27:[1,331]},{3:332,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},o($Vc1,[2,17]),{27:[1,333],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,20]),o($Vy1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:334,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vc1,[2,22]),o($Vs1,$Vt1,{13:335,45:$Vu1}),o($Vc1,[2,24]),o($Vc1,[2,25]),{9:$VW,11:$VX,15:$VY,35:[1,336]},o($VS1,[2,169]),o($Vc1,[2,41]),o($Vc1,[2,42]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:337,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:338,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:339,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:340,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:341,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,39:$Vb,40:$VT},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:342,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{35:$VA,36:[1,343],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:344,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:345,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:346,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($V12,$Vt1,{13:347,45:$Vu1}),{51:$V52,73:$V62},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:64,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,44:350,48:$VS,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:351,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($Vv1,[2,53]),{32:[1,352],46:$VZ1,47:$V_1},o($V12,$Vt1,{13:353,45:$Vu1}),o($Vd1,$Vw1,{35:$VA,36:[1,354],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:355,21:[1,356],23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{14:[1,357],46:$VZ1,47:$V_1},o($VU,[2,89],{9:$VW,11:$VX,15:$VY}),o($V12,$Vt1,{13:358,45:$Vu1}),{22:[1,359],46:$VZ1,47:$V_1},o($VU,[2,90],{9:$VW,11:$VX,15:$VY}),o($VU,[2,91],{9:$VW,11:$VX,15:$VY}),{14:[1,360],46:$VZ1,47:$V_1},{14:[1,361],46:$VZ1,47:$V_1},o($VU,[2,118]),o($VU,[2,174]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:362,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o([1,14,21,22,24,26,27,28,32,36,37,40,45,46,47,70,71,78,81,104],[2,121],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,82:[1,363]}),{22:[1,364],46:$VZ1,47:$V_1},{17:365,47:$Ve},{17:366,47:$Ve},o($VH1,[2,148],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VU,[2,132]),o($VU,[2,133]),{17:367,45:$VE1,47:$Ve},o($V72,[2,206]),o($VU,[2,136],{92:[1,368]}),{17:369,47:$Ve},o($VU,[2,140]),{17:370,47:$Ve},o($VU,[2,142]),{45:$VE1,47:[2,210]},{22:[1,371],46:$VZ1,47:$V_1},{14:[1,372],46:$VZ1,47:$V_1},o($Vc1,[2,11]),{21:[1,373]},o($VV1,[2,203]),{40:$VL1,79:374,81:$Vp},{40:$VL1,79:375,81:$Vp},{21:[1,376],35:$VA,37:[1,377],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($VV1,[2,180],{35:$VA,37:$VT1,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:$VU1}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:378,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vc1,[2,33]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:379,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vc1,[2,43],{42:[1,380]}),{21:[1,381],46:$VZ1,47:$V_1},o($Vc1,[2,44],{42:[1,382]}),{4:$Vg1,5:129,7:$Vh1,8:$Vi1,10:123,18:$VQ1,23:$Vj1,25:$Vk1,43:128,48:$Vm1,52:$Vn1,58:$Vo1,98:124,99:383},o($VP1,[2,166]),{22:[1,384],46:$V42},o($VM1,$Vt1,{13:385,45:$Vu1}),o($VP1,[2,155],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VA1,$VQ,{3:12,54:13,79:22,5:32,6:33,44:63,19:64,12:386,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$VS,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv}),o($VR1,[2,151]),o($VP1,[2,158],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VP1,[2,159],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VR1,[2,152]),{24:[1,387],46:$V42},o($Vc1,[2,15]),o($Vc1,[2,16]),o($Vc1,[2,19]),{9:$VW,11:$VX,15:$VY,35:[1,388]},o($Vc1,[2,18]),o($V02,$Vt1,{13:389,45:$Vu1}),{32:[1,390],46:$VZ1,47:$V_1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:392,23:$V6,25:$V7,27:[1,391],31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,181],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,182],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,393]}),o($VV1,[2,176],{35:$VA,37:[1,395],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,394]}),o($VV1,[2,184],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,396]}),{9:$VW,11:$VX,15:$VY,103:[1,397]},{35:$VA,36:[1,398],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:399,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,199],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,200],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,400]}),o($VU,[2,75]),{22:[1,401],46:$VZ1,47:$V_1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:402,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{17:403,47:$Ve},o($Vv1,[2,54]),o($V12,$Vt1,{13:404,45:$Vu1}),{73:$V62},{22:[1,405],46:$VZ1,47:$V_1},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:406,21:[1,407],23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{21:[1,409],35:$VA,37:[1,408],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,40]),o($Vc1,[2,8]),{22:[1,410],46:$VZ1,47:$V_1},o($VU,[2,99]),{17:411,47:$Ve},{17:412,47:$Ve},{17:413,35:$VA,47:$Ve,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:414,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VU,[2,124]),o($VU,[2,129]),o($VU,[2,130]),o($V72,[2,207]),{17:415,47:$Ve},o($VU,[2,138],{92:[1,416]}),o($VU,[2,141]),o($VU,[2,146]),{17:417,47:$Ve},o($Vc1,[2,12]),o($VV1,[2,204]),o($VV1,[2,205]),o($Vc1,[2,29]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:418,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{21:[1,419],35:$VA,37:[1,420],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{21:[1,421],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,45]),{20:422,40:$VL1,42:$V82,79:222,81:$Vp},o($Vc1,[2,46]),o($VP1,[2,167]),o($VP1,[2,168]),{21:[1,424],46:$VZ1,47:$V_1},o($V12,$Vt1,{13:425,45:$Vu1}),{42:[1,426]},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:346,23:$V6,25:$V7,27:[1,427],31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{14:[1,428],46:$VZ1,47:$V_1},{30:[1,429],51:$V52,73:$V62},o($Vc1,[2,26]),{27:[1,430],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:431,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:432,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:433,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:434,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:435,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:436,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,189],{35:$VA,37:[1,438],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,437]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:439,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VU,[2,81]),o($Vx,[2,67],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VU,[2,115]),{22:[1,440],46:$VZ1,47:$V_1},o($VU,[2,79]),{21:[1,442],35:$VA,37:[1,441],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,38]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:443,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vc1,[2,39]),o($VU,[2,98]),o($VU,[2,116]),o($VU,[2,117]),o($VU,$VC1,{77:444,89:$VD1}),o($VK1,[2,122],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL}),o($VU,[2,137]),{17:445,47:$Ve},o($Vc1,[2,10]),{21:[1,446],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,31]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:447,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vc1,[2,34]),{24:[1,448],40:$VL1,46:$V22,47:$V32,79:307,81:$Vp},o($VR1,[2,154]),{42:$V82},{22:[1,449],46:$VZ1,47:$V_1},o($VR1,[2,153]),o($Vc1,[2,27]),{27:[1,450]},{27:[1,451]},o($Vc1,[2,28]),o($VV1,[2,183],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,177],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,178],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,452]}),o($VV1,[2,185],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,186],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,453]}),o($VV1,[2,188],{35:$VA,37:[1,455],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,454]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:456,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:457,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,201],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($Vv1,[2,55]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:458,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vc1,[2,37]),{21:[1,459],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($VU,[2,175]),o($VU,[2,139]),o($Vc1,[2,30]),{21:[1,460],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,13]),o($VP1,[2,156]),o($Vc1,[2,21]),o($Vc1,[2,23]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:461,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:462,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:463,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:464,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,191],{35:$VA,37:[1,465],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,193],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,466]}),{21:[1,467],35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO},o($Vc1,[2,36]),o($Vc1,[2,32]),o($VV1,[2,179],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,187],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,190],{35:$VA,37:[1,468],57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,192],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO,82:[1,469]}),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:470,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:471,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($Vc1,[2,35]),{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:472,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},{3:12,4:$V1,5:32,6:33,7:$V2,8:$V3,16:$V4,18:$V5,19:473,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,39:$Vb,40:$Vc,42:$Vd,48:$V61,54:13,58:$Vi,59:$Vj,60:$Vk,74:$Vl,75:$Vm,76:$Vn,79:22,80:$Vo,81:$Vp,83:$Vq,84:$Vr,85:$Vs,90:$Vt,93:$Vu,97:$Vv},o($VV1,[2,197],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,195],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,196],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO}),o($VV1,[2,194],{35:$VA,57:$VB,58:$VC,61:$VD,62:$VE,63:$VF,64:$VG,65:$VH,66:$VI,67:$VJ,68:$VK,69:$VL,70:$VM,71:$VN,78:$VO})], +defaultActions: {2:[2,212]}, parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); From e289016831c3d48f59c9ebb82ef38be96045826e Mon Sep 17 00:00:00 2001 From: summivox Date: Sun, 21 Feb 2016 02:46:33 -0500 Subject: [PATCH 03/10] Fix #857 Better handling of splat func arguments See #857 . --- src/ast.ls | 80 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/src/ast.ls b/src/ast.ls index 1fb372cfc..53d84ac44 100644 --- a/src/ast.ls +++ b/src/ast.ls @@ -1641,14 +1641,17 @@ class exports.Assign extends Node else if (ret or len > 1) and (not ID.test rite.to-string! or left.assigns rite.to-string!) cache = sn(this, (rref = o.scope.temporary!), " = ", rite) rite = rref - list = @"rend#{ left.constructor.display-name }" o, items, rite + if rite.to-string! is \arguments and not ret + arg = true + if left not instanceof Arr then @carp 'arguments can only destructure to array' + list = @"rend#{ left.constructor.display-name }" o, items, rite, arg o.scope.free rref if rref list.unshift cache if cache list.push rite if ret or not list.length code = [] + sep = if arg then '; ' else ', ' for item in list - code.push item - code.push ", " + code.push item, sep code.pop! if list.length < 2 or o.level < LEVEL_LIST then sn(this, ...code) else sn(this, "(", ...code, ")") @@ -1672,7 +1675,11 @@ class exports.Assign extends Node rite := rref result - rendArr: (o, nodes, rite) -> + rendArr: (o, nodes, rite, arg) -> + ~function arg-slice(begin, end) + # [&[..] for from (begin) til (end)] + new For {+ref, from: begin, op: \til, to: end} + .make-comprehension (Chain Var \arguments .add Index Literal \..), [] for node, i in nodes continue if node.is-empty! if node instanceof Splat @@ -1680,17 +1687,26 @@ class exports.Assign extends Node skip = (node.=it).is-empty! if i+1 is len = nodes.length break if skip - val = Arr.wrap JS do - util(\slice) + \.call( + rite + if i then ", #i)" else \) + if arg + val = arg-slice do # from i to &length + Literal(i) + (Chain Var \arguments .add Index Key \length) + else + val = Arr.wrap JS do + util(\slice) + \.call( + rite + if i then ", #i)" else \) else val = ivar = "#rite.length - #{ len - i - 1 }" # Optimize `[..., a] = b`. continue if skip and i+2 is len start = i+1 - @temps = [ivar = o.scope.temporary \i] + @.[]temps.push ivar = o.scope.temporary \i val = switch | skip Arr.wrap JS "#i < (#ivar = #val) ? #i : (#ivar = #i)" + | arg + arg-slice do + JS "#i < (#ivar = #val) ? #i : (#ivar = #i)" + Var ivar | _ Arr.wrap JS do "#i < (#ivar = #val) @@ -1701,7 +1717,7 @@ class exports.Assign extends Node val = Chain rcache||=Literal(rite), [Index JS inc || i] if node instanceof Assign node = Binary node.op, node.left, node.right, (node.logic or true) - (this with {left: node, right: val, +void})compile o, LEVEL_PAREN + (this with {left: node, right: val, +void})compile o, if arg then LEVEL_TOP else LEVEL_PAREN rendObj: (o, nodes, rite) -> for node in nodes @@ -1930,7 +1946,7 @@ class exports.Fun extends Node # `(a = x) ->` => `(a ? x) ->` else if p.op is \= params[i] = Binary (p.logic or \?), p.left, p.right - # `(a, ...b, c) ->` => `(a) -> [[] ...b, c] = @@` + # `(a, ...b, c) ->` => `(a) -> [[] ...b, c] = &` if splace? rest = params.splice splace, 9e9 else if @accessor @@ -1939,30 +1955,28 @@ class exports.Fun extends Node params.0 = Var \it if body.traverse-children -> it.value is \it or null names = [] assigns = [] - if params.length - dic = {} - for p in params - vr = p - vr.=first if df = vr.get-default! - if vr.is-empty! - vr = Var scope.temporary \arg - else if vr.value is \.. - vr = Var o.ref = scope.temporary! - else if vr not instanceof Var - unaries = [] - while vr instanceof Unary - has-unary = true - unaries.push vr - vr.=it - v = Var delete (vr.it || vr)name || vr.var-name! || scope.temporary \arg - assigns.push Assign vr, switch - | df => Binary p.op, v, p.second - | has-unary => fold ((x, y) -> y.it = x; y), v, unaries.reverse! - | otherwise => v - vr = v - else if df - assigns.push Assign vr, p.second, \=, p.op, true - names.push (scope.add vr.value, \arg, p), ', ' + for p in params + vr = p + vr.=first if df = vr.get-default! + if vr.is-empty! + vr = Var scope.temporary \arg + else if vr.value is \.. + vr = Var o.ref = scope.temporary! + else if vr not instanceof Var + unaries = [] + while vr instanceof Unary + has-unary = true + unaries.push vr + vr.=it + v = Var delete (vr.it || vr)name || vr.var-name! || scope.temporary \arg + assigns.push Assign vr, switch + | df => Binary p.op, v, p.second + | has-unary => fold ((x, y) -> y.it = x; y), v, unaries.reverse! + | otherwise => v + vr = v + else if df + assigns.push Assign vr, p.second, \=, p.op, true + names.push (scope.add vr.value, \arg, p), ', ' if rest while splace-- then rest.unshift Arr! assigns.push Assign Arr(rest), Literal \arguments From cbc6a7e14cacb6521284afab7284b17314a22b76 Mon Sep 17 00:00:00 2001 From: summivox Date: Tue, 22 Mar 2016 00:26:39 -0400 Subject: [PATCH 04/10] rename, prevent `[a, ...[x]:b] = &` from generating closure --- src/ast.ls | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/src/ast.ls b/src/ast.ls index 53d84ac44..1ebf89a6b 100644 --- a/src/ast.ls +++ b/src/ast.ls @@ -1642,14 +1642,15 @@ class exports.Assign extends Node cache = sn(this, (rref = o.scope.temporary!), " = ", rite) rite = rref if rite.to-string! is \arguments and not ret - arg = true - if left not instanceof Arr then @carp 'arguments can only destructure to array' - list = @"rend#{ left.constructor.display-name }" o, items, rite, arg + destructure-args = true + if left not instanceof Arr + @carp 'arguments can only destructure to array' + list = @"rend#{ left.constructor.display-name }" o, items, rite, destructure-args o.scope.free rref if rref list.unshift cache if cache list.push rite if ret or not list.length code = [] - sep = if arg then '; ' else ', ' + sep = if destructure-args then '; ' else ', ' for item in list code.push item, sep code.pop! @@ -1675,11 +1676,12 @@ class exports.Assign extends Node rite := rref result - rendArr: (o, nodes, rite, arg) -> - ~function arg-slice(begin, end) + rendArr: (o, nodes, rite, destructure-args) -> + ~function args-slice(begin, end) # [&[..] for from (begin) til (end)] new For {+ref, from: begin, op: \til, to: end} .make-comprehension (Chain Var \arguments .add Index Literal \..), [] + ret = [] for node, i in nodes continue if node.is-empty! if node instanceof Splat @@ -1687,8 +1689,8 @@ class exports.Assign extends Node skip = (node.=it).is-empty! if i+1 is len = nodes.length break if skip - if arg - val = arg-slice do # from i to &length + if destructure-args + val = args-slice do # from i to &length Literal(i) (Chain Var \arguments .add Index Key \length) else @@ -1703,8 +1705,8 @@ class exports.Assign extends Node val = switch | skip Arr.wrap JS "#i < (#ivar = #val) ? #i : (#ivar = #i)" - | arg - arg-slice do + | destructure-args + args-slice do JS "#i < (#ivar = #val) ? #i : (#ivar = #i)" Var ivar | _ @@ -1717,7 +1719,18 @@ class exports.Assign extends Node val = Chain rcache||=Literal(rite), [Index JS inc || i] if node instanceof Assign node = Binary node.op, node.left, node.right, (node.logic or true) - (this with {left: node, right: val, +void})compile o, if arg then LEVEL_TOP else LEVEL_PAREN + if destructure-args + if node not instanceof Var and val instanceof For + # avoid accidentally creating closure + @.[]temps.push tmp = o.scope.temporary \ref + vtmp = Var tmp + ret.push (this with {left: vtmp, right: val, +void})compile o, LEVEL_TOP + ret.push (this with {left: node, right: vtmp, +void})compile o, LEVEL_TOP + else + ret.push (this with {left: node, right: val, +void})compile o, LEVEL_TOP + else + ret.push (this with {left: node, right: val, +void})compile o, LEVEL_PAREN + ret rendObj: (o, nodes, rite) -> for node in nodes From ffe9a99693607789722cd5c67d60421d65b02cb7 Mon Sep 17 00:00:00 2001 From: George Zahariev Date: Sun, 15 May 2016 11:42:27 -0700 Subject: [PATCH 05/10] update deps and build --- lib/parser.js | 14 ++++++++++---- package.json | 14 +++++++------- package.json.ls | 14 +++++++------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/lib/parser.js b/lib/parser.js index bba7afc17..4cf0e8485 100644 --- a/lib/parser.js +++ b/lib/parser.js @@ -1,4 +1,4 @@ -/* parser generated by jison 0.4.15 */ +/* parser generated by jison 0.4.17 */ /* Returns a Parser object of the following structure: @@ -781,7 +781,13 @@ parseError: function parseError(str, hash) { if (hash.recoverable) { this.trace(str); } else { - throw new Error(str); + function _parseError (msg, hash) { + this.message = msg; + this.hash = hash; + } + _parseError.prototype = Error; + + throw new _parseError(str, hash); } }, parse: function parse(input) { @@ -814,14 +820,14 @@ parse: function parse(input) { lstack.length = lstack.length - n; } _token_stack: - function lex() { + var lex = function () { var token; token = lexer.lex() || EOF; if (typeof token !== 'number') { token = self.symbols_[token] || token; } return token; - } + }; var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; while (true) { state = stack[stack.length - 1]; diff --git a/package.json b/package.json index 987977c0e..d888bc3c7 100644 --- a/package.json +++ b/package.json @@ -44,14 +44,14 @@ "url": "git://github.com/gkz/LiveScript.git" }, "dependencies": { - "prelude-ls": "~1.1.1", - "optionator": "~0.6.0", - "source-map": "^0.3.0" + "prelude-ls": "~1.1.2", + "optionator": "~0.8.1", + "source-map": "^0.5.6" }, "devDependencies": { - "jison": "0.4.15", - "uglify-js": "~2.4.15", - "istanbul": "~0.3.2", - "browserify": "^9.0.2" + "jison": "0.4.17", + "uglify-js": "~2.6.2", + "istanbul": "~0.4.3", + "browserify": "^13.0.1" } } diff --git a/package.json.ls b/package.json.ls index 9b2e6cd65..9377c7e5c 100644 --- a/package.json.ls +++ b/package.json.ls @@ -45,12 +45,12 @@ repository: url: 'git://github.com/gkz/LiveScript.git' dependencies: - 'prelude-ls': '~1.1.1' - optionator: '~0.6.0' - 'source-map': '^0.3.0' + 'prelude-ls': '~1.1.2' + optionator: '~0.8.1' + 'source-map': '^0.5.6' dev-dependencies: - jison: '0.4.15' - 'uglify-js': '~2.4.15' - istanbul: '~0.3.2' - browserify: '^9.0.2' + jison: '0.4.17' + 'uglify-js': '~2.6.2' + istanbul: '~0.4.3' + browserify: '^13.0.1' From 2eb2aadea46cb22be27e9745744618db394d80eb Mon Sep 17 00:00:00 2001 From: George Zahariev Date: Sun, 15 May 2016 11:54:44 -0700 Subject: [PATCH 06/10] build --- lib/ast.js | 101 +++++++++++++++++++++++++++++++------------------ lib/command.js | 8 +++- 2 files changed, 71 insertions(+), 38 deletions(-) diff --git a/lib/ast.js b/lib/ast.js index 2a84174d8..3307d6f11 100644 --- a/lib/ast.js +++ b/lib/ast.js @@ -2589,7 +2589,7 @@ exports.Assign = Assign = (function(superclass){ return sn(this, If(test, left).addElse(put).compileExpression(o)); }; Assign.prototype.compileDestructuring = function(o, left){ - var items, len, ret, rite, that, cache, rref, list, code, i$, len$, item; + var items, len, ret, rite, that, cache, rref, destructureArgs, list, code, sep, i$, len$, item; items = left.items, len = items.length; ret = o.level && !this['void']; rite = this.right.compile(o, len === 1 ? LEVEL_CALL : LEVEL_LIST); @@ -2600,7 +2600,13 @@ exports.Assign = Assign = (function(superclass){ cache = sn(this, rref = o.scope.temporary(), " = ", rite); rite = rref; } - list = this["rend" + left.constructor.displayName](o, items, rite); + if (rite.toString() === 'arguments' && !ret) { + destructureArgs = true; + if (!(left instanceof Arr)) { + this.carp('arguments can only destructure to array'); + } + } + list = this["rend" + left.constructor.displayName](o, items, rite, destructureArgs); if (rref) { o.scope.free(rref); } @@ -2611,10 +2617,10 @@ exports.Assign = Assign = (function(superclass){ list.push(rite); } code = []; + sep = destructureArgs ? '; ' : ', '; for (i$ = 0, len$ = list.length; i$ < len$; ++i$) { item = list[i$]; - code.push(item); - code.push(", "); + code.push(item, sep); } code.pop(); if (list.length < 2 || o.level < LEVEL_LIST) { @@ -2644,8 +2650,17 @@ exports.Assign = Assign = (function(superclass){ return result; }); }; - Assign.prototype.rendArr = function(o, nodes, rite){ - var i$, len$, i, node, skip, len, val, ivar, start, inc, rcache, ref$, results$ = []; + Assign.prototype.rendArr = function(o, nodes, rite, destructureArgs){ + var ret, i$, len$, i, node, skip, len, val, ivar, start, inc, rcache, tmp, vtmp, ref$, this$ = this; + function argsSlice(begin, end){ + return new For({ + ref: true, + from: begin, + op: 'til', + to: end + }).makeComprehension(Chain(Var('arguments')).add(Index(Literal('..'))), []); + } + ret = []; for (i$ = 0, len$ = nodes.length; i$ < len$; ++i$) { i = i$; node = nodes[i$]; @@ -2659,14 +2674,18 @@ exports.Assign = Assign = (function(superclass){ if (skip) { break; } - val = Arr.wrap(JS(util('slice') + '.call(' + rite + (i ? ", " + i + ")" : ')'))); + if (destructureArgs) { + val = argsSlice(Literal(i), Chain(Var('arguments')).add(Index(Key('length')))); + } else { + val = Arr.wrap(JS(util('slice') + '.call(' + rite + (i ? ", " + i + ")" : ')'))); + } } else { val = ivar = rite + ".length - " + (len - i - 1); if (skip && i + 2 === len) { continue; } start = i + 1; - this.temps = [ivar = o.scope.temporary('i')]; + (this.temps || (this.temps = [])).push(ivar = o.scope.temporary('i')); val = (fn$()); } } else { @@ -2676,13 +2695,26 @@ exports.Assign = Assign = (function(superclass){ if (node instanceof Assign) { node = Binary(node.op, node.left, node.right, node.logic || true); } - results$.push((ref$ = clone$(this), ref$.left = node, ref$.right = val, ref$['void'] = true, ref$).compile(o, LEVEL_PAREN)); + if (destructureArgs) { + if (!(node instanceof Var) && val instanceof For) { + (this.temps || (this.temps = [])).push(tmp = o.scope.temporary('ref')); + vtmp = Var(tmp); + ret.push((ref$ = clone$(this), ref$.left = vtmp, ref$.right = val, ref$['void'] = true, ref$).compile(o, LEVEL_TOP)); + ret.push((ref$ = clone$(this), ref$.left = node, ref$.right = vtmp, ref$['void'] = true, ref$).compile(o, LEVEL_TOP)); + } else { + ret.push((ref$ = clone$(this), ref$.left = node, ref$.right = val, ref$['void'] = true, ref$).compile(o, LEVEL_TOP)); + } + } else { + ret.push((ref$ = clone$(this), ref$.left = node, ref$.right = val, ref$['void'] = true, ref$).compile(o, LEVEL_PAREN)); + } } - return results$; + return ret; function fn$(){ switch (false) { case !skip: return Arr.wrap(JS(i + " < (" + ivar + " = " + val + ") ? " + i + " : (" + ivar + " = " + i + ")")); + case !destructureArgs: + return argsSlice(JS(i + " < (" + ivar + " = " + val + ") ? " + i + " : (" + ivar + " = " + i + ")"), Var(ivar)); default: return Arr.wrap(JS(i + " < (" + ivar + " = " + val + ")\ ? " + util('slice') + ".call(" + rite + ", " + i + ", " + ivar + ")\ : (" + ivar + " = " + i + ", [])")); } @@ -3031,7 +3063,7 @@ exports.Fun = Fun = (function(superclass){ } }; Fun.prototype.compileParams = function(o, scope){ - var params, length, body, i$, p, len$, i, splace, rest, that, names, assigns, dic, vr, df, unaries, hasUnary, v, ref$, ref1$; + var params, length, body, i$, p, len$, i, splace, rest, that, names, assigns, vr, df, unaries, hasUnary, v, ref$, ref1$; params = this.params, length = params.length, body = this.body; for (i$ = params.length - 1; i$ >= 0; --i$) { p = params[i$]; @@ -3068,33 +3100,30 @@ exports.Fun = Fun = (function(superclass){ } names = []; assigns = []; - if (params.length) { - dic = {}; - for (i$ = 0, len$ = params.length; i$ < len$; ++i$) { - p = params[i$]; - vr = p; - if (df = vr.getDefault()) { - vr = vr.first; - } - if (vr.isEmpty()) { - vr = Var(scope.temporary('arg')); - } else if (vr.value === '..') { - vr = Var(o.ref = scope.temporary()); - } else if (!(vr instanceof Var)) { - unaries = []; - while (vr instanceof Unary) { - hasUnary = true; - unaries.push(vr); - vr = vr.it; - } - v = Var((ref1$ = (ref$ = vr.it || vr).name, delete ref$.name, ref1$) || vr.varName() || scope.temporary('arg')); - assigns.push(Assign(vr, (fn$()))); - vr = v; - } else if (df) { - assigns.push(Assign(vr, p.second, '=', p.op, true)); + for (i$ = 0, len$ = params.length; i$ < len$; ++i$) { + p = params[i$]; + vr = p; + if (df = vr.getDefault()) { + vr = vr.first; + } + if (vr.isEmpty()) { + vr = Var(scope.temporary('arg')); + } else if (vr.value === '..') { + vr = Var(o.ref = scope.temporary()); + } else if (!(vr instanceof Var)) { + unaries = []; + while (vr instanceof Unary) { + hasUnary = true; + unaries.push(vr); + vr = vr.it; } - names.push(scope.add(vr.value, 'arg', p), ', '); + v = Var((ref1$ = (ref$ = vr.it || vr).name, delete ref$.name, ref1$) || vr.varName() || scope.temporary('arg')); + assigns.push(Assign(vr, (fn$()))); + vr = v; + } else if (df) { + assigns.push(Assign(vr, p.second, '=', p.op, true)); } + names.push(scope.add(vr.value, 'arg', p), ', '); } if (rest) { while (splace--) { diff --git a/lib/command.js b/lib/command.js index 2ff2aea06..6e734a1a3 100755 --- a/lib/command.js +++ b/lib/command.js @@ -24,8 +24,12 @@ version = LiveScript.VERSION; process.exit(1); }); p = function(){ - var args; - args = slice$.call(arguments); + var args, res$, i$, to$; + res$ = []; + for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + args = res$; each(console.dir, args); }; pp = function(x, showHidden, depth){ From 2f7876bc7ef622740497cf4ed595c38fc6e68273 Mon Sep 17 00:00:00 2001 From: George Zahariev Date: Sun, 15 May 2016 11:56:25 -0700 Subject: [PATCH 07/10] auto parse .json.ls, closes #884 --- lib/node.js | 18 ++++++++++++------ src/node.ls | 6 +++++- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/lib/node.js b/lib/node.js index 6a12feb9a..bbc2d9ec2 100644 --- a/lib/node.js +++ b/lib/node.js @@ -36,12 +36,18 @@ module.exports = function(LiveScript){ }; importAll$(LiveScript, events.EventEmitter.prototype); require.extensions['.ls'] = function(module, filename){ - var js, e; - js = LiveScript.compile(fs.readFileSync(filename, 'utf8'), { - filename: filename, - bare: true, - map: "embedded" - }).code; + var file, js, e; + file = fs.readFileSync(filename, 'utf8'); + js = '.json.ls' === filename.substr(-8) + ? 'module.exports = ' + LiveScript.compile(file, { + filename: filename, + json: true + }) + : LiveScript.compile(file, { + filename: filename, + bare: true, + map: "embedded" + }).code; try { return module._compile(js, filename); } catch (e$) { diff --git a/src/node.ls b/src/node.ls index dd6626a0d..254185504 100644 --- a/src/node.ls +++ b/src/node.ls @@ -29,7 +29,11 @@ module.exports = !(LiveScript) -> LiveScript <<<< events.EventEmitter.prototype require.extensions.'.ls' = (module, filename) -> - js = LiveScript.compile (fs.read-file-sync filename, 'utf8'), {filename, +bare, map: "embedded"} .code + file = fs.read-file-sync filename, 'utf8' + js = if '.json.ls' is filename.substr -8 + 'module.exports = ' + LiveScript.compile file, {filename, +json} + else + LiveScript.compile file, {filename, +bare, map: "embedded"} .code try module._compile js, filename catch From bf842edaa099a66fedd0a47670cfeb9d0c328c09 Mon Sep 17 00:00:00 2001 From: George Zahariev Date: Sun, 15 May 2016 12:16:33 -0700 Subject: [PATCH 08/10] add destructuring test #868 --- test/function.ls | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/function.ls b/test/function.ls index 08c6309af..048e385d0 100644 --- a/test/function.ls +++ b/test/function.ls @@ -295,6 +295,15 @@ eq 1, new (class then (@do) -> eq @do, $do)(1).do eq c, 456 ) {a: [123], c: 456} +y = false +((a, ...[x]:b, c) -> + eq 1, a + deep-equal [2, 3], b + eq 4, c + eq 2, x + y := true +) 1, 2, 3, 4 +ok y # Parameter default values obj = f: (q = 123, @p = 456) -> q From 9faea92f2a0e6cca90534acccab7db18efaf6b6c Mon Sep 17 00:00:00 2001 From: George Zahariev Date: Sun, 15 May 2016 12:35:53 -0700 Subject: [PATCH 09/10] 1.5.0 --- lib/ast.js | 26 +++++++++++++++++++------- lib/browser.js | 2 +- lib/command.js | 2 +- lib/grammar.js | 2 +- lib/index.js | 4 ++-- lib/lang-ls.js | 2 +- lib/lexer.js | 2 +- lib/mode-ls.js | 2 +- lib/node.js | 2 +- lib/options.js | 2 +- lib/util.js | 2 +- package.json | 2 +- package.json.ls | 2 +- src/index.ls | 2 +- 14 files changed, 33 insertions(+), 21 deletions(-) diff --git a/lib/ast.js b/lib/ast.js index 3307d6f11..e2d7240a3 100644 --- a/lib/ast.js +++ b/lib/ast.js @@ -1,12 +1,16 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var fold, ref$, nameFromPath, stripString, SourceNode, SourceMapGenerator, sn, snEmpty, snSafe, snRemoveLeft, snAutofill, Node, Negatable, Block, Atom, Literal, Var, Key, Index, Slice, Chain, Call, List, Obj, Prop, Arr, Yield, Unary, Binary, Assign, Import, In, Existence, Fun, Class, Super, Parens, Splat, Jump, Throw, Return, While, For, StepSlice, Try, Switch, Case, If, Label, Cascade, JS, Require, Util, Vars, CopyL, DECLS, UTILS, LEVEL_TOP, LEVEL_PAREN, LEVEL_LIST, LEVEL_COND, LEVEL_OP, LEVEL_CALL, PREC, TAB, ID, SIMPLENUM, slice$ = [].slice, toString$ = {}.toString; fold = require('prelude-ls').fold; ref$ = require('./util'), nameFromPath = ref$.nameFromPath, stripString = ref$.stripString; ref$ = require('source-map'), SourceNode = ref$.SourceNode, SourceMapGenerator = ref$.SourceMapGenerator; sn = function(node){ - var parts, result, e; + var parts, res$, i$, to$, result, e; node == null && (node = {}); - parts = slice$.call(arguments, 1); + res$ = []; + for (i$ = 1, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + parts = res$; try { result = new SourceNode(node.line, node.column, null, parts); result.displayName = node.constructor.displayName; @@ -78,8 +82,12 @@ snAutofill = function(node, parents){ return node; }; SourceNode.prototype.replace = function(){ - var args; - args = slice$.call(arguments); + var args, res$, i$, to$; + res$ = []; + for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + args = res$; return new SourceNode(this.line, this.column, this.source, (function(){ var i$, x$, ref$, len$, results$ = []; for (i$ = 0, len$ = (ref$ = this.children).length; i$ < len$; ++i$) { @@ -101,8 +109,12 @@ SourceNode.prototype.setFile = function(filename){ return results$; }; SourceNode.prototype.toStringWithSourceMap = function(){ - var args, gen, genLine, genColumn, stack, code, debugOutput, debugIndent, debugIndentStr, genForNode; - args = slice$.call(arguments); + var args, res$, i$, to$, gen, genLine, genColumn, stack, code, debugOutput, debugIndent, debugIndentStr, genForNode; + res$ = []; + for (i$ = 0, to$ = arguments.length; i$ < to$; ++i$) { + res$.push(arguments[i$]); + } + args = res$; gen = (function(func, args, ctor) { ctor.prototype = func.prototype; var child = new ctor, result = func.apply(child, args), t; diff --git a/lib/browser.js b/lib/browser.js index ed568873b..cdf625849 100644 --- a/lib/browser.js +++ b/lib/browser.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var LiveScript; LiveScript = require('..'); LiveScript.stab = function(code, callback, filename){ diff --git a/lib/command.js b/lib/command.js index 6e734a1a3..10c14bda2 100755 --- a/lib/command.js +++ b/lib/command.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var LiveScript, path, fs, util, prelude, each, breakList, lines, unlines, take, keys, filter, dasherize, map, ref$, parseOptions, generateHelp, nameFromPath, SourceNode, version, this$ = this, slice$ = [].slice; LiveScript = require('..'); path = require('path'); diff --git a/lib/grammar.js b/lib/grammar.js index 4955d1784..ce4ef7421 100644 --- a/lib/grammar.js +++ b/lib/grammar.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var ditto, last, o, bnf, operators, tokens, name, alts, alt, token; ditto = {}; last = ''; diff --git a/lib/index.js b/lib/index.js index 8c4f42522..5109aee0a 100644 --- a/lib/index.js +++ b/lib/index.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var lexer, parser, ast, SourceNode, path, toString$ = {}.toString; lexer = require('./lexer'); parser = require('./parser').parser; @@ -28,7 +28,7 @@ parser.lexer = { return ''; } }; -exports.VERSION = '1.4.0'; +exports.VERSION = '1.5.0'; exports.compile = function(code, options){ var result, ast, output, filename, outputFilename, ref$, mapPath, e, that; options == null && (options = {}); diff --git a/lib/lang-ls.js b/lib/lang-ls.js index 892c85675..2f365333b 100644 --- a/lib/lang-ls.js +++ b/lib/lang-ls.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var tint, ident, kwend, interps, regexes; tint = function(ext, shortcuts, fallthroughs){ var i$, len$, rule; diff --git a/lib/lexer.js b/lib/lexer.js index 6f3e432cf..4d99545de 100644 --- a/lib/lexer.js +++ b/lib/lexer.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var string, TABS, unlines, enlines, enslash, reslash, camelize, deheregex, character, KEYWORDS_SHARED, KEYWORDS_UNUSED, JS_KEYWORDS, LS_KEYWORDS, ID, SYMBOL, SPACE, MULTIDENT, SIMPLESTR, JSTOKEN, BSTOKEN, NUMBER, NUMBER_OMIT, REGEX, HEREGEX_OMIT, LASTDENT, INLINEDENT, NONASCII, OPENERS, CLOSERS, INVERSES, i, o, c, CHAIN, ARG, BLOCK_USERS, this$ = this, slice$ = [].slice; exports.lex = function(code, options){ return clone$(exports).tokenize(code || '', options || {}); diff --git a/lib/mode-ls.js b/lib/mode-ls.js index 68d5fc847..384aa6ce7 100644 --- a/lib/mode-ls.js +++ b/lib/mode-ls.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 define('ace/mode/ls', function(require, exports, module){ var identifier, LiveScriptMode, keywordend, stringfill; identifier = '(?![\\d\\s])[$\\w\\xAA-\\uFFDC](?:(?!\\s)[$\\w\\xAA-\\uFFDC]|-[A-Za-z])*'; diff --git a/lib/node.js b/lib/node.js index bbc2d9ec2..2cf6970dc 100644 --- a/lib/node.js +++ b/lib/node.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 module.exports = function(LiveScript){ var fs, path, events; fs = require('fs'); diff --git a/lib/options.js b/lib/options.js index fa7a8affe..52e31d9d9 100644 --- a/lib/options.js +++ b/lib/options.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var optionator; optionator = require('optionator'); module.exports = optionator({ diff --git a/lib/util.js b/lib/util.js index 5459d2841..e4faee919 100644 --- a/lib/util.js +++ b/lib/util.js @@ -1,4 +1,4 @@ -// Generated by LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 var path, stripString, nameFromPath; path = require('path'); stripString = function(val){ diff --git a/package.json b/package.json index d888bc3c7..bf3588b4b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "livescript", - "version": "1.4.0", + "version": "1.5.0", "description": "LiveScript is a language which compiles to JavaScript. It has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate. While LiveScript adds many features to assist in functional style programming, it also has many improvements for object oriented and imperative programming.", "keywords": [ "language", diff --git a/package.json.ls b/package.json.ls index 9377c7e5c..d3d1d4b10 100644 --- a/package.json.ls +++ b/package.json.ls @@ -1,5 +1,5 @@ name: 'livescript' -version: '1.4.0' +version: '1.5.0' description: 'LiveScript is a language which compiles to JavaScript. It has a straightforward mapping to JavaScript and allows you to write expressive code devoid of repetitive boilerplate. While LiveScript adds many features to assist in functional style programming, it also has many improvements for object oriented and imperative programming.' diff --git a/src/index.ls b/src/index.ls index c17be8927..38b861867 100644 --- a/src/index.ls +++ b/src/index.ls @@ -27,7 +27,7 @@ parser <<< upcoming-input: -> '' exports <<< - VERSION: '1.4.0' + VERSION: '1.5.0' # Compiles a string of LiveScript code to JavaScript. compile: (code, options = {}) -> From cc3c0258cbf55268b889ab2d8cc3b1465dd0dd49 Mon Sep 17 00:00:00 2001 From: George Zahariev Date: Sun, 15 May 2016 12:38:11 -0700 Subject: [PATCH 10/10] build browser --- browser/livescript-min.js | 1430 +--- browser/livescript.js | 14162 +----------------------------------- 2 files changed, 10 insertions(+), 15582 deletions(-) diff --git a/browser/livescript-min.js b/browser/livescript-min.js index f8f0695c2..c36f0a084 100644 --- a/browser/livescript-min.js +++ b/browser/livescript-min.js @@ -1,1428 +1,8 @@ -// Generated by LiveScript 1.4.0 -// LiveScript 1.4.0 +// Generated by LiveScript 1.5.0 +// LiveScript 1.5.0 // Copyright (c) Jeremy Ashkenas, Satoshi Murakami, George Zahariev // Released under the MIT License // https://raw.githubusercontent.com/gkz/LiveScript/master/LICENSE -require=function e(t,n,i){function r(a,o){if(!n[a]){if(!t[a]){var l=typeof require=="function"&&require;if(!o&&l)return l(a,!0);if(s)return s(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return r(n?n:e)},c,c.exports,e,t,n,i)}return n[a].exports}var s=typeof require=="function"&&require;for(var a=0;a - console.log("toString(): ", new Error().stack) - tmp-to-string.apply this, args -*/ -(d=function(){throw Error("unimplemented")}).prototype={compile:function(e,t){var n,i,r,s,a,o,l;n=Ce({},e);if(t!=null){n.level=t}i=this.unfoldSoak(n)||this;if(n.level&&i.isStatement()){return i.compileClosure(n)}r=(i.tab=n.indent,i).compileNode(n);if(s=i.temps){for(a=0,o=s.length;a"?this.lines.pop():e;if(ve.call(n).slice(8,-1)!=="Array"){n=[n]}switch(t){case"|>":this.lines.push(A.make(e,n,{pipe:true}));break;case"<|":this.lines.push(A.make(this.lines.pop(),n))}return this};t.unwrap=function(){if(this.lines.length===1){return this.lines[0]}else{return this}};t.chomp=function(){var e,t,n;e=this.lines;t=e.length;while(n=e[--t]){if(!n.comment){break}}e.length=t+1;return this};t.neck=function(){var e,t,n,i,r;e=0;for(t=0,i=(n=this.lines).length;t1||((e=this.lines[0])!=null?e.isComplex():void 8)};t.delegate(["isCallable","isArray","isString","isRegex"],function(e){var t,n;return(t=(n=this.lines)[n.length-1])!=null?t[e]():void 8});t.getJump=function(e){var t,n,i,r,s;for(t=0,i=(n=this.lines).length;t1){s=t.cache(e),t=s[0],a=s[1],o=s[2]}else{a=t}for(l=0,u=r.length;l1){r=t.cache(e),t=r[0],s=r[1]}else{s=t}for(a=0,o=i.length;a"||e==="<="||e===">="||e==="of"||e==="instanceof")){return this.it}return n("!",this,true)};t.unfoldSoak=function(e){var t;return((t=this.op)==="++"||t==="--"||t==="delete")&&this.it!=null&&V.unfoldSoak(e,this,"it")};t.getAccessors=function(){var e;if(this.op!=="~"){return}if(this.it instanceof B){return[this.it]}if(this.it instanceof N){e=this.it.items;if(!e[2]&&e[0]instanceof B&&e[1]instanceof B){return e}}};function s(e){return{"++":"in","--":"de"}[e]+"crement"}t.compileNode=function(e){var t,n,r,a,o;if(this.it==null){return this.compileAsFunc(e)}if(t=this.compileSpread(e)){return t}n=this.op,r=this.it;switch(n){case"!":r.cond=true;break;case"new":r.isCallable()||r.carp("invalid constructor");break;case"do":if(e.level===ae&&r instanceof B&&r.isStatement()){return u(this,r.compile(e)," ",i("do",b(r.name)).compile(e))}a=U(r instanceof M&&!r.negated?E(r).add(A()):A.make(r));return u(this,(a.front=this.front,a.newed=this.newed,a).compile(e));case"delete":if(r instanceof b||!r.isAssignable()){this.carp("invalid delete")}if(e.level&&!this["void"]){return this.compilePluck(e)}break;case"++":case"--":r.isAssignable()||this.carp("invalid "+s(n));if(t=r instanceof b&&e.scope.checkReadOnly(r.value)){this.carp(s(n)+" of "+t+' "'+r.value+'"',ReferenceError)}if(this.post){r.front=this.front}break;case"^^":return u(this,Ee("clone"),"(",r.compile(e,le),")");case"jsdelete":return u(this,"delete ",r.compile(e,le));case"classof":return u(this,Ee("toString"),".call(",r.compile(e,le),").slice(8, -1)")}o=[r.compile(e,ce+fe.unary)];if(this.post){o.push(n)}else{if(n==="new"||n==="typeof"||n==="delete"||(n==="+"||n==="-")&&n===o.join("").charAt()){n+=" "}o.unshift(n)}if(e.level=0;--c){h=i[c];l=n(h.op,l,h.post)}r[o]=u?f=j(l):l}if(!f&&(this["void"]||!e.level)){t=(p=g(r),p.front=this.front,p["void"]=true,p)}return t.compile(e,oe)};t.compilePluck=function(e){var t,n,i,r,s;t=E(this.it).cacheReference(e),n=t[0],i=t[1];r=[s=e.scope.temporary()," = ",n.compile(e,le),", delete ",i.compile(e,le),", ",e.scope.free(s)];if(e.level"&&o!=="!")){return x(t.unwrap(),n,e)}switch(e){case"in":return new P(t,n);case"with":return new O(_("^^",t),n,false);case"<<<":case"<<<<":return O(t,n,e==="<<<<");case"<|":return g(t).pipe(n,e);case"|>":return g(n).pipe(t,"<|");case".":case".~":return E(t).add(k(n,e))}}l.op=e;l.first=t;l.second=n;return l}function a(){}a.prototype=i;i.children=["first","second"];i.show=function(){return this.op};i.isCallable=function(){var e;return this.partial||((e=this.op)==="&&"||e==="||"||e==="?"||e==="<<"||e===">>")&&this.first.isCallable()&&this.second.isCallable()};i.isArray=function(){switch(this.op){case"*":return this.first.isArray();case"/":return this.second.isMatcher()}};i.isString=function(){switch(this.op){case"+":case"*":return this.first.isString()||this.second.isString();case"-":return this.second.isMatcher()}};t=/^(?:[!=]=|[<>])=?$/;n={"===":"!==","!==":"===","==":"!=","!=":"=="};i.invert=function(){var e;if(e=!t.test(this.second.op)&&n[this.op]){this.op=e;this.wasInverted=true;return this}return _("!",U(this),true)};i.invertIt=function(){this.inverted=true;return this};i.getDefault=function(){switch(this.op){case"?":case"||":case"&&":return this}};i.xorChildren=function(e){var t,n,i;if(!(!(t=i=e(this.first))!==!(n=e(this.second))&&(t||n))){return false}return i?[this.first,this.second]:[this.second,this.first]};i.compileNode=function(e){var n,i,r,s,a,o,l;if(this.partial){return this.compilePartial(e)}switch(this.op){case"?":return this.compileExistence(e);case"*":if(this.second.isString()){return this.compileJoin(e)}if(this.first.isString()||this.first.isArray()){return this.compileRepeat(e)}break;case"-":if(this.second.isMatcher()){return this.compileRemove(e)}break;case"/":if(this.second.isMatcher()){return this.compileSplit(e)}break;case"**":case"^":return this.compilePow(e);case"?":return this.compileMinMax(e);case"<<":case">>":return this.compileCompose(e);case"++":return this.compileConcat(e);case"%%":return this.compileMod(e);case"xor":return this.compileXor(e);case"&&":case"||":if(n=this["void"]||!e.level){this.second["void"]=true}if(n||this.cond){this.first.cond=true;this.second.cond=true}break;case"instanceof":i=this.second.expandSlice(e).unwrap(),r=i.items;if(i instanceof N){if(r[1]){return this.compileAnyInstanceOf(e,r)}this.second=r[0]||i}this.second.isCallable()||this.second.carp("invalid instanceof operand");break;case"====":case"!===":this.op=this.op.slice(0,3); -// fallthrough -case"<==":case">==":case"<<=":case">>=":return this.compileDeepEq(e);default:if(t.test(this.op)){if(s=((a=this.op)==="==="||a==="!==")&&this.xorChildren(function(e){return e.isRegex()})){return this.compileRegexEquals(e,s)}if(this.op==="==="&&(this.first instanceof y&&this.second instanceof y)&&this.first.isWhat()!==this.second.isWhat()){if(typeof console!="undefined"&&console!==null){console.warn("WARNING: strict comparison of two different types will always be false: "+this.first.value+" == "+this.second.value)}}}if(t.test(this.op)&&t.test(this.second.op)){return this.compileChain(e)}}this.first.front=this.front;o=[this.first.compile(e,l=ce+fe[this.op])," ",this.mapOp(this.op)," ",this.second.compile(e,l)];if(e.level<=l){return u.apply(null,[this].concat(ge.call(o)))}else{return u.apply(null,[this,"("].concat(ge.call(o),[")"]))}};i.mapOp=function(e){var t;switch(false){case!(t=e.match(/\.([&\|\^]|<<|>>>?)\./)):return t[1];case e!=="of":return"in";default:return e}};i.compileChain=function(e){var t,n,i,r;t=[this.first.compile(e,n=ce+fe[this.op])];i=this.second.first.cache(e,true),r=i[0],this.second.first=i[1];t.push(" ",this.op," ",r.compile(e,n)," && ",this.second.compile(e,ce));if(e.level<=ce){return u.apply(null,[this].concat(ge.call(t)))}else{return u.apply(null,[this,"("].concat(ge.call(t),[")"]))}};i.compileExistence=function(e){var t;if(this["void"]||!e.level){t=s("&&",M(this.first,true),this.second);return(t["void"]=true,t).compileNode(e)}t=this.first.cache(e,true);return u(this,V(M(t[0]),t[1]).addElse(this.second).compileExpression(e))};i.compileAnyInstanceOf=function(e,t){var n,i,r,a,o,l,c;n=this.first.cache(e),i=n[0],r=n[1],this.temps=n[2];a=s("instanceof",i,t.shift());for(o=0,l=t.length;o=="||t===">>="){t=[this.second,this.first],this.first=t[0],this.second=t[1];this.op=this.op===">=="?"<==":"<<="}if(this.op==="!=="){this.op="===";n=true}for(i=0,r=(t=[this.first,this.second]).length;i?="){return this.compileMinMax(e,t,a)}if(s==="**="||s==="^="||s==="%%="||s==="++="||s==="|>="||s==="*="&&a.isString()||(s==="-="||s==="/=")&&a.isMatcher()){n=E(t).cacheReference(e),t=n[0],o=n[1];a=T(s.slice(0,-1),o,a);s=":="}if(s===".&.="||s===".|.="||s===".^.="||s===".<<.="||s===".>>.="||s===".>>>.="){s=s.slice(1,-2)+"="}(a=a.unparen()).ripName(t=t.unwrap());l=u(this.opLoc," ",s.replace(":","")," ");c=(t.front=true,t).compile(e,le);if(h=t instanceof b){if(s==="="){e.scope.declare(c.toString(),t,this["const"]||!this.defParam&&e["const"]&&"$"!==c.toString().slice(-1))}else if(f=e.scope.checkReadOnly(c.toString())){t.carp("assignment to "+f+' "'+c+'"',ReferenceError)}}if(t instanceof E&&a instanceof B){p=c.toString().split(".prototype.");d=c.toString().split(".");if(p.length>1){a.inClass=p[0]}else if(d.length>1){a.inClassStatic=ge.call(d,0,-1).join("")}}m=!e.level&&a instanceof z&&!a["else"]&&(h||t instanceof E&&t.isSimpleAccess())?(g=a.objComp?"{}":"[]",[v=e.scope.temporary("res")," = "+g+";\n"+this.tab,a.makeReturn(v).compile(e),"\n"+this.tab,c,l,e.scope.free(v)]):[c,l,a.compile(e,le)];if(e.level>le){m=["("].concat(ge.call(m),[")"])}return u.apply(null,[null].concat(ge.call(m)))};t.compileConditional=function(e,t){var n,i;if(t instanceof b&&Ne(this.logic,["?"])&&this.op==="="){e.scope.declare(t.value,t)}n=E(t).cacheReference(e);e.level+=ce1)&&(!de.test(s.toString())||t.assigns(s.toString()))){o=u(this,l=e.scope.temporary()," = ",s);s=l}c=this["rend"+t.constructor.displayName](e,n,s);if(l){e.scope.free(l)}if(o){c.unshift(o)}if(r||!c.length){c.push(s)}h=[];for(f=0,p=c.length;f0){r.push(c)}if(d instanceof j){r.push((s=new i(b(o),d.it),s.negated=this.negated,s).compile(e,ae));if(!(p||a===o)){r=["("+a+", "].concat(ge.call(r),[")"])}}else{r.push(p||a===o?o:"("+a+")",l,d.compile(e,ce+fe["=="]))}}a===o||e.scope.free(o);if(e.level1&&!m.classBound){if(m.bound){return[Ee("curry"),"(("].concat(ge.call(f),["), true)"])}else{return[Ee("curry"),"("].concat(ge.call(f),[")"])}}else{return f}};if(s){return t.assign(t.temporary("fn"),u.apply(null,[null].concat(ge.call(d()))))}if(this.returns){f.push("\n"+h+"return ",l,";")}else if(this.bound&&this.ctor){f.push(" function ctor$(){} ctor$.prototype = prototype;")}f=d();if(this.front&&!this.statement){return u.apply(null,[null,"("].concat(ge.call(f),[")"]))}else{return u.apply(null,[null].concat(ge.call(f)))}};t.compileParams=function(e,t){var n,r,s,a,o,l,c,h,f,p,d,m,g,v,w,k,L,E,A,C;n=this.params,r=n.length,s=this.body;for(a=n.length-1;a>=0;--a){o=n[a];if(!(o.isEmpty()||o.filler)){break}--n.length}for(a=0,l=n.length;a=ce+fe[n.op])){return(n.front=this.front,n).compile(e,t||oe)}if(n.isStatement()){return n.compileClosure(e)}else{return u(null,u(this.lb,"("),n.compile(e,oe),u(this.rb,")"))}};return i}(d);n.Splat=j=function(e){var t,n=Re((Ce(r,e).displayName="Splat",r),e).prototype,i=r;function r(e,t){var n=this instanceof s?this:new s;n.it=e;n.filler=t;return n}function s(){}s.prototype=n;t=U.prototype,n.children=t.children,n.isComplex=t.isComplex;n.isAssignable=be;n.assigns=function(e){return this.it.assigns(e)};n.compile=function(){return this.carp("invalid splat")};r.compileArray=function(e,t,n){var i,s,l,c,h,f,p;a(t);i=0;for(s=0,l=t.length;s=t.length){return u(this,"")}if(!t[1]){return u(this,(n?Object:o)(t[0].it).compile(e,le))}h=[];f=[];for(s=0,l=(p=t.splice(i,9e9)).length;s+a){r=s=-1}h=this.op==="til"?"":"=";f=+r?n+" "+"<>".charAt(r<0)+h+" "+a:r+" < 0 ? "+n+" >"+h+" "+a+" : "+n+" <"+h+" "+a}else{if(this.ref){this.item=b(e.scope.temporary("x"))}if(this.item||this.object&&this.own||this["let"]){i=this.source.compileLoopReference(e,"ref",!this.object),p=i[0],d=i[1];p===d||t.push(p)}else{p=d=this.source.compile(e,oe)}if(!this.object){if(0>r&&~~r===+r){c=n+" = "+d+".length - 1";f=n+" >= 0"}else{t.push(m=e.scope.temporary("len")); -c=n+" = 0, "+m+" = "+d+".length";f=n+" < "+m}}}this["else"]&&(this.yet=e.scope.temporary("yet"));v=[u(this,"for (")];if(this.object){v.push(n," in ")}if(w=this.yet){v.push(w," = true, ")}if(this.object){v.push(d)}else{s===r||(c+=", "+s);v.push(c,"; ",f,"; "+(1==Math.abs(r)?(r<0?"--":"++")+n:n+(r<0?" -= "+r.toString().slice(1):" += "+r)))}this.own&&v.push(u(this,") if ("),e.scope.assign("own$","{}.hasOwnProperty"),".call(",p,", ",n,")");v.push(u(this,") {"));if(this["let"]){this.body.traverseChildren(function(e){switch(e.value){case"index$$":e.value=n;break;case"item$$":e.value=p+"["+n+"]"}})}e.indent+=pe;if(this.index&&!this.object){v.push("\n"+e.indent,x(b(this.index),Q(n)).compile(e,ae),";")}if(this.item&&!this.item.isEmpty()){v.push("\n"+e.indent,x(this.item,Q(p+"["+n+"]")).compile(e,ae),";")}if(this.ref){e.ref=this.item.value}k=this.compileBody(e);if((this.item||this.index&&!this.object)&&"}"===k.toString().charAt(0)){v.push("\n"+this.tab)}return u.apply(null,[null].concat(ge.call(v),[k]))};return i}(z);n.StepSlice=H=function(e){var t=Re((Ce(i,e).displayName="StepSlice",i),e).prototype,n=i;t.makeReturn=function(t){this.makeReturnArg=t;return e.prototype.makeReturn.apply(this,arguments)};t.compileNode=function(t){var n,i,r,s,a;this.index=t.scope.temporary("x");n=this.target.unwrap().cache(t),i=n[0],r=n[1],s=n[2];this.guard=T("<",y(this.index),E(r).add(k(w("length"))));this.makeComprehension(E(r).add(k(y(this.index))),this);if(this.makeReturnArg!=null){this.makeReturn(this.makeReturnArg)}a=[];if(s){a.push(i.compile(t),";"+"\n"+t.indent)}a.push(e.prototype.compileNode.apply(this,arguments));return u.apply(null,[this].concat(ge.call(a)))};function i(){i.superclass.apply(this,arguments)}return i}(G);n.Try=J=function(e){var t=Re((Ce(i,e).displayName="Try",i),e).prototype,n=i;function i(e,t,n,i){var r;this.attempt=e;this.thrown=t;this.recovery=n;this.ensure=i;if((r=this.recovery)!=null){r.lines.unshift(x(this.thrown||b("e"),b("e$")))}}t.children=["attempt","recovery","ensure"];t.show=function(){return this.thrown};t.isStatement=be;t.isCallable=function(){var e;return((e=this.recovery)!=null?e.isCallable():void 8)&&this.attempt.isCallable()};t.getJump=function(e){var t;return this.attempt.getJump(e)||((t=this.recovery)!=null?t.getJump(e):void 8)};t.makeReturn=function(){var e;this.attempt=(e=this.attempt).makeReturn.apply(e,arguments);if(this.recovery!=null){this.recovery=(e=this.recovery).makeReturn.apply(e,arguments)}return this};t.compileNode=function(e){var t,n;e.indent+=pe;t=[u(this,"try "),this.compileBlock(e,this.attempt)];if(n=this.recovery||!this.ensure&&Q("")){t.push(u(n," catch (e$) "),this.compileBlock(e,n))}if(n=this.ensure){t.push(u(n," finally "),this.compileBlock(e,n))}return u.apply(null,[null].concat(ge.call(t)))};return i}(d);n.Switch=q=function(e){var t=Re((Ce(i,e).displayName="Switch",i),e).prototype,n=i;function i(e,t,n,i){var r,s;this.type=e;this.topic=t;this.cases=n;this["default"]=i;if(e==="match"){if(t){this.target=N(t)}this.topic=null}else{if(t){if(t.length>1){throw"can't have more than one topic in switch statement"}this.topic=this.topic[0]}}if(this.cases.length&&(r=(s=this.cases)[s.length-1]).tests.length===1&&r.tests[0]instanceof b&&r.tests[0].value==="_"){this.cases.pop();this["default"]=r.body}}t.children=["topic","cases","default"];t.aSource="topic";t.aTargets=["cases","default"];t.show=function(){return this.type};t.isStatement=be;t.isCallable=function(){var e,t,n,i;for(e=0,n=(t=this.cases).length;eoe){return u.apply(null,[null,"("].concat(ge.call(l),[")"]))}else{return u.apply(null,[null].concat(ge.call(l)))}};return i}(d);n.JS=Q=function(e){var t=Re((Ce(i,e).displayName="JS",i),e).prototype,n=i;function i(e,t,n){var i=this instanceof r?this:new r;i.code=e;i.literal=t;i.comment=n;return i}function r(){}r.prototype=t;t.show=function(){if(this.comment){return this.code}else{return"`"+this.code+"`"}};t.terminator="";t.isAssignable=t.isCallable=function(){return!this.comment};t.compile=function(e){return u(this,h(this.literal?Ae(this.code,e.indent):this.code))};return i}(d);n.Require=ee=function(e){var t=Re((Ce(i,e).displayName="Require",i),e).prototype,n=i;function i(e){var t=this instanceof r?this:new r;t.body=e;return t}function r(){}r.prototype=t;t.children=["body"];t.compile=function(e){var t,n,i,r,o,l,c,h=this;t=function(e,t){switch(false){case!(e instanceof w):return e.name;case!(e instanceof b):return e.value;case!(e instanceof y):return e.value;default:if(t){return h.carp("invalid require! argument")}else{return e}}};n=function(n){var i,r,o,l,c,h;i=function(){switch(false){case!(n instanceof R):return[n.val,n.key];default:return[n,n]}}(),r=i[0],o=i[1];l=t(r);c=ve.call(l).slice(8,-1)==="String"?ie(r,b(s(l))):r;o=a(t(o,true));h=E(ie(this,b("require"))).add(A([y("'"+o+"'")]));return u(n,x(c,h).compile(e))};if(this.body.items!=null){i=[];for(r=0,l=(o=this.body.items).length;r0){e=u.apply(null,[this,t+"var "].concat(ge.call(p),[";\n",e]))}if(r.length>0){return u.apply(null,[this,e,"\n"+t].concat(ge.call(r)))}else{return u(this,e)}};function be(){return true}function we(){return false}function ke(){return this}function Le(){}se={clone:"function(it){\n function fun(){} fun.prototype = it;\n return new fun;\n}",extend:"function(sub, sup){\n function fun(){} fun.prototype = (sub.superclass = sup).prototype;\n (sub.prototype = new fun).constructor = sub;\n if (typeof sup.extended == 'function') sup.extended(sub);\n return sub;\n}",bind:"function(obj, key, target){\n return function(){ return (target || obj)[key].apply(obj, arguments) };\n}","import":"function(obj, src){\n var own = {}.hasOwnProperty;\n for (var key in src) if (own.call(src, key)) obj[key] = src[key];\n return obj;\n}",importAll:"function(obj, src){\n for (var key in src) obj[key] = src[key];\n return obj;\n}",repeatString:"function(str, n){\n for (var r = ''; n > 0; (n >>= 1) && (str += str)) if (n & 1) r += str;\n return r;\n}",repeatArray:"function(arr, n){\n for (var r = []; n > 0; (n >>= 1) && (arr = arr.concat(arr)))\n if (n & 1) r.push.apply(r, arr);\n return r;\n}","in":"function(x, xs){\n var i = -1, l = xs.length >>> 0;\n while (++i < l) if (x === xs[i]) return true;\n return false;\n}",out:"typeof exports != 'undefined' && exports || this",curry:"function(f, bound){\n var context,\n _curry = function(args) {\n return f.length > 1 ? function(){\n var params = args ? args.concat() : [];\n context = bound ? context || this : this;\n return params.push.apply(params, arguments) <\n f.length && arguments.length ?\n _curry.call(context, params) : f.apply(context, params);\n } : f;\n };\n return _curry();\n}",flip:"function(f){\n return curry$(function (x, y) { return f(y, x); });\n}",partialize:"function(f, args, where){\n var context = this;\n return function(){\n var params = slice$.call(arguments), i,\n len = params.length, wlen = where.length,\n ta = args ? args.concat() : [], tw = where ? where.concat() : [];\n for(i = 0; i < len; ++i) { ta[tw[0]] = params[i]; tw.shift(); }\n return len < wlen && len ?\n partialize$.apply(context, [f, ta, tw]) : f.apply(context, ta);\n };\n}",not:"function(x){ return !x; }",compose:"function() {\n var functions = arguments;\n return function() {\n var i, result;\n result = functions[0].apply(this, arguments);\n for (i = 1; i < functions.length; ++i) {\n result = functions[i](result);\n }\n return result;\n };\n}",deepEq:"function(x, y, type){\n var toString = {}.toString, hasOwnProperty = {}.hasOwnProperty,\n has = function (obj, key) { return hasOwnProperty.call(obj, key); };\n var first = true;\n return eq(x, y, []);\n function eq(a, b, stack) {\n var className, length, size, result, alength, blength, r, key, ref, sizeB;\n if (a == null || b == null) { return a === b; }\n if (a.__placeholder__ || b.__placeholder__) { return true; }\n if (a === b) { return a !== 0 || 1 / a == 1 / b; }\n className = toString.call(a);\n if (toString.call(b) != className) { return false; }\n switch (className) {\n case '[object String]': return a == String(b);\n case '[object Number]':\n return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);\n case '[object Date]':\n case '[object Boolean]':\n return +a == +b;\n case '[object RegExp]':\n return a.source == b.source &&\n a.global == b.global &&\n a.multiline == b.multiline &&\n a.ignoreCase == b.ignoreCase;\n }\n if (typeof a != 'object' || typeof b != 'object') { return false; }\n length = stack.length;\n while (length--) { if (stack[length] == a) { return true; } }\n stack.push(a);\n size = 0;\n result = true;\n if (className == '[object Array]') {\n alength = a.length;\n blength = b.length;\n if (first) {\n switch (type) {\n case '===': result = alength === blength; break;\n case '<==': result = alength <= blength; break;\n case '<<=': result = alength < blength; break;\n }\n size = alength;\n first = false;\n } else {\n result = alength === blength;\n size = alength;\n }\n if (result) {\n while (size--) {\n if (!(result = size in a == size in b && eq(a[size], b[size], stack))){ break; }\n }\n }\n } else {\n if ('constructor' in a != 'constructor' in b || a.constructor != b.constructor) {\n return false;\n }\n for (key in a) {\n if (has(a, key)) {\n size++;\n if (!(result = has(b, key) && eq(a[key], b[key], stack))) { break; }\n }\n }\n if (result) {\n sizeB = 0;\n for (key in b) {\n if (has(b, key)) { ++sizeB; }\n }\n if (first) {\n if (type === '<<=') {\n result = size < sizeB;\n } else if (type === '<==') {\n result = size <= sizeB\n } else {\n result = size === sizeB;\n }\n } else {\n first = false;\n result = size === sizeB;\n }\n }\n }\n stack.pop();\n return result;\n }\n}",split:"''.split",replace:"''.replace",toString:"{}.toString",join:"[].join",slice:"[].slice",splice:"[].splice"};ae=0;oe=1;le=2;ue=3;ce=4;he=5;(function(){this["&&"]=this["||"]=this["xor"]=.2;this[".&."]=this[".^."]=this[".|."]=.3;this["=="]=this["!="]=this["~="]=this["!~="]=this["==="]=this["!=="]=.4;this["<"]=this[">"]=this["<="]=this[">="]=this.of=this["instanceof"]=.5;this["<<="]=this[">>="]=this["<=="]=this[">=="]=this["++"]=.5;this[".<<."]=this[".>>."]=this[".>>>."]=.6;this["+"]=this["-"]=.7;this["*"]=this["/"]=this["%"]=.8}).call(fe={unary:.9});pe=" ";de=/^(?!\d)[\w$\xAA-\uFFDC]+$/;me=/^\d+$/;function Ee(e){return ye.root.assign(e+"$",se[e])}function Ae(e,t){return e.replace(/\n/g,"\n"+t)}function Ce(e,t){var n={}.hasOwnProperty;for(var i in t)if(n.call(t,i))e[i]=t[i];return e}function Se(e){function t(){}t.prototype=e;return new t}function Re(e,t){function n(){}n.prototype=(e.superclass=t).prototype;(e.prototype=new n).constructor=e;if(typeof t.extended=="function")t.extended(e);return e}function Ne(e,t){var n=-1,i=t.length>>>0;while(++n0;(t>>=1)&&(e=e.concat(e)))if(t&1)n.push.apply(n,e);return n}function _e(e,t){for(var n="";t>0;(t>>=1)&&(e+=e))if(t&1)n+=e;return n}function Te(e,t){for(var n in t)e[n]=t[n];return e}},{"./util":6,"prelude-ls":20,"source-map":22}],2:[function(e,t,n){(function(t){ -// Generated by LiveScript 1.4.0 -var i,r,s,a,o,l={}.toString;i=e("./lexer");r=e("./parser").parser;s=e("./ast");a=e("source-map").SourceNode;o=e("path");r.yy=s;r.lexer={lex:function(){var e,t,n,i,r,s;e=this.tokens[++this.pos]||[""],t=e[0],this.yytext=e[1],n=e[2],i=e[3];e=this.tokens[this.pos+1]||[""],r=e[2],s=e[3];this.yylineno=n;this.yylloc={first_line:n,first_column:i,last_line:r,last_column:s};return t},setInput:function(e){this.pos=-1;return this.tokens=e},upcomingInput:function(){return""}};n.VERSION="1.4.0";n.compile=function(e,s){var o,l,u,c,h,f,p,d,m;s==null&&(s={});s.header==null&&(s.header=true);try{if(s.json){o=Function(n.compile(e,{bare:true,run:true,print:true}))();return JSON.stringify(o,null,2)+"\n"}else{l=r.parse(i.lex(e));if(s.run&&s.print){l.makeReturn()}u=l.compileRoot(s);if(s.header){u=new a(null,null,null,["// Generated by LiveScript "+n.VERSION+"\n",u])}if(s.map&&s.map!=="none"){c=s.filename,h=s.outputFilename;if(!c){c="unnamed-"+Math.floor(Math.random()*4294967296).toString(16)+".ls"}u.setFile(c);o=u.toStringWithSourceMap();if(s.map==="embedded"){o.map.setSourceContent(c,e)}if((f=s.map)==="linked"||f==="debug"){p=h+".map";o.code+="\n//# sourceMappingURL="+p+"\n"}else{o.code+="\n//# sourceMappingURL=data:application/json;base64,"+new t(o.map.toString()).toString("base64")+"\n"}return o}else{return u.toString()}}}catch(g){d=g;if(m=s.filename){d.message+="\nat "+m}throw d}};n.ast=function(e){return r.parse(typeof e==="string"?i.lex(e):e)};n.tokens=i.lex;n.lex=function(e){return i.lex(e,{raw:true})};n.run=function(e,t){var i,r;i=n.compile(e,(r={},u(r,t),r.bare=true,r));return Function(l.call(i).slice(8,-1)==="String"?i:i.code)()};n.tokens.rewrite=i.rewrite;c(n.ast,r.yy);if(e.extensions){e("./node")(n)}else{n.require=e}function u(e,t){var n={}.hasOwnProperty;for(var i in t)if(n.call(t,i))e[i]=t[i];return e}function c(e,t){for(var n in t)e[n]=t[n];return e}}).call(this,e("buffer").Buffer)},{"./ast":1,"./lexer":3,"./node":4,"./parser":5,buffer:10,path:14,"source-map":22}],3:[function(e,t,n){ -// Generated by LiveScript 1.4.0 -var i,r,s,a,o,l,u,c,h,f,p,d,m,g,v,y,b,w,k,L,E,A,C,S,R,N,I,_,T,x,O,P,M,B,$,D=[].slice;n.lex=function(e,t){return ee(n).tokenize(e||"",t||{})};n.rewrite=function(e){var t;e||(e=this.tokens);H(e);q(e);J(e);K(e);V(e);X(e);if(((t=e[0])!=null?t[0]:void 8)==="NEWLINE"){e.shift()}return e};n.tokenize=function(e,t){var n,i,r,s,a;this.inter||(e=e.replace(/[\r\u2028\u2029\uFEFF]/g,""));e="\n"+e;this.tokens=[this.last=["NEWLINE","\n",0,0]];this.line=~-t.line;this.column=t.column||0;this.dents=[];this.closes=[];this.parens=[];this.flags=[];n=0;i=n;this.charsCounted=0;this.isAtPrefix=true;while(r=e.charAt(n)){s=n-i;i=n;if(this.charsCounted>s){throw new Error("Location information out-of-sync in lexer")}this.column+=s-this.charsCounted;this.charsCounted=0;switch(r){case" ":n+=this.doSpace(e,n);break;case"\n":n+=this.doLine(e,n);break;case"\\":n+=this.doBackslash(e,n);break;case"'":case'"':n+=this.doString(e,n,r);break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n+=this.doNumber(e,n);break;case"/":switch(e.charAt(n+1)){case"*":n+=this.doComment(e,n);break;case"/":n+=this.doHeregex(e,n);break;default:n+=this.doRegex(e,n)||this.doLiteral(e,n)}break;case"`":if("`"===e.charAt(n+1)){n+=this.doJS(e,n)}else{n+=this.doLiteral(e,n)}break;default:n+=this.doID(e,n)||this.doLiteral(e,n)||this.doSpace(e,n)}}this.dedent(this.dent);if(a=this.closes.pop()){this.carp("missing `"+a+"`")}if(this.inter){this.rest==null&&this.carp("unterminated interpolation")}else{this.last.spaced=true;this.newline()}t.raw||this.rewrite();return this.tokens};n.dent=0;n.identifiers={};n.hasOwn=Object.prototype.hasOwnProperty;n.checkConsistency=function(e,t){if(this.hasOwn.call(this.identifiers,e)&&this.identifiers[e]!==t){throw new ReferenceError("Inconsistent use of "+e+" as "+t+" on line "+-~this.line)}else{return this.identifiers[e]=t}};n.doID=function(e,t){var n,i,r,s,a,o,l,c,d;i=(n=(m.lastIndex=t,m).exec(e))[0];if(!i){return 0}r=u(n[1]);if(/-/.test(n[1])){this.checkConsistency(r,n[1])}if(N.test(r)){try{Function("var "+r)}catch(g){s=g;this.carp("invalid identifier '"+r+"'")}}a=this.last;if(n[2]||a[0]==="DOT"||this.adi()){this.token("ID",te(r,p)?(o=Object(r),o.reserved=true,o):r);if(n[2]){this.token(":",":")}return i.length}switch(r){case"true":case"false":case"on":case"off":case"yes":case"no":case"null":case"void":case"arguments":case"debugger":l="LITERAL";break;case"new":case"do":case"typeof":case"delete":l="UNARY";break;case"yield":l="YIELD";break;case"return":case"throw":l="HURL";break;case"break":case"continue":l="JUMP";break;case"this":case"eval":case"super":return this.token("LITERAL",r,true).length;case"for":r=[];this.fset("for",true);this.fset("to",false);break;case"then":this.fset("for",false);this.fset("to",false);break;case"catch":case"function":r="";break;case"in":case"of":if(this.fget("for")){this.fset("for",false);if(r==="in"){this.fset("by",true);r="";if(a[0]==="ID"&&((o=(c=this.tokens)[c.length-2][0])===","||o==="]"||o==="}")){r=this.tokens.pop()[1];if((o=this.tokens)[o.length-1][0]===","){this.tokens.pop()}}}break} -// fallthrough -case"instanceof":if(a[1]==="!"){r=this.tokens.pop()[1]+r}l=(o=this.tokens)[o.length-1][0]==="("?"BIOPR":"RELATION";break;case"not":if(a.alias&&a[1]==="==="){return a[1]="!==",3}l="UNARY";r="!";break;case"and":case"or":case"xor":case"is":case"isnt":this.unline();l=r==="is"||r==="isnt"?"COMPARE":"LOGIC";if(a[0]==="("){l="BIOP"}this.token(l,function(){switch(r){case"is":return"===";case"isnt":return"!==";case"or":return"||";case"and":return"&&";case"xor":return"xor"}}());this.last.alias=true;return r.length;case"unless":l="IF";break;case"until":l="WHILE";break;case"import":if(a[0]==="("){r="<<<";l="BIOP"}else{if(j(this.tokens)){r="<<<"}else{l="DECL"}}break;case"export":case"const":case"var":l="DECL";break;case"with":l=function(){switch(false){case!j(this.tokens):return"CLONEPORT";case a[0]!=="(":return"BIOP";default:return"WITH"}}.call(this);break;case"when":this.fset("for",false);l="CASE"; -// fallthrough -case"case":if(this.doCase()){return i.length}break;case"match":l="SWITCH";break;case"loop":this.token("WHILE",r);this.token("LITERAL","true");return i.length;case"let":case"own":if(a[0]==="FOR"&&!te(r,a[1])){a[1].push(r);return 3} -// fallthrough -default:if(te(r,h)){break}if(te(r,f)){this.carp("reserved word '"+r+"'")}if(!a[1]&&((o=a[0])==="FUNCTION"||o==="GENERATOR"||o==="LABEL")){a[1]=r;a.spaced=false;return i.length}l="ID";switch(r){case"otherwise":if((o=a[0])==="CASE"||o==="|"){a[0]="DEFAULT";return r.length}break;case"all":if(d=a[1]==="<<<"&&"<"||a[1]==="import"&&"All"){a[1]+=d;return 3}break;case"from":if(a[1]==="yield"){a[1]+="from";return 4}this.forange()&&(l="FROM");break;case"to":case"til":this.forange()&&this.tokens.push(["FROM","",this.line,this.column],["STRNUM","0",this.line,this.column]);if(this.fget("from")){this.fset("from",false);this.fset("by",true);l="TO"}else if(!a.callable&&a[0]==="STRNUM"&&(o=this.tokens)[o.length-2][0]==="["){a[0]="RANGE";a.op=r;return r.length}else if(te("]",this.closes)){this.token("TO",r);return r.length}break;case"by":if(a[0]==="STRNUM"&&(o=this.tokens)[o.length-2][0]==="RANGE"&&(o=this.tokens)[o.length-3][0]==="["){l="RANGE_BY"}else if(te("]",this.closes)){l="BY"}else if(this.fget("by")){l="BY";this.fset("by",false)}break;case"ever":if(a[0]==="FOR"){this.fset("for",false);a[0]="WHILE";l="LITERAL";r="true"}}}l||(l=n[1].toUpperCase());if((l==="COMPARE"||l==="LOGIC"||l==="RELATION")&&a[0]==="("){l=l==="RELATION"?"BIOPR":"BIOP"}if(l==="THEN"||l==="IF"||l==="WHILE"){this.fset("for",false);this.fset("by",false)}if(l==="RELATION"||l==="THEN"||l==="ELSE"||l==="CASE"||l==="DEFAULT"||l==="CATCH"||l==="FINALLY"||l==="IN"||l==="OF"||l==="FROM"||l==="TO"||l==="BY"||l==="EXTENDS"||l==="IMPLEMENTS"||l==="WHERE"){this.unline()}this.token(l,r);return i.length};n.doNumber=function(e,t){var n,i,r,s,a,o,l,u;L.lastIndex=t;if(!(n=(i=L.exec(e))[0])){return 0}r=this.last;if(i[5]&&(r[0]==="DOT"||this.adi())){this.token("STRNUM",i[4].replace(E,""));return i[4].length}if(s=i[1]){a=parseInt(o=i[2].replace(E,""),s);l=false;if(s>36||s<2){if(/[0-9]/.exec(o)){this.carp("invalid number base "+s+" (with number "+o+"),base must be from 2 to 36")}else{l=true}}if(isNaN(a)||a===parseInt(o.slice(0,-1),s)){this.strnum(i[1]);this.token("DOT",".~");this.token("ID",i[2]);return n.length}a+=""}else{a=(i[3]||n).replace(E,"");if(i[3]&&a.charAt()==="0"&&((u=a.charAt(1))!==""&&u!==".")){this.carp("deprecated octal literal "+i[4])}}if(!r.spaced&&r[0]==="+-"){r[0]="STRNUM";r[1]+=a;return n.length}this.strnum(a);return n.length};n.doString=function(e,t,n){var i,r;if(n===e.charAt(t+1)){return n===e.charAt(t+2)?this.doHeredoc(e,t,n):(this.strnum(n+n),2)}if(n==='"'){i=this.interpolate(e,t,n);this.addInterpolated(i,s);return i.size}r=(b.lastIndex=t,b).exec(e)[0]||this.carp("unterminated string");this.strnum(s(this.string(n,r.slice(1,-1))));return this.countLines(r).length};n.doHeredoc=function(e,t,n){var i,r,s,o,l,u,c,h,f;if(n==="'"){~(i=e.indexOf(n+n+n,t+3))||this.carp("unterminated heredoc");r=e.slice(t+3,i);s=r.replace(S,"");this.strnum(a(this.string(n,Y(W(s,F(s))))));return this.countLines(r).length+6}o=this.interpolate(e,t,n+n+n);l=F(e.slice(t+3,t+o.size-3).replace(S,""));for(u=0,c=o.length;u=0;--u){c=u;h=r[u];if(h[0]==="TOKENS"){f=r.splice(c,1)[0][1];break}}}}for(u=0,p=r.length;u="g"){this.token(",",",");if(f){n.push.apply(n,f)}else{this.token("STRNUM","'"+a+"'")}}this.token(a==="$"?")":")CALL","")}else{this.regex(l(r[0][1].replace(C,"")),a)}return r.size+a.length};n.doBackslash=function(e,t){var n,i,r;k.lastIndex=t;n=k.exec(e),i=n[0],r=n[1];if(r){this.strnum(this.string("'",r))}else{this.countLines(i)}return i.length};n.doLine=function(e,t){var n,i,r,s,a,o,l,u,c;n=(y.lastIndex=t,y).exec(e),i=n[0],r=n[1];s=this.countLines(i).length;a=this.last;a.eol=true;a.spaced=true;if(t+s>=e.length){return s}if(o=r&&(this.emender||(this.emender=RegExp("[^"+r.charAt()+"]"))).exec(r)){this.carp("contaminated indent "+escape(o))}if(0>(l=r.length-this.dent)){this.dedent(-l);this.newline()}else{u=a[0],c=a[1];if(u==="ASSIGN"&&((n=c+"")!=="="&&n!==":="&&n!=="+=")||c==="++"&&(n=this.tokens)[n.length-2].spaced||(u==="+-"||u==="PIPE"||u==="BACKPIPE"||u==="COMPOSE"||u==="DOT"||u==="LOGIC"||u==="MATH"||u==="COMPARE"||u==="RELATION"||u==="SHIFT"||u==="IN"||u==="OF"||u==="TO"||u==="BY"||u==="FROM"||u==="EXTENDS"||u==="IMPLEMENTS")){return s}if(l){this.indent(l)}else{this.newline()}}this.fset("for",false);this.fset("by",false);return s};n.doSpace=function(e,t){var n;v.lastIndex=t;if(n=v.exec(e)[0]){this.last.spaced=true}return n.length};n.doCase=function(){var e,t;this.seenFor=false;if((e=this.last[0])==="ASSIGN"||e==="->"||e===":"||this.last[0]==="INDENT"&&((e=(t=this.tokens)[t.length-2][0])==="ASSIGN"||e==="->"||e===":")){this.token("SWITCH","switch");return this.token("CASE","case")}};n.doLiteral=function(e,t){var n,i,r,s,a;if(!(n=(g.lastIndex=t,g).exec(e)[0])){return 0}switch(i=r=n){case"|":i="CASE";if(this.doCase()){return n.length}break;case"|>":i="PIPE";break;case"`":i="BACKTICK";break;case"<<":case">>":i="COMPOSE";break;case"<|":i="BACKPIPE";break;case"+":case"-":i="+-";break;case"&&":case"||":i="LOGIC";break;case".&.":case".|.":case".^.":i="BITWISE";break;case"^^":i="CLONE";break;case"**":case"^":i="POWER";break;case"?":if(this.last[0]==="("){this.token("PARAM(","(");this.token(")PARAM",")");this.token("->","->");this.token("ID","it")}else{if(this.last.spaced){i="LOGIC"}}break;case"/":case"%":case"%%":i="MATH";break;case"++":case"--":i="CREMENT";break;case"<<<":case"<<<<":i="IMPORT";break;case";":i="NEWLINE";this.fset("by",false);break;case"..":this.token("LITERAL","..",true);return 2;case".":if(this.last[1]==="?"){this.last[0]="?"}i="DOT";break;case",":switch(this.last[0]){case",":case"[":case"(":case"CALL(":this.token("LITERAL","void");break;case"FOR":case"OWN":this.token("ID","")}break;case"!=":case"~=":if(!(j(this.tokens)||((s=this.last[0])==="("||s==="CREMENT"))){this.tokens.push(r==="!="?["UNARY","!",this.line,this.column]:["UNARY","~",this.line,this.column],["ASSIGN","=",this.line,this.column]);return 2} -// fallthrough -case"!~=":case"==":r=function(){switch(r){case"~=":return"==";case"!~=":return"!=";case"==":return"===";case"!=":return"!=="}}();i="COMPARE";break;case"===":case"!==":r+="="; -// fallthrough -case"<":case">":case"<=":case">=":case"<==":case">==":case">>=":case"<<=":i="COMPARE";break;case".<<.":case".>>.":case".>>>.":case"?":i="SHIFT";break;case"(":if(!((s=this.last[0])==="FUNCTION"||s==="GENERATOR"||s==="LET"||this.able(true)||this.last[1]===".@")){this.token("(","(");this.closes.push(")");this.parens.push(this.last);return 1}i="CALL(";this.closes.push(")CALL");break;case"[":case"{":this.adi();this.closes.push("]}".charAt(r==="{"));break;case"}":if(this.inter&&r!==(s=this.closes)[s.length-1]){this.rest=e.slice(t+1);return 9e9} -// fallthrough -case"]":case")":if(i===")"&&((s=this.last[0])==="+-"||s==="COMPARE"||s==="LOGIC"||s==="MATH"||s==="POWER"||s==="SHIFT"||s==="BITWISE"||s==="CONCAT"||s==="COMPOSE"||s==="RELATION"||s==="PIPE"||s==="BACKPIPE"||s==="IMPORT"||s==="CLONEPORT"||s==="ASSIGN")){(s=this.tokens)[s.length-1][0]=function(){switch(this.last[0]){case"RELATION":return"BIOPR";case"PIPE":this.parameters(false,-1);return"BIOPP";default:return"BIOP"}}.call(this)}if(")"===(i=r=this.pair(r))){this.lpar=this.parens.pop()}break;case"=":case":":if(r===":"){switch(this.last[0]){case"ID":case"STRNUM":case")":break;case"...":this.last[0]="STRNUM";break;default:i="LABEL";r=""}this.token(i,r);return n.length} -// fallthrough -case":=":case"+=":case"-=":case"*=":case"/=":case"%=":case"%%=":case"?=":case"**=":case"^=":case".&.=":case".|.=":case".^.=":case".<<.=":case".>>.=":case".>>>.=":case"++=":case"|>=":if(this.last[1]==="."||this.last[0]==="?"&&this.adi()){this.last[1]+=r;return r.length}if(this.last[0]==="LOGIC"){(r=Object(r)).logic=this.tokens.pop()[1]}else if((r==="+="||r==="-=")&&!j(this.tokens)&&((s=this.last[0])!=="+-"&&s!=="UNARY"&&s!=="LABEL")){this.token("UNARY",r.charAt());r="="}i="ASSIGN";break;case"::=":this.token("DOT",".");this.token("ID","prototype");this.token("IMPORT","<<");return n.length;case"*":if(this.last[0]==="FUNCTION"){this.last[0]="GENERATOR";return n.length}if(a=((s=this.last[0])==="NEWLINE"||s==="INDENT"||s==="THEN"||s==="=>")&&(R.lastIndex=t+1,R).exec(e)[0].length){this.tokens.push(["LITERAL","void",this.line,this.column],["ASSIGN","=",this.line,this.column]);this.indent(t+a-1-this.dent-e.lastIndexOf("\n",t-1));return a}i=j(this.tokens)||this.last[0]==="CREMENT"&&j(this.tokens,this.tokens.length-1)||this.last[0]==="("?"MATH":"STRNUM";break;case"@":this.adi();if(this.last[0]==="DOT"&&this.last[1]==="."&&(s=this.tokens)[s.length-2][0]==="ID"&&(s=this.tokens)[s.length-2][1]==="constructor"){this.tokens.pop();this.tokens.pop();this.token("LITERAL","this",true);this.adi();this.token("ID","constructor",true)}else{this.token("LITERAL","this",true)}return 1;case"@@":this.adi();this.token("ID","constructor",true);return 2;case"&":this.token("LITERAL","arguments");return 1;case"!":switch(false){default:if(!this.last.spaced){if(this.last[1]==="require"){this.last[0]="REQUIRE";this.last[1]="require!"}else if(j(this.tokens,null,true)){this.token("CALL(","!");this.token(")CALL",")")}else if(this.last[1]==="typeof"){this.last[1]="classof"}else if(this.last[1]==="delete"){this.last[1]="jsdelete"}else{break}return 1}}i="UNARY";break;case"&":if(!j(this.tokens)){i="LITERAL"}break;case"|":i="BITWISE";break;case"~":if(this.dotcat(r)){return 1}i="UNARY";break;case"::":this.adi();r="prototype";i="ID";break;case"=>":this.unline();this.fset("for",false);i="THEN";break;default:if(/^!?(?:--?|~~?)>\*?$/.test(r)){this.parameters(i="->")}else if(/^\*?<(?:--?|~~?)!?$/.test(r)){this.parameters(i="<-")}else{switch(r.charAt(0)){case"(":this.token("CALL(","(");i=")CALL";r=")";break;case"<":if(r.length<4){this.carp("unterminated words")}this.token("WORDS",r.slice(2,-2),this.adi());return this.countLines(r).length}}}if((i==="+-"||i==="COMPARE"||i==="LOGIC"||i==="MATH"||i==="POWER"||i==="SHIFT"||i==="BITWISE"||i==="CONCAT"||i==="RELATION"||i==="PIPE"||i==="BACKPIPE"||i==="COMPOSE"||i==="IMPORT")&&this.last[0]==="("){i=i==="BACKPIPE"?"BIOPBP":"BIOP"}if(i===","||i==="CASE"||i==="PIPE"||i==="BACKPIPE"||i==="COMPOSE"||i==="DOT"||i==="LOGIC"||i==="COMPARE"||i==="MATH"||i==="POWER"||i==="IMPORT"||i==="SHIFT"||i==="BITWISE"){this.unline()}this.token(i,r);return n.length};n.token=function(e,t,n){this.tokens.push(this.last=[e,t,this.line,this.column]);if(n){this.last.callable=true}return t};n.indent=function(e){this.dent+=e;this.dents.push(this.token("INDENT",e));this.closes.push("DEDENT")};n.dedent=function(e){var t;this.dent-=e;while(e>0&&(t=this.dents.pop())){if(e"){this.token("PARAM(","")}else{for(n=(i=this.tokens).length-1;n>=0;--n){r=n;s=i[n];if((a=s[0])==="NEWLINE"||a==="INDENT"||a==="THEN"||a==="=>"||a==="("){break}}this.tokens.splice(r+1,0,["PARAM(","",s[2],s[3]])}if(t){this.tokens.splice(this.tokens.length+t,0,[")PARAM","",s[2],s[3]])}else{this.token(")PARAM","")}};n.interpolate=function(e,t,i){var r,s,a,o,l,c,h,f,p,d,g,v,y,b,w,k,L,E;r=[];s=i.charAt(0);a=0;o=-1;e=e.slice(t+i.length);l=[this.line,this.column],c=l[0],h=l[1];this.countLines(i);while(f=e.charAt(++o)){switch(f){case s:if(i!==e.slice(o,o+i.length)){continue}r.push(["S",this.countLines(e.slice(0,o)),c,h]);this.countLines(i);return r.size=a+o+i.length*2,r;case"#":p=e.charAt(o+1);d=te(p,["@"])&&p||(m.lastIndex=o+1,m).exec(e)[1];if(!(d||p==="{")){continue}break;case"\\":++o; -// fallthrough -default:continue}if(o||k&&!g){g=r.push(["S",this.countLines(e.slice(0,o)),c,h]);l=[this.line,this.column],c=l[0],h=l[1]}if(d){v=d.length;if(d==="@"){d="this"}if(te(d,["this"])){y="LITERAL"}else{d=u(d);try{Function("'use strict'; var "+d)}catch(A){b=A;this.carp("invalid variable interpolation '"+d+"'")}y="ID"}e=e.slice(w=o+1+v);r.push(["TOKENS",k=[[y,d,this.line,this.column]]])}else{L=(l=ee(n),l.inter=true,l.emender=this.emender,l);k=L.tokenize(e.slice(o+2),{line:this.line,column:this.column+2,raw:true});w=e.length-L.rest.length;this.countLines(e.slice(o,w));e=L.rest;while(((l=k[0])!=null?l[0]:void 8)==="NEWLINE"){k.shift()}if(k.length){k.unshift(["(","(",c,h]);k.push([")",")",this.line,this.column-1]);r.push(["TOKENS",k])}E=[this.line,this.column],c=E[0],h=E[1]}a+=w;o=-1}this.carp("missing `"+i+"`")};n.addInterpolated=function(e,t){var n,i,r,s,a,o,l,u,c,h,f;if(!e[1]){return this.strnum(t(this.string('"',e[0][1])))}n=this.tokens,i=this.last;r=!i.spaced&&i[1]==="%"?(--n.length,this.last=i=n[n.length-1],["[","]",[",",","]]):["(",")",["+-","+"]],s=r[0],a=r[1],o=r[2];l=this.adi();n.push([s,'"',i[2],i[3]]);for(u=0,c=e.length;u1&&!f[1]){continue}n.push(["STRNUM",t(this.string('"',f[1])),f[2],f[3]])}n.push(o.concat(n[n.length-1][2],n[n.length-1][3]))}--n.length;this.token(a,"",l)};n.strnum=function(e){this.token("STRNUM",e,this.adi()||this.last[0]==="DOT")};n.regex=function(e,t){var n;try{RegExp(e)}catch(i){n=i;this.carp(n.message)}if(t==="$"){return this.strnum(this.string("'",o(e)))}return this.token("LITERAL","/"+(e||"(?:)")+"/"+this.validate(t))};n.adi=function(){if(this.last.spaced){return}if(!j(this.tokens)){return}return this.token("DOT",".")};n.dotcat=function(e){if(this.last[1]==="."||this.adi()){return this.last[1]+=e}};n.pair=function(e){var t,n;if(!(e===(t=(n=this.closes)[n.length-1])||")CALL"===t&&e===")")){if("DEDENT"!==t){this.carp("unmatched `"+e+"`")}this.dedent((n=this.dents)[n.length-1]);return this.pair(e)}this.unline();return this.closes.pop()};n.able=function(e){return!this.last.spaced&&j(this.tokens,null,e)};n.countLines=function(e){var t;if(!this.isAtPrefix){this.column+=e.length}while(t=1+e.indexOf("\n",t)){if(!this.isAtPrefix){this.column=0}this.column+=e.length-t;++this.line;this.isAtPrefix=false}this.charsCounted+=e.length;return e};n.forange=function(){var e,t,n;if(((e=(t=this.tokens)[t.length-2-((n=this.last[0])==="NEWLINE"||n==="INDENT")])!=null?e[0]:void 8)==="FOR"||this.last[0]==="FOR"){this.fset("for",false);this.fset("from",true);return true}else{return false}};n.validate=function(e){var t;if(t=e&&/(.).*\1/.exec(e)){this.carp("duplicate regex flag `"+t[1]+"`")}return e};n.fget=function(e){var t;return(t=this.flags[this.closes.length])!=null?t[e]:void 8};n.fset=function(e,t){var n,i;((n=this.flags)[i=this.closes.length]||(n[i]={}))[e]=t};n.carp=function(e){U(e,this.line)};n.string=function(e,t){return i(e,t,this.line)};function U(e,t){throw SyntaxError(e+" on line "+-~t)}function j(e,t,n){var i,r;t==null&&(t=e.length);r=(i=e[t-1])[0];return r==="ID"||r==="]"||r==="?"||(n?i.callable||(r===")"||r===")CALL"||r==="BIOPBP")&&i[1]:r==="}"||r===")"||r===")CALL"||r==="STRNUM"||r==="LITERAL"||r==="WORDS")}i=function(e){return function(t,n,i){n=n.replace(e,function(e,n,r,s){if(e===t||e==="\\"){return"\\"+e}if(n){return"\\x"+(256+parseInt(n,8)).toString(16).slice(1)}if(r){U("malformed character escape sequence",i)}if(!s||t===s){return e}else{return s}});return t+n+t}}.call(this,/['"]|\\(?:([0-3]?[0-7]{2}|[1-7]|0(?=[89]))|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|([xu])|[\\0bfnrtv]|[^\n\S]|([\w\W]))?/g);function F(e){var t,n,i;t=0/0;while(n=r.exec(e)){t<=(i=n[0].length-1)||(t=i)}return t}r=/\n(?!$)[^\n\S]*/gm;function W(e,t){if(t){return e.replace(W[t]||(W[t]=RegExp("\\n[^\\n\\S]{1,"+t+"}","g")),"\n")}else{return e}}s=function(e){return e.replace(/\n[^\n\S]*/g,"")};a=function(e){return e.replace(/\n/g,"\\n")};o=function(e){return e.replace(/\\/g,"\\\\")};l=function(e){return e.replace(/(\\.)|\//g,function(){return arguments[1]||"\\/"})};u=function(e){return e.replace(/-[a-z]/gi,function(e){return e.charAt(1).toUpperCase()})};function Y(e){return e.slice(1+e.lastIndexOf("\n",0))}function z(e,t){if(!isNaN(e)){return[+e]}e=e.length>8?"ng":Function("return "+e)();e.length===1||U("bad string in range",t);return[e.charCodeAt(),true]}function G(e){return'"\\u'+("000"+e.toString(16)).slice(-4)+'"'}c=typeof JSON=="undefined"||JSON===null?G:function(e){switch(e){case 8232:case 8233:return G(e);default:return JSON.stringify(String.fromCharCode(e))}};function H(e){var t,n,i,r,s,a,o,l,u,c,h,f;t=["NEWLINE","\n",0];n=0;while(i=e[++n]){r=i[0],s=i[1],a=i[2],o=i[3];switch(false){case!(r==="ASSIGN"&&te(t[1],d)&&e[n-2][0]!=="DOT"):U("cannot assign to reserved word '"+t[1]+"'",a);break;case!(r==="DOT"&&t[0]==="]"&&e[n-2][0]==="["&&e[n-3][0]==="DOT"):e.splice(n-2,3);e[n-3][1]="[]";break;case!(r==="DOT"&&t[0]==="}"&&e[n-2][0]==="{"&&e[n-3][0]==="DOT"):e.splice(n-2,3);e[n-3][1]="{}";break;case!(s==="."&&i.spaced&&t.spaced):e[n]=["COMPOSE","<<",a,o];break;case s!=="++":if(!(l=e[n+1])){break}u=["ID","LITERAL","STRNUM"];if(t.spaced&&i.spaced||!(t.spaced||i.spaced)&&te(t[0],u)&&te(l[0],u)){e[n][0]="CONCAT"}if(t[0]==="("&&l[0]===")"||t[0]==="("&&i.spaced||l[0]===")"&&t.spaced){e[n][0]="BIOP"}break;case r!=="DOT":l=e[n+1];if(t[0]==="("&&l[0]===")"){e[n][0]="BIOP"}else if(t[0]==="("){e.splice(n,0,["PARAM(","(",a,o],[")PARAM",")",a,o],["->","->",a,o],["ID","it",a,o])}else if(l[0]===")"){e.splice(n+1,0,["[","[",a,o],["ID","it",a,o],["]","]",a,o]);c=1;e:for(h=n+1;h>=0;--h){f=h;switch(e[f][0]){case")":++c;break;case"(":if(--c===0){e.splice(f+1,0,["PARAM(","(",a,o],["ID","it",a,o],[")PARAM",")",a,o],["->","->",a,o]);break e}}}}}t=i;continue}}function J(e){var t,n,i;t=-1;while(n=e[++t]){i=n[0];if(i==="IF"||i==="CLASS"||i==="CATCH"){Z(e,t+1,r,s)}}function r(e){var t;return(t=e[0])==="NEWLINE"||t==="INDENT"}function s(t,r){var s,a;if(i==="IF"){if(t[0]!=="INDENT"||!t[1]&&!t.then||te(e[r-1][0],$)){n[0]="POST_IF"}}else if(t[0]!=="INDENT"){e.splice(r,0,["INDENT",0,s=e[r-1][2],a=e[r-1][3]],["DEDENT",0,s,a])}}}function q(e){var t,n,i,r,s,a,o,l,u;t=0;while(n=e[++t]){i=n[0];if(i!=="->"&&i!=="THEN"&&i!=="ELSE"&&i!=="DEFAULT"&&i!=="TRY"&&i!=="FINALLY"&&i!=="DECL"){continue}switch(r=e[t+1][0]){case"IF":if(i==="ELSE"){continue}break;case"INDENT":case"THEN":if(i==="THEN"){e.splice(t--,1)}continue}s=["INDENT",0,n[2],n[3]];a=["DEDENT",0];if(i==="THEN"){(e[t]=s).then=true}else{e.splice(++t,0,s)}switch(false){case i!=="DECL":break;case r!=="DOT"&&r!=="?"&&r!==","&&r!=="PIPE"&&r!=="BACKPIPE":--t; -// fallthrough -case!((r==="ID"||r==="STRNUM"||r==="LITERAL")&&","===((o=e[t+2])!=null?o[0]:void 8)):h(0,t+=2);++t;continue;case!((r==="("||r==="["||r==="{")&&","===((l=e[u=1+Q(e,t+1)])!=null?l[0]:void 8)):h(0,u);++t;continue}Z(e,t+1,c,h)}function c(t,n){var r,s;r=t[0];s=i;if(i===r||i==="THEN"&&r==="SWITCH"){i=""}switch(r){case"NEWLINE":return t[1]!==";";case"DOT":case"?":case",":case"PIPE":case"BACKPIPE":return e[n-1].eol;case"ELSE":return s==="THEN";case"CATCH":return s==="TRY";case"FINALLY":return s==="TRY"||s==="CATCH"||s==="THEN";case"CASE":case"DEFAULT":return s==="CASE"||s==="THEN"}}function h(t,n){var i;i=e[n-1];e.splice(i[0]===","?n-1:n,0,(a[2]=i[2],a[3]=i[3],a))}}function K(e){var t,n,i,r,s,a,o,l,u,c,h;t=0;n=[];while(i=e[++t]){if(i[1]==="do"&&e[t+1][0]==="INDENT"){r=Q(e,t+1);if(e[r+1][0]==="NEWLINE"&&((s=e[r+2])!=null?s[0]:void 8)==="WHILE"){i[0]="DO";e[r+2].done=true;e.splice(r+1,1)}else{(i=e[1+t])[0]="(";(a=e[r])[0]=")";i.doblock=true;e.splice(t,1)}}o=i[0];l=e[t-1];o==="["&&n.push(l[0]==="DOT");if(l[0]==="]"){if(n.pop()){l.index=true}else{continue}}if(!((u=l[0])==="FUNCTION"||u==="GENERATOR"||u==="LET"||u==="WHERE"||l.spaced&&j(e,t,true))){continue}if(i.doblock){i[0]="CALL(";a[0]=")CALL";continue}if(!f(i)){continue}if(o==="CREMENT"){if(i.spaced||!te((u=e[t+1])!=null?u[0]:void 8,M)){continue}}c=h=false;e.splice(t++,0,["CALL(","",i[2],i[3]]);Z(e,t,p,d)}function f(e){var t;t=e[0];return te(t,B)||!e.spaced&&(t==="+-"||t==="CLONE")}function p(t,n){var i,r,s;i=t[0];if(i==="POST_IF"||i==="PIPE"||i==="BACKPIPE"){return true}if(!c){if(t.alias&&((r=t[1])==="&&"||r==="||"||r==="xor")||(i==="TO"||i==="BY"||i==="IMPLEMENTS")){return true}}s=e[n-1];switch(i){case"NEWLINE":return s[0]!==",";case"DOT":case"?":return!c&&(s.spaced||s[0]==="DEDENT");case"SWITCH":h=true; -// fallthrough -case"IF":case"CLASS":case"FUNCTION":case"GENERATOR":case"LET":case"WITH":case"CATCH":c=true;break;case"CASE":if(h){c=true}else{return true}break;case"INDENT":if(c){return c=false}return!te(s[0],$);case"WHILE":if(t.done){return false} -// fallthrough -case"FOR":c=true;return j(e,n)||s[0]==="CREMENT"||s[0]==="..."&&s.spaced}return false}function d(t,n){e.splice(n,0,[")CALL","",e[n-1][2],e[n-1][3]])}}function V(e){var t,n,i,r,s,a,o,l,u,c,h;t=[];n=0;while(i=e[++n]){if(":"!==(r=i[0])){switch(false){case!te(r,_):s=t.pop();break;case!te(r,I):if(r==="INDENT"&&e[n-1][0]==="{"){r="{"}t.push([r,n])}continue}a=e[n-1][0]===")";o=a?s[1]:n-1;l=e[o-1];if(!((u=l[0])===":"||u==="ASSIGN"||u==="IMPORT"||((u=t[t.length-1])!=null?u[0]:void 8)!=="{")){continue}t.push(["{"]);c=!l.doblock&&((h=l[0])!=="NEWLINE"&&h!=="INDENT");while(((h=e[o-2])!=null?h[0]:void 8)==="COMMENT"){o-=2}e.splice(o,0,["{","{",e[o][2],e[o][3]]);Z(e,++n+1,f,p)}function f(t,n){var i,r,s,a;switch(i=t[0]){case",":break;case"NEWLINE":if(c){return true}break;case"DEDENT":return true;case"POST_IF":case"FOR":case"WHILE":return c;default:return false}r=(s=e[n+1])!=null?s[0]:void 8;return r!==(i===","?"NEWLINE":"COMMENT")&&":"!==((a=e[r==="("?1+Q(e,n+1):n+2])!=null?a[0]:void 8)}function p(t,n){e.splice(n,0,["}","",t[2],t[3]])}}function X(e){var t,n,r,s,a,o,l,u,h,f,p,d,m,g,v,y,b,w,k,L,E,A,C,S,R,N,I;t=0;while(r=e[++t]){switch(r[0]){case"STRNUM":if(~"-+".indexOf(s=r[1].charAt(0))){r[1]=r[1].slice(1);e.splice(t++,0,["+-",s,r[2],r[3]])}if(r.callable){continue}break;case"TO":case"TIL":if(!(e[t-1][0]==="["&&(e[t+2][0]==="]"&&((a=e[t+1][1].charAt(0))==="'"||a==='"'||+e[t+1][1]>=0)||e[t+2][0]==="BY"&&((a=e[t+3])!=null?a[0]:void 8)==="STRNUM"&&((o=e[t+4])!=null?o[0]:void 8)==="]"))){continue}if(e[t+2][0]==="BY"){e[t+2][0]="RANGE_BY"}r.op=r[1];n=0; -// fallthrough -case"RANGE":l=r[2];u=r[3];if(n!=null||e[t-1][0]==="["&&e[t+1][0]==="STRNUM"&&(e[t+2][0]==="]"&&((h=e[t+1][1].charAt(0))==="'"||h==='"'||+e[t+1][1]>=0)||e[t+2][0]==="RANGE_BY"&&((h=e[t+3])!=null?h[0]:void 8)==="STRNUM"&&((f=e[t+4])!=null?f[0]:void 8)==="]")){if(n==null){p=z(r[1],l),n=p[0],d=p[1]}p=z(e[t+1][1],l),m=p[0],g=p[1];if(m==null||d^g){U('bad "to" in range',l)}v=1;if(y=((p=e[t+2])!=null?p[0]:void 8)==="RANGE_BY"){if(!(v=+((b=e[t+3])!=null?b[1]:void 8))){U('bad "by" in range',e[t+2][2])}}else if(n>m){v=-1}w=[];k=d?c:String;L=_;if(r.op==="to"){for(E=n;v<0?E>=m:E<=m;E+=v){A=E;L()}}else{for(E=n;v<0?E>m:E","",r[2],r[3]])}else if((S=I[0])==="FUNCTION"||S==="GENERATOR"||S==="LET"){e.splice(t,0,["CALL(","",r[2],r[3]],[")CALL","",r[2],r[3]]);t+=2}}continue;case"LITERAL":case"}":break;case")":case")CALL":if(r[1]){continue}break;case"]":if(r.index){continue}break;case"CREMENT":if(!j(e,t)){continue}break;case"BIOP":if(!r.spaced&&((S=r[1])==="+"||S==="-")&&e[t+1][0]!==")"){e[t][0]="+-"}continue;default:continue}if(r.spaced&&te(e[t+1][0],B)){e.splice(++t,0,[",",",",r[2],r[3]])}}function _(){if(65536(r+=te(a,I)||-te(a,_))){return i(s,t)}}}function Q(e,t){var n,i,r,s;n=1;i=T[r=e[t][0]];while(s=e[++t]){switch(s[0]){case r:++n;break;case i:if(!--n){return t}}}return-1}h=["true","false","null","this","void","super","return","throw","break","continue","if","else","for","while","switch","case","default","try","catch","finally","function","class","extends","implements","new","do","delete","typeof","in","instanceof","let","with","var","const","import","export","debugger","yield"];f=["enum","interface","package","private","protected","public","static"];p=h.concat(f);d=["xor","match","where"];m=/((?!\s)[a-z_$\xAA-\uFFDC](?:(?!\s)[\w$\xAA-\uFFDC]|-[a-z])*)([^\n\S]*:(?![:=]))?|/gi;g=/[-\/^]=|[%+:*]{1,2}=|\|>=|\.(?:[&\|\^]|<<|>>>?)\.=?|\.{1,3}|\^\^|\*?<(?:--?|~~?)!?|!?(?:--?|~~?)>\*?|([-+&|:])\1|%%|&|\([^\n\S]*\)|[!=]==?|!?\~=|@@?|<\[(?:[\s\S]*?\]>)?|<<<]==|<<=|>>=|<<|>>|[<>]\??=?|\|>|\||=>|\*\*|\^|`|[^\s#]?/g;v=/[^\n\S]*(?:#.*)?/g;y=/(?:\s*#.*)*(?:\n([^\n\S]*))*/g;b=/'[^\\']*(?:\\[\s\S][^\\']*)*'|/g;w=/``[^\\`]*(?:\\[\s\S][^\\`]*)*``|/g;k=RegExp("\\\\(?:(\\S[^\\s,;)}\\]]*)|(?:"+v.source+"\\n?)*)","g");L=/0x[\dA-Fa-f][\dA-Fa-f_]*|(\d*)~([\dA-Za-z]\w*)|((\d[\d_]*)(\.\d[\d_]*)?(?:e[+-]?\d[\d_]*)?)[$\w]*|/g;E=/_+/g;A=/\/([^[\/\n\\]*(?:(?:\\.|\[[^\]\n\\]*(?:\\.[^\]\n\\]*)*\])[^[\/\n\\]*)*)\/([gimy]{1,4}|\$?)|/g;C=/\s+(?:#.*)?/g;S=/\n[^\n\S]*$/;R=/[^\n\S]*[^#\s]?/g;N=/[\x80-\uFFFF]/;I=["(","[","{","CALL(","PARAM(","INDENT"];_=[")","]","}",")CALL",")PARAM","DEDENT"];T=ne(function(){var e,t,n,i={};for(e=0,n=(t=I).length;e","ELSE","ASSIGN","IMPORT","UNARY","DEFAULT","TRY","FINALLY","HURL","DECL","DO","LET","FUNCTION","GENERATOR"];function ee(e){function t(){}t.prototype=e;return new t}function te(e,t){var n=-1,i=t.length>>>0;while(++n1)){return e}for(s=0,a=r.length;s(u=l.indexOf("("+n+":"))){continue}c=(/:(\d+):/.exec(l.slice(u+n.length))||"")[1];if(!(c=+c)){continue}h=c+4;f=(""+h).length;p||(p=t.split("\n"));for(d=1>(m=c-4)?1:m;d<=h;++d){g=d;r[o]+="\n"+(" "+g).slice(-f)+""+"|+".charAt(g===c)+" "+[p[g-1]]}}return e.stack=r.join("\n"),e}function s(e,t){var n={}.hasOwnProperty;for(var i in t)if(n.call(t,i))e[i]=t[i];return e}function a(e,t){for(var n in t)e[n]=t[n];return e}}).call(this,e("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:21,events:12,fs:9,path:14}],5:[function(e,t,n){(function(i){/* parser generated by jison 0.4.15 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var r=function(){var e=function(e,t,n,i){for(n=n||{},i=e.length;i--;n[e[i]]=t);return n},t=[2,59],n=[1,30],i=[1,33],r=[1,34],s=[1,35],a=[1,36],o=[1,37],l=[1,38],u=[1,8],c=[1,14],h=[1,13],f=[1,39],p=[1,40],d=[1,28],m=[1,6],g=[1,10],v=[1,9],y=[1,11],b=[1,15],w=[1,16],k=[1,17],L=[1,18],E=[1,19],A=[1,20],C=[1,22],S=[1,41],R=[1,23],N=[1,24],I=[1,25],_=[1,26],T=[1,27],x=[1,29],O=[1,42],P=[1,22,27,45],M=[22,45],B=[2,63],$=[1,46],D=[1,47],U=[1,48],j=[1,49],F=[1,50],W=[1,51],Y=[1,52],z=[1,53],G=[1,54],H=[1,55],J=[1,56],q=[1,57],K=[1,58],V=[1,59],X=[1,60],Z=[32,44,45,46],Q=[2,49],ee=[1,65],te=[1,64],ne=[1,67],ie=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,80,103],re=[2,73],se=[1,73],ae=[1,74],oe=[1,75],le=[1,70],ue=[1,68],ce=[1,69],he=[1,71],fe=[1,72],pe=[1,79],de=[1,77],me=[1,97],ge=[46,103],ve=[2,193],ye=[1,101],be=[2,1],we=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,100,101,103],ke=[21,44,45,46],Le=[24,44,45],Ee=[2,151],Ae=[1,122],Ce=[1,123],Se=[1,120],Re=[1,121],Ne=[1,124],Ie=[1,112],_e=[1,116],Te=[1,117],xe=[1,115],Oe=[27,45],Pe=[1,138],Me=[1,139],Be=[32,45,46],$e=[2,57],De=[1,161],Ue=[14,21,22,32,44,45,46],je=[2,54],Fe=[14,44,45,46],We=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,56,59,60,61,63,64,65,67,68,69,76,79,80,103],Ye=[22,44,45,46],ze=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,76,79,80,103],Ge=[2,160],He=[1,183],Je=[1,187],qe=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,103],Ke=[1,190],Ve=[44,46,80],Xe=[2,195],Ze=[1,196],Qe=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,68,69,76,79,80,103],et=[1,203],tt=[21,45,46],nt=[24,45],it=[1,208],rt=[22,24,44,45],st=[1,210],at=[22,24,44,45,54,60],ot=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,98,100,101,103],lt=[1,238],ut=[1,237],ct=[21,22,24,39,45,46,79],ht=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,59,60,63,64,65,67,68,69,76,79,80,103],ft=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,60,64,68,69,76,79,80,103],pt=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,59,60,64,67,68,69,76,79,80,103],dt=[1,249],mt=[1,250],gt=[2,58],vt=[14,45,46],yt=[22,45,46],bt=[1,283],wt=[1,284],kt=[1,292],Lt=[1,322],Et=[1,323],At=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,80,86,87,103],Ct=[1,392];var St={trace:function Nt(){},yy:{},symbols_:{error:2,Chain:3,ID:4,Parenthetical:5,List:6,STRNUM:7,LITERAL:8,DOT:9,Key:10,"CALL(":11,ArgList:12,OptComma:13,")CALL":14,"?":15,LET:16,Block:17,"[":18,Expression:19,LoopHeads:20,"]":21,DEDENT:22,"{":23,"}":24,"(":25,BIOP:26,")":27,BIOPR:28,BIOPBP:29,BIOPP:30,"PARAM(":31,")PARAM":32,UNARY:33,CREMENT:34,BACKTICK:35,TO:36,BY:37,WITH:38,FOR:39,Properties:40,LABEL:41,KeyBase:42,Arg:43,",":44,NEWLINE:45,INDENT:46,"...":47,Lines:48,Line:49,"<-":50,COMMENT:51,REQUIRE:52,CLONEPORT:53,ASSIGN:54,IMPORT:55,"+-":56,CLONE:57,YIELD:58,COMPARE:59,LOGIC:60,MATH:61,POWER:62,SHIFT:63,BITWISE:64,CONCAT:65,COMPOSE:66,RELATION:67,PIPE:68,BACKPIPE:69,"!?":70,"->":71,FUNCTION:72,GENERATOR:73,IF:74,Else:75,POST_IF:76,LoopHead:77,DO:78,WHILE:79,CASE:80,HURL:81,JUMP:82,SWITCH:83,Exprs:84,Cases:85,DEFAULT:86,ELSE:87,TRY:88,CATCH:89,FINALLY:90,CLASS:91,OptExtends:92,OptImplements:93,EXTENDS:94,DECL:95,KeyValue:96,Property:97,":":98,Body:99,IN:100,OF:101,FROM:102,IMPLEMENTS:103,Root:104,$accept:0,$end:1},terminals_:{2:"error",4:"ID",7:"STRNUM",8:"LITERAL",9:"DOT",11:"CALL(",14:")CALL",15:"?",16:"LET",18:"[",21:"]",22:"DEDENT",23:"{",24:"}",25:"(",26:"BIOP",27:")",28:"BIOPR",29:"BIOPBP",30:"BIOPP",31:"PARAM(",32:")PARAM",33:"UNARY",34:"CREMENT",35:"BACKTICK",36:"TO",37:"BY",38:"WITH",39:"FOR",41:"LABEL",44:",",45:"NEWLINE",46:"INDENT",47:"...",50:"<-",51:"COMMENT",52:"REQUIRE",53:"CLONEPORT",54:"ASSIGN",55:"IMPORT",56:"+-",57:"CLONE",58:"YIELD",59:"COMPARE",60:"LOGIC",61:"MATH",62:"POWER",63:"SHIFT",64:"BITWISE",65:"CONCAT",66:"COMPOSE",67:"RELATION",68:"PIPE",69:"BACKPIPE",70:"!?",71:"->",72:"FUNCTION",73:"GENERATOR",74:"IF",76:"POST_IF",78:"DO",79:"WHILE",80:"CASE",81:"HURL",82:"JUMP",83:"SWITCH",86:"DEFAULT",87:"ELSE",88:"TRY",89:"CATCH",90:"FINALLY",91:"CLASS",94:"EXTENDS",95:"DECL",98:":",100:"IN",101:"OF",102:"FROM",103:"IMPLEMENTS"},productions_:[0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,3],[3,3],[3,5],[3,2],[3,6],[3,4],[3,5],[3,7],[3,3],[3,4],[3,4],[3,3],[3,4],[3,4],[3,3],[3,7],[3,3],[3,7],[3,3],[3,3],[3,5],[3,6],[3,6],[3,5],[3,7],[3,4],[3,6],[3,9],[3,8],[3,7],[3,6],[3,6],[3,5],[3,3],[3,3],[6,4],[6,4],[6,5],[6,5],[10,1],[10,1],[42,1],[42,1],[12,0],[12,1],[12,3],[12,4],[12,6],[43,1],[43,2],[43,1],[13,0],[13,1],[48,0],[48,1],[48,3],[48,2],[49,1],[49,2],[49,6],[49,1],[49,1],[49,2],[17,3],[19,3],[19,3],[19,5],[19,1],[19,3],[19,6],[19,3],[19,6],[19,2],[19,2],[19,3],[19,3],[19,3],[19,2],[19,2],[19,2],[19,5],[19,1],[19,2],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,2],[19,6],[19,6],[19,6],[19,4],[19,3],[19,3],[19,4],[19,6],[19,2],[19,5],[19,1],[19,1],[19,2],[19,3],[19,5],[19,5],[19,2],[19,4],[19,4],[19,2],[19,2],[19,4],[19,6],[19,5],[19,7],[19,4],[19,5],[19,4],[19,3],[19,2],[19,2],[19,5],[84,1],[84,3],[96,1],[96,1],[96,3],[96,3],[96,5],[96,5],[97,3],[97,6],[97,1],[97,3],[97,3],[97,2],[97,2],[97,2],[97,1],[40,0],[40,1],[40,3],[40,4],[40,4],[5,3],[99,1],[99,1],[99,3],[75,0],[75,2],[75,5],[77,4],[77,6],[77,6],[77,8],[77,2],[77,4],[77,4],[77,6],[77,4],[77,6],[77,6],[77,8],[77,6],[77,5],[77,8],[77,7],[77,8],[77,10],[77,10],[77,2],[77,4],[77,4],[77,6],[20,1],[20,2],[20,3],[20,3],[85,3],[85,4],[92,2],[92,0],[93,2],[93,0],[104,1]],performAction:function It(e,t,n,i,r,s,a){/* this == yyval */ -var o=s.length-1;switch(r){case 1:this.$=i.L(a[o],a[o],i.Chain(i.L(a[o],a[o],i.Var(s[o]))));break;case 2:case 3:this.$=i.L(a[o],a[o],i.Chain(s[o]));break;case 4:case 5:this.$=i.L(a[o],a[o],i.Chain(i.L(a[o],a[o],i.Literal(s[o]))));break;case 6:case 7:this.$=i.L(a[o-2],a[o],s[o-2].add(i.L(a[o-1],a[o],i.Index(s[o],s[o-1],true))));break;case 8:this.$=i.L(a[o-4],a[o],s[o-4].add(i.L(a[o-3],a[o],i.Call(s[o-2]))));break;case 9:this.$=i.L(a[o-1],a[o],i.Chain(i.L(a[o-1],a[o],i.Existence(s[o-1].unwrap()))));break;case 10:this.$=i.L(a[o-5],a[o],i.Chain(i.L(a[o-5],a[o-1],i.Call["let"](s[o-3],s[o]))));break;case 11:this.$=i.L(a[o-3],a[o],i.Chain(i.L(a[o-3],a[o],s[o-1][0].makeComprehension(s[o-2],s[o-1].slice(1)))));break;case 12:this.$=i.L(a[o-4],a[o],i.Chain(i.L(a[o-4],a[o],s[o-2][0].makeComprehension(s[o-3],s[o-2].slice(1)))));break;case 13:this.$=i.L(a[o-6],a[o],i.Chain(i.L(a[o-6],a[o],s[o-1][0].addObjComp().makeComprehension(i.L(a[o-4],a[o-4],i.Arr(s[o-4])),s[o-1].slice(1)))));break;case 14:case 20:case 22:this.$=i.L(a[o-2],a[o],i.Chain(i.L(a[o-1],a[o-1],i.Binary(s[o-1]))));break;case 15:this.$=i.L(a[o-3],a[o],i.Chain(i.L(a[o-2],a[o-2],i.Binary(s[o-2],void 8,s[o-1]))));break;case 16:this.$=i.L(a[o-3],a[o],i.Chain(i.L(a[o-1],a[o-1],i.Binary(s[o-1],s[o-2]))));break;case 17:this.$=i.L(a[o-2],a[o],i.Chain(i.L(a[o-1],a[o-1],"!"===s[o-1].charAt(0)?i.Binary(s[o-1].slice(1)).invertIt():i.Binary(s[o-1]))));break;case 18:this.$=i.L(a[o-3],a[o],i.Chain(i.L(a[o-2],a[o-2],"!"===s[o-2].charAt(0)?i.Binary(s[o-2].slice(1),void 8,s[o-1]).invertIt():i.Binary(s[o-2],void 8,s[o-1]))));break;case 19:this.$=i.L(a[o-3],a[o],i.Chain(i.L(a[o-1],a[o-1],"!"===s[o-1].charAt(0)?i.Binary(s[o-1].slice(1),s[o-2]).invertIt():i.Binary(s[o-1],s[o-2]))));break;case 21:this.$=i.L(a[o-6],a[o],i.Chain(i.L(a[o-5],a[o-5],i.Binary(s[o-5],void 8,s[o-3]))));break;case 23:this.$=i.L(a[o-6],a[o],i.Chain(i.L(a[o-1],a[o-1],i.Binary(s[o-1],s[o-4]))));break;case 24:case 25:this.$=i.L(a[o-2],a[o],i.Chain(i.L(a[o-1],a[o-1],i.Unary(s[o-1]))));break;case 26:this.$=i.L(a[o-4],a[o],i.Chain(s[o-2]));break;case 27:this.$=i.L(a[o-5],a[o],i.Chain(i.L(a[o-4],a[o-1],s[o-2].add(i.L(a[o-4],a[o-4],i.Call([s[o-4]]))))));break;case 28:this.$=i.L(a[o-5],a[o],i.Chain(i.L(a[o-3],a[o-3],i.Chain(i.Var("flip$"))).add(i.L(a[o-3],a[o-3],i.Call([s[o-3]])))).flipIt().add(i.L(a[o-1],a[o-1],i.Call([s[o-1]]))));break;case 29:this.$=i.L(a[o-4],a[o],i.Chain(i.L(a[o-3],a[o-1],new i.For({from:s[o-3],op:s[o-2],to:s[o-1],inComprehension:true}))));break;case 30:this.$=i.L(a[o-6],a[o],i.Chain(i.L(a[o-5],a[o-1],new i.For({from:s[o-5],op:s[o-4],to:s[o-3],step:s[o-1],inComprehension:true}))));break;case 31:this.$=i.L(a[o-3],a[o],i.Chain(i.L(a[o-2],a[o-1],new i.For({from:i.Chain(i.Literal(0)),op:s[o-2],to:s[o-1],inComprehension:true}))));break;case 32:this.$=i.L(a[o-5],a[o],i.Chain(i.L(a[o-4],a[o-1],new i.For({from:i.Chain(i.Literal(0)),op:s[o-4],to:s[o-3],step:s[o-1],inComprehension:true}))));break;case 33:this.$=i.L(a[o-8],a[o],i.Chain(i.L(a[o-8],a[o],new i.StepSlice({op:s[o-4],target:s[o-8],from:s[o-5],to:s[o-3],step:s[o-1]}))));break;case 34:this.$=i.L(a[o-7],a[o],i.Chain(i.L(a[o-7],a[o],new i.StepSlice({op:s[o-4],target:s[o-7],from:i.Literal(0),to:s[o-3],step:s[o-1]}))));break;case 35:this.$=i.L(a[o-6],a[o],i.Chain(i.L(a[o-6],a[o],i.Slice({type:s[o-2],target:s[o-6],from:s[o-3],to:s[o-1]}))));break;case 36:this.$=i.L(a[o-5],a[o],i.Chain(i.L(a[o-5],a[o],i.Slice({type:s[o-1],target:s[o-5],from:s[o-2]}))));break;case 37:this.$=i.L(a[o-5],a[o],i.Chain(i.L(a[o-5],a[o],i.Slice({type:s[o-2],target:s[o-5],to:s[o-1]}))));break;case 38:this.$=i.L(a[o-4],a[o],i.Chain(i.L(a[o-4],a[o],i.Slice({type:s[o-1],target:s[o-4]}))));break;case 39:this.$=i.L(a[o-2],a[o],i.Chain(i.L(a[o-2],a[o-1],i.Cascade(s[o-1],s[o],"with"))));break;case 40:this.$=i.L(a[o-2],a[o],i.Chain(i.L(a[o-2],a[o-1],new i.For({kind:s[o-2],source:s[o-1],body:s[o],ref:true}).addBody(s[o]))));break;case 41:this.$=i.L(a[o-3],a[o],i.Arr(s[o-2]));break;case 42:this.$=i.L(a[o-3],a[o],i.Obj(s[o-2]));break;case 43:this.$=i.L(a[o-4],a[o],i.Arr(s[o-3]).named(s[o]));break;case 44:this.$=i.L(a[o-4],a[o],i.Obj(s[o-3]).named(s[o]));break;case 45:case 46:case 54:case 57:case 58:case 62:case 63:case 136:case 144:case 157:case 158:break;case 47:this.$=i.L(a[o],a[o],i.Key(s[o]));break;case 48:this.$=i.L(a[o],a[o],i.Literal(s[o]));break;case 49:case 151:this.$=i.L(a[o],a[o],[]);break;case 50:case 134:case 152:case 186:this.$=i.L(a[o],a[o],[s[o]]);break;case 51:case 135:case 153:case 188:case 189:this.$=i.L(a[o-2],a[o],s[o-2].concat(s[o]));break;case 52:case 154:this.$=i.L(a[o-3],a[o],s[o-3].concat(s[o]));break;case 53:this.$=i.L(a[o-5],a[o-2],s[o-5].concat(s[o-2]));break;case 55:case 149:this.$=i.L(a[o-1],a[o],i.Splat(s[o]));break;case 56:this.$=i.L(a[o],a[o],i.Splat(i.L(a[o],a[o],i.Arr()),true));break;case 59:this.$=i.L(a[o],a[o],i.Block());break;case 60:this.$=i.L(a[o],a[o],i.Block(s[o]));break;case 61:case 159:this.$=i.L(a[o-2],a[o],s[o-2].add(s[o]));break;case 64:this.$=i.L(a[o-1],a[o],i.Cascade(s[o-1],s[o],"cascade"));break;case 65:this.$=i.L(a[o-5],a[o],i.Call.back(s[o-4],s[o],/~/.test(s[o-1]),/--|~~/.test(s[o-1]),/!/.test(s[o-1]),/\*/.test(s[o-1])));break;case 66:case 150:this.$=i.L(a[o],a[o],i.JS(s[o],true,true));break;case 67:this.$=i.L(a[o],a[o],i.Throw(i.L(a[o],a[o],i.JS("Error('unimplemented')"))));break;case 68:this.$=i.L(a[o-1],a[o],i.Require(s[o].unwrap()));break;case 69:this.$=i.L(a[o-2],a[o],s[o-1]);break;case 70:this.$=i.L(a[o-2],a[o],i.Import(i.L(a[o-2],a[o-1],i.Unary("^^",s[o-2],{prec:"yy.UNARY"})),s[o],false));break;case 71:this.$=i.L(a[o-2],a[o],i.Import(i.L(a[o-2],a[o-1],i.Unary("^^",s[o-2],{prec:"yy.UNARY"})),s[o].unwrap(),false));break;case 72:this.$=i.L(a[o-4],a[o],s[o-2].add(i.L(a[o-4],a[o],i.Call([s[o-4],s[o]]))));break;case 73:this.$=i.L(a[o],a[o],s[o].unwrap());break;case 74:this.$=i.L(a[o-2],a[o],i.Assign(s[o-2].unwrap(),s[o],i.L(a[o-1],a[o-1],i.Box(s[o-1]))));break;case 75:this.$=i.L(a[o-5],a[o],i.Assign(s[o-5].unwrap(),i.Arr.maybe(s[o-2]),i.L(a[o-4],a[o-4],i.Box(s[o-4]))));break;case 76:this.$=i.L(a[o-2],a[o],i.Import(s[o-2],s[o],s[o-1]==="<<<<"));break;case 77:this.$=i.L(a[o-5],a[o],i.Import(s[o-5],i.Arr.maybe(s[o-2]),s[o-4]==="<<<<"));break;case 78:this.$=i.L(a[o-1],a[o],i.Unary(s[o-1],s[o].unwrap()));break;case 79:this.$=i.L(a[o-1],a[o],i.Unary(s[o],s[o-1].unwrap(),true));break;case 80:case 81:case 82:this.$=i.L(a[o-2],a[o],i.Assign(s[o].unwrap(),[s[o-2]],i.L(a[o-1],a[o-1],i.Box(s[o-1]))));break;case 83:case 84:case 85:this.$=i.L(a[o-1],a[o],i.Unary(s[o-1],s[o]));break;case 86:this.$=i.L(a[o-4],a[o],i.Unary(s[o-4],i.Arr.maybe(s[o-2])));break;case 87:this.$=i.L(a[o],a[o],i.Yield(s[o]));break;case 88:this.$=i.L(a[o-1],a[o],i.Yield(s[o-1],s[o]));break;case 89:case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:case 145:this.$=i.L(a[o-1],a[o-1],i.Binary(s[o-1],s[o-2],s[o]));break;case 98:this.$=i.L(a[o-2],a[o],"!"===s[o-1].charAt(0)?i.Binary(s[o-1].slice(1),s[o-2],s[o]).invert():i.Binary(s[o-1],s[o-2],s[o]));break;case 99:this.$=i.L(a[o-2],a[o],i.Block(s[o-2]).pipe(s[o],s[o-1]));break;case 100:this.$=i.L(a[o-2],a[o],i.Block(s[o-2]).pipe([s[o]],s[o-1]));break;case 101:this.$=i.L(a[o-1],a[o],i.Existence(s[o-1].unwrap(),true));break;case 102:this.$=i.L(a[o-5],a[o],i.Fun(s[o-4],s[o],/~/.test(s[o-1]),/--|~~/.test(s[o-1]),/!/.test(s[o-1]),/\*/.test(s[o-1])));break;case 103:this.$=i.L(a[o-5],a[o],i.Fun(s[o-3],s[o]).named(s[o-5]));break;case 104:this.$=i.L(a[o-5],a[o],i.Fun(s[o-3],s[o],false,false,false,true).named(s[o-5]));break;case 105:this.$=i.L(a[o-3],a[o-2],i.If(s[o-2],s[o-1],s[o-3]==="unless")).addElse(s[o]);break;case 106:this.$=i.L(a[o-1],a[o],i.If(s[o],s[o-2],s[o-1]==="unless"));break;case 107:this.$=i.L(a[o-2],a[o],s[o-2].addBody(s[o-1]).addElse(s[o]));break;case 108:this.$=i.L(a[o-3],a[o],new i.While(s[o],s[o-1]==="until",true).addBody(s[o-2]));break;case 109:this.$=i.L(a[o-5],a[o],new i.While(s[o-2],s[o-3]==="until",true).addGuard(s[o]).addBody(s[o-4]));break;case 110:this.$=i.L(a[o-1],a[o],i.Jump[s[o-1]](s[o]));break;case 111:this.$=i.L(a[o-4],a[o],i.Jump[s[o-4]](i.Arr.maybe(s[o-2])));break;case 112:this.$=i.L(a[o],a[o],i.Jump[s[o]]());break;case 113:this.$=i.L(a[o],a[o],new i.Jump(s[o]));break;case 114:this.$=i.L(a[o-1],a[o],new i.Jump(s[o-1],s[o]));break;case 115:this.$=i.L(a[o-2],a[o],new i.Switch(s[o-2],s[o-1],s[o]));break;case 116:case 117:this.$=i.L(a[o-4],a[o],new i.Switch(s[o-4],s[o-3],s[o-2],s[o]));break;case 118:this.$=i.L(a[o-1],a[o],new i.Switch(s[o-1],null,s[o]));break;case 119:case 120:this.$=i.L(a[o-3],a[o],new i.Switch(s[o-3],null,s[o-2],s[o]));break;case 121:this.$=i.L(a[o-1],a[o],new i.Switch(s[o-1],null,[],s[o]));break;case 122:this.$=i.L(a[o-1],a[o],new i.Try(s[o]));break;case 123:this.$=i.L(a[o-3],a[o],new i.Try(s[o-2],void 8,i.L(a[o-1],a[o-1],s[o])));break;case 124:this.$=i.L(a[o-5],a[o],new i.Try(s[o-4],void 8,i.L(a[o-3],a[o-3],s[o-2]),i.L(a[o-1],a[o-1],s[o])));break;case 125:this.$=i.L(a[o-4],a[o],new i.Try(s[o-3],s[o-1],i.L(a[o-2],a[o-1],s[o])));break;case 126:this.$=i.L(a[o-6],a[o],new i.Try(s[o-5],s[o-3],i.L(a[o-4],a[o-3],s[o-2]),i.L(a[o-1],a[o-1],s[o])));break;case 127:this.$=i.L(a[o-3],a[o],new i.Try(s[o-2],void 8,void 8,i.L(a[o-1],a[o-1],s[o])));break;case 128:this.$=i.L(a[o-4],a[o],new i.Class({title:s[o-3].unwrap(),sup:s[o-2],mixins:s[o-1],body:s[o]}));break;case 129:this.$=i.L(a[o-3],a[o],new i.Class({sup:s[o-2],mixins:s[o-1],body:s[o]}));break;case 130:this.$=i.L(a[o-2],a[o],i.Util.Extends(s[o-2].unwrap(),s[o]));break;case 131:case 132:this.$=i.L(a[o-1],a[o],new i.Label(s[o-1],s[o]));break;case 133:this.$=i.L(a[o-4],a[o],i.Decl(s[o-4],s[o-2],n+1));break;case 137:this.$=i.L(a[o],a[o],i.Prop(i.L(a[o],a[o],i.Key(s[o],s[o]!=="arguments"&&s[o]!=="eval")),i.L(a[o],a[o],i.Literal(s[o]))));break;case 138:this.$=i.L(a[o-2],a[o],i.Prop(s[o],i.Chain(s[o-2],[i.L(a[o-1],a[o],i.Index(s[o],s[o-1]))])));break;case 139:this.$=i.L(a[o-2],a[o],i.Prop(s[o],i.Chain(i.L(a[o-2],a[o-2],i.Literal(s[o-2])),[i.L(a[o-1],a[o],i.Index(s[o],s[o-1]))])));break;case 140:this.$=i.L(a[o-4],a[o],i.Prop(i.L(a[o],a[o],i.Key(s[o])),i.L(a[o-4],a[o-1],i.Obj(s[o-3]).named(s[o]))));break;case 141:this.$=i.L(a[o-4],a[o],i.Prop(i.L(a[o],a[o],i.Key(s[o])),i.L(a[o-4],a[o-1],i.Arr(s[o-3]).named(s[o]))));break;case 142:this.$=i.L(a[o-2],a[o],i.Prop(s[o-2],s[o]));break;case 143:this.$=i.L(a[o-5],a[o],i.Prop(s[o-5],i.Arr.maybe(s[o-2])));break;case 146:this.$=i.L(a[o-1],a[o-1],i.Binary(s[o-1],s[o-2],s[o],true));break;case 147:this.$=i.L(a[o-1],a[o],i.Prop(s[o].maybeKey(),i.L(a[o-1],a[o-1],i.Literal(s[o-1]==="+"))));break;case 148:this.$=i.L(a[o-1],a[o],i.Prop(i.L(a[o],a[o],i.Key(s[o],true)),i.L(a[o-1],a[o-1],i.Literal(s[o-1]==="+"))));break;case 155:this.$=i.L(a[o-3],a[o],s[o-2]);break;case 156:this.$=i.L(a[o-2],a[o],i.Parens(s[o-1].chomp().unwrap(),false,s[o-2]==='"',i.L(a[o-2],a[o-2],{}),i.L(a[o],a[o],{})));break;case 160:case 193:case 195:this.$=i.L(a[o],a[o],null);break;case 161:case 192:case 194:this.$=i.L(a[o-1],a[o],s[o]);break;case 162:this.$=i.L(a[o-4],a[o],i.If(s[o-2],s[o-1],s[o-3]==="unless").addElse(s[o]));break;case 163:this.$=i.L(a[o-3],a[o],new i.For({kind:s[o-3],item:s[o-2].unwrap(),index:s[o-1],source:s[o]}));break;case 164:this.$=i.L(a[o-5],a[o],new i.For({kind:s[o-5],item:s[o-4].unwrap(),index:s[o-3],source:s[o-2],guard:s[o]}));break;case 165:this.$=i.L(a[o-5],a[o],new i.For({kind:s[o-5],item:s[o-4].unwrap(),index:s[o-3],source:s[o-2],step:s[o]}));break;case 166:this.$=i.L(a[o-7],a[o],new i.For({kind:s[o-7],item:s[o-6].unwrap(),index:s[o-5],source:s[o-4],step:s[o-2],guard:s[o]}));break;case 167:this.$=i.L(a[o-1],a[o],new i.For({kind:s[o-1],source:s[o],ref:true}));break;case 168:this.$=i.L(a[o-3],a[o],new i.For({kind:s[o-3],source:s[o-2],ref:true,guard:s[o]}));break;case 169:this.$=i.L(a[o-3],a[o],new i.For({kind:s[o-3],source:s[o-2],ref:true,step:s[o]}));break;case 170:this.$=i.L(a[o-5],a[o],new i.For({kind:s[o-5],source:s[o-4],ref:true,step:s[o-2],guard:s[o]}));break;case 171:this.$=i.L(a[o-3],a[o],new i.For({object:true,kind:s[o-3],index:s[o-2],source:s[o]}));break;case 172:this.$=i.L(a[o-5],a[o],new i.For({object:true,kind:s[o-5],index:s[o-4],source:s[o-2],guard:s[o]}));break;case 173:this.$=i.L(a[o-5],a[o],new i.For({object:true,kind:s[o-5],index:s[o-4],item:s[o-2].unwrap(),source:s[o]}));break;case 174:this.$=i.L(a[o-7],a[o],new i.For({object:true,kind:s[o-7],index:s[o-6],item:s[o-4].unwrap(),source:s[o-2],guard:s[o]}));break;case 175:this.$=i.L(a[o-5],a[o],new i.For({kind:s[o-5],index:s[o-4],from:s[o-2],op:s[o-1],to:s[o]}));break;case 176:this.$=i.L(a[o-4],a[o],new i.For({kind:s[o-4],from:s[o-2],op:s[o-1],to:s[o]}));break;case 177:this.$=i.L(a[o-7],a[o],new i.For({kind:s[o-7],index:s[o-6],from:s[o-4],op:s[o-3],to:s[o-2],guard:s[o]}));break;case 178:this.$=i.L(a[o-6],a[o],new i.For({kind:s[o-6],from:s[o-4],op:s[o-3],to:s[o-2],guard:s[o]}));break;case 179:this.$=i.L(a[o-7],a[o],new i.For({kind:s[o-7],index:s[o-6],from:s[o-4],op:s[o-3],to:s[o-2],step:s[o]}));break;case 180:this.$=i.L(a[o-9],a[o],new i.For({kind:s[o-9],index:s[o-8],from:s[o-6],op:s[o-5],to:s[o-4],step:s[o-2],guard:s[o]}));break;case 181:this.$=i.L(a[o-9],a[o],new i.For({kind:s[o-9],index:s[o-8],from:s[o-6],op:s[o-5],to:s[o-4],guard:s[o-2],step:s[o]}));break;case 182:this.$=i.L(a[o-1],a[o],new i.While(s[o],s[o-1]==="until"));break;case 183:this.$=i.L(a[o-3],a[o],new i.While(s[o-2],s[o-3]==="until").addGuard(s[o]));break;case 184:this.$=i.L(a[o-3],a[o],new i.While(s[o-2],s[o-3]==="until",s[o]));break;case 185:this.$=i.L(a[o-5],a[o],new i.While(s[o-4],s[o-5]==="until",s[o-2]).addGuard(s[o]));break;case 187:this.$=i.L(a[o-1],a[o],s[o-1].concat(s[o]));break;case 190:this.$=i.L(a[o-2],a[o],[i.L(a[o-2],a[o-1],new i.Case(s[o-1],s[o]))]);break;case 191:this.$=i.L(a[o-3],a[o],s[o-3].concat(i.L(a[o-2],a[o-1],new i.Case(s[o-1],s[o]))));break;case 196:return this.$;break}},table:[e([1,45],t,{104:1,99:2,48:3,17:4,49:5,19:7,3:12,77:21,5:31,6:32,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:u,33:c,34:h,38:f,39:p,41:d,46:m,47:g,51:v,52:y,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{1:[3]},{1:[2,196]},e(T,[2,157],{45:O}),e(T,[2,158],{45:[1,43]}),e(P,[2,60]),e(M,t,{49:5,19:7,3:12,77:21,5:31,6:32,48:44,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:u,33:c,34:h,38:f,39:p,41:d,47:g,51:v,52:y,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(P,B,{17:45,35:$,46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(Z,Q,{3:12,77:21,5:31,6:32,12:61,43:62,19:63,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(P,[2,66]),e(P,[2,67]),{3:66,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},e(ie,re,{9:se,11:ae,15:oe,34:le,53:ue,54:ce,70:he,94:fe}),{3:76,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:78,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:pe,54:de,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:81,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,54:[1,80],56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:83,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,54:[1,82],56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e([1,14,21,22,24,26,27,28,32,35,36,37,44,45,46,55,59,60,61,62,63,64,65,66,67,68,69,76,80,103],[2,87],{3:12,77:21,5:31,6:32,19:84,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{11:[1,85]},{11:[1,86]},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:87,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{17:88,46:m},{17:89,46:m},e([1,14,21,22,24,26,27,28,32,35,36,37,44,45,55,59,60,61,62,63,64,65,66,67,68,69,76,80,103],[2,112],{3:12,77:21,5:31,6:32,19:90,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:[1,91],56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(ie,[2,113],{4:[1,92]}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,17:95,18:a,19:96,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:m,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,80:me,81:R,82:N,83:I,84:93,85:94,88:_,91:T,95:x},{17:98,46:m},e(ge,ve,{5:31,6:32,3:99,92:100,4:n,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne,94:ye}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,17:103,18:a,19:102,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:m,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{46:[1,104]},e([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,101,103],be),e(we,[2,2]),e(we,[2,3]),e(we,[2,4]),e(we,[2,5]),{11:[1,105]},e(ke,Q,{3:12,77:21,5:31,6:32,43:62,19:106,12:108,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,36:[1,107],38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Le,Ee,{40:110,97:111,10:113,96:114,42:118,5:119,4:Ae,7:Ce,8:Se,18:[1,109],23:Re,25:Ne,46:Ie,47:_e,51:Te,56:xe}),e(Oe,t,{48:3,17:4,49:5,3:12,77:21,5:31,6:32,19:126,99:134,4:n,7:i,8:r,16:s,18:a,23:o,25:l,26:[1,125],28:[1,127],29:[1,128],30:[1,129],31:[1,130],33:[1,131],34:[1,132],35:[1,133],38:f,39:p,41:d,46:m,47:g,51:v,52:y,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:135,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:137,4:Pe,5:31,6:32,7:i,8:r,16:s,18:a,19:136,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x,102:Me},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:140,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(P,[2,62],{19:7,3:12,77:21,5:31,6:32,49:141,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:u,33:c,34:h,38:f,39:p,41:d,47:g,51:v,52:y,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e([1,27,45],t,{49:5,19:7,3:12,77:21,5:31,6:32,48:142,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:u,33:c,34:h,38:f,39:p,41:d,47:g,51:v,52:y,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{22:[1,143],45:O},e(P,[2,64]),{3:144,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:145,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:[1,146],56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:147,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:148,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:149,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:150,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:151,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:152,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:153,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:154,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:155,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:156,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:157,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:158,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:159,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(Be,$e,{13:160,44:De}),e(Ue,[2,50]),e(Ue,je,{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(Ue,[2,56],{3:12,77:21,5:31,6:32,19:162,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Z,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:163,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(P,[2,68],{9:se,11:ae,15:oe}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:164,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,17:166,18:a,19:165,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:m,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:167,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:[1,168],56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ie,[2,79]),e(ie,[2,101]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:169,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{4:Ae,5:119,6:171,7:Ce,10:170,18:[1,172],23:[1,173],25:Ne,42:118},e(Fe,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:174,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(we,[2,9]),e(ie,[2,78],{9:se,11:ae,15:oe}),{3:175,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},e(We,[2,83],{35:$,62:Y,66:J}),e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:176,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{3:177,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},e(We,[2,84],{35:$,62:Y,66:J}),{3:178,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},e(We,[2,85],{35:$,62:Y,66:J}),e(ze,[2,88],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V}),e(Fe,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:179,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Fe,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:180,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{17:181,35:$,46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(ie,Ge,{75:182,87:He}),{79:[1,184]},e(ze,[2,110],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V}),e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:185,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(ie,[2,114]),{44:Je,80:me,85:186},e(qe,[2,118],{80:Ke,86:[1,188],87:[1,189]}),e(ie,[2,121]),e(Ve,[2,134],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:96,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,84:191,88:_,91:T,95:x},e(ie,[2,122],{89:[1,192],90:[1,193]}),e(ge,ve,{92:194,9:se,11:ae,15:oe,94:ye}),{46:Xe,93:195,103:Ze},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:197,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(Qe,[2,131],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q}),e(ie,[2,132]),e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:198,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Fe,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:199,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(ke,je,{20:200,77:202,35:$,36:[1,201],39:et,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,79:S}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:204,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(tt,$e,{13:205,44:De}),e(ke,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:206,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(nt,$e,{13:207,44:it}),e(rt,[2,152]),e([22,44,45],Ee,{97:111,10:113,96:114,42:118,5:119,40:209,4:Ae,7:Ce,8:Se,18:st,23:Re,25:Ne,46:Ie,47:_e,51:Te,56:xe}),e(at,[2,136],{9:[1,212],98:[1,211]}),e(rt,[2,144],{54:[1,214],60:[1,213]}),{4:Ae,5:119,7:Ce,8:[1,216],10:215,25:Ne,42:118},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:217,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(rt,[2,150]),e(ot,[2,45]),e(ot,[2,46]),e(at,[2,137],{9:[1,218]}),e(Le,Ee,{97:111,10:113,96:114,42:118,5:119,40:219,4:Ae,7:Ce,8:Se,18:st,23:Re,25:Ne,46:Ie,47:_e,51:Te,56:xe}),e(ot,[2,47]),e(ot,[2,48]),e(Oe,t,{48:3,17:4,49:5,19:7,3:12,77:21,5:31,6:32,99:134,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:u,33:c,34:h,38:f,39:p,41:d,46:m,47:g,51:v,52:y,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:221,23:o,25:l,27:[1,220],31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(Oe,B,{17:45,26:[1,222],28:[1,223],35:[1,224],46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:226,23:o,25:l,27:[1,225],31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{11:[1,228],27:[1,227]},{27:[1,229]},e(Z,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:230,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:78,23:o,25:l,27:[1,231],31:ee,33:c,34:h,38:f,39:p,41:d,46:pe,54:de,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:76,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,27:[1,232],38:f,39:ne},{3:233,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},{27:[1,234]},{17:235,35:$,46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{17:236,35:$,37:lt,46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:ut},e([21,22,24,35,37,39,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,80],re,{9:se,11:ae,15:oe,34:le,53:ue,54:ce,70:he,94:fe,100:[1,239]}),e([9,11,15,21,22,24,34,35,37,39,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,100],be,{44:[1,241],101:[1,240],102:[1,242]}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:243,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,182],{35:$,44:[1,245],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,244]}),e(P,[2,61]),e(T,[2,159],{45:O}),e([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,86,87,89,90,94,100,101,103],[2,69]),{9:se,11:ae,15:oe,35:[1,246]},e(ht,[2,76],{35:$,56:U,61:W,62:Y,66:J}),e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:247,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,56,59,60,63,64,65,67,68,69,76,79,80,103],[2,89],{35:$,61:W,62:Y,66:J}),e(ft,[2,90],{35:$,55:D,56:U,59:j,61:W,62:Y,63:z,65:H,66:J,67:q}),e(Qe,[2,91],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q}),e(We,[2,92],{35:$,62:Y,66:J}),e(We,[2,93],{35:$,62:Y,66:J}),e(ht,[2,94],{35:$,56:U,61:W,62:Y,66:J}),e(ft,[2,95],{35:$,55:D,56:U,59:j,61:W,62:Y,63:z,65:H,66:J,67:q}),e(pt,[2,96],{35:$,55:D,56:U,61:W,62:Y,63:z,65:H,66:J}),e([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,67,68,69,76,79,80,103],[2,97],{35:$,66:J}),e(pt,[2,98],{35:$,55:D,56:U,61:W,62:Y,63:z,65:H,66:J}),e(Qe,[2,99],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q}),e(ze,[2,100],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V}),e(ze,[2,106],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V}),{32:[1,248],45:dt,46:mt},e([14,21,22,32,45,46],gt,{3:12,77:21,5:31,6:32,19:63,43:251,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Ue,[2,55],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(Be,$e,{13:252,44:De}),{17:236,35:$,46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(ht,[2,70],{35:$,56:U,61:W,62:Y,66:J}),e(ie,[2,71]),e(ze,[2,74],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V}),e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:253,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Qe,[2,130],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q}),e(we,[2,6]),e(we,[2,7]),e(ke,Q,{3:12,77:21,5:31,6:32,43:62,12:108,19:254,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,36:[1,255],38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Le,Ee,{40:110,97:111,10:113,96:114,42:118,5:119,4:Ae,7:Ce,8:Se,18:st,23:Re,25:Ne,46:Ie,47:_e,51:Te,56:xe}),e(vt,$e,{13:256,44:De}),e(ie,[2,80],{9:se,11:ae,15:oe}),e(yt,$e,{13:257,44:De}),e(ie,[2,81],{9:se,11:ae,15:oe}),e(ie,[2,82],{9:se,11:ae,15:oe}),e(vt,$e,{13:258,44:De}),e(vt,$e,{13:259,44:De}),e(ie,Ge,{75:260,87:He}),e(ie,[2,107]),{17:261,46:m,74:[1,262]},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:263,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(yt,$e,{13:264,44:De}),e(qe,[2,115],{80:Ke,86:[1,265],87:[1,266]}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:267,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{17:268,46:m},{17:269,46:m},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:96,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,84:270,88:_,91:T,95:x},{17:271,44:Je,46:m},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,17:272,18:a,19:63,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,43:273,46:m,47:te,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{17:274,46:m},{46:Xe,93:275,103:Ze},{17:276,46:m},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:96,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,84:277,88:_,91:T,95:x},e(ge,[2,192],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(yt,$e,{13:278,44:De}),e(vt,$e,{13:279,44:De}),{21:[1,280],22:[1,281],39:et,45:bt,46:wt,77:282,79:S},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:285,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,186]),{3:137,4:Pe,5:31,6:32,7:i,8:r,16:s,18:a,19:286,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b, -57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x,102:Me},{21:[1,287],35:$,37:[1,288],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{21:[1,289],45:dt,46:mt},e(tt,$e,{13:290,44:De}),{24:[1,291],45:kt},e([22,24,45],gt,{10:113,96:114,42:118,5:119,97:293,4:Ae,7:Ce,8:Se,18:st,23:Re,25:Ne,47:_e,51:Te,56:xe}),e(M,$e,{13:294,44:it}),e(ke,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:295,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:296,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,46:[1,297],56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{4:Ae,7:Ce,42:298},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:299,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:300,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(rt,[2,147]),e(rt,[2,148]),e(rt,[2,149],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),{4:Ae,7:Ce,42:301},e(nt,$e,{13:302,44:it}),e(we,[2,14]),{27:[1,303],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{27:[1,304]},{27:[1,305]},{3:306,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},e(we,[2,17]),{27:[1,307],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(we,[2,20]),e(Fe,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:308,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(we,[2,22]),e(Be,$e,{13:309,44:De}),e(we,[2,24]),e(we,[2,25]),{9:se,11:ae,15:oe,35:[1,310]},e(ot,[2,156]),e(we,[2,39]),e(we,[2,40]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:311,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:312,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:313,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:314,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:315,4:n,5:31,6:32,7:i,8:r,16:s,18:a,23:o,25:l,38:f,39:ne},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:316,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{35:$,36:[1,317],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:318,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:319,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:320,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(yt,$e,{13:321,44:De}),{50:Lt,71:Et},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:63,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,43:324,47:te,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:325,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(Ue,[2,51]),{32:[1,326],45:dt,46:mt},e(yt,$e,{13:327,44:De}),e(ke,je,{35:$,36:[1,328],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:329,21:[1,330],23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{14:[1,331],45:dt,46:mt},{22:[1,332],45:dt,46:mt},{14:[1,333],45:dt,46:mt},{14:[1,334],45:dt,46:mt},e(ie,[2,105]),e(ie,[2,161]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:335,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,68,69,76,79,103],[2,108],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,80:[1,336]}),{22:[1,337],45:dt,46:mt},{17:338,46:m},{17:339,46:m},e(Ve,[2,135],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ie,[2,119]),e(ie,[2,120]),{17:340,44:Je,46:m},e(At,[2,190]),e(ie,[2,123],{90:[1,341]}),{17:342,46:m},e(ie,[2,127]),{17:343,46:m},e(ie,[2,129]),{44:Je,46:[2,194]},{22:[1,344],45:dt,46:mt},{14:[1,345],45:dt,46:mt},e(we,[2,11]),{21:[1,346]},e(ct,[2,187]),{39:et,77:347,79:S},{39:et,77:348,79:S},{21:[1,349],35:$,37:[1,350],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(ct,[2,167],{35:$,37:lt,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:ut}),e(we,[2,31]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:351,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(we,[2,41],{41:[1,352]}),{21:[1,353],45:dt,46:mt},e(we,[2,42],{41:[1,354]}),{4:Ae,5:119,7:Ce,8:Se,10:113,18:st,23:Re,25:Ne,42:118,47:_e,51:Te,56:xe,96:114,97:355},e(rt,[2,153]),{22:[1,356],45:kt},e(tt,$e,{13:357,44:De}),e(rt,[2,142],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(Ye,Q,{3:12,77:21,5:31,6:32,43:62,19:63,12:358,4:n,7:i,8:r,16:s,18:a,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,47:te,56:b,57:w,58:k,72:L,73:E,74:A,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x}),e(at,[2,138]),e(rt,[2,145],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(rt,[2,146],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(at,[2,139]),{24:[1,359],45:kt},e(we,[2,15]),e(we,[2,16]),e(we,[2,19]),{9:se,11:ae,15:oe,35:[1,360]},e(we,[2,18]),e(vt,$e,{13:361,44:De}),{32:[1,362],45:dt,46:mt},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:364,23:o,25:l,27:[1,363],31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,168],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,169],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,365]}),e(ct,[2,163],{35:$,37:[1,367],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,366]}),e(ct,[2,171],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,368]}),{9:se,11:ae,15:oe,101:[1,369]},{35:$,36:[1,370],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:371,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,183],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,184],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,372]}),e(ie,[2,72]),{22:[1,373],45:dt,46:mt},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:374,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{17:375,46:m},e(Ue,[2,52]),e(yt,$e,{13:376,44:De}),{71:Et},{22:[1,377],45:dt,46:mt},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:378,21:[1,379],23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{21:[1,381],35:$,37:[1,380],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(we,[2,38]),e(we,[2,8]),e(ie,[2,86]),{17:382,46:m},{17:383,46:m},{17:384,35:$,46:m,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:385,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ie,[2,111]),e(ie,[2,116]),e(ie,[2,117]),e(At,[2,191]),{17:386,46:m},e(ie,[2,125],{90:[1,387]}),e(ie,[2,128]),e(ie,[2,133]),{17:388,46:m},e(we,[2,12]),e(ct,[2,188]),e(ct,[2,189]),e(we,[2,29]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:389,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{21:[1,390],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(we,[2,43]),{20:391,39:et,41:Ct,77:202,79:S},e(we,[2,44]),e(rt,[2,154]),e(rt,[2,155]),{21:[1,393],45:dt,46:mt},e(yt,$e,{13:394,44:De}),{41:[1,395]},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:320,23:o,25:l,27:[1,396],31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{14:[1,397],45:dt,46:mt},{30:[1,398],50:Lt,71:Et},e(we,[2,26]),{27:[1,399],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:400,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:401,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:402,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:403,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:404,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:405,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,176],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,406]}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:407,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ie,[2,77]),e(P,[2,65],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ie,[2,102]),{22:[1,408],45:dt,46:mt},e(ie,[2,75]),{21:[1,410],35:$,37:[1,409],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(we,[2,36]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:411,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(we,[2,37]),e(ie,[2,103]),e(ie,[2,104]),e(ie,Ge,{75:412,87:He}),e(Qe,[2,109],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q}),e(ie,[2,124]),{17:413,46:m},e(we,[2,10]),{21:[1,414],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(we,[2,32]),{24:[1,415],39:et,45:bt,46:wt,77:282,79:S},e(at,[2,141]),{41:Ct},{22:[1,416],45:dt,46:mt},e(at,[2,140]),e(we,[2,27]),{27:[1,417]},{27:[1,418]},e(we,[2,28]),e(ct,[2,170],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,164],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,165],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,419]}),e(ct,[2,172],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,173],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,420]}),e(ct,[2,175],{35:$,37:[1,422],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,421]}),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:423,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,185],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(Ue,[2,53]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:424,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(we,[2,35]),{21:[1,425],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(ie,[2,162]),e(ie,[2,126]),e(we,[2,30]),e(we,[2,13]),e(rt,[2,143]),e(we,[2,21]),e(we,[2,23]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:426,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:427,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:428,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:429,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,178],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),{21:[1,430],35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X},e(we,[2,34]),e(ct,[2,166],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,174],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,177],{35:$,37:[1,431],55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,179],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X,80:[1,432]}),e(we,[2,33]),{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:433,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},{3:12,4:n,5:31,6:32,7:i,8:r,16:s,18:a,19:434,23:o,25:l,31:ee,33:c,34:h,38:f,39:p,41:d,56:b,57:w,58:k,72:L,73:E,74:A,77:21,78:C,79:S,81:R,82:N,83:I,88:_,91:T,95:x},e(ct,[2,181],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X}),e(ct,[2,180],{35:$,55:D,56:U,59:j,60:F,61:W,62:Y,63:z,64:G,65:H,66:J,67:q,68:K,69:V,76:X})],defaultActions:{2:[2,196]},parseError:function _t(e,t){if(t.recoverable){this.trace(e)}else{throw new Error(e)}},parse:function Tt(e){var t=this,n=[0],i=[],r=[null],s=[],a=this.table,o="",l=0,u=0,c=0,h=2,f=1;var p=s.slice.call(arguments,1);var d=Object.create(this.lexer);var m={yy:{}};for(var g in this.yy){if(Object.prototype.hasOwnProperty.call(this.yy,g)){m.yy[g]=this.yy[g]}}d.setInput(e,m.yy);m.yy.lexer=d;m.yy.parser=this;if(typeof d.yylloc=="undefined"){d.yylloc={}}var v=d.yylloc;s.push(v);var y=d.options&&d.options.ranges;if(typeof m.yy.parseError==="function"){this.parseError=m.yy.parseError}else{this.parseError=Object.getPrototypeOf(this).parseError}function b(e){n.length=n.length-2*e;r.length=r.length-e;s.length=s.length-e}e:function w(){var e;e=d.lex()||f;if(typeof e!=="number"){e=t.symbols_[e]||e}return e}var k,L,E,A,C,S,R={},N,I,_,T;while(true){E=n[n.length-1];if(this.defaultActions[E]){A=this.defaultActions[E]}else{if(k===null||typeof k=="undefined"){k=w()}A=a[E]&&a[E][k]}if(typeof A==="undefined"||!A.length||!A[0]){var x="";T=[];for(N in a[E]){if(this.terminals_[N]&&N>h){T.push("'"+this.terminals_[N]+"'")}}if(d.showPosition){x="Parse error on line "+(l+1)+":\n"+d.showPosition()+"\nExpecting "+T.join(", ")+", got '"+(this.terminals_[k]||k)+"'"}else{x="Parse error on line "+(l+1)+": Unexpected "+(k==f?"end of input":"'"+(this.terminals_[k]||k)+"'")}this.parseError(x,{text:d.match,token:this.terminals_[k]||k,line:d.yylineno,loc:v,expected:T})}if(A[0]instanceof Array&&A.length>1){throw new Error("Parse Error: multiple actions possible at state: "+E+", token: "+k)}switch(A[0]){case 1:n.push(k);r.push(d.yytext);s.push(d.yylloc);n.push(A[1]);k=null;if(!L){u=d.yyleng;o=d.yytext;l=d.yylineno;v=d.yylloc;if(c>0){c--}}else{k=L;L=null}break;case 2:I=this.productions_[A[1]][1];R.$=r[r.length-I];R._$={first_line:s[s.length-(I||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(I||1)].first_column,last_column:s[s.length-1].last_column};if(y){R._$.range=[s[s.length-(I||1)].range[0],s[s.length-1].range[1]]}S=this.performAction.apply(R,[o,u,l,m.yy,A[1],r,s].concat(p));if(typeof S!=="undefined"){return S}if(I){n=n.slice(0,-1*I*2);r=r.slice(0,-1*I);s=s.slice(0,-1*I)}n.push(this.productions_[A[1]][0]);r.push(R.$);s.push(R._$);_=a[n[n.length-2]][n[n.length-1]];n.push(_);break;case 3:return true}}return true}};function Rt(){this.yy={}}Rt.prototype=St;St.Parser=Rt;return new Rt}();if(typeof e!=="undefined"&&typeof n!=="undefined"){n.parser=r;n.Parser=r.Parser;n.parse=function(){return r.parse.apply(r,arguments)};n.main=function s(t){if(!t[1]){console.log("Usage: "+t[0]+" FILE");i.exit(1)}var r=e("fs").readFileSync(e("path").normalize(t[1]),"utf8");return n.parser.parse(r)};if(typeof t!=="undefined"&&e.main===t){n.main(i.argv.slice(1))}}}).call(this,e("_process"))},{_process:21,fs:9,path:14}],6:[function(e,t,n){ -// Generated by LiveScript 1.4.0 -var i,r,s;i=e("path");r=function(e){var t;if(t=/^['"](.*)['"]$/.exec(e.trim())){return t[1]}else{return e}};s=function(e){return i.basename(r(e)).split(".")[0].replace(/-[a-z]/gi,function(e){return e.charAt(1).toUpperCase()})};t.exports={nameFromPath:s,stripString:r}},{path:14}],7:[function(e,t,n){(function(n,i){/** vim: et:ts=4:sw=4:sts=4 - * @license amdefine 1.0.0 Copyright (c) 2011-2015, The Dojo Foundation All Rights Reserved. - * Available via the MIT or new BSD license. - * see: http://github.com/jrburke/amdefine for details - */ -/*jslint node: true */ -/*global module, process */ -"use strict";/** - * Creates a define for node. - * @param {Object} module the "module" object that is defined by Node for the - * current module. - * @param {Function} [requireFn]. Node's require function for the current module. - * It only needs to be passed in Node versions before 0.5, when module.require - * did not exist. - * @returns {Function} a define function that is usable for the current node - * module. - */ -function r(t,r){"use strict";var s={},a={},o=false,l=e("path"),u,c;/** - * Trims the . and .. from an array of path segments. - * It will keep a leading path segment if a .. will become - * the first path segment, to help with module name lookups, - * which act like paths, but can be remapped. But the end result, - * all paths that use this function should look normalized. - * NOTE: this method MODIFIES the input array. - * @param {Array} ary the array of path segments. - */ -function h(e){var t,n;for(t=0;e[t];t+=1){n=e[t];if(n==="."){e.splice(t,1);t-=1}else if(n===".."){if(t===1&&(e[2]===".."||e[0]==="..")){ -//End of the line. Keep at least one non-dot -//path segment at the front so it can be mapped -//correctly to disk. Otherwise, there is likely -//no path mapping for a path starting with '..'. -//This can still fail, but catches the most reasonable -//uses of .. -break}else if(t>0){e.splice(t-1,2);t-=2}}}}function f(e,t){var n; -//Adjust any relative paths. -if(e&&e.charAt(0)==="."){ -//If have a base name, try to normalize against it, -//otherwise, assume it is a top-level require that will -//be relative to baseUrl in the end. -if(t){n=t.split("/");n=n.slice(0,n.length-1);n=n.concat(e.split("/"));h(n);e=n.join("/")}}return e}/** - * Create the normalize() function passed to a loader plugin's - * normalize method. - */ -function p(e){return function(t){return f(t,e)}}function d(e){function t(t){a[e]=t}t.fromText=function(e,t){ -//This one is difficult because the text can/probably uses -//define, and any relative paths and requires should be relative -//to that id was it would be found on disk. But this would require -//bootstrapping a module/require fairly deeply from node core. -//Not sure how best to go about that yet. -throw new Error("amdefine does not implement load.fromText")};return t}u=function(e,t,i,r){function s(s,a){if(typeof s==="string"){ -//Synchronous, single module require('') -return c(e,t,i,s,r)}else{ -//Array of dependencies with a callback. -//Convert the dependencies to modules. -s=s.map(function(n){return c(e,t,i,n,r)}); -//Wait for next tick to call back the require call. -if(a){n.nextTick(function(){a.apply(null,s)})}}}s.toUrl=function(e){if(e.indexOf(".")===0){return f(e,l.dirname(i.filename))}else{return e}};return s}; -//Favor explicit value, passed in if the module wants to support Node 0.4. -r=r||function v(){return t.require.apply(t,arguments)};function m(e,n,s){var l,c,h,f;if(e){c=a[e]={};h={id:e,uri:i,exports:c};l=u(r,c,h,e)}else{ -//Only support one define call per file -if(o){throw new Error("amdefine with no module ID cannot be called more than once per file.")}o=true; -//Use the real variables from node -//Use module.exports for exports, since -//the exports in here is amdefine exports. -c=t.exports;h=t;l=u(r,c,h,t.id)} -//If there are dependencies, they are strings, so need -//to convert them to dependency values. -if(n){n=n.map(function(e){return l(e)})} -//Call the factory with the right dependencies. -if(typeof s==="function"){f=s.apply(h.exports,n)}else{f=s}if(f!==undefined){h.exports=f;if(e){a[e]=h.exports}}}c=function(e,t,n,i,r){ -//Split the ID by a ! so that -var o=i.indexOf("!"),l=i,h,g;if(o===-1){i=f(i,r); -//Straight module lookup. If it is one of the special dependencies, -//deal with it, otherwise, delegate to node. -if(i==="require"){return u(e,t,n,r)}else if(i==="exports"){return t}else if(i==="module"){return n}else if(a.hasOwnProperty(i)){return a[i]}else if(s[i]){m.apply(null,s[i]);return a[i]}else{if(e){return e(l)}else{throw new Error("No module with ID: "+i)}}}else{ -//There is a plugin in play. -h=i.substring(0,o);i=i.substring(o+1,i.length);g=c(e,t,n,h,r);if(g.normalize){i=g.normalize(i,p(r))}else{ -//Normalize the ID normally. -i=f(i,r)}if(a[i]){return a[i]}else{g.load(i,u(e,t,n,r),d(i),{});return a[i]}}}; -//Create a define function specific to the module asking for amdefine. -function g(e,t,n){if(Array.isArray(e)){n=t;t=e;e=undefined}else if(typeof e!=="string"){n=e;e=t=undefined}if(t&&!Array.isArray(t)){n=t;t=undefined}if(!t){t=["require","exports","module"]} -//Set up properties for this module. If an ID, then use -//internal cache. If no ID, then use the external variables -//for this node module. -if(e){ -//Put the module in deep freeze until there is a -//require call for it. -s[e]=[e,t,n]}else{m(e,t,n)}} -//define.require, which has access to all the values in the -//cache. Useful for AMD modules that all have IDs in the file, -//but need to finally export a value to node based on one of those -//IDs. -g.require=function(e){if(a[e]){return a[e]}if(s[e]){m.apply(null,s[e]);return a[e]}};g.amd={};return g}t.exports=r}).call(this,e("_process"),"/node_modules/amdefine/amdefine.js")},{_process:21,path:14}],8:[function(e,t,n){var i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";(function(e){"use strict";var t=typeof Uint8Array!=="undefined"?Uint8Array:Array;var n="+".charCodeAt(0);var r="/".charCodeAt(0);var s="0".charCodeAt(0);var a="a".charCodeAt(0);var o="A".charCodeAt(0);var l="-".charCodeAt(0);var u="_".charCodeAt(0);function c(e){var t=e.charCodeAt(0);if(t===n||t===l)return 62;// '+' -if(t===r||t===u)return 63;// '/' -if(t0){throw new Error("Invalid string. Length must be a multiple of 4")} -// the number of equal signs (place holders) -// if there are two placeholders, than the two characters before it -// represent one byte -// if there is only one, then the three characters before it represent 2 bytes -// this is just a cheap hack to not do indexOf twice -var l=e.length;a="="===e.charAt(l-2)?2:"="===e.charAt(l-1)?1:0; -// base64 is 4/3 + up to two characters of the original data -o=new t(e.length*3/4-a); -// if there are placeholders, only get up to the last complete 4 chars -r=a>0?e.length-4:e.length;var u=0;function h(e){o[u++]=e}for(n=0,i=0;n>16);h((s&65280)>>8);h(s&255)}if(a===2){s=c(e.charAt(n))<<2|c(e.charAt(n+1))>>4;h(s&255)}else if(a===1){s=c(e.charAt(n))<<10|c(e.charAt(n+1))<<4|c(e.charAt(n+2))>>2;h(s>>8&255);h(s&255)}return o}function f(e){var t,n=e.length%3,// if we have 1 byte left, pad 2 bytes -r="",s,a;function o(e){return i.charAt(e)}function l(e){return o(e>>18&63)+o(e>>12&63)+o(e>>6&63)+o(e&63)} -// go through the array every three bytes, we'll deal with trailing stuff later -for(t=0,a=e.length-n;t>2);r+=o(s<<4&63);r+="==";break;case 2:s=(e[e.length-2]<<8)+e[e.length-1];r+=o(s>>10);r+=o(s>>4&63);r+=o(s<<2&63);r+="=";break}return r}e.toByteArray=h;e.fromByteArray=f})(typeof n==="undefined"?this.base64js={}:n)},{}],9:[function(e,t,n){},{}],10:[function(e,t,n){(function(t){/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ -"use strict";var i=e("base64-js");var r=e("ieee754");var s=e("isarray");n.Buffer=u;n.SlowBuffer=k;n.INSPECT_MAX_BYTES=50;u.poolSize=8192;// not used by this implementation -var a={};/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property - * on objects. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -u.TYPED_ARRAY_SUPPORT=t.TYPED_ARRAY_SUPPORT!==undefined?t.TYPED_ARRAY_SUPPORT:o();function o(){function e(){}try{var t=new Uint8Array(1);t.foo=function(){return 42};t.constructor=e;// typed array instances can be augmented -// constructor can be set -// chrome 9-10 lack `subarray` -return t.foo()===42&&t.constructor===e&&typeof t.subarray==="function"&&t.subarray(1,1).byteLength===0}catch(n){return false}}function l(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}/** - * Class: Buffer - * ============= - * - * The Buffer constructor returns instances of `Uint8Array` that are augmented - * with function properties for all the node `Buffer` API functions. We use - * `Uint8Array` so that square bracket notation works as expected -- it returns - * a single octet. - * - * By augmenting the instances, we can avoid modifying the `Uint8Array` - * prototype. - */ -function u(e){if(!(this instanceof u)){ -// Avoid going through an ArgumentsAdaptorTrampoline in the common case. -if(arguments.length>1)return new u(e,arguments[1]);return new u(e)}if(!u.TYPED_ARRAY_SUPPORT){this.length=0;this.parent=undefined} -// Common case. -if(typeof e==="number"){return c(this,e)} -// Slightly less common case. -if(typeof e==="string"){return h(this,e,arguments.length>1?arguments[1]:"utf8")} -// Unusual. -return f(this,e)}function c(e,t){e=b(e,t<0?0:w(t)|0);if(!u.TYPED_ARRAY_SUPPORT){for(var n=0;n 1 but it's compatible with the behavior -// of the old Buffer constructor. -for(var i=0;i>>1;if(n)e.parent=a;return e}function w(e){ -// Note: cannot use `length < kMaxLength` here because that fails when -// length is NaN (which is otherwise coerced to zero.) -if(e>=l()){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+l().toString(16)+" bytes")}return e|0}function k(e,t){if(!(this instanceof k))return new k(e,t);var n=new u(e,t);delete n.parent;return n}u.isBuffer=function te(e){return!!(e!=null&&e._isBuffer)};u.compare=function ne(e,t){if(!u.isBuffer(e)||!u.isBuffer(t)){throw new TypeError("Arguments must be Buffers")}if(e===t)return 0;var n=e.length;var i=t.length;var r=0;var s=Math.min(n,i);while(r>>1;case"base64":return Q(e).length;default:if(i)return V(e).length;// assume utf8 -t=(""+t).toLowerCase();i=true}}}u.byteLength=L;function E(e,t,n){var i=false;t=t|0;n=n===undefined||n===Infinity?this.length:n|0;if(!e)e="utf8";if(t<0)t=0;if(n>this.length)n=this.length;if(n<=t)return"";while(true){switch(e){case"hex":return B(this,t,n);case"utf8":case"utf-8":return T(this,t,n);case"ascii":return P(this,t,n);case"binary":return M(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return $(this,t,n);default:if(i)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase();i=true}}}u.prototype.toString=function se(){var e=this.length|0;if(e===0)return"";if(arguments.length===0)return T(this,0,e);return E.apply(this,arguments)};u.prototype.equals=function ae(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(this===e)return true;return u.compare(this,e)===0};u.prototype.inspect=function oe(){var e="";var t=n.INSPECT_MAX_BYTES;if(this.length>0){e=this.toString("hex",0,t).match(/.{2}/g).join(" ");if(this.length>t)e+=" ... "}return""};u.prototype.compare=function le(e){if(!u.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(this===e)return 0;return u.compare(this,e)};u.prototype.indexOf=function ue(e,t){if(t>2147483647)t=2147483647;else if(t<-2147483648)t=-2147483648;t>>=0;if(this.length===0)return-1;if(t>=this.length)return-1; -// Negative offsets start from the end of the buffer -if(t<0)t=Math.max(this.length+t,0);if(typeof e==="string"){if(e.length===0)return-1;// special case: looking for empty string always fails -return String.prototype.indexOf.call(this,e,t)}if(u.isBuffer(e)){return n(this,e,t)}if(typeof e==="number"){if(u.TYPED_ARRAY_SUPPORT&&Uint8Array.prototype.indexOf==="function"){return Uint8Array.prototype.indexOf.call(this,e,t)}return n(this,[e],t)}function n(e,t,n){var i=-1;for(var r=0;n+rr){i=r}} -// must be an even number of digits -var s=t.length;if(s%2!==0)throw new Error("Invalid hex string");if(i>s/2){i=s/2}for(var a=0;as)n=s;if(e.length>0&&(n<0||t<0)||t>this.length){throw new RangeError("attempt to write outside buffer bounds")}if(!i)i="utf8";var a=false;for(;;){switch(i){case"hex":return A(this,e,t,n);case"utf8":case"utf-8":return C(this,e,t,n);case"ascii":return S(this,e,t,n);case"binary":return R(this,e,t,n);case"base64": -// Warning: maxLength not taken into account in base64Write -return N(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase();a=true}}};u.prototype.toJSON=function pe(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function _(e,t,n){if(t===0&&n===e.length){return i.fromByteArray(e)}else{return i.fromByteArray(e.slice(t,n))}}function T(e,t,n){n=Math.min(e.length,n);var i=[];var r=t;while(r239?4:s>223?3:s>191?2:1;if(r+o<=n){var l,u,c,h;switch(o){case 1:if(s<128){a=s}break;case 2:l=e[r+1];if((l&192)===128){h=(s&31)<<6|l&63;if(h>127){a=h}}break;case 3:l=e[r+1];u=e[r+2];if((l&192)===128&&(u&192)===128){h=(s&15)<<12|(l&63)<<6|u&63;if(h>2047&&(h<55296||h>57343)){a=h}}break;case 4:l=e[r+1];u=e[r+2];c=e[r+3];if((l&192)===128&&(u&192)===128&&(c&192)===128){h=(s&15)<<18|(l&63)<<12|(u&63)<<6|c&63;if(h>65535&&h<1114112){a=h}}}}if(a===null){ -// we did not generate a valid codePoint so insert a -// replacement char (U+FFFD) and advance only 1 byte -a=65533;o=1}else if(a>65535){ -// encode to utf16 (surrogate pair dance) -a-=65536;i.push(a>>>10&1023|55296);a=56320|a&1023}i.push(a);r+=o}return O(i)} -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var x=4096;function O(e){var t=e.length;if(t<=x){return String.fromCharCode.apply(String,e)} -// Decode in chunks to avoid "call stack size exceeded". -var n="";var i=0;while(ii)n=i;var r="";for(var s=t;sn){e=n}if(t<0){t+=n;if(t<0)t=0}else if(t>n){t=n}if(tn)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUIntLE=function me(e,t,n){e=e|0;t=t|0;if(!n)D(e,t,this.length);var i=this[e];var r=1;var s=0;while(++s0&&(r*=256)){i+=this[e+--t]*r}return i};u.prototype.readUInt8=function ve(e,t){if(!t)D(e,1,this.length);return this[e]};u.prototype.readUInt16LE=function ye(e,t){if(!t)D(e,2,this.length);return this[e]|this[e+1]<<8};u.prototype.readUInt16BE=function be(e,t){if(!t)D(e,2,this.length);return this[e]<<8|this[e+1]};u.prototype.readUInt32LE=function we(e,t){if(!t)D(e,4,this.length);return(this[e]|this[e+1]<<8|this[e+2]<<16)+this[e+3]*16777216};u.prototype.readUInt32BE=function ke(e,t){if(!t)D(e,4,this.length);return this[e]*16777216+(this[e+1]<<16|this[e+2]<<8|this[e+3])};u.prototype.readIntLE=function Le(e,t,n){e=e|0;t=t|0;if(!n)D(e,t,this.length);var i=this[e];var r=1;var s=0;while(++s=r)i-=Math.pow(2,8*t);return i};u.prototype.readIntBE=function Ee(e,t,n){e=e|0;t=t|0;if(!n)D(e,t,this.length);var i=t;var r=1;var s=this[e+--i];while(i>0&&(r*=256)){s+=this[e+--i]*r}r*=128;if(s>=r)s-=Math.pow(2,8*t);return s};u.prototype.readInt8=function Ae(e,t){if(!t)D(e,1,this.length);if(!(this[e]&128))return this[e];return(255-this[e]+1)*-1};u.prototype.readInt16LE=function Ce(e,t){if(!t)D(e,2,this.length);var n=this[e]|this[e+1]<<8;return n&32768?n|4294901760:n};u.prototype.readInt16BE=function Se(e,t){if(!t)D(e,2,this.length);var n=this[e+1]|this[e]<<8;return n&32768?n|4294901760:n};u.prototype.readInt32LE=function Re(e,t){if(!t)D(e,4,this.length);return this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24};u.prototype.readInt32BE=function Ne(e,t){if(!t)D(e,4,this.length);return this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]};u.prototype.readFloatLE=function Ie(e,t){if(!t)D(e,4,this.length);return r.read(this,e,true,23,4)};u.prototype.readFloatBE=function _e(e,t){if(!t)D(e,4,this.length);return r.read(this,e,false,23,4)};u.prototype.readDoubleLE=function Te(e,t){if(!t)D(e,8,this.length);return r.read(this,e,true,52,8)};u.prototype.readDoubleBE=function xe(e,t){if(!t)D(e,8,this.length);return r.read(this,e,false,52,8)};function U(e,t,n,i,r,s){if(!u.isBuffer(e))throw new TypeError("buffer must be a Buffer instance");if(t>r||te.length)throw new RangeError("index out of range")}u.prototype.writeUIntLE=function Oe(e,t,n,i){e=+e;t=t|0;n=n|0;if(!i)U(this,e,t,n,Math.pow(2,8*n),0);var r=1;var s=0;this[t]=e&255;while(++s=0&&(s*=256)){this[t+r]=e/s&255}return t+n};u.prototype.writeUInt8=function Me(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,1,255,0);if(!u.TYPED_ARRAY_SUPPORT)e=Math.floor(e);this[t]=e&255;return t+1};function j(e,t,n,i){if(t<0)t=65535+t+1;for(var r=0,s=Math.min(e.length-n,2);r>>(i?r:1-r)*8}}u.prototype.writeUInt16LE=function Be(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,2,65535,0);if(u.TYPED_ARRAY_SUPPORT){this[t]=e&255;this[t+1]=e>>>8}else{j(this,e,t,true)}return t+2};u.prototype.writeUInt16BE=function $e(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,2,65535,0);if(u.TYPED_ARRAY_SUPPORT){this[t]=e>>>8;this[t+1]=e&255}else{j(this,e,t,false)}return t+2};function F(e,t,n,i){if(t<0)t=4294967295+t+1;for(var r=0,s=Math.min(e.length-n,4);r>>(i?r:3-r)*8&255}}u.prototype.writeUInt32LE=function De(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,4,4294967295,0);if(u.TYPED_ARRAY_SUPPORT){this[t+3]=e>>>24;this[t+2]=e>>>16;this[t+1]=e>>>8;this[t]=e&255}else{F(this,e,t,true)}return t+4};u.prototype.writeUInt32BE=function Ue(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,4,4294967295,0);if(u.TYPED_ARRAY_SUPPORT){this[t]=e>>>24;this[t+1]=e>>>16;this[t+2]=e>>>8;this[t+3]=e&255}else{F(this,e,t,false)}return t+4};u.prototype.writeIntLE=function je(e,t,n,i){e=+e;t=t|0;if(!i){var r=Math.pow(2,8*n-1);U(this,e,t,n,r-1,-r)}var s=0;var a=1;var o=e<0?1:0;this[t]=e&255;while(++s>0)-o&255}return t+n};u.prototype.writeIntBE=function Fe(e,t,n,i){e=+e;t=t|0;if(!i){var r=Math.pow(2,8*n-1);U(this,e,t,n,r-1,-r)}var s=n-1;var a=1;var o=e<0?1:0;this[t+s]=e&255;while(--s>=0&&(a*=256)){this[t+s]=(e/a>>0)-o&255}return t+n};u.prototype.writeInt8=function We(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,1,127,-128);if(!u.TYPED_ARRAY_SUPPORT)e=Math.floor(e);if(e<0)e=255+e+1;this[t]=e&255;return t+1};u.prototype.writeInt16LE=function Ye(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,2,32767,-32768);if(u.TYPED_ARRAY_SUPPORT){this[t]=e&255;this[t+1]=e>>>8}else{j(this,e,t,true)}return t+2};u.prototype.writeInt16BE=function ze(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,2,32767,-32768);if(u.TYPED_ARRAY_SUPPORT){this[t]=e>>>8;this[t+1]=e&255}else{j(this,e,t,false)}return t+2};u.prototype.writeInt32LE=function Ge(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,4,2147483647,-2147483648);if(u.TYPED_ARRAY_SUPPORT){this[t]=e&255;this[t+1]=e>>>8;this[t+2]=e>>>16;this[t+3]=e>>>24}else{F(this,e,t,true)}return t+4};u.prototype.writeInt32BE=function He(e,t,n){e=+e;t=t|0;if(!n)U(this,e,t,4,2147483647,-2147483648);if(e<0)e=4294967295+e+1;if(u.TYPED_ARRAY_SUPPORT){this[t]=e>>>24;this[t+1]=e>>>16;this[t+2]=e>>>8;this[t+3]=e&255}else{F(this,e,t,false)}return t+4};function W(e,t,n,i,r,s){if(t>r||te.length)throw new RangeError("index out of range");if(n<0)throw new RangeError("index out of range")}function Y(e,t,n,i,s){if(!s){W(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38)}r.write(e,t,n,i,23,4);return n+4}u.prototype.writeFloatLE=function Je(e,t,n){return Y(this,e,t,true,n)};u.prototype.writeFloatBE=function qe(e,t,n){return Y(this,e,t,false,n)};function z(e,t,n,i,s){if(!s){W(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308)}r.write(e,t,n,i,52,8);return n+8}u.prototype.writeDoubleLE=function Ke(e,t,n){return z(this,e,t,true,n)};u.prototype.writeDoubleBE=function Ve(e,t,n){return z(this,e,t,false,n)}; -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -u.prototype.copy=function Xe(e,t,n,i){if(!n)n=0;if(!i&&i!==0)i=this.length;if(t>=e.length)t=e.length;if(!t)t=0;if(i>0&&i=this.length)throw new RangeError("sourceStart out of bounds");if(i<0)throw new RangeError("sourceEnd out of bounds"); -// Are we oob? -if(i>this.length)i=this.length;if(e.length-t=0;s--){e[s+t]=this[s+n]}}else if(r<1e3||!u.TYPED_ARRAY_SUPPORT){ -// ascending copy from start -for(s=0;s=this.length)throw new RangeError("start out of bounds");if(n<0||n>this.length)throw new RangeError("end out of bounds");var i;if(typeof e==="number"){for(i=t;i55295&&n<57344){ -// last char was a lead -if(!r){ -// no lead yet -if(n>56319){ -// unexpected trail -if((t-=3)>-1)s.push(239,191,189);continue}else if(a+1===i){ -// unpaired lead -if((t-=3)>-1)s.push(239,191,189);continue} -// valid lead -r=n;continue} -// 2 leads in a row -if(n<56320){if((t-=3)>-1)s.push(239,191,189);r=n;continue} -// valid surrogate pair -n=(r-55296<<10|n-56320)+65536}else if(r){ -// valid bmp char, but last char was a lead -if((t-=3)>-1)s.push(239,191,189)}r=null; -// encode utf8 -if(n<128){if((t-=1)<0)break;s.push(n)}else if(n<2048){if((t-=2)<0)break;s.push(n>>6|192,n&63|128)}else if(n<65536){if((t-=3)<0)break;s.push(n>>12|224,n>>6&63|128,n&63|128)}else if(n<1114112){if((t-=4)<0)break;s.push(n>>18|240,n>>12&63|128,n>>6&63|128,n&63|128)}else{throw new Error("Invalid code point")}}return s}function X(e){var t=[];for(var n=0;n>8;r=n%256;s.push(r);s.push(i)}return s}function Q(e){return i.toByteArray(J(e))}function ee(e,t,n,i){for(var r=0;r=t.length||r>=e.length)break;t[r+n]=e[r]}return r}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"base64-js":8,ieee754:13,isarray:11}],11:[function(e,t,n){var i={}.toString;t.exports=Array.isArray||function(e){return i.call(e)=="[object Array]"}},{}],12:[function(e,t,n){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -function i(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}t.exports=i; -// Backwards-compat with node 0.10.x -i.EventEmitter=i;i.prototype._events=undefined;i.prototype._maxListeners=undefined; -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -i.defaultMaxListeners=10; -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -i.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");this._maxListeners=e;return this};i.prototype.emit=function(e){var t,n,i,s,l,u;if(!this._events)this._events={}; -// If there is no 'error' event listener then throw. -if(e==="error"){if(!this._events.error||a(this._events.error)&&!this._events.error.length){t=arguments[1];if(t instanceof Error){throw t}throw TypeError('Uncaught, unspecified "error" event.')}}n=this._events[e];if(o(n))return false;if(r(n)){switch(arguments.length){ -// fast cases -case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break; -// slower -default:i=arguments.length;s=new Array(i-1);for(l=1;l0&&this._events[e].length>n){this._events[e].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[e].length);if(typeof console.trace==="function"){ -// not supported in IE 10 -console.trace()}}}return this};i.prototype.on=i.prototype.addListener;i.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=false;function i(){this.removeListener(e,i);if(!n){n=true;t.apply(this,arguments)}}i.listener=t;this.on(e,i);return this}; -// emits a 'removeListener' event iff the listener was removed -i.prototype.removeListener=function(e,t){var n,i,s,o;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;n=this._events[e];s=n.length;i=-1;if(n===t||r(n.listener)&&n.listener===t){delete this._events[e];if(this._events.removeListener)this.emit("removeListener",e,t)}else if(a(n)){for(o=s;o-->0;){if(n[o]===t||n[o].listener&&n[o].listener===t){i=o;break}}if(i<0)return this;if(n.length===1){n.length=0;delete this._events[e]}else{n.splice(i,1)}if(this._events.removeListener)this.emit("removeListener",e,t)}return this};i.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this; -// not listening for removeListener, no need to emit -if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[e])delete this._events[e];return this} -// emit removeListener for all listeners on all events -if(arguments.length===0){for(t in this._events){if(t==="removeListener")continue;this.removeAllListeners(t)}this.removeAllListeners("removeListener");this._events={};return this}n=this._events[e];if(r(n)){this.removeListener(e,n)}else{ -// LIFO order -while(n.length)this.removeListener(e,n[n.length-1])}delete this._events[e];return this};i.prototype.listeners=function(e){var t;if(!this._events||!this._events[e])t=[];else if(r(this._events[e]))t=[this._events[e]];else t=this._events[e].slice();return t};i.listenerCount=function(e,t){var n;if(!e._events||!e._events[t])n=0;else if(r(e._events[t]))n=1;else n=e._events[t].length;return n};function r(e){return typeof e==="function"}function s(e){return typeof e==="number"}function a(e){return typeof e==="object"&&e!==null}function o(e){return e===void 0}},{}],13:[function(e,t,n){n.read=function(e,t,n,i,r){var s,a;var o=r*8-i-1;var l=(1<>1;var c=-7;var h=n?r-1:0;var f=n?-1:1;var p=e[t+h];h+=f;s=p&(1<<-c)-1;p>>=-c;c+=o;for(;c>0;s=s*256+e[t+h],h+=f,c-=8){}a=s&(1<<-c)-1;s>>=-c;c+=i;for(;c>0;a=a*256+e[t+h],h+=f,c-=8){}if(s===0){s=1-u}else if(s===l){return a?NaN:(p?-1:1)*Infinity}else{a=a+Math.pow(2,i);s=s-u}return(p?-1:1)*a*Math.pow(2,s-i)};n.write=function(e,t,n,i,r,s){var a,o,l;var u=s*8-r-1;var c=(1<>1;var f=r===23?Math.pow(2,-24)-Math.pow(2,-77):0;var p=i?0:s-1;var d=i?1:-1;var m=t<0||t===0&&1/t<0?1:0;t=Math.abs(t);if(isNaN(t)||t===Infinity){o=isNaN(t)?1:0;a=c}else{a=Math.floor(Math.log(t)/Math.LN2);if(t*(l=Math.pow(2,-a))<1){a--;l*=2}if(a+h>=1){t+=f/l}else{t+=f*Math.pow(2,1-h)}if(t*l>=2){a++;l/=2}if(a+h>=c){o=0;a=c}else if(a+h>=1){o=(t*l-1)*Math.pow(2,r);a=a+h}else{o=t*Math.pow(2,h-1)*Math.pow(2,r);a=0}}for(;r>=8;e[n+p]=o&255,p+=d,o/=256,r-=8){}a=a<0;e[n+p]=a&255,p+=d,a/=256,u-=8){}e[n+p-d]|=m*128}},{}],14:[function(e,t,n){(function(e){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function t(e,t){ -// if the path tries to go above the root, `up` ends up > 0 -var n=0;for(var i=e.length-1;i>=0;i--){var r=e[i];if(r==="."){e.splice(i,1)}else if(r===".."){e.splice(i,1);n++}else if(n){e.splice(i,1);n--}} -// if the path is allowed to go above the root, restore leading ..s -if(t){for(;n--;n){e.unshift("..")}}return e} -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var r=function(e){return i.exec(e).slice(1)}; -// path.resolve([from ...], to) -// posix version -n.resolve=function(){var n="",i=false;for(var r=arguments.length-1;r>=-1&&!i;r--){var a=r>=0?arguments[r]:e.cwd(); -// Skip empty and invalid entries -if(typeof a!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!a){continue}n=a+"/"+n;i=a.charAt(0)==="/"} -// At this point the path should be resolved to a full absolute path, but -// handle relative paths to be safe (might happen when process.cwd() fails) -// Normalize the path -n=t(s(n.split("/"),function(e){return!!e}),!i).join("/");return(i?"/":"")+n||"."}; -// path.normalize(path) -// posix version -n.normalize=function(e){var i=n.isAbsolute(e),r=a(e,-1)==="/"; -// Normalize the path -e=t(s(e.split("/"),function(e){return!!e}),!i).join("/");if(!e&&!i){e="."}if(e&&r){e+="/"}return(i?"/":"")+e}; -// posix version -n.isAbsolute=function(e){return e.charAt(0)==="/"}; -// posix version -n.join=function(){var e=Array.prototype.slice.call(arguments,0);return n.normalize(s(e,function(e,t){if(typeof e!=="string"){throw new TypeError("Arguments to path.join must be strings")}return e}).join("/"))}; -// path.relative(from, to) -// posix version -n.relative=function(e,t){e=n.resolve(e).substr(1);t=n.resolve(t).substr(1);function i(e){var t=0;for(;t=0;n--){if(e[n]!=="")break}if(t>n)return[];return e.slice(t,n-t+1)}var r=i(e.split("/"));var s=i(t.split("/"));var a=Math.min(r.length,s.length);var o=a;for(var l=0;l1?function(){var s=r?r.concat():[];n=t?n||this:this;return s.push.apply(s,arguments)=0;--i){r=n[i];t=e(r,t)}return t});A=we(function(e,t){return E(e,t[t.length-1],t.slice(0,-1))});C=we(function(e,t){var n,i,r;n=[];i=t;while((r=e(i))!=null){n.push(r[0]);i=r[1]}return n});S=function(e){return[].concat.apply([],e)};R=we(function(e,t){var n;return[].concat.apply([],function(){var i,r,s,a=[];for(i=0,s=(r=t).length;it){return 1}else if(ee(n)){return 1}else if(e(t)t){t=s}}return t};H=function(e){var t,n,i,r,s;t=e[0];for(n=0,r=(i=e.slice(1)).length;ne(n)){n=a}}return n});q=we(function(e,t){var n,i,r,s,a;n=t[0];for(i=0,s=(r=t.slice(1)).length;i1?function(){var s=r?r.concat():[];n=t?n||this:this;return s.push.apply(s,arguments)>>0;while(++nt?e:t});r=M(function(e,t){return e0){return 1}else{return 0}};l=M(function(e,t){return~~(e/t)});u=M(function(e,t){return e%t});c=M(function(e,t){return Math.floor(e/t)});h=M(function(e,t){var n;return(e%(n=t)+n)%n});f=function(e){return 1/e};p=Math.PI;d=p*2;m=Math.exp;g=Math.sqrt;v=Math.log;y=M(function(e,t){return Math.pow(e,t)});b=Math.sin;w=Math.tan;k=Math.cos;L=Math.asin;E=Math.acos;A=Math.atan;C=M(function(e,t){return Math.atan2(e,t)});S=function(e){return~~e};R=Math.round;N=Math.ceil;I=Math.floor;_=function(e){return e!==e};T=function(e){return e%2===0};x=function(e){return e%2!==0};O=M(function(e,t){var n;e=Math.abs(e);t=Math.abs(t);while(t!==0){n=e%t;e=t;t=n}return e});P=M(function(e,t){return Math.abs(Math.floor(e/O(e,t)*t))});t.exports={max:i,min:r,negate:s,abs:a,signum:o,quot:l,rem:u,div:c,mod:h,recip:f,pi:p,tau:d,exp:m,sqrt:g,ln:v,pow:y,sin:b,tan:w,cos:k,acos:E,asin:L,atan:A,atan2:C,truncate:S,round:R,ceiling:N,floor:I,isItNaN:_,even:T,odd:x,gcd:O,lcm:P};function M(e,t){var n,i=function(r){return e.length>1?function(){var s=r?r.concat():[];n=t?n||this:this;return s.push.apply(s,arguments)1?function(){var s=r?r.concat():[];n=t?n||this:this;return s.push.apply(s,arguments)1?n:n.toLowerCase())}).replace(/^([A-Z]+)/,function(e,t){if(t.length>1){return t+"-"}else{return t.toLowerCase()}})};t.exports={split:i,join:r,lines:s,unlines:a,words:o,unwords:l,chars:u,unchars:c,reverse:h,repeat:f,capitalize:p,camelize:d,dasherize:m};function g(e,t){var n,i=function(r){return e.length>1?function(){var s=r?r.concat():[];n=t?n||this:this;return s.push.apply(s,arguments)1?function(){var s=r?r.concat():[];n=t?n||this:this;return s.push.apply(s,arguments)=0&&e>1;return t?-n:n}/** - * Returns the base 64 VLQ encoded value. - */ -t.encode=function c(e){var t="";var n;var s=l(e);do{n=s&a;s>>>=r;if(s>0){ -// There are still more digits in this value, so we must make sure the -// continuation bit is marked. -n|=o}t+=i.encode(n)}while(s>0);return t};/** - * Decodes the next base 64 VLQ value from the given string and returns the - * value and the rest of the string via the out parameter. - */ -t.decode=function h(e,t){var n=0;var s=e.length;var l=0;var c=0;var h,f;do{if(n>=s){throw new Error("Expected more digits in base 64 VLQ value.")}f=i.decode(e.charAt(n++));h=!!(f&o);f&=a;l=l+(f<0){if(c.charAt(0)===";"){n++;c=c.slice(1);r=0}else if(c.charAt(0)===","){c=c.slice(1)}else{f={};f.generatedLine=n; -// Generated column. -a.decode(c,h);f.generatedColumn=r+h.value;r=f.generatedColumn;c=h.rest;if(c.length>0&&!this._nextCharIsMappingSeparator(c)){ -// Original source. -a.decode(c,h);f.source=this._sources.at(l+h.value);l+=h.value;c=h.rest;if(c.length===0||this._nextCharIsMappingSeparator(c)){throw new Error("Found a source, but no line and column")} -// Original line. -a.decode(c,h);f.originalLine=s+h.value;s=f.originalLine; -// Lines are stored 0-based -f.originalLine+=1;c=h.rest;if(c.length===0||this._nextCharIsMappingSeparator(c)){throw new Error("Found a source and line, but no column")} -// Original column. -a.decode(c,h);f.originalColumn=o+h.value;o=f.originalColumn;c=h.rest;if(c.length>0&&!this._nextCharIsMappingSeparator(c)){ -// Original name. -a.decode(c,h);f.name=this._names.at(u+h.value);u+=h.value;c=h.rest}}this.__generatedMappings.push(f);if(typeof f.originalLine==="number"){this.__originalMappings.push(f)}}}this.__generatedMappings.sort(i.compareByGeneratedPositions);this.__originalMappings.sort(i.compareByOriginalPositions)};/** - * Find the mapping that best matches the hypothetical "needle" mapping that - * we are searching for in the given "haystack" of mappings. - */ -l.prototype._findMapping=function h(e,t,n,i,s){ -// To return the position we are searching for, we must first find the -// mapping for the given position and then return the opposite position it -// points to. Because the mappings are sorted, we can use binary search to -// find the best mapping. -if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[i]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[i])}return r.search(e,t,s)};/** - * Compute the last column for each generated mapping. The last column is - * inclusive. - */ -l.prototype.computeColumnSpans=function f(){for(var e=0;e=0){var r=this._generatedMappings[n];if(r.generatedLine===t.generatedLine){var s=i.getArg(r,"source",null);if(s!=null&&this.sourceRoot!=null){s=i.join(this.sourceRoot,s)}return{source:s,line:i.getArg(r,"originalLine",null),column:i.getArg(r,"originalColumn",null),name:i.getArg(r,"name",null)}}}return{source:null,line:null,column:null,name:null}};/** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * availible. - */ -l.prototype.sourceContentFor=function d(e,t){if(!this.sourcesContent){return null}if(this.sourceRoot!=null){e=i.relative(this.sourceRoot,e)}if(this._sources.has(e)){return this.sourcesContent[this._sources.indexOf(e)]}var n;if(this.sourceRoot!=null&&(n=i.urlParse(this.sourceRoot))){ -// XXX: file:// URIs and absolute paths lead to unexpected behavior for -// many users. We can help them out when they expect file:// URIs to -// behave like it would if they were running a local HTTP server. See -// https://bugzilla.mozilla.org/show_bug.cgi?id=885597. -var r=e.replace(/^file:\/\//,"");if(n.scheme=="file"&&this._sources.has(r)){return this.sourcesContent[this._sources.indexOf(r)]}if((!n.path||n.path=="/")&&this._sources.has("/"+e)){return this.sourcesContent[this._sources.indexOf("/"+e)]}} -// This function is used recursively from -// IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we -// don't want to throw if we can't find the source - we just want to -// return null, so we provide a flag to exit gracefully. -if(t){return null}else{throw new Error('"'+e+'" is not in the SourceMap.')}};/** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -l.prototype.generatedPositionFor=function m(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:i.getArg(e,"column")};if(this.sourceRoot!=null){t.source=i.relative(this.sourceRoot,t.source)}var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(n>=0){var r=this._originalMappings[n];return{line:i.getArg(r,"generatedLine",null),column:i.getArg(r,"generatedColumn",null),lastColumn:i.getArg(r,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}};t.BasicSourceMapConsumer=l})},{"./array-set":23,"./base64-vlq":24,"./binary-search":27,"./source-map-consumer":30,"./util":33,amdefine:7}],27:[function(e,t,n){/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if(typeof i!=="function"){var i=e("amdefine")(t,e)}i(function(e,t,n){/** - * Recursive implementation of binary search. - * - * @param aLow Indices here and lower do not contain the needle. - * @param aHigh Indices here and higher do not contain the needle. - * @param aNeedle The element being searched for. - * @param aHaystack The non-empty array being searched. - * @param aCompare Function which takes two elements and returns -1, 0, or 1. - * @param aBias Either 'binarySearch.LEAST_UPPER_BOUND' or - * 'binarySearch.GREATEST_LOWER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the element we are - * searching for if the exact element cannot be found. - */ -function i(e,n,r,s,a,o){ -// This function terminates when one of the following is true: -// -// 1. We find the exact element we are looking for. -// -// 2. We did not find the exact element, but we can return the index of -// the next closest element. -// -// 3. We did not find the exact element, and there is no next-closest -// element than the one we are searching for, so we return -1. -var l=Math.floor((n-e)/2)+e;var u=a(r,s[l],true);if(u===0){ -// Found the element we are looking for. -return l}else if(u>0){ -// Our needle is greater than aHaystack[mid]. -if(n-l>1){ -// The element is in the upper half. -return i(l,n,r,s,a,o)} -// The exact needle element was not found in this haystack. Determine if -// we are in termination case (3) or (2) and return the appropriate thing. -if(o==t.LEAST_UPPER_BOUND){return n1){ -// The element is in the lower half. -return i(e,l,r,s,a,o)} -// The exact needle element was not found in this haystack. Determine if -// we are in termination case (3) or (2) and return the appropriate thing. -if(o==t.LEAST_UPPER_BOUND){return l}else{return e<0?-1:e}}}t.LEAST_UPPER_BOUND=1;t.GREATEST_LOWER_BOUND=2;/** - * This is an implementation of binary search which will always try and return - * the index of next highest value checked if there is no exact hit. This is - * because mappings between original and generated line/col pairs are single - * points, and there is an implicit region between each of them, so a miss - * just means that you aren't on the very start of a region. - * - * @param aNeedle The element you are looking for. - * @param aHaystack The array that is being searched. - * @param aCompare A function which takes the needle and an element in the - * array and returns -1, 0, or 1 depending on whether the needle is less - * than, equal to, or greater than the element, respectively. - * @param aBias Either 'exports.LEAST_UPPER_BOUND' or - * 'exports.GREATEST_LOWER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the element we are - * searching for if the exact element cannot be found. Defaults to - * 'exports.LEAST_UPPER_BOUND'. - */ -t.search=function r(e,n,s,a){var a=a||t.LEAST_UPPER_BOUND;if(n.length===0){return-1}return i(-1,n.length,e,n,s,a)}})},{amdefine:7}],28:[function(e,t,n){/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if(typeof i!=="function"){var i=e("amdefine")(t,e)}i(function(e,t,n){var i=e("./util");var r=e("./binary-search");var s=e("./source-map-consumer").SourceMapConsumer;var a=e("./basic-source-map-consumer").BasicSourceMapConsumer;/** - * An IndexedSourceMapConsumer instance represents a parsed source map which - * we can query for information. It differs from BasicSourceMapConsumer in - * that it takes "indexed" source maps (i.e. ones with a "sections" field) as - * input. - * - * The only parameter is a raw source map (either as a JSON string, or already - * parsed to an object). According to the spec for indexed source maps, they - * have the following attributes: - * - * - version: Which version of the source map spec this map is following. - * - file: Optional. The generated file this source map is associated with. - * - sections: A list of section definitions. - * - * Each value under the "sections" field has two fields: - * - offset: The offset into the original specified at which this section - * begins to apply, defined as an object with a "line" and "column" - * field. - * - map: A source map definition. This source map could also be indexed, - * but doesn't have to be. - * - * Instead of the "map" field, it's also possible to have a "url" field - * specifying a URL to retrieve a source map from, but that's currently - * unsupported. - * - * Here's an example source map, taken from the source map spec[0], but - * modified to omit a section which uses the "url" field. - * - * { - * version : 3, - * file: "app.js", - * sections: [{ - * offset: {line:100, column:10}, - * map: { - * version : 3, - * file: "section.js", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AAAA,E;;ABCDE;" - * } - * }], - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt - */ -function o(e){var t=e;if(typeof e==="string"){t=JSON.parse(e.replace(/^\)\]\}'/,""))}var n=i.getArg(t,"version");var r=i.getArg(t,"sections");if(n!=this._version){throw new Error("Unsupported version: "+n)}var a={line:-1,column:0};this._sections=r.map(function(e){if(e.url){ -// The url field will require support for asynchronicity. -// See https://github.com/mozilla/source-map/issues/16 -throw new Error("Support for url field in sections not implemented.")}var t=i.getArg(e,"offset");var n=i.getArg(t,"line");var r=i.getArg(t,"column");if(nn||r==n&&a>=s||i.compareByGeneratedPositions(e,t)<=0}/** - * A data structure to provide a sorted view of accumulated mappings in a - * performance conscious manner. It trades a neglibable overhead in general - * case for a large speedup in case of mappings being added in order. - */ -function s(){this._array=[];this._sorted=true; -// Serves as infimum -this._last={generatedLine:-1,generatedColumn:0}}/** - * Iterate through internal items. This method takes the same arguments that - * `Array.prototype.forEach` takes. - * - * NOTE: The order of the mappings is NOT guaranteed. - */ -s.prototype.unsortedForEach=function a(e,t){this._array.forEach(e,t)};/** - * Add the given source mapping. - * - * @param Object aMapping - */ -s.prototype.add=function o(e){var t;if(r(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};/** - * Returns the flat, sorted array of mappings. The mappings are sorted by - * generated position. - * - * WARNING: This method returns internal data without copying, for - * performance. The return value must NOT be mutated, and should be treated as - * an immutable borrow. If you want to take ownership, you must make your own - * copy. - */ -s.prototype.toArray=function l(){if(!this._sorted){this._array.sort(i.compareByGeneratedPositions);this._sorted=true}return this._array};t.MappingList=s})},{"./util":33,amdefine:7}],30:[function(e,t,n){/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if(typeof i!=="function"){var i=e("amdefine")(t,e)}i(function(e,t,n){var i=e("./util");function r(t){var n=t;if(typeof t==="string"){n=JSON.parse(t.replace(/^\)\]\}'/,""))} -// We do late requires because the subclasses require() this file. -if(n.sections!=null){var i=e("./indexed-source-map-consumer");return new i.IndexedSourceMapConsumer(n)}else{var r=e("./basic-source-map-consumer");return new r.BasicSourceMapConsumer(n)}}r.fromSourceMap=function(t){var n=e("./basic-source-map-consumer");return n.BasicSourceMapConsumer.fromSourceMap(t)};/** - * The version of the source mapping spec that we are consuming. - */ -r.prototype._version=3; -// `__generatedMappings` and `__originalMappings` are arrays that hold the -// parsed mapping coordinates from the source map's "mappings" attribute. They -// are lazily instantiated, accessed via the `_generatedMappings` and -// `_originalMappings` getters respectively, and we only parse the mappings -// and create these arrays once queried for a source location. We jump through -// these hoops because there can be many thousands of mappings, and parsing -// them is expensive, so we only want to do it if we must. -// -// Each object in the arrays is of the form: -// -// { -// generatedLine: The line number in the generated code, -// generatedColumn: The column number in the generated code, -// source: The path to the original source file that generated this -// chunk of code, -// originalLine: The line number in the original source that -// corresponds to this chunk of generated code, -// originalColumn: The column number in the original source that -// corresponds to this chunk of generated code, -// name: The name of the original symbol which generated this chunk of -// code. -// } -// -// All properties except for `generatedLine` and `generatedColumn` can be -// `null`. -// -// `_generatedMappings` is ordered by the generated positions. -// -// `_originalMappings` is ordered by the original positions. -r.prototype.__generatedMappings=null;Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){if(!this.__generatedMappings){this.__generatedMappings=[];this.__originalMappings=[];this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});r.prototype.__originalMappings=null;Object.defineProperty(r.prototype,"_originalMappings",{get:function(){if(!this.__originalMappings){this.__generatedMappings=[];this.__originalMappings=[];this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});r.prototype._nextCharIsMappingSeparator=function s(e){var t=e.charAt(0);return t===";"||t===","};/** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ -r.prototype._parseMappings=function a(e,t){throw new Error("Subclasses must implement _parseMappings")};r.GENERATED_ORDER=1;r.ORIGINAL_ORDER=2;r.LEAST_UPPER_BOUND=1;r.GREATEST_LOWER_BOUND=2;/** - * Iterate over each mapping between an original source/line/column and a - * generated line/column in this source map. - * - * @param Function aCallback - * The function that is called with each mapping. - * @param Object aContext - * Optional. If specified, this object will be the value of `this` every - * time that `aCallback` is called. - * @param aOrder - * Either `SourceMapConsumer.GENERATED_ORDER` or - * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to - * iterate over the mappings sorted by the generated file's line/column - * order or the original's source/line/column order, respectively. Defaults to - * `SourceMapConsumer.GENERATED_ORDER`. - */ -r.prototype.eachMapping=function o(e,t,n){var s=t||null;var a=n||r.GENERATED_ORDER;var o;switch(a){case r.GENERATED_ORDER:o=this._generatedMappings;break;case r.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var l=this.sourceRoot;o.map(function(e){var t=e.source;if(t!=null&&l!=null){t=i.join(l,t)}return{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}}).forEach(e,s)};/** - * Returns all generated line and column information for the original source - * and line provided. The only argument is an object with the following - * properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - * and an array of objects is returned, each with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ -r.prototype.allGeneratedPositionsFor=function l(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:0};if(this.sourceRoot!=null){t.source=i.relative(this.sourceRoot,t.source)}var n=[];var r=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(r>=0){var s=this._originalMappings[r]; -// Iterate until either we run out of mappings, or we run into -// a mapping for a different line. Since mappings are sorted, this is -// guaranteed to find all mappings for the line we are interested in. -while(s&&s.originalLine===t.originalLine){n.push({line:i.getArg(s,"generatedLine",null),column:i.getArg(s,"generatedColumn",null),lastColumn:i.getArg(s,"lastGeneratedColumn",null)});s=this._originalMappings[++r]}}return n};t.SourceMapConsumer=r})},{"./basic-source-map-consumer":26,"./indexed-source-map-consumer":28,"./util":33,amdefine:7}],31:[function(e,t,n){/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if(typeof i!=="function"){var i=e("amdefine")(t,e)}i(function(e,t,n){var i=e("./base64-vlq");var r=e("./util");var s=e("./array-set").ArraySet;var a=e("./mapping-list").MappingList;/** - * An instance of the SourceMapGenerator represents a source map which is - * being built incrementally. You may pass an object with the following - * properties: - * - * - file: The filename of the generated source. - * - sourceRoot: A root for all relative URLs in this source map. - */ -function o(e){if(!e){e={}}this._file=r.getArg(e,"file",null);this._sourceRoot=r.getArg(e,"sourceRoot",null);this._skipValidation=r.getArg(e,"skipValidation",false);this._sources=new s;this._names=new s;this._mappings=new a;this._sourcesContents=null}o.prototype._version=3;/** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ -o.fromSourceMap=function l(e){var t=e.sourceRoot;var n=new o({file:e.file,sourceRoot:t});e.eachMapping(function(e){var i={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){i.source=e.source;if(t!=null){i.source=r.relative(t,i.source)}i.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){i.name=e.name}}n.addMapping(i)});e.sources.forEach(function(t){var i=e.sourceContentFor(t);if(i!=null){n.setSourceContent(t,i)}});return n};/** - * Add a single mapping from original source line and column to the generated - * source's line and column for this source map being created. The mapping - * object should have the following properties: - * - * - generated: An object with the generated line and column positions. - * - original: An object with the original line and column positions. - * - source: The original source file (relative to the sourceRoot). - * - name: An optional original token name for this mapping. - */ -o.prototype.addMapping=function u(e){var t=r.getArg(e,"generated");var n=r.getArg(e,"original",null);var i=r.getArg(e,"source",null);var s=r.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(t,n,i,s)}if(i!=null&&!this._sources.has(i)){this._sources.add(i)}if(s!=null&&!this._names.has(s)){this._names.add(s)}this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:i,name:s})};/** - * Set the source content for a source file. - */ -o.prototype.setSourceContent=function c(e,t){var n=e;if(this._sourceRoot!=null){n=r.relative(this._sourceRoot,n)}if(t!=null){ -// Add the source content to the _sourcesContents map. -// Create a new _sourcesContents map if the property is null. -if(!this._sourcesContents){this._sourcesContents={}}this._sourcesContents[r.toSetString(n)]=t}else if(this._sourcesContents){ -// Remove the source file from the _sourcesContents map. -// If the _sourcesContents map is empty, set the property to null. -delete this._sourcesContents[r.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};/** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - * @param aSourceMapPath Optional. The dirname of the path to the source map - * to be applied. If relative, it is relative to the SourceMapConsumer. - * This parameter is needed when the two source maps aren't in the same - * directory, and the source map to be applied contains relative source - * paths. If so, those relative source paths need to be rewritten - * relative to the SourceMapGenerator. - */ -o.prototype.applySourceMap=function h(e,t,n){var i=t; -// If aSourceFile is omitted, we will use the file property of the SourceMap -if(t==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}i=e.file}var a=this._sourceRoot; -// Make "sourceFile" relative if an absolute Url is passed. -if(a!=null){i=r.relative(a,i)} -// Applying the SourceMap can add and remove items from the sources and -// the names array. -var o=new s;var l=new s; -// Find mappings for the "sourceFile" -this._mappings.unsortedForEach(function(t){if(t.source===i&&t.originalLine!=null){ -// Check if it can be mapped by the source map, then update the mapping. -var s=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});if(s.source!=null){ -// Copy mapping -t.source=s.source;if(n!=null){t.source=r.join(n,t.source)}if(a!=null){t.source=r.relative(a,t.source)}t.originalLine=s.line;t.originalColumn=s.column;if(s.name!=null){t.name=s.name}}}var u=t.source;if(u!=null&&!o.has(u)){o.add(u)}var c=t.name;if(c!=null&&!l.has(c)){l.add(c)}},this);this._sources=o;this._names=l; -// Copy sourcesContents of applied map. -e.sources.forEach(function(t){var i=e.sourceContentFor(t);if(i!=null){if(n!=null){t=r.join(n,t)}if(a!=null){t=r.relative(a,t)}this.setSourceContent(t,i)}},this)};/** - * A mapping can have one of the three levels of data: - * - * 1. Just the generated position. - * 2. The Generated position, original position, and original source. - * 3. Generated and original position, original source, as well as a name - * token. - * - * To maintain consistency, we validate that any new mapping being added falls - * in to one of these categories. - */ -o.prototype._validateMapping=function f(e,t,n,i){if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!t&&!n&&!i){ -// Case 1. -return}else if(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n){ -// Cases 2 and 3. -return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:i}))}};/** - * Serialize the accumulated mappings in to the stream of base 64 VLQs - * specified by the source map format. - */ -o.prototype._serializeMappings=function p(){var e=0;var t=1;var n=0;var s=0;var a=0;var o=0;var l="";var u;var c=this._mappings.toArray();for(var h=0,f=c.length;h0){if(!r.compareByGeneratedPositions(u,c[h-1])){continue}l+=","}}l+=i.encode(u.generatedColumn-e);e=u.generatedColumn;if(u.source!=null){l+=i.encode(this._sources.indexOf(u.source)-o);o=this._sources.indexOf(u.source); -// lines are stored 0-based in SourceMap spec version 3 -l+=i.encode(u.originalLine-1-s);s=u.originalLine-1;l+=i.encode(u.originalColumn-n);n=u.originalColumn;if(u.name!=null){l+=i.encode(this._names.indexOf(u.name)-a);a=this._names.indexOf(u.name)}}}return l};o.prototype._generateSourcesContent=function d(e,t){return e.map(function(e){if(!this._sourcesContents){return null}if(t!=null){e=r.relative(t,e)}var n=r.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)};/** - * Externalize the source map. - */ -o.prototype.toJSON=function m(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};/** - * Render the source map being generated to a string. - */ -o.prototype.toString=function g(){return JSON.stringify(this.toJSON())};t.SourceMapGenerator=o})},{"./array-set":23,"./base64-vlq":24,"./mapping-list":29,"./util":33,amdefine:7}],32:[function(e,t,n){/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if(typeof i!=="function"){var i=e("amdefine")(t,e)}i(function(e,t,n){var i=e("./source-map-generator").SourceMapGenerator;var r=e("./util"); -// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other -// operating systems these days (capturing the result). -var s=/(\r?\n)/; -// Newline character code for charCodeAt() comparisons -var a=10; -// Private symbol for identifying `SourceNode`s when multiple versions of -// the source-map library are loaded. This MUST NOT CHANGE across -// versions! -var o="$$$isSourceNode$$$";/** - * SourceNodes provide a way to abstract over interpolating/concatenating - * snippets of generated JavaScript source code while maintaining the line and - * column information associated with the original source code. - * - * @param aLine The original line number. - * @param aColumn The original column number. - * @param aSource The original source's filename. - * @param aChunks Optional. An array of strings which are snippets of - * generated JS, or other SourceNodes. - * @param aName The original identifier. - */ -function l(e,t,n,i,r){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=t==null?null:t;this.source=n==null?null:n;this.name=r==null?null:r;this[o]=true;if(i!=null)this.add(i)}/** - * Creates a SourceNode from generated code and a SourceMapConsumer. - * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - * @param aRelativePath Optional. The path that relative sources in the - * SourceMapConsumer should be relative to. - */ -l.fromStringWithSourceMap=function u(e,t,n){ -// The SourceNode we want to fill with the generated code -// and the SourceMap -var i=new l; -// All even indices of this array are one line of the generated code, -// while all odd indices are the newlines between two adjacent lines -// (since `REGEX_NEWLINE` captures its match). -// Processed fragments are removed from this array, by calling `shiftNextLine`. -var a=e.split(s);var o=function(){var e=a.shift(); -// The last line of a file might not have a newline. -var t=a.shift()||"";return e+t}; -// We need to remember the position of "remainingLines" -var u=1,c=0; -// The generate SourceNodes we need a code range. -// To extract it current and last mapping is used. -// Here we store the last mapping. -var h=null;t.eachMapping(function(e){if(h!==null){ -// We add the code from "lastMapping" to "mapping": -// First check if there is a new line in between. -if(u0){if(h){ -// Associate the remaining code in the current line with "lastMapping" -f(h,o())} -// and add the remaining lines without any mapping -i.add(a.join(""))} -// Copy sourcesContent into SourceNode -t.sources.forEach(function(e){var s=t.sourceContentFor(e);if(s!=null){if(n!=null){e=r.join(n,e)}i.setSourceContent(e,s)}});return i;function f(e,t){if(e===null||e.source===undefined){i.add(t)}else{var s=n?r.join(n,e.source):e.source;i.add(new l(e.originalLine,e.originalColumn,s,t,e.name))}}};/** - * Add a chunk of generated JS to this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ -l.prototype.add=function c(e){if(Array.isArray(e)){e.forEach(function(e){this.add(e)},this)}else if(e[o]||typeof e==="string"){if(e){this.children.push(e)}}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};/** - * Add a chunk of generated JS to the beginning of this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ -l.prototype.prepend=function h(e){if(Array.isArray(e)){for(var t=e.length-1;t>=0;t--){this.prepend(e[t])}}else if(e[o]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};/** - * Walk over the tree of JS snippets in this node and its children. The - * walking function is called once for each snippet of JS and is passed that - * snippet and the its original associated source's line/column location. - * - * @param aFn The traversal function. - */ -l.prototype.walk=function f(e){var t;for(var n=0,i=this.children.length;n0){t=[];for(n=0;n/..' parts. - * - * Based on code in the Node.js 'path' core module. - * - * @param aPath The path or url to normalize. - */ -function l(e){var t=e;var n=a(e);if(n){if(!n.path){return e}t=n.path}var i=t.charAt(0)==="/";var r=t.split(/\/+/);for(var s,l=0,u=r.length-1;u>=0;u--){s=r[u];if(s==="."){r.splice(u,1)}else if(s===".."){l++}else if(l>0){if(s===""){ -// The first part is blank if the path is absolute. Trying to go -// above the root is a no-op. Therefore we can remove all '..' parts -// directly after the root. -r.splice(u+1,l);l=0}else{r.splice(u,2);l--}}}t=r.join("/");if(t===""){t=i?"/":"."}if(n){n.path=t;return o(n)}return t}t.normalize=l;/** - * Joins two paths/URLs. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be joined with the root. - * - * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a - * scheme-relative URL: Then the scheme of aRoot, if any, is prepended - * first. - * - Otherwise aPath is a path. If aRoot is a URL, then its path portion - * is updated with the result and aRoot is returned. Otherwise the result - * is returned. - * - If aPath is absolute, the result is aPath. - * - Otherwise the two paths are joined with a slash. - * - Joining for example 'http://' and 'www.example.com' is also supported. - */ -function u(e,t){if(e===""){e="."}if(t===""){t="."}var n=a(t);var i=a(e);if(i){e=i.path||"/"} -// `join(foo, '//www.example.org')` -if(n&&!n.scheme){if(i){n.scheme=i.scheme}return o(n)}if(n||t.match(s)){return t} -// `join('http://', 'www.example.com')` -if(i&&!i.host&&!i.path){i.host=t;return o(i)}var r=t.charAt(0)==="/"?t:l(e.replace(/\/+$/,"")+"/"+t);if(i){i.path=r;return o(i)}return r}t.join=u;/** - * Make a path relative to a URL or another path. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be made relative to aRoot. - */ -function c(e,t){if(e===""){e="."}e=e.replace(/\/$/,""); -// XXX: It is possible to remove this block, and the tests still pass! -var n=a(e);if(t.charAt(0)=="/"&&n&&n.path=="/"){return t.slice(1)}return t.indexOf(e+"/")===0?t.substr(e.length+1):t}t.relative=c;/** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ -function h(e){return"$"+e}t.toSetString=h;function f(e){return e.substr(1)}t.fromSetString=f;function p(e,t){var n=e||"";var i=t||"";return(n>i)-(n - console.log("toString(): ", new Error().stack) - tmp-to-string.apply this, args -*/ -(Node = function(){ - throw Error('unimplemented'); -}).prototype = { - compile: function(options, level){ - var o, node, code, that, i$, len$, tmp; - o = import$({}, options); - if (level != null) { - o.level = level; - } - node = this.unfoldSoak(o) || this; - if (o.level && node.isStatement()) { - return node.compileClosure(o); - } - code = (node.tab = o.indent, node).compileNode(o); - if (that = node.temps) { - for (i$ = 0, len$ = that.length; i$ < len$; ++i$) { - tmp = that[i$]; - o.scope.free(tmp); - } - } - return code; - }, - compileClosure: function(o){ - var that, fun, call, hasArgs, hasThis, out; - if (that = this.getJump()) { - that.carp('inconvertible statement'); - } - fun = Fun([], Block(this)); - call = Call(); - if (o.inGenerator) { - fun.generator = true; - } - this.traverseChildren(function(it){ - switch (it.value) { - case 'this': - hasThis = true; - break; - case 'arguments': - hasArgs = it.value = 'args$'; - } - }); - if (hasThis) { - call.args.push(Literal('this')); - call.method = '.call'; - } - if (hasArgs) { - call.args.push(Literal('arguments')); - fun.params.push(Var('args$')); - } - out = Parens(Chain((fun.wrapper = true, fun['void'] = this['void'], fun), [call]), true); - if (o.inGenerator) { - out = new Yield('yieldfrom', out); - } - return out.compile(o); - }, - compileBlock: function(o, node){ - var code; - if (!snEmpty(code = node != null ? node.compile(o, LEVEL_TOP) : void 8)) { - return sn(null, "{\n", code, "\n" + this.tab + "}"); - } else { - return sn(node, '{}'); - } - }, - cache: function(o, once, level){ - var ref$, sub, ref; - if (!this.isComplex()) { - return [ref$ = level != null ? this.compile(o, level) : this, ref$]; - } - sub = Assign(ref = Var(o.scope.temporary()), this); - if (level != null) { - sub = sub.compile(o, level); - if (once) { - o.scope.free(ref.value); - } - return [sub, ref.value]; - } - if (once) { - return [sub, (ref.temp = true, ref)]; - } else { - return [sub, ref, [ref.value]]; - } - }, - compileLoopReference: function(o, name, ret){ - var ref$, asn, tmp; - if (this instanceof Var && o.scope.check(this.value) || this instanceof Unary && ((ref$ = this.op) === '+' || ref$ === '-') && (-1 / 0 < (ref$ = +this.it.value) && ref$ < 1 / 0) || this instanceof Literal && !this.isComplex()) { - return [ref$ = this.compile(o), ref$]; - } - asn = Assign(Var(tmp = o.scope.temporary(name)), this); - ret || (asn['void'] = true); - return [tmp, asn.compile(o, ret ? LEVEL_CALL : LEVEL_PAREN)]; - }, - eachChild: function(fn){ - var i$, ref$, len$, name, child, j$, len1$, i, node, that; - for (i$ = 0, len$ = (ref$ = this.children).length; i$ < len$; ++i$) { - name = ref$[i$]; - if (child = this[name]) { - if ('length' in child) { - for (j$ = 0, len1$ = child.length; j$ < len1$; ++j$) { - i = j$; - node = child[j$]; - if (that = fn(node, name, i)) { - return that; - } - } - } else { - if ((that = fn(child, name)) != null) { - return that; - } - } - } - } - }, - traverseChildren: function(fn, xscope){ - var this$ = this; - return this.eachChild(function(node, name, index){ - var ref$; - return (ref$ = fn(node, this$, name, index)) != null - ? ref$ - : node.traverseChildren(fn, xscope); - }); - }, - anaphorize: function(){ - var base, name, ref$; - this.children = this.aTargets; - if (this.eachChild(hasThat)) { - if ((base = this)[name = this.aSource] instanceof Existence) { - base = base[name]; - name = 'it'; - } - if (base[name].value !== 'that') { - base[name] = Assign(Var('that'), base[name]); - } - } - function hasThat(it){ - var that; - return it.value === 'that' || ((that = it.aSource) - ? (that = it[that]) ? hasThat(that) : void 8 - : it.eachChild(hasThat)); - } - delete this.children; - return ref$ = this[this.aSource], ref$.cond = true, ref$; - }, - carp: function(msg, type){ - type == null && (type = SyntaxError); - throw type(msg + " on line " + (this.line || this.traverseChildren(function(it){ - return it.line; - }))); - }, - delegate: function(names, fn){ - var i$, len$; - for (i$ = 0, len$ = names.length; i$ < len$; ++i$) { - (fn$.call(this, names[i$])); - } - function fn$(name){ - this[name] = function(it){ - return fn.call(this, name, it); - }; - } - }, - children: [], - terminator: ';', - isComplex: YES, - isStatement: NO, - isAssignable: NO, - isCallable: NO, - isEmpty: NO, - isArray: NO, - isString: NO, - isRegex: NO, - isMatcher: function(){ - return this.isString() || this.isRegex(); - }, - assigns: NO, - ripName: VOID, - unfoldSoak: VOID, - unfoldAssign: VOID, - unparen: THIS, - unwrap: THIS, - maybeKey: THIS, - expandSlice: THIS, - varName: String, - getAccessors: VOID, - getCall: VOID, - getDefault: VOID, - getJump: VOID, - invert: function(){ - return Unary('!', this, true); - }, - invertCheck: function(it){ - if (it.inverted) { - return this.invert(); - } else { - return this; - } - }, - addElse: function($else){ - this['else'] = $else; - return this; - }, - makeReturn: function(ref, obj){ - var items, kv, i, v; - if (obj) { - items = this instanceof Arr - ? (this.items[0] == null || this.items[1] == null && this.carp('must specify both key and value for object comprehension'), this.items) - : (kv = 'keyValue$', (function(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = [Assign(Var(kv), this), Var(kv)]).length; i$ < len$; ++i$) { - i = i$; - v = ref$[i$]; - results$.push(Chain(v).add(Index(Literal(i)))); - } - return results$; - }.call(this))); - return Assign(Chain(Var(ref)).add(Index(items[0], '.', true)), items[1]); - } else if (ref) { - return Call.make(JS(ref + '.push'), [this]); - } else { - return Return(this); - } - }, - show: String, - toString: function(idt){ - var tree, that; - idt || (idt = ''); - tree = '\n' + idt + this.constructor.displayName; - if (that = this.show()) { - tree += ' ' + that; - } - this.eachChild(function(it){ - tree += it.toString(idt + TAB); - }); - return tree; - }, - stringify: function(space){ - return JSON.stringify(this, null, space); - }, - toJSON: function(){ - return import$({ - type: this.constructor.displayName - }, this); - } -}; -exports.parse = function(json){ - return exports.fromJSON(JSON.parse(json)); -}; -exports.fromJSON = (function(){ - function fromJSON(it){ - var that, node, key, val, i$, len$, v, results$ = []; - if (!(it && typeof it === 'object')) { - return it; - } - if (that = it.type) { - node = clone$(exports[that].prototype); - for (key in it) { - val = it[key]; - node[key] = fromJSON(val); - } - return node; - } - if (it.length != null) { - for (i$ = 0, len$ = it.length; i$ < len$; ++i$) { - v = it[i$]; - results$.push(fromJSON(v)); - } - return results$; - } else { - return it; - } - } - return fromJSON; -}()); -Negatable = { - show: function(){ - return this.negated && '!'; - }, - invert: function(){ - this.negated = !this.negated; - return this; - } -}; -exports.Block = Block = (function(superclass){ - var prototype = extend$((import$(Block, superclass).displayName = 'Block', Block), superclass).prototype, constructor = Block; - function Block(body){ - var this$ = this instanceof ctor$ ? this : new ctor$; - body || (body = []); - if ('length' in body) { - this$.lines = body; - } else { - this$.lines = []; - this$.add(body); - } - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['lines']; - prototype.toJSON = function(){ - delete this.back; - return superclass.prototype.toJSON.call(this); - }; - prototype.add = function(it){ - var that, ref$; - it = it.unparen(); - switch (false) { - case !(that = this.back): - that.add(it); - break; - case !(that = it.lines): - (ref$ = this.lines).push.apply(ref$, that); - break; - default: - this.lines.push(it); - if (that = (ref$ = it.back, delete it.back, ref$)) { - this.back = that; - } - } - return this; - }; - prototype.prepend = function(){ - var ref$; - (ref$ = this.lines).splice.apply(ref$, [this.neck(), 0].concat(slice$.call(arguments))); - return this; - }; - prototype.pipe = function(target, type){ - var args; - args = type === '|>' ? this.lines.pop() : target; - if (toString$.call(args).slice(8, -1) !== 'Array') { - args = [args]; - } - switch (type) { - case '|>': - this.lines.push(Call.make(target, args, { - pipe: true - })); - break; - case '<|': - this.lines.push(Call.make(this.lines.pop(), args)); - } - return this; - }; - prototype.unwrap = function(){ - if (this.lines.length === 1) { - return this.lines[0]; - } else { - return this; - } - }; - prototype.chomp = function(){ - var lines, i, that; - lines = this.lines; - i = lines.length; - while (that = lines[--i]) { - if (!that.comment) { - break; - } - } - lines.length = i + 1; - return this; - }; - prototype.neck = function(){ - var pos, i$, ref$, len$, x; - pos = 0; - for (i$ = 0, len$ = (ref$ = this.lines).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (!(x.comment || x instanceof Literal)) { - break; - } - ++pos; - } - return pos; - }; - prototype.isComplex = function(){ - var ref$; - return this.lines.length > 1 || ((ref$ = this.lines[0]) != null ? ref$.isComplex() : void 8); - }; - prototype.delegate(['isCallable', 'isArray', 'isString', 'isRegex'], function(it){ - var ref$, ref1$; - return (ref$ = (ref1$ = this.lines)[ref1$.length - 1]) != null ? ref$[it]() : void 8; - }); - prototype.getJump = function(it){ - var i$, ref$, len$, node, that; - for (i$ = 0, len$ = (ref$ = this.lines).length; i$ < len$; ++i$) { - node = ref$[i$]; - if (that = node.getJump(it)) { - return that; - } - } - }; - prototype.makeReturn = function(){ - var that, ref$, key$, ref1$; - this.chomp(); - if (that = (ref1$ = ref$ = this.lines)[key$ = ref1$.length - 1] != null ? ref$[key$] = (ref$ = ref$[key$]).makeReturn.apply(ref$, arguments) : void 8) { - if (that instanceof Return && !that.it) { - --this.lines.length; - } - } - return this; - }; - prototype.compile = function(o, level){ - var tab, codes, i$, ref$, len$, node, code; - level == null && (level = o.level); - if (level) { - return this.compileExpressions(o, level); - } - o.block = this; - tab = o.indent; - codes = []; - for (i$ = 0, len$ = (ref$ = this.lines).length; i$ < len$; ++i$) { - node = ref$[i$]; - node = node.unfoldSoak(o) || node; - if (snEmpty(code = (node.front = true, node).compile(o, level))) { - continue; - } - codes.push(tab); - codes.push(code); - node.isStatement() || codes.push(node.terminator); - codes.push('\n'); - } - codes.pop(); - return sn.apply(null, [null].concat(slice$.call(codes))); - }; - prototype.compileRoot = function(options){ - var o, saveTo, ref$, bare, prefix, ref1$, code, result; - o = (import$({ - level: LEVEL_TOP, - scope: this.scope = Scope.root = new Scope - }, options)); - if (saveTo = (ref$ = o.saveScope, delete o.saveScope, ref$)) { - o.scope = saveTo.savedScope || (saveTo.savedScope = o.scope); - } - delete o.filename; - o.indent = (bare = (ref$ = o.bare, delete o.bare, ref$)) ? '' : TAB; - if (/^\s*(?:[/#]|javascript:)/.test((ref$ = this.lines[0]) != null ? ref$.code : void 8)) { - prefix = this.lines.shift().code + '\n'; - } - if ((ref1$ = o.eval, delete o.eval, ref1$) && this.chomp().lines.length) { - if (bare) { - this.lines.push(Parens(this.lines.pop())); - } else { - this.makeReturn(); - } - } - code = [this.compileWithDeclarations(o)]; - bare || (code = ["(function(){\n"].concat(slice$.call(code), ["\n}).call(this);\n"])); - return result = sn.apply(null, [null, prefix || []].concat(slice$.call(code))); - }; - prototype.compileWithDeclarations = function(o){ - var pre, i, rest, post, that; - o.level = LEVEL_TOP; - pre = []; - if (i = this.neck()) { - rest = this.lines.splice(i, 9e9); - pre = [this.compile(o), "\n"]; - this.lines = rest; - } - if (snEmpty(post = this.compile(o))) { - return sn(this, pre[0] || []); - } - return sn.apply(null, [null].concat(slice$.call(pre), [(that = this.scope) ? that.emit(post, o.indent) : post])); - }; - prototype.compileExpressions = function(o, level){ - var lines, i, that, code, last, i$, len$, node; - lines = this.chomp().lines; - i = -1; - while (that = lines[++i]) { - if (that.comment) { - lines.splice(i--, 1); - } - } - if (!lines.length) { - lines.push(Literal('void')); - } - lines[0].front = this.front; - lines[lines.length - 1]['void'] = this['void']; - if (!lines[1]) { - return lines[0].compile(o, level); - } - code = []; - last = lines.pop(); - for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) { - node = lines[i$]; - code.push((node['void'] = true, node).compile(o, LEVEL_PAREN), ', '); - } - code.push(last.compile(o, LEVEL_PAREN)); - if (level < LEVEL_LIST) { - return sn.apply(null, [null].concat(slice$.call(code))); - } else { - return sn.apply(null, [null, "("].concat(slice$.call(code), [")"])); - } - }; - return Block; -}(Node)); -Atom = (function(superclass){ - var prototype = extend$((import$(Atom, superclass).displayName = 'Atom', Atom), superclass).prototype, constructor = Atom; - prototype.show = function(){ - return this.value; - }; - prototype.isComplex = NO; - function Atom(){ - Atom.superclass.apply(this, arguments); - } - return Atom; -}(Node)); -exports.Literal = Literal = (function(superclass){ - var prototype = extend$((import$(Literal, superclass).displayName = 'Literal', Literal), superclass).prototype, constructor = Literal; - function Literal(value){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.value = value; - if (value.js) { - return JS(value + "", true); - } - if (value === 'super') { - return new Super; - } - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.isEmpty = function(){ - var ref$; - return (ref$ = this.value) === 'void' || ref$ === 'null'; - }; - prototype.isCallable = function(){ - var ref$; - return (ref$ = this.value) === 'this' || ref$ === 'eval' || ref$ === '..'; - }; - prototype.isString = function(){ - return 0 <= '\'"'.indexOf((this.value + "").charAt()); - }; - prototype.isRegex = function(){ - return (this.value + "").charAt() === '/'; - }; - prototype.isComplex = function(){ - return this.isRegex() || this.value === 'debugger'; - }; - prototype.isWhat = function(){ - switch (false) { - case !this.isEmpty(): - return 'empty'; - case !this.isCallable(): - return 'callable'; - case !this.isString(): - return 'string'; - case !this.isRegex(): - return 'regex'; - case !this.isComplex(): - return 'complex'; - default: - - } - }; - prototype.varName = function(){ - if (/^\w+$/.test(this.value)) { - return '$' + this.value; - } else { - return ''; - } - }; - prototype.makeReturn = function(it){ - if (!it && this.value === 'debugger') { - return this; - } else { - return superclass.prototype.makeReturn.apply(this, arguments); - } - }; - prototype.compile = function(o, level){ - var val, ref$; - level == null && (level = o.level); - switch (val = this.value + "") { - case 'this': - return sn(this, ((ref$ = o.scope.fun) != null ? ref$.bound : void 8) || val); - case 'void': - if (!level) { - return sn(this, ''); - } - val += ' 8'; - // fallthrough - case 'null': - if (level === LEVEL_CALL) { - this.carp('invalid use of ' + this.value); - } - break; - case 'on': - case 'yes': - val = 'true'; - break; - case 'off': - case 'no': - val = 'false'; - break; - case '*': - this.carp('stray star'); - break; - case '..': - if (!(val = o.ref)) { - this.carp('stray reference'); - } - this.cascadee || (val.erred = true); - break; - case 'debugger': - if (level) { - return sn(this, "(function(){ debugger; }())"); - } - } - return sn(this, snSafe(val)); - }; - return Literal; -}(Atom)); -exports.Var = Var = (function(superclass){ - var prototype = extend$((import$(Var, superclass).displayName = 'Var', Var), superclass).prototype, constructor = Var; - function Var(value){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.value = value; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.isAssignable = prototype.isCallable = YES; - prototype.assigns = function(it){ - return it === this.value; - }; - prototype.maybeKey = function(){ - var ref$; - return ref$ = Key(this.value), ref$.line = this.line, ref$; - }; - prototype.varName = prototype.show; - prototype.compile = function(o){ - return sn(this, this.temp - ? o.scope.free(this.value) - : this.value); - }; - return Var; -}(Atom)); -exports.Key = Key = (function(superclass){ - var prototype = extend$((import$(Key, superclass).displayName = 'Key', Key), superclass).prototype, constructor = Key; - function Key(name, reserved){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.reserved = reserved || name.reserved; - this$.name = '' + name; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.isComplex = NO; - prototype.assigns = function(it){ - return it === this.name; - }; - prototype.varName = function(){ - var name; - name = this.name; - if (this.reserved || (name === 'arguments' || name === 'eval')) { - return "$" + name; - } else { - return name; - } - }; - prototype.show = function(){ - if (this.reserved) { - return "'" + this.name + "'"; - } else { - return this.name; - } - }; - prototype.compile = function(){ - return sn(this, this.show()); - }; - return Key; -}(Node)); -exports.Index = Index = (function(superclass){ - var prototype = extend$((import$(Index, superclass).displayName = 'Index', Index), superclass).prototype, constructor = Index; - function Index(key, symbol, init){ - var k, this$ = this instanceof ctor$ ? this : new ctor$; - symbol || (symbol = '.'); - if (init && key instanceof Arr) { - switch (key.items.length) { - case 1: - if (!((k = key.items[0]) instanceof Splat)) { - key = Parens(k); - } - } - } - switch (symbol) { - case '[]': - this$.vivify = Arr; - break; - case '{}': - this$.vivify = Obj; - break; - default: - if ('=' === symbol.slice(-1)) { - this$.assign = symbol.slice(1); - } - } - this$.key = key; - this$.symbol = symbol; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['key']; - prototype.show = function(){ - return [this.soak ? '?' : void 8] + this.symbol; - }; - prototype.isComplex = function(){ - return this.key.isComplex(); - }; - prototype.varName = function(){ - var ref$; - return ((ref$ = this.key) instanceof Key || ref$ instanceof Literal) && this.key.varName(); - }; - prototype.compile = function(o){ - var code; - code = this.key.compile(o, LEVEL_PAREN); - if (this.key instanceof Key && '\'' !== code.toString().charAt(0)) { - return sn(this, ".", code); - } else { - return sn(this, "[", code, "]"); - } - }; - return Index; -}(Node)); -exports.Slice = Slice = (function(superclass){ - var prototype = extend$((import$(Slice, superclass).displayName = 'Slice', Slice), superclass).prototype, constructor = Slice; - function Slice(arg$){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.type = arg$.type, this$.target = arg$.target, this$.from = arg$.from, this$.to = arg$.to; - this$.from == null && (this$.from = Literal(0)); - if (this$.to && this$.type === 'to') { - this$.to = Binary('+', this$.to, Literal('1')); - } - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['target', 'from', 'to']; - prototype.show = function(){ - return this.type; - }; - prototype.compileNode = function(o){ - var args; - if (this.to && this.type === 'to') { - this.to = Binary('||', this.to, Literal('9e9')); - } - args = [this.target, this.from]; - if (this.to) { - args.push(this.to); - } - return Chain(Var(util('slice'))).add(Index(Key('call'), '.', true)).add(Call(args)).compile(o); - }; - return Slice; -}(Node)); -exports.Chain = Chain = (function(superclass){ - var prototype = extend$((import$(Chain, superclass).displayName = 'Chain', Chain), superclass).prototype, constructor = Chain; - function Chain(head, tails){ - var this$ = this instanceof ctor$ ? this : new ctor$; - if (!tails && head instanceof Chain) { - return head; - } - this$.head = head; - this$.tails = tails || []; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['head', 'tails']; - prototype.add = function(it){ - var last, ref$, index, ref1$, bi, that, ref2$, logics, call, f; - if (this.tails.length) { - last = (ref$ = this.tails)[ref$.length - 1]; - if (last instanceof Call && ((ref$ = last.partialized) != null ? ref$.length : void 8) === 1 && it.args.length === 1) { - index = last.partialized[0].head.value; - delete last.partialized; - last.args[index] = it.args[0]; - return this; - } - } - if (this.head instanceof Existence) { - ref1$ = Chain(this.head.it), this.head = ref1$.head, this.tails = ref1$.tails; - it.soak = true; - } - this.tails.push(it); - bi = this.head instanceof Parens && this.head.it instanceof Binary && !this.head.it.partial - ? this.head.it - : this.head instanceof Binary && !this.head.partial ? this.head : void 8; - if (this.head instanceof Super) { - if (!this.head.called && it instanceof Call && !it.method) { - it.method = '.call'; - it.args.unshift(Literal('this')); - this.head.called = true; - } else if (!this.tails[1] && ((ref1$ = it.key) != null ? ref1$.name : void 8) === 'prototype') { - this.head.sproto = true; - } - } else if (that = (ref2$ = it.vivify, delete it.vivify, ref2$)) { - this.head = Assign(Chain(this.head, this.tails.splice(0, 9e9)), that(), '=', '||'); - } else if (it instanceof Call && this.tails.length === 1 && bi && in$(bi.op, logics = ['&&', '||', 'xor'])) { - call = it; - f = function(x, key){ - var y; - y = x[key]; - if (y instanceof Binary && in$(y.op, logics)) { - f(y, 'first'); - return f(y, 'second'); - } else { - return x[key] = Chain(y).autoCompare(call.args); - } - }; - f(bi, 'first'); - f(bi, 'second'); - return bi; - } - return this; - }; - prototype.autoCompare = function(target){ - var test; - test = this.head; - switch (false) { - case !(test instanceof Literal): - return Binary('===', test, target[0]); - case !(test instanceof Unary && test.it instanceof Literal): - return Binary('===', test, target[0]); - case !(test instanceof Arr || test instanceof Obj): - return Binary('====', test, target[0]); - case !(test instanceof Var && test.value === '_'): - return Literal('true'); - default: - return this.add(Call(target)) || []; - } - }; - prototype.flipIt = function(){ - this.flip = true; - return this; - }; - prototype.unwrap = function(){ - if (this.tails.length) { - return this; - } else { - return this.head; - } - }; - prototype.delegate(['getJump', 'assigns', 'isStatement', 'isString'], function(it, arg){ - return !this.tails.length && this.head[it](arg); - }); - prototype.isComplex = function(){ - return this.tails.length || this.head.isComplex(); - }; - prototype.isCallable = function(){ - var that, ref$; - if (that = (ref$ = this.tails)[ref$.length - 1]) { - return !((ref$ = that.key) != null && ref$.items); - } else { - return this.head.isCallable(); - } - }; - prototype.isArray = function(){ - var that, ref$; - if (that = (ref$ = this.tails)[ref$.length - 1]) { - return that.key instanceof Arr; - } else { - return this.head.isArray(); - } - }; - prototype.isRegex = function(){ - return this.head.value === 'RegExp' && !this.tails[1] && this.tails[0] instanceof Call; - }; - prototype.isAssignable = function(){ - var tail, ref$, i$, len$; - if (!(tail = (ref$ = this.tails)[ref$.length - 1])) { - return this.head.isAssignable(); - } - if (!(tail instanceof Index) || tail.key instanceof List || tail.symbol === '.~') { - return false; - } - for (i$ = 0, len$ = (ref$ = this.tails).length; i$ < len$; ++i$) { - tail = ref$[i$]; - if (tail.assign) { - return false; - } - } - return true; - }; - prototype.isSimpleAccess = function(){ - return this.tails.length === 1 && !this.head.isComplex() && !this.tails[0].isComplex(); - }; - prototype.makeReturn = function(){ - var ref$; - if (this.tails.length) { - return superclass.prototype.makeReturn.apply(this, arguments); - } else { - return (ref$ = this.head).makeReturn.apply(ref$, arguments); - } - }; - prototype.getCall = function(){ - var tail, ref$; - return (tail = (ref$ = this.tails)[ref$.length - 1]) instanceof Call && tail; - }; - prototype.varName = function(){ - var ref$, ref1$; - return (ref$ = (ref1$ = this.tails)[ref1$.length - 1]) != null ? ref$.varName() : void 8; - }; - prototype.cacheReference = function(o){ - var name, ref$, base, ref, bref, nref; - name = (ref$ = this.tails)[ref$.length - 1]; - if (!this.isAssignable()) { - return this.unwrap().cache(o, true); - } - if (this.tails.length < 2 && !this.head.isComplex() && !(name != null && name.isComplex())) { - return [this, this]; - } - base = Chain(this.head, this.tails.slice(0, -1)); - if (base.isComplex()) { - ref = o.scope.temporary(); - base = Chain(Assign(Var(ref), base)); - bref = (ref$ = Var(ref), ref$.temp = true, ref$); - } - if (!name) { - return [base, bref]; - } - if (name.isComplex()) { - ref = o.scope.temporary('key'); - name = Index(Assign(Var(ref), name.key)); - nref = Index((ref$ = Var(ref), ref$.temp = true, ref$)); - } - return [base.add(name), Chain(bref || base.head, [nref || name])]; - }; - prototype.compileNode = function(o){ - var head, tails, that, i$, len$, t, hasPartial, pre, rest, broken, partial, post, context, idt, func, base, news, ref$; - if (this.flip) { - util('flip'); - util('curry'); - } - head = this.head, tails = this.tails; - head.front = this.front; - head.newed = this.newed; - if (!tails.length) { - return head.compile(o); - } - if (that = this.unfoldAssign(o)) { - return that.compile(o); - } - for (i$ = 0, len$ = tails.length; i$ < len$; ++i$) { - t = tails[i$]; - if (t.partialized) { - hasPartial = true; - break; - } - } - if (hasPartial) { - util('slice'); - pre = []; - rest = []; - for (i$ = 0, len$ = tails.length; i$ < len$; ++i$) { - t = tails[i$]; - broken = broken || t.partialized != null; - if (broken) { - rest.push(t); - } else { - pre.push(t); - } - } - if (rest != null) { - partial = rest[0], post = slice$.call(rest, 1); - } - this.tails = pre; - context = pre.length - ? Chain(head, slice$.call(pre, 0, -1)) - : Literal('this'); - return Chain(Chain(Var(util('partialize'))).add(Index(Key('apply'))).add(Call([context, Arr([this, Arr(partial.args), Arr(partial.partialized)])])), post).compile(o); - } - if (tails[0] instanceof Call && !head.isCallable()) { - this.carp('invalid callee'); - } - this.expandSlice(o); - this.expandBind(o); - this.expandSplat(o); - this.expandStar(o); - if (this.splattedNewArgs) { - idt = o.indent + TAB; - func = Chain(this.head, tails.slice(0, -1)); - return sn(null, "(function(func, args, ctor) {\n" + idt + "ctor.prototype = func.prototype;\n" + idt + "var child = new ctor, result = func.apply(child, args), t;\n" + idt + "return (t = typeof result) == \"object\" || t == \"function\" ? result || child : child;\n" + TAB + "})(", func.compile(o), ", ", this.splattedNewArgs, ", function(){})"); - } - if (!this.tails.length) { - return this.head.compile(o); - } - base = [this.head.compile(o, LEVEL_CALL)]; - news = []; - rest = []; - for (i$ = 0, len$ = (ref$ = this.tails).length; i$ < len$; ++i$) { - t = ref$[i$]; - if (t['new']) { - news.push('new '); - } - rest.push(t.compile(o)); - } - if ('.' === rest.join("").charAt(0) && SIMPLENUM.test(base[0].toString())) { - base.push(' '); - } - return sn.apply(null, [null].concat(slice$.call(news), slice$.call(base), slice$.call(rest))); - }; - prototype.unfoldSoak = function(o){ - var that, ref$, i$, len$, i, node, ref1$, bust, test; - if (that = this.head.unfoldSoak(o)) { - (ref$ = that.then.tails).push.apply(ref$, this.tails); - return that; - } - for (i$ = 0, len$ = (ref$ = this.tails).length; i$ < len$; ++i$) { - i = i$; - node = ref$[i$]; - if (ref1$ = node.soak, delete node.soak, ref1$) { - bust = Chain(this.head, this.tails.splice(0, i)); - if (node.assign && !bust.isAssignable()) { - node.carp('invalid accessign'); - } - if (i && (node.assign || node instanceof Call)) { - ref1$ = bust.cacheReference(o), test = ref1$[0], bust = ref1$[1]; - if (bust instanceof Chain) { - (ref1$ = this.tails).unshift.apply(ref1$, bust.tails); - bust = bust.head; - } - this.head = bust; - } else { - ref1$ = bust.unwrap().cache(o), test = ref1$[0], this.head = ref1$[1]; - } - test = node instanceof Call - ? JS("typeof " + test.compile(o, LEVEL_OP) + " == 'function'") - : Existence(test); - return ref1$ = If(test, this), ref1$.soak = true, ref1$.cond = this.cond, ref1$['void'] = this['void'], ref1$; - } - } - }; - prototype.unfoldAssign = function(o){ - var that, ref$, i$, len$, i, index, op, left, lefts, rites, j$, len1$, node, ref1$; - if (that = this.head.unfoldAssign(o)) { - (ref$ = that.right.tails).push.apply(ref$, this.tails); - return that; - } - for (i$ = 0, len$ = (ref$ = this.tails).length; i$ < len$; ++i$) { - i = i$; - index = ref$[i$]; - if (op = index.assign) { - index.assign = ''; - left = Chain(this.head, this.tails.splice(0, i)).expandSlice(o).unwrap(); - if (left instanceof Arr) { - lefts = left.items; - rites = (this.head = Arr()).items; - for (j$ = 0, len1$ = lefts.length; j$ < len1$; ++j$) { - i = j$; - node = lefts[j$]; - ref1$ = Chain(node).cacheReference(o), rites[i] = ref1$[0], lefts[i] = ref1$[1]; - } - } else { - ref1$ = Chain(left).cacheReference(o), left = ref1$[0], this.head = ref1$[1]; - } - if (op === '=') { - op = ':='; - } - return ref1$ = Assign(left, this, op), ref1$.access = true, ref1$; - } - } - }; - prototype.expandSplat = function(o){ - var tails, i, call, args, ctx, ref$; - tails = this.tails; - i = -1; - while (call = tails[++i]) { - if (!(args = call.args)) { - continue; - } - ctx = call.method === '.call' && (args = args.concat()).shift(); - if (!!snEmpty(args = Splat.compileArray(o, args, true))) { - continue; - } - if (call['new']) { - this.splattedNewArgs = args; - } else { - if (!ctx && tails[i - 1] instanceof Index) { - ref$ = Chain(this.head, tails.splice(0, i - 1)).cache(o, true), this.head = ref$[0], ctx = ref$[1]; - i = 0; - } - call.method = '.apply'; - call.args = [ctx || Literal('null'), JS(args)]; - } - } - }; - prototype.expandBind = function(o){ - var tails, i, that, obj, key, call; - tails = this.tails; - i = -1; - while (that = tails[++i]) { - if (that.symbol !== '.~') { - continue; - } - that.symbol = ''; - obj = Chain(this.head, tails.splice(0, i)).unwrap(); - key = tails.shift().key; - call = Call.make(Util('bind'), [obj, (key.reserved = true, key)]); - this.head = this.newed ? Parens(call, true) : call; - i = -1; - } - }; - prototype.expandStar = function(o){ - var tails, i, that, stars, ref$, sub, ref, temps, value, i$, len$, star; - tails = this.tails; - i = -1; - while (that = tails[++i]) { - if (that.args || that.stars || that.key instanceof Key) { - continue; - } - stars = that.stars = []; - that.eachChild(seek); - if (!stars.length) { - continue; - } - ref$ = Chain(this.head, tails.splice(0, i)).unwrap().cache(o), sub = ref$[0], ref = ref$[1], temps = ref$[2]; - value = Chain(ref, [Index(Key('length'))]).compile(o); - for (i$ = 0, len$ = stars.length; i$ < len$; ++i$) { - star = stars[i$]; - star.value = value; - star.isAssignable = YES; - } - this.head = JS(sub.compile(o, LEVEL_CALL) + tails.shift().compile(o)); - if (temps) { - o.scope.free(temps[0]); - } - i = -1; - } - function seek(it){ - if (it.value === '*') { - stars.push(it); - } else if (!(it instanceof Index)) { - it.eachChild(seek); - } - } - }; - prototype.expandSlice = function(o, assign){ - var tails, i, tail, ref$, x; - tails = this.tails; - i = -1; - while (tail = tails[++i]) { - if ((ref$ = tail.key) != null && ref$.items) { - if (tails[i + 1] instanceof Call) { - tail.carp('calling a slice'); - } - x = tails.splice(0, i + 1); - x = x.pop().key.toSlice(o, Chain(this.head, x).unwrap(), tail.symbol, assign); - this.head = (x.front = this.front, x); - i = -1; - } - } - return this; - }; - return Chain; -}(Node)); -exports.Call = Call = (function(superclass){ - var prototype = extend$((import$(Call, superclass).displayName = 'Call', Call), superclass).prototype, constructor = Call; - function Call(args){ - var splat, i$, len$, i, a, ref$, this$ = this instanceof ctor$ ? this : new ctor$; - args || (args = []); - if (args.length === 1 && (splat = args[0]) instanceof Splat) { - if (splat.filler) { - this$.method = '.call'; - args[0] = Literal('this'); - args[1] = Splat(Literal('arguments')); - } else if (splat.it instanceof Arr) { - args = splat.it.items; - } - } else { - for (i$ = 0, len$ = args.length; i$ < len$; ++i$) { - i = i$; - a = args[i$]; - if (a.value === '_') { - args[i] = Chain(Literal('void')); - args[i].placeholder = true; - ((ref$ = this$.partialized) != null - ? ref$ - : this$.partialized = []).push(Chain(Literal(i))); - } - } - } - this$.args = args; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['args']; - prototype.show = function(){ - return [this['new']] + [this.method] + [this.soak ? '?' : void 8]; - }; - prototype.compile = function(o){ - var code, i$, ref$, len$, i, a; - code = [sn(this, this.method || '', '(') + (this.pipe ? "\n" + o.indent : '')]; - for (i$ = 0, len$ = (ref$ = this.args).length; i$ < len$; ++i$) { - i = i$; - a = ref$[i$]; - code.push(i ? ', ' : '', a.compile(o, LEVEL_LIST)); - } - code.push(sn(this, ')')); - return sn.apply(null, [null].concat(slice$.call(code))); - }; - Call.make = function(callee, args, opts){ - var call; - call = Call(args); - if (opts) { - import$(call, opts); - } - return Chain(callee).add(call); - }; - Call.block = function(fun, args, method){ - var ref$, ref1$; - return ref$ = Parens(Chain(fun, [(ref1$ = Call(args), ref1$.method = method, ref1$)]), true), ref$.calling = true, ref$; - }; - Call.back = function(params, node, bound, curried, hushed, generator){ - var fun, ref$, args, index, i$, len$, a; - fun = Fun(params, void 8, bound, curried, hushed, generator); - if (node instanceof Label) { - fun.name = node.label; - fun.labeled = true; - node = node.it; - } - if (!fun.hushed && (fun.hushed = node.op === '!')) { - node = node.it; - } - if ((ref$ = node.getCall()) != null) { - ref$.partialized = null; - } - args = (node.getCall() || (node = Chain(node).add(Call())).getCall()).args; - index = 0; - for (i$ = 0, len$ = args.length; i$ < len$; ++i$) { - a = args[i$]; - if (a.placeholder) { - break; - } - ++index; - } - return node.back = (args[index] = fun).body, node; - }; - Call['let'] = function(args, body, generator){ - var params, res$, i$, len$, i, a, that, gotThis; - generator == null && (generator = false); - res$ = []; - for (i$ = 0, len$ = args.length; i$ < len$; ++i$) { - i = i$; - a = args[i$]; - if (that = a.op === '=' && !a.logic && a.right) { - args[i] = that; - if (i === 0 && (gotThis = a.left.value === 'this')) { - continue; - } - res$.push(a.left); - } else { - res$.push(Var(a.varName() || a.carp('invalid "let" argument'))); - } - } - params = res$; - gotThis || args.unshift(Literal('this')); - return this.block(Fun(params, body, null, null, null, generator), args, '.call'); - }; - return Call; -}(Node)); -List = (function(superclass){ - var prototype = extend$((import$(List, superclass).displayName = 'List', List), superclass).prototype, constructor = List; - prototype.children = ['items']; - prototype.show = function(){ - return this.name; - }; - prototype.named = function(name){ - this.name = name; - return this; - }; - prototype.isEmpty = function(){ - return !this.items.length; - }; - prototype.assigns = function(it){ - var i$, ref$, len$, node; - for (i$ = 0, len$ = (ref$ = this.items).length; i$ < len$; ++i$) { - node = ref$[i$]; - if (node.assigns(it)) { - return true; - } - } - }; - List.compile = function(o, items, deepEq){ - var indent, level, code, i, that, target; - switch (items.length) { - case 0: - return ''; - case 1: - return items[0].compile(o, LEVEL_LIST); - } - indent = o.indent, level = o.level; - o.indent = indent + TAB; - o.level = LEVEL_LIST; - code = [items[i = 0].compile(o)]; - while (that = items[++i]) { - code.push(', '); - target = that; - if (deepEq) { - if (target instanceof Var && target.value === '_') { - target = Obj([Prop(Key('__placeholder__'), Literal(true))]); - } else if (target instanceof Obj || target instanceof Arr) { - target.deepEq = true; - } - } - code.push(target.compile(o)); - } - if (~code.join("").indexOf('\n')) { - code = ["\n" + o.indent].concat(slice$.call(code), ["\n" + indent]); - } - o.indent = indent; - o.level = level; - return sn.apply(null, [this].concat(slice$.call(code))); - }; - function List(){ - List.superclass.apply(this, arguments); - } - return List; -}(Node)); -exports.Obj = Obj = (function(superclass){ - var prototype = extend$((import$(Obj, superclass).displayName = 'Obj', Obj), superclass).prototype, constructor = Obj; - function Obj(items){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.items = items || []; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.asObj = THIS; - prototype.toSlice = function(o, base, symbol, assign){ - var items, ref$, ref, temps, i$, len$, i, node, name, chain, logic, key, val; - items = this.items; - if (items.length > 1) { - ref$ = base.cache(o), base = ref$[0], ref = ref$[1], temps = ref$[2]; - } else { - ref = base; - } - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - i = i$; - node = items[i$]; - if (node.comment) { - continue; - } - if (node instanceof Prop || node instanceof Splat) { - node[name = (ref$ = node.children)[ref$.length - 1]] = chain = Chain(base, [Index(node[name].maybeKey())]); - } else { - if (logic = node.getDefault()) { - node = node.first; - } - if (node instanceof Parens) { - ref$ = node.cache(o, true), key = ref$[0], node = ref$[1]; - if (assign) { - ref$ = [node, key], key = ref$[0], node = ref$[1]; - } - key = Parens(key); - } else { - key = node; - } - val = chain = Chain(base, [Index(node.maybeKey(), symbol)]); - if (logic) { - val = (logic.first = val, logic); - } - items[i] = Prop(key, val); - } - base = ref; - } - chain || this.carp('empty slice'); - if (temps) { - (chain.head = Var(temps[0])).temp = true; - } - return this; - }; - prototype.compileNode = function(o){ - var items, code, idt, dic, i$, len$, i, node, logic, rest, ref$, multi, key, val; - items = this.items; - if (!items.length) { - return sn(this, this.front ? '({})' : '{}'); - } - code = []; - idt = '\n' + (o.indent += TAB); - dic = {}; - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - i = i$; - node = items[i$]; - if (node.comment) { - code.push(idt, node.compile(o)); - continue; - } - if (logic = node.getDefault()) { - node = node.first; - } - if (node instanceof Splat || (node.key || node) instanceof Parens) { - rest = items.slice(i); - break; - } - if (logic) { - if (node instanceof Prop) { - node.val = (logic.first = node.val, logic); - } else { - node = Prop(node, (logic.first = node, logic)); - } - } - if (this.deepEq && node instanceof Prop) { - if (node.val instanceof Var && node.val.value === '_') { - node.val = Obj([Prop(Key('__placeholder__'), Literal(true))]); - } else if ((ref$ = node.val) instanceof Obj || ref$ instanceof Arr) { - node.val.deepEq = true; - } - } - if (multi) { - code.push(','); - } else { - multi = true; - } - code.push(idt); - if (node instanceof Prop) { - key = node.key, val = node.val; - if (node.accessor) { - code.push(node.compileAccessor(o, key = key.compile(o))); - } else { - val.ripName(key); - code.push(key = key.compile(o), ": ", val.compile(o, LEVEL_LIST)); - } - } else { - code.push(key = node.compile(o), ": ", key); - } - ID.test(key) || (key = Function("return " + key)()); - if (!(dic[key + "."] ^= 1)) { - node.carp("duplicate property \"" + key + "\""); - } - } - if (code.join("")) { - code.push('\n' + this.tab); - } - code = sn.apply(null, [null, sn(this, "{")].concat(slice$.call(code), [sn(this, "}")])); - rest && (code = Import(JS(code), Obj(rest)).compile((o.indent = this.tab, o))); - if (this.front && '{' === code.toString().charAt()) { - return sn(null, "(", code, ")"); - } else { - return code; - } - }; - return Obj; -}(List)); -exports.Prop = Prop = (function(superclass){ - var prototype = extend$((import$(Prop, superclass).displayName = 'Prop', Prop), superclass).prototype, constructor = Prop; - function Prop(key, val){ - var that, i$, len$, fun, this$ = this instanceof ctor$ ? this : new ctor$; - this$.key = key; - this$.val = val; - if (key.value === '...') { - return Splat(this$.val); - } - if (that = val.getAccessors()) { - this$.val = that; - for (i$ = 0, len$ = that.length; i$ < len$; ++i$) { - fun = that[i$]; - fun.x = (fun.hushed = fun.params.length) ? 's' : 'g'; - } - this$['accessor'] = 'accessor'; - } - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['key', 'val']; - prototype.show = function(){ - return this.accessor; - }; - prototype.assigns = function(it){ - var ref$; - return typeof (ref$ = this.val).assigns == 'function' ? ref$.assigns(it) : void 8; - }; - prototype.compileAccessor = function(o, key){ - var funs, code, i$, len$, fun; - funs = this.val; - if (funs[1] && funs[0].params.length + funs[1].params.length !== 1) { - funs[0].carp('invalid accessor parameter'); - } - code = []; - for (i$ = 0, len$ = funs.length; i$ < len$; ++i$) { - fun = funs[i$]; - fun.accessor = true; - code.push(fun.x, "et ", key, fun.compile(o, LEVEL_LIST).toString().slice(8), ',\n' + o.indent); - } - code.pop(); - return sn.apply(null, [null].concat(slice$.call(code))); - }; - prototype.compileDescriptor = function(o){ - var obj, i$, ref$, len$, fun; - obj = Obj(); - for (i$ = 0, len$ = (ref$ = this.val).length; i$ < len$; ++i$) { - fun = ref$[i$]; - obj.items.push(Prop(Key(fun.x + 'et'), fun)); - } - obj.items.push(Prop(Key('configurable'), Literal(true))); - obj.items.push(Prop(Key('enumerable'), Literal(true))); - return obj.compile(o); - }; - return Prop; -}(Node)); -exports.Arr = Arr = (function(superclass){ - var prototype = extend$((import$(Arr, superclass).displayName = 'Arr', Arr), superclass).prototype, constructor = Arr; - function Arr(items){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.items = items || []; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.isArray = YES; - prototype.asObj = function(){ - var i, item; - return Obj((function(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = this.items).length; i$ < len$; ++i$) { - i = i$; - item = ref$[i$]; - results$.push(Prop(Literal(i), item)); - } - return results$; - }.call(this))); - }; - prototype.toSlice = function(o, base, symbol){ - var items, ref$, ref, i$, len$, i, item, splat, chain; - items = this.items; - if (items.length > 1) { - ref$ = base.cache(o), base = ref$[0], ref = ref$[1]; - } else { - ref = base; - } - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - i = i$; - item = items[i$]; - if (splat = item instanceof Splat) { - item = item.it; - } - if (item.isEmpty()) { - continue; - } - chain = Chain(base, [Index(item, symbol)]); - items[i] = splat ? Splat(chain) : chain; - base = ref; - } - chain || this.carp('empty slice'); - return this; - }; - prototype.compile = function(o){ - var items, code; - items = this.items; - if (!items.length) { - return sn(this, '[]'); - } - if (!snEmpty(code = Splat.compileArray(o, items))) { - return this.newed - ? sn(this, "(", code, ")") - : sn(this, code); - } - return sn(null, sn(this, "["), List.compile(o, items, this.deepEq), sn(this, "]")); - }; - Arr.maybe = function(nodes){ - if (nodes.length === 1 && !(nodes[0] instanceof Splat)) { - return nodes[0]; - } - return constructor(nodes); - }; - Arr.wrap = function(it){ - return constructor([Splat((it.isArray = YES, it))]); - }; - return Arr; -}(List)); -exports.Yield = Yield = (function(superclass){ - var prototype = extend$((import$(Yield, superclass).displayName = 'Yield', Yield), superclass).prototype, constructor = Yield; - function Yield(op, it){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.op = op; - this$.it = it; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['it']; - prototype.show = function(){ - if (this.op === 'yieldfrom') { - return 'from'; - } else { - return ''; - } - }; - prototype.compileNode = function(o){ - var code; - code = []; - if (this.op === 'yieldfrom') { - code.push('yield*'); - } else { - code.push('yield'); - } - if (this.it) { - code.push(" " + this.it.compile(o, LEVEL_OP + PREC.unary)); - } - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - }; - return Yield; -}(Node)); -exports.Unary = Unary = (function(superclass){ - var prototype = extend$((import$(Unary, superclass).displayName = 'Unary', Unary), superclass).prototype, constructor = Unary; - function Unary(op, it, flag){ - var that, i$, ref$, len$, node, this$ = this instanceof ctor$ ? this : new ctor$; - if (it != null) { - if (that = !flag && it.unaries) { - that.push(op); - return it; - } - switch (op) { - case '!': - if (flag) { - break; - } - if (it instanceof Fun && !it.hushed) { - return it.hushed = true, it; - } - return it.invert(); - case '++': - case '--': - if (flag) { - this$.post = true; - } - break; - case 'new': - if (it instanceof Existence && !it.negated) { - it = Chain(it).add(Call()); - } - it.newed = true; - for (i$ = 0, len$ = (ref$ = it.tails || '').length; i$ < len$; ++i$) { - node = ref$[i$]; - if (node instanceof Call && !node['new']) { - if (node.method === '.call') { - node.args.shift(); - } - node['new'] = 'new'; - node.method = ''; - return it; - } - } - break; - case '~': - if (it instanceof Fun && it.statement && !it.bound) { - return it.bound = 'this$', it; - } - } - } - this$.op = op; - this$.it = it; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['it']; - prototype.show = function(){ - return [this.post ? '@' : void 8] + this.op; - }; - prototype.isCallable = function(){ - var ref$; - return ((ref$ = this.op) === 'do' || ref$ === 'new' || ref$ === 'delete') || this.it == null; - }; - prototype.isArray = function(){ - return this.it instanceof Arr && this.it.items.length || this.it instanceof Chain && this.it.isArray(); - }; - prototype.isString = function(){ - var ref$; - return (ref$ = this.op) === 'typeof' || ref$ === 'classof'; - }; - prototype.invert = function(){ - var ref$; - if (this.op === '!' && ((ref$ = this.it.op) === '!' || ref$ === '<' || ref$ === '>' || ref$ === '<=' || ref$ === '>=' || ref$ === 'of' || ref$ === 'instanceof')) { - return this.it; - } - return constructor('!', this, true); - }; - prototype.unfoldSoak = function(o){ - var ref$; - return ((ref$ = this.op) === '++' || ref$ === '--' || ref$ === 'delete') && this.it != null && If.unfoldSoak(o, this, 'it'); - }; - prototype.getAccessors = function(){ - var items; - if (this.op !== '~') { - return; - } - if (this.it instanceof Fun) { - return [this.it]; - } - if (this.it instanceof Arr) { - items = this.it.items; - if (!items[2] && items[0] instanceof Fun && items[1] instanceof Fun) { - return items; - } - } - }; - function crement(it){ - return { - '++': 'in', - '--': 'de' - }[it] + 'crement'; - } - prototype.compileNode = function(o){ - var that, op, it, x, code; - if (this.it == null) { - return this.compileAsFunc(o); - } - if (that = this.compileSpread(o)) { - return that; - } - op = this.op, it = this.it; - switch (op) { - case '!': - it.cond = true; - break; - case 'new': - it.isCallable() || it.carp('invalid constructor'); - break; - case 'do': - if (o.level === LEVEL_TOP && it instanceof Fun && it.isStatement()) { - return sn(this, it.compile(o), " ", Unary('do', Var(it.name)).compile(o)); - } - x = Parens(it instanceof Existence && !it.negated - ? Chain(it).add(Call()) - : Call.make(it)); - return sn(this, (x.front = this.front, x.newed = this.newed, x).compile(o)); - case 'delete': - if (it instanceof Var || !it.isAssignable()) { - this.carp('invalid delete'); - } - if (o.level && !this['void']) { - return this.compilePluck(o); - } - break; - case '++': - case '--': - it.isAssignable() || this.carp('invalid ' + crement(op)); - if (that = it instanceof Var && o.scope.checkReadOnly(it.value)) { - this.carp(crement(op) + " of " + that + " \"" + it.value + "\"", ReferenceError); - } - if (this.post) { - it.front = this.front; - } - break; - case '^^': - return sn(this, util('clone'), "(", it.compile(o, LEVEL_LIST), ")"); - case 'jsdelete': - return sn(this, "delete ", it.compile(o, LEVEL_LIST)); - case 'classof': - return sn(this, util('toString'), ".call(", it.compile(o, LEVEL_LIST), ").slice(8, -1)"); - } - code = [it.compile(o, LEVEL_OP + PREC.unary)]; - if (this.post) { - code.push(op); - } else { - if ((op === 'new' || op === 'typeof' || op === 'delete') || (op === '+' || op === '-') && op === code.join("").charAt()) { - op += ' '; - } - code.unshift(op); - } - if (o.level < LEVEL_CALL) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - } - }; - prototype.compileSpread = function(o){ - var it, ops, them, i$, len$, i, node, sp, j$, op, lat, ref$; - it = this.it; - ops = [this]; - for (; it instanceof constructor; it = it.it) { - ops.push(it); - } - if (!((it = it.expandSlice(o).unwrap()) instanceof Arr && (them = it.items).length)) { - return ''; - } - for (i$ = 0, len$ = them.length; i$ < len$; ++i$) { - i = i$; - node = them[i$]; - if (sp = node instanceof Splat) { - node = node.it; - } - for (j$ = ops.length - 1; j$ >= 0; --j$) { - op = ops[j$]; - node = constructor(op.op, node, op.post); - } - them[i] = sp ? lat = Splat(node) : node; - } - if (!lat && (this['void'] || !o.level)) { - it = (ref$ = Block(them), ref$.front = this.front, ref$['void'] = true, ref$); - } - return it.compile(o, LEVEL_PAREN); - }; - prototype.compilePluck = function(o){ - var ref$, get, del, code, ref; - ref$ = Chain(this.it).cacheReference(o), get = ref$[0], del = ref$[1]; - code = [ref = o.scope.temporary(), " = ", get.compile(o, LEVEL_LIST), ", delete ", del.compile(o, LEVEL_LIST), ", ", o.scope.free(ref)]; - if (o.level < LEVEL_LIST) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - } - }; - prototype.compileAsFunc = function(o){ - if (this.op === '!') { - return sn(this, util('not')); - } else { - return sn(this, "(", Fun([], Block(Unary(this.op, Chain(Var('it'))))).compile(o), ")"); - } - }; - return Unary; -}(Node)); -exports.Binary = Binary = (function(superclass){ - var COMPARER, INVERSIONS, prototype = extend$((import$(Binary, superclass).displayName = 'Binary', Binary), superclass).prototype, constructor = Binary; - function Binary(op, first, second, destructuring){ - var logic, that, ref$, this$ = this instanceof ctor$ ? this : new ctor$; - if (destructuring) { - logic = op.logic; - if (toString$.call(destructuring).slice(8, -1) === 'String') { - logic = destructuring; - } - op = (function(){ - switch (false) { - case !(that = logic): - return that; - case op !== '=': - return '?'; - default: - return '='; - } - }()); - } - this$.partial = first == null || second == null; - if (!this$.partial) { - if ('=' === op.charAt(op.length - 1) && ((ref$ = op.charAt(op.length - 2)) !== '=' && ref$ !== '<' && ref$ !== '>' && ref$ !== '!')) { - return Assign(first.unwrap(), second, op); - } - switch (op) { - case 'in': - return new In(first, second); - case 'with': - return new Import(Unary('^^', first), second, false); - case '<<<': - case '<<<<': - return Import(first, second, op === '<<<<'); - case '<|': - return Block(first).pipe(second, op); - case '|>': - return Block(second).pipe(first, '<|'); - case '.': - case '.~': - return Chain(first).add(Index(second, op)); - } - } - this$.op = op; - this$.first = first; - this$.second = second; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['first', 'second']; - prototype.show = function(){ - return this.op; - }; - prototype.isCallable = function(){ - var ref$; - return this.partial || ((ref$ = this.op) === '&&' || ref$ === '||' || ref$ === '?' || ref$ === '<<' || ref$ === '>>') && this.first.isCallable() && this.second.isCallable(); - }; - prototype.isArray = function(){ - switch (this.op) { - case '*': - return this.first.isArray(); - case '/': - return this.second.isMatcher(); - } - }; - prototype.isString = function(){ - switch (this.op) { - case '+': - case '*': - return this.first.isString() || this.second.isString(); - case '-': - return this.second.isMatcher(); - } - }; - COMPARER = /^(?:[!=]=|[<>])=?$/; - INVERSIONS = { - '===': '!==', - '!==': '===', - '==': '!=', - '!=': '==' - }; - prototype.invert = function(){ - var that; - if (that = !COMPARER.test(this.second.op) && INVERSIONS[this.op]) { - this.op = that; - this.wasInverted = true; - return this; - } - return Unary('!', Parens(this), true); - }; - prototype.invertIt = function(){ - this.inverted = true; - return this; - }; - prototype.getDefault = function(){ - switch (this.op) { - case '?': - case '||': - case '&&': - return this; - } - }; - prototype.xorChildren = function(test){ - var ref$, ref1$, first; - if (!(!(ref$ = first = test(this.first)) !== !(ref1$ = test(this.second)) && (ref$ || ref1$))) { - return false; - } - return first - ? [this.first, this.second] - : [this.second, this.first]; - }; - prototype.compileNode = function(o){ - var top, rite, items, that, ref$, code, level; - if (this.partial) { - return this.compilePartial(o); - } - switch (this.op) { - case '?': - return this.compileExistence(o); - case '*': - if (this.second.isString()) { - return this.compileJoin(o); - } - if (this.first.isString() || this.first.isArray()) { - return this.compileRepeat(o); - } - break; - case '-': - if (this.second.isMatcher()) { - return this.compileRemove(o); - } - break; - case '/': - if (this.second.isMatcher()) { - return this.compileSplit(o); - } - break; - case '**': - case '^': - return this.compilePow(o); - case '?': - return this.compileMinMax(o); - case '<<': - case '>>': - return this.compileCompose(o); - case '++': - return this.compileConcat(o); - case '%%': - return this.compileMod(o); - case 'xor': - return this.compileXor(o); - case '&&': - case '||': - if (top = this['void'] || !o.level) { - this.second['void'] = true; - } - if (top || this.cond) { - this.first.cond = true; - this.second.cond = true; - } - break; - case 'instanceof': - rite = this.second.expandSlice(o).unwrap(), items = rite.items; - if (rite instanceof Arr) { - if (items[1]) { - return this.compileAnyInstanceOf(o, items); - } - this.second = items[0] || rite; - } - this.second.isCallable() || this.second.carp('invalid instanceof operand'); - break; - case '====': - case '!===': - this.op = this.op.slice(0, 3); - // fallthrough - case '<==': - case '>==': - case '<<=': - case '>>=': - return this.compileDeepEq(o); - default: - if (COMPARER.test(this.op)) { - if (that = ((ref$ = this.op) === '===' || ref$ === '!==') && this.xorChildren(function(it){ - return it.isRegex(); - })) { - return this.compileRegexEquals(o, that); - } - if (this.op === '===' && (this.first instanceof Literal && this.second instanceof Literal) && this.first.isWhat() !== this.second.isWhat()) { - if (typeof console != 'undefined' && console !== null) { - console.warn("WARNING: strict comparison of two different types will always be false: " + this.first.value + " == " + this.second.value); - } - } - } - if (COMPARER.test(this.op) && COMPARER.test(this.second.op)) { - return this.compileChain(o); - } - } - this.first.front = this.front; - code = [this.first.compile(o, level = LEVEL_OP + PREC[this.op]), " ", this.mapOp(this.op), " ", this.second.compile(o, level)]; - if (o.level <= level) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - } - }; - prototype.mapOp = function(op){ - var that; - switch (false) { - case !(that = op.match(/\.([&\|\^]|<<|>>>?)\./)): - return that[1]; - case op !== 'of': - return 'in'; - default: - return op; - } - }; - prototype.compileChain = function(o){ - var code, level, ref$, sub; - code = [this.first.compile(o, level = LEVEL_OP + PREC[this.op])]; - ref$ = this.second.first.cache(o, true), sub = ref$[0], this.second.first = ref$[1]; - code.push(" ", this.op, " ", sub.compile(o, level), " && ", this.second.compile(o, LEVEL_OP)); - if (o.level <= LEVEL_OP) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - } - }; - prototype.compileExistence = function(o){ - var x; - if (this['void'] || !o.level) { - x = Binary('&&', Existence(this.first, true), this.second); - return (x['void'] = true, x).compileNode(o); - } - x = this.first.cache(o, true); - return sn(this, If(Existence(x[0]), x[1]).addElse(this.second).compileExpression(o)); - }; - prototype.compileAnyInstanceOf = function(o, items){ - var ref$, sub, ref, test, i$, len$, item; - ref$ = this.first.cache(o), sub = ref$[0], ref = ref$[1], this.temps = ref$[2]; - test = Binary('instanceof', sub, items.shift()); - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - item = items[i$]; - test = Binary('||', test, Binary('instanceof', ref, item)); - } - return sn(this, Parens(test).compile(o)); - }; - prototype.compileMinMax = function(o){ - var lefts, rites, x; - lefts = this.first.cache(o, true); - rites = this.second.cache(o, true); - x = Binary(this.op.charAt(), lefts[0], rites[0]); - return sn(this, If(x, lefts[1]).addElse(rites[1]).compileExpression(o)); - }; - prototype.compileMethod = function(o, klass, method, arg){ - var args; - args = [this.second].concat(arg || []); - if (this.first["is" + klass]()) { - return sn(this, Chain(this.first, [Index(Key(method)), Call(args)]).compile(o)); - } else { - args.unshift(this.first); - return sn(this, Call.make(JS(util(method) + '.call'), args).compile(o)); - } - }; - prototype.compileJoin = function(it){ - return this.compileMethod(it, 'Array', 'join'); - }; - prototype.compileRemove = function(it){ - return this.compileMethod(it, 'String', 'replace', JS("''")); - }; - prototype.compileSplit = function(it){ - return this.compileMethod(it, 'String', 'split'); - }; - prototype.compileRepeat = function(o){ - var x, n, items, arr, arrCode, refs, i$, len$, i, item, ref$, q; - x = this.first, n = this.second; - items = (x = x.expandSlice(o).unwrap()).items; - arr = x.isArray() && 'Array'; - if (items && !snEmpty(arrCode = Splat.compileArray(o, items))) { - x = JS(arrCode); - items = null; - } - if (arr && !items || !(n instanceof Literal && n.value < 0x20)) { - return sn(this, Call.make(Util('repeat' + (arr || 'String')), [x, n]).compile(o)); - } - n = +n.value; - if (1 <= n && n < 2) { - return sn(this, x.compile(o)); - } - if (items) { - if (n < 1) { - return sn(this, Block(items).add(JS('[]')).compile(o)); - } - refs = []; - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - i = i$; - item = items[i$]; - ref$ = item.cache(o, 1), items[i] = ref$[0], refs[refs.length] = ref$[1]; - } - items.push((ref$ = JS(), ref$.compile = function(){ - return sn.apply(null, [this].concat(slice$.call((repeatArray$([", ", List.compile(o, refs)], n - 1)).slice(1)))); - }, ref$)); - return sn(this, x.compile(o)); - } else if (x instanceof Literal) { - return sn(this, (q = (x = x.compile(o).toString()).charAt()) + repeatString$(x.slice(1, -1) + "", n) + q); - } else { - if (n < 1) { - return sn(this, Block(x.it).add(JS("''")).compile(o)); - } - x = (refs = x.cache(o, 1, LEVEL_OP))[0] + repeatString$(" + " + refs[1], n - 1); - if (o.level < LEVEL_OP + PREC['+']) { - return sn(this, x); - } else { - return sn(this, "(", x, ")"); - } - } - }; - prototype.compilePow = function(o){ - return sn(null, Call.make(CopyL(this, JS('Math.pow')), [this.first, this.second]).compile(o)); - }; - prototype.compileConcat = function(o){ - var f; - f = function(x){ - switch (false) { - case !(x instanceof Binary && x.op === '++'): - return f(x.first).concat(f(x.second)); - default: - return [x]; - } - }; - return sn(null, Chain(this.first).add(CopyL(this, Index(Key('concat'), '.', true))).add(Call(f(this.second))).compile(o)); - }; - prototype.compileCompose = function(o){ - var op, functions, x; - op = this.op; - functions = [this.first]; - x = this.second; - while (x instanceof Binary && x.op === op && !x.partial) { - functions.push(x.first); - x = x.second; - } - functions.push(x); - if (op === '<<') { - functions.reverse(); - } - return sn(this, Chain(Var(util('compose'))).add(Call(functions)).compile(o)); - }; - prototype.compileMod = function(o){ - var ref, code; - ref = o.scope.temporary(); - code = [sn(this, "((("), this.first.compile(o), sn(this, ") % ("), sn(this, ref, " = "), this.second.compile(o), sn(this, ") + ", ref, ") % ", ref, ")")]; - o.scope.free(ref); - return sn.apply(null, [null].concat(slice$.call(code))); - }; - prototype.compilePartial = function(o){ - var vit, x, y; - vit = Var('it'); - switch (false) { - case !(this.first == null && this.second == null): - x = Var('x$'); - y = Var('y$'); - return sn(this, Fun([x, y], Block(Binary(this.op, x, y).invertCheck(this)), false, true).compile(o)); - case this.first == null: - return sn(this, "(", Fun([vit], Block(Binary(this.op, this.first, vit).invertCheck(this))).compile(o), ")"); - default: - return sn(this, "(", Fun([vit], Block(Binary(this.op, vit, this.second).invertCheck(this))).compile(o), ")"); - } - }; - prototype.compileRegexEquals = function(o, arg$){ - var regex, target, method; - regex = arg$[0], target = arg$[1]; - if (this.op === '===') { - method = this.wasInverted ? 'test' : 'exec'; - return sn(this, Chain(regex).add(Index(Key(method))).add(Call([target])).compile(o)); - } else { - return sn(this, Unary('!', Chain(regex).add(Index(Key('test'))).add(Call([target]))).compile(o)); - } - }; - prototype.compileDeepEq = function(o){ - var ref$, negate, i$, len$, x, r; - if ((ref$ = this.op) === '>==' || ref$ === '>>=') { - ref$ = [this.second, this.first], this.first = ref$[0], this.second = ref$[1]; - this.op = this.op === '>==' ? '<==' : '<<='; - } - if (this.op === '!==') { - this.op = '==='; - negate = true; - } - for (i$ = 0, len$ = (ref$ = [this.first, this.second]).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (x instanceof Obj || x instanceof Arr) { - x.deepEq = true; - } - } - r = Chain(Var(util('deepEq'))).add(Call([this.first, this.second, Literal("'" + this.op + "'")])); - return sn(this, (negate ? Unary('!', r) : r).compile(o)); - }; - prototype.compileXor = function(o){ - var left, right; - left = Chain(this.first).cacheReference(o); - right = Chain(this.second).cacheReference(o); - return sn(this, Binary('&&', Binary('!==', Unary('!', left[0]), Unary('!', right[0])), Parens(Binary('||', left[1], right[1]))).compile(o)); - }; - return Binary; -}(Node)); -exports.Assign = Assign = (function(superclass){ - var prototype = extend$((import$(Assign, superclass).displayName = 'Assign', Assign), superclass).prototype, constructor = Assign; - function Assign(left, rite, op, logic, defParam){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.left = left; - this$.op = op || '='; - this$.logic = logic || this$.op.logic; - this$.defParam = defParam; - this$.opLoc = this$.op; - this$.op += ''; - this$[rite instanceof Node ? 'right' : 'unaries'] = rite; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['left', 'right']; - prototype.show = function(){ - return [void 8].concat(this.unaries).reverse().join(' ') + [this.logic] + this.op; - }; - prototype.assigns = function(it){ - return this.left.assigns(it); - }; - prototype.delegate(['isCallable', 'isRegex'], function(it){ - var ref$; - return ((ref$ = this.op) === '=' || ref$ === ':=') && this.right[it](); - }); - prototype.isArray = function(){ - switch (this.op) { - case '=': - case ':=': - return this.right.isArray(); - case '/=': - return this.right.isMatcher(); - } - }; - prototype.isString = function(){ - switch (this.op) { - case '=': - case ':=': - case '+=': - case '*=': - return this.right.isString(); - case '-=': - return this.right.isMatcher(); - } - }; - prototype.unfoldSoak = function(o){ - var that, ref$, ref1$, rite, temps; - if (this.left instanceof Existence) { - if (that = (ref1$ = (ref$ = this.left = this.left.it).name, delete ref$.name, ref1$)) { - rite = this.right; - rite = Assign(this.right = Var(that), rite); - } else { - ref$ = this.right.cache(o), rite = ref$[0], this.right = ref$[1], temps = ref$[2]; - } - return ref$ = If(Existence(rite), this), ref$.temps = temps, ref$.cond = this.cond, ref$['void'] = this['void'], ref$; - } - return If.unfoldSoak(o, this, 'left'); - }; - prototype.unfoldAssign = function(){ - return this.access && this; - }; - prototype.compileNode = function(o){ - var left, ref$, i$, len$, op, right, reft, sign, name, lvar, that, protoSplit, dotSplit, code, empty, res; - if (this.left instanceof Slice && this.op === '=') { - return this.compileSplice(o); - } - left = this.left.expandSlice(o, true).unwrap(); - if (!this.right) { - left.isAssignable() || left.carp('invalid unary assign'); - ref$ = Chain(left).cacheReference(o), left = ref$[0], this.right = ref$[1]; - for (i$ = 0, len$ = (ref$ = this.unaries).length; i$ < len$; ++i$) { - op = ref$[i$]; - this.right = Unary(op, this.right); - } - } - if (left.isEmpty()) { - return sn(null, (ref$ = Parens(this.right), ref$.front = this.front, ref$.newed = this.newed, ref$).compile(o)); - } - if (left.getDefault()) { - this.right = Binary(left.op, this.right, left.second); - left = left.first; - } - if (left.items) { - return this.compileDestructuring(o, left); - } - left.isAssignable() || left.carp('invalid assign'); - if (this.logic) { - return this.compileConditional(o, left); - } - op = this.op, right = this.right; - if (op === '?=') { - return this.compileMinMax(o, left, right); - } - if ((op === '**=' || op === '^=' || op === '%%=' || op === '++=' || op === '|>=') || op === '*=' && right.isString() || (op === '-=' || op === '/=') && right.isMatcher()) { - ref$ = Chain(left).cacheReference(o), left = ref$[0], reft = ref$[1]; - right = Binary(op.slice(0, -1), reft, right); - op = ':='; - } - if (op === '.&.=' || op === '.|.=' || op === '.^.=' || op === '.<<.=' || op === '.>>.=' || op === '.>>>.=') { - op = op.slice(1, -2) + '='; - } - (right = right.unparen()).ripName(left = left.unwrap()); - sign = sn(this.opLoc, " ", op.replace(':', ''), " "); - name = (left.front = true, left).compile(o, LEVEL_LIST); - if (lvar = left instanceof Var) { - if (op === '=') { - o.scope.declare(name.toString(), left, this['const'] || !this.defParam && o['const'] && '$' !== name.toString().slice(-1)); - } else if (that = o.scope.checkReadOnly(name.toString())) { - left.carp("assignment to " + that + " \"" + name + "\"", ReferenceError); - } - } - if (left instanceof Chain && right instanceof Fun) { - protoSplit = name.toString().split('.prototype.'); - dotSplit = name.toString().split('.'); - if (protoSplit.length > 1) { - right.inClass = protoSplit[0]; - } else if (dotSplit.length > 1) { - right.inClassStatic = slice$.call(dotSplit, 0, -1).join(''); - } - } - code = !o.level && right instanceof While && !right['else'] && (lvar || left instanceof Chain && left.isSimpleAccess()) - ? (empty = right.objComp ? '{}' : '[]', [res = o.scope.temporary('res'), " = " + empty + ";\n" + this.tab, right.makeReturn(res).compile(o), "\n" + this.tab, name, sign, o.scope.free(res)]) - : [name, sign, right.compile(o, LEVEL_LIST)]; - if (o.level > LEVEL_LIST) { - code = ["("].concat(slice$.call(code), [")"]); - } - return sn.apply(null, [null].concat(slice$.call(code))); - }; - prototype.compileConditional = function(o, left){ - var lefts, morph; - if (left instanceof Var && in$(this.logic, ['?']) && this.op === '=') { - o.scope.declare(left.value, left); - } - lefts = Chain(left).cacheReference(o); - o.level += LEVEL_OP < o.level; - morph = Binary(this.logic, lefts[0], (this.logic = false, this.left = lefts[1], this)); - return sn(this, (morph['void'] = this['void'], morph).compileNode(o)); - }; - prototype.compileMinMax = function(o, left, right){ - var lefts, rites, test, put, ref$; - lefts = Chain(left).cacheReference(o); - rites = right.cache(o, true); - test = Binary(this.op.replace('?', ''), lefts[0], rites[0]); - put = Assign(lefts[1], rites[1], ':='); - if (this['void'] || !o.level) { - return Parens(Binary('||', test, put)).compile(o); - } - ref$ = test.first.cache(o, true), test.first = ref$[0], left = ref$[1]; - return sn(this, If(test, left).addElse(put).compileExpression(o)); - }; - prototype.compileDestructuring = function(o, left){ - var items, len, ret, rite, that, cache, rref, list, code, i$, len$, item; - items = left.items, len = items.length; - ret = o.level && !this['void']; - rite = this.right.compile(o, len === 1 ? LEVEL_CALL : LEVEL_LIST); - if (that = left.name) { - cache = sn(this, that, " = ", rite); - o.scope.declare(rite = that, left); - } else if ((ret || len > 1) && (!ID.test(rite.toString()) || left.assigns(rite.toString()))) { - cache = sn(this, rref = o.scope.temporary(), " = ", rite); - rite = rref; - } - list = this["rend" + left.constructor.displayName](o, items, rite); - if (rref) { - o.scope.free(rref); - } - if (cache) { - list.unshift(cache); - } - if (ret || !list.length) { - list.push(rite); - } - code = []; - for (i$ = 0, len$ = list.length; i$ < len$; ++i$) { - item = list[i$]; - code.push(item); - code.push(", "); - } - code.pop(); - if (list.length < 2 || o.level < LEVEL_LIST) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - } - }; - prototype.compileSplice = function(o){ - var ref$, fromExpNode, fromExp, rightNode, right, toExp; - ref$ = Chain(this.left.from).cacheReference(o), fromExpNode = ref$[0], fromExp = ref$[1]; - ref$ = Chain(this.right).cacheReference(o), rightNode = ref$[0], right = ref$[1]; - toExp = Binary('-', this.left.to, fromExp); - return sn(this, Block([Chain(Var(util('splice'))).add(Index(Key('apply'), '.', true)).add(Call([this.left.target, Chain(Arr([fromExpNode, toExp])).add(Index(Key('concat'), '.', true)).add(Call([rightNode]))])), right]).compile(o, LEVEL_LIST)); - }; - prototype.rendArr = function(o, nodes, rite){ - var i$, len$, i, node, skip, len, val, ivar, start, inc, rcache, ref$, results$ = []; - for (i$ = 0, len$ = nodes.length; i$ < len$; ++i$) { - i = i$; - node = nodes[i$]; - if (node.isEmpty()) { - continue; - } - if (node instanceof Splat) { - len && node.carp('multiple splat in an assignment'); - skip = (node = node.it).isEmpty(); - if (i + 1 === (len = nodes.length)) { - if (skip) { - break; - } - val = Arr.wrap(JS(util('slice') + '.call(' + rite + (i ? ", " + i + ")" : ')'))); - } else { - val = ivar = rite + ".length - " + (len - i - 1); - if (skip && i + 2 === len) { - continue; - } - start = i + 1; - this.temps = [ivar = o.scope.temporary('i')]; - val = skip - ? (node = Var(ivar), Var(val)) - : Arr.wrap(JS(i + " < (" + ivar + " = " + val + ")\ ? " + util('slice') + ".call(" + rite + ", " + i + ", " + ivar + ")\ : (" + ivar + " = " + i + ", [])")); - } - } else { - (inc = ivar) && start < i && (inc += " + " + (i - start)); - val = Chain(rcache || (rcache = Literal(rite)), [Index(JS(inc || i))]); - } - if (node instanceof Assign) { - node = Binary(node.op, node.left, node.right, node.logic || true); - } - results$.push((ref$ = clone$(this), ref$.left = node, ref$.right = val, ref$['void'] = true, ref$).compile(o, LEVEL_PAREN)); - } - return results$; - }; - prototype.rendObj = function(o, nodes, rite){ - var i$, len$, node, splat, logic, ref$, key, val, rcache, results$ = []; - for (i$ = 0, len$ = nodes.length; i$ < len$; ++i$) { - node = nodes[i$]; - if (splat = node instanceof Splat) { - node = node.it; - } - if (logic = node.getDefault()) { - node = node.first; - } - if (node instanceof Parens) { - ref$ = Chain(node.it).cacheReference(o), node = ref$[0], key = ref$[1]; - } else if (node instanceof Prop) { - node = (key = node.key, node).val; - } else { - key = node; - } - if (node instanceof Key) { - node = CopyL(node, Var(node.name)); - } - if (logic) { - node = (logic.first = node, logic); - } - val = Chain(rcache || (rcache = Var(rite)), [Index(key.maybeKey())]); - if (splat) { - val = Import(Obj(), val); - } - results$.push((ref$ = clone$(this), ref$.left = node, ref$.right = val, ref$['void'] = true, ref$).compile(o, LEVEL_PAREN)); - } - return results$; - }; - return Assign; -}(Node)); -exports.Import = Import = (function(superclass){ - var prototype = extend$((import$(Import, superclass).displayName = 'Import', Import), superclass).prototype, constructor = Import; - function Import(left, right, all){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.left = left; - this$.right = right; - this$.all = all && 'All'; - if (!all && left instanceof Obj && right.items) { - return Obj(left.items.concat(right.asObj().items)); - } - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['left', 'right']; - prototype.show = function(){ - return this.all; - }; - prototype.delegate(['isCallable', 'isArray'], function(it){ - return this.left[it](); - }); - prototype.unfoldSoak = function(o){ - var left, value, ref$, temps; - left = this.left; - if (left instanceof Existence && !left.negated) { - if ((left = left.it) instanceof Var) { - value = (this.left = left).value; - if (!o.scope.check(value, true)) { - left = JS("typeof " + value + " != 'undefined' && " + value); - } - } else { - ref$ = left.cache(o), left = ref$[0], this.left = ref$[1], temps = ref$[2]; - } - return ref$ = If(left, this), ref$.temps = temps, ref$.soak = true, ref$.cond = this.cond, ref$['void'] = this['void'], ref$; - } - return If.unfoldSoak(o, this, 'left') || (this['void'] || !o.level) && If.unfoldSoak(o, this, 'right'); - }; - prototype.compileNode = function(o){ - var right; - right = this.right; - if (!this.all) { - if (right instanceof Chain) { - right = right.unfoldSoak(o) || right.unfoldAssign(o) || right.expandSlice(o).unwrap(); - } - if (right instanceof List) { - return this.compileAssign(o, right.asObj().items); - } - } - return CopyL(this, Call.make(Util("import" + (this.all || '')), [this.left, right])).compileNode(o); - }; - prototype.compileAssign = function(o, items){ - var top, reft, ref$, left, delim, space, code, i$, len$, i, node, com, logic, dyna, key, val; - if (!items.length) { - return this.left.compile(o); - } - top = !o.level; - if (items.length < 2 && (top || this['void'] || items[0] instanceof Splat)) { - reft = this.left; - if (reft.isComplex()) { - reft = Parens(reft); - } - } else { - ref$ = this.left.cache(o), left = ref$[0], reft = ref$[1], this.temps = ref$[2]; - } - ref$ = top - ? [';', '\n' + this.tab] - : [',', ' '], delim = ref$[0], space = ref$[1]; - delim += space; - code = this.temps - ? [left.compile(o, LEVEL_PAREN), delim] - : []; - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - i = i$; - node = items[i$]; - i && code.push(com ? space : delim); - if (com = node.comment) { - code.push(node.compile(o)); - continue; - } - if (node instanceof Splat) { - code.push(Import(reft, node.it).compile(o)); - continue; - } - if (logic = node.getDefault()) { - node = node.first; - } - if (dyna = node instanceof Parens) { - ref$ = node.it.cache(o, true), key = ref$[0], val = ref$[1]; - } else if (node instanceof Prop) { - key = node.key, val = node.val; - if (node.accessor) { - if (key instanceof Key) { - key = JS("'" + key.name + "'"); - } - code.push("Object.defineProperty(", reft.compile(o, LEVEL_LIST), ", ", key.compile(o, LEVEL_LIST), ", ", node.compileDescriptor(o), ")"); - continue; - } - } else { - key = val = node; - } - dyna || (key = key.maybeKey()); - logic && (val = (logic.first = val, logic)); - code.push(Assign(Chain(reft, [Index(key)]), val).compile(o, LEVEL_PAREN)); - } - if (top) { - return sn.apply(null, [null].concat(slice$.call(code))); - } - this['void'] || node instanceof Splat || code.push(com ? ' ' : ', ', reft.compile(o, LEVEL_PAREN)); - if (o.level < LEVEL_LIST) { - return sn.apply(null, [null].concat(slice$.call(code))); - } else { - return sn.apply(null, [null, "("].concat(slice$.call(code), [")"])); - } - }; - return Import; -}(Node)); -exports.In = In = (function(superclass){ - var prototype = extend$((import$(In, superclass).displayName = 'In', In), superclass).prototype, constructor = In; - importAll$(prototype, arguments[1]); - function In(item, array){ - this.item = item; - this.array = array; - } - prototype.children = ['item', 'array']; - prototype.compileNode = function(o){ - var array, items, code, ref$, sub, ref, cmp, cnj, i$, len$, i, test; - items = (array = this.array.expandSlice(o).unwrap()).items; - if (!(array instanceof Arr) || items.length < 2) { - return sn(this, this.negated ? '!' : '', util('in'), "(", this.item.compile(o, LEVEL_LIST), ", ", array.compile(o, LEVEL_LIST), ")"); - } - code = []; - ref$ = this.item.cache(o, false, LEVEL_PAREN), sub = ref$[0], ref = ref$[1]; - ref$ = this.negated - ? [' !== ', ' && '] - : [' === ', ' || '], cmp = ref$[0], cnj = ref$[1]; - for (i$ = 0, len$ = items.length; i$ < len$; ++i$) { - i = i$; - test = items[i$]; - if (code.length > 0) { - code.push(cnj); - } - if (test instanceof Splat) { - code.push((ref$ = new In(Var(ref), test.it), ref$.negated = this.negated, ref$).compile(o, LEVEL_TOP)); - if (!(i || sub === ref)) { - code = ["(" + sub + ", "].concat(slice$.call(code), [")"]); - } - } else { - code.push(i || sub === ref - ? ref - : "(" + sub + ")", cmp, test.compile(o, LEVEL_OP + PREC['=='])); - } - } - sub === ref || o.scope.free(ref); - if (o.level < LEVEL_OP + PREC['||']) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn.apply(null, [this, "("].concat(slice$.call(code), [")"])); - } - }; - return In; -}(Node, Negatable)); -exports.Existence = Existence = (function(superclass){ - var prototype = extend$((import$(Existence, superclass).displayName = 'Existence', Existence), superclass).prototype, constructor = Existence; - importAll$(prototype, arguments[1]); - function Existence(it, negated){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.it = it; - this$.negated = negated; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['it']; - prototype.compileNode = function(o){ - var node, ref$, code, op, eq; - node = (ref$ = this.it.unwrap(), ref$.front = this.front, ref$); - code = [node.compile(o, LEVEL_OP + PREC['=='])]; - if (node instanceof Var && !o.scope.check(code.join(""), true)) { - ref$ = this.negated - ? ['||', '='] - : ['&&', '!'], op = ref$[0], eq = ref$[1]; - code = ["typeof "].concat(slice$.call(code), [" " + eq + "= 'undefined' " + op + " "], slice$.call(code), [" " + eq + "== null"]); - } else { - code.push(" " + (op = this.negated ? '==' : '!=') + " null"); - } - if (o.level < LEVEL_OP + PREC[op]) { - return sn.apply(null, [this].concat(slice$.call(code))); - } else { - return sn(this, "(", code, ")"); - } - }; - return Existence; -}(Node, Negatable)); -exports.Fun = Fun = (function(superclass){ - var prototype = extend$((import$(Fun, superclass).displayName = 'Fun', Fun), superclass).prototype, constructor = Fun; - function Fun(params, body, bound, curried, hushed, generator){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.params = params || []; - this$.body = body || Block(); - this$.bound = bound && 'this$'; - this$.curried = curried || false; - this$.hushed = hushed != null ? hushed : false; - this$.generator = generator != null ? generator : false; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['params', 'body']; - prototype.show = function(){ - var that; - return [this.name] + [(that = this.bound) ? "~" + that : void 8]; - }; - prototype.named = function(it){ - return this.name = it, this.statement = true, this; - }; - prototype.isCallable = YES; - prototype.isStatement = function(){ - return !!this.statement; - }; - prototype.traverseChildren = function(arg$, xscope){ - if (xscope) { - return superclass.prototype.traverseChildren.apply(this, arguments); - } - }; - prototype.makeReturn = function(){ - if (this.statement) { - return this.returns = true, this; - } else { - return superclass.prototype.makeReturn.apply(this, arguments); - } - }; - prototype.ripName = function(it){ - this.name || (this.name = it.varName()); - }; - prototype.compileNode = function(o){ - var pscope, sscope, scope, that, inLoop, ref$, body, name, tab, code, bodyCode, curryCodeCheck, this$ = this; - pscope = o.scope; - sscope = pscope.shared || pscope; - scope = o.scope = this.body.scope = new Scope(this.wrapper ? pscope : sscope, this.wrapper && sscope); - scope.fun = this; - if (that = this.proto) { - scope.assign('prototype', that.compile(o) + ".prototype"); - } - if (that = this.cname) { - scope.assign('constructor', that); - } - if (inLoop = (ref$ = o.loop, delete o.loop, ref$)) { - o.indent = this.tab = ''; - } - o.indent += TAB; - body = this.body, name = this.name, tab = this.tab; - code = ['function']; - if (this.generator) { - this.ctor && this.carp("a constructor can't be a generator"); - o.inGenerator = true; - code.push('*'); - } else if (!this.wrapper) { - o.inGenerator = false; - } - if (this.bound === 'this$') { - if (this.ctor) { - scope.assign('this$', 'this instanceof ctor$ ? this : new ctor$'); - body.lines.push(Return(Literal('this$'))); - } else if (that = (ref$ = sscope.fun) != null ? ref$.bound : void 8) { - this.bound = that; - } else { - sscope.assign('this$', 'this'); - } - } - if (this.statement) { - name || this.carp('nameless function declaration'); - pscope === o.block.scope || this.carp('misplaced function declaration'); - this.accessor && this.carp('named accessor'); - pscope.add(name, 'function', this); - } - if (this.statement || name && this.labeled) { - code.push(' ', scope.add(name, 'function', this)); - } - this.hushed || this.ctor || this.newed || body.makeReturn(); - code.push("(", this.compileParams(o, scope), ")"); - code = [sn.apply(null, [this].concat(slice$.call(code)))]; - code.push("{"); - if (!snEmpty(bodyCode = body.compileWithDeclarations(o))) { - code.push("\n", bodyCode, "\n" + tab); - } - code.push('}'); - curryCodeCheck = function(){ - if (this$.curried && this$.hasSplats) { - this$.carp('cannot curry a function with a variable number of arguments'); - } - if (this$.curried && this$.params.length > 1 && !this$.classBound) { - if (this$.bound) { - return [util('curry'), "(("].concat(slice$.call(code), ["), true)"]); - } else { - return [util('curry'), "("].concat(slice$.call(code), [")"]); - } - } else { - return code; - } - }; - if (inLoop) { - return pscope.assign(pscope.temporary('fn'), sn.apply(null, [null].concat(slice$.call(curryCodeCheck())))); - } - if (this.returns) { - code.push("\n" + tab + "return ", name, ";"); - } else if (this.bound && this.ctor) { - code.push(' function ctor$(){} ctor$.prototype = prototype;'); - } - code = curryCodeCheck(); - if (this.front && !this.statement) { - return sn.apply(null, [null, "("].concat(slice$.call(code), [")"])); - } else { - return sn.apply(null, [null].concat(slice$.call(code))); - } - }; - prototype.compileParams = function(o, scope){ - var params, length, body, i$, p, len$, i, splace, rest, that, names, assigns, dic, vr, df, unaries, hasUnary, v, ref$, ref1$; - params = this.params, length = params.length, body = this.body; - for (i$ = params.length - 1; i$ >= 0; --i$) { - p = params[i$]; - if (!(p.isEmpty() || p.filler)) { - break; - } - --params.length; - } - for (i$ = 0, len$ = params.length; i$ < len$; ++i$) { - i = i$; - p = params[i$]; - if (p instanceof Splat) { - this.hasSplats = true; - splace = i; - } else if (p.op === '=') { - params[i] = Binary(p.logic || '?', p.left, p.right); - } - } - if (splace != null) { - rest = params.splice(splace, 9e9); - } else if (this.accessor) { - if (that = params[1]) { - that.carp('excess accessor parameter'); - } - } else if (!(length || this.wrapper)) { - if (body.traverseChildren(function(it){ - return it.value === 'it' || null; - })) { - params[0] = Var('it'); - } - } - names = []; - assigns = []; - if (params.length) { - dic = {}; - for (i$ = 0, len$ = params.length; i$ < len$; ++i$) { - p = params[i$]; - vr = p; - if (df = vr.getDefault()) { - vr = vr.first; - } - if (vr.isEmpty()) { - vr = Var(scope.temporary('arg')); - } else if (vr.value === '..') { - vr = Var(o.ref = scope.temporary()); - } else if (!(vr instanceof Var)) { - unaries = []; - while (vr instanceof Unary) { - hasUnary = true; - unaries.push(vr); - vr = vr.it; - } - v = Var((ref1$ = (ref$ = vr.it || vr).name, delete ref$.name, ref1$) || vr.varName() || scope.temporary('arg')); - assigns.push(Assign(vr, (fn$()))); - vr = v; - } else if (df) { - assigns.push(Assign(vr, p.second, '=', p.op, true)); - } - names.push(scope.add(vr.value, 'arg', p), ', '); - } - } - if (rest) { - while (splace--) { - rest.unshift(Arr()); - } - assigns.push(Assign(Arr(rest), Literal('arguments'))); - } - if (assigns.length) { - (ref$ = this.body).prepend.apply(ref$, assigns); - } - names.pop(); - return sn.apply(null, [null].concat(slice$.call(names))); - function fn$(){ - switch (false) { - case !df: - return Binary(p.op, v, p.second); - case !hasUnary: - return fold(function(x, y){ - y.it = x; - return y; - }, v, unaries.reverse()); - default: - return v; - } - } - }; - return Fun; -}(Node)); -exports.Class = Class = (function(superclass){ - var prototype = extend$((import$(Class, superclass).displayName = 'Class', Class), superclass).prototype, constructor = Class; - function Class(arg$){ - var body; - this.title = arg$.title, this.sup = arg$.sup, this.mixins = arg$.mixins, body = arg$.body; - this.fun = Fun([], body); - } - prototype.children = ['title', 'sup', 'mixins', 'fun']; - prototype.isCallable = YES; - prototype.ripName = function(it){ - this.name = it.varName(); - }; - prototype.compile = function(o, level){ - var fun, body, lines, title, boundFuncs, curriedBoundFuncs, decl, name, proto, ctorName, ctor, ctorPlace, importProtoObj, i$, len$, i, node, f, vname, args, that, imports, ref$, res$, clas; - fun = this.fun, body = fun.body, lines = body.lines, title = this.title; - CopyL(this, fun); - boundFuncs = []; - curriedBoundFuncs = []; - decl = title != null ? title.varName() : void 8; - name = decl || this.name; - if (ID.test(name || '')) { - fun.cname = name; - } else { - name = 'constructor'; - } - proto = Var('prototype'); - ctorName = 'constructor$$'; - importProtoObj = function(node, i){ - var j, prop, key, i$, ref$, len$, v; - j = 0; - for (; j < node.items.length; j++) { - prop = node.items[j]; - key = prop.key; - if ((key instanceof Key && key.name === ctorName) || (key instanceof Literal && key.value === "'" + ctorName + "'")) { - if (ctor) { - node.carp('redundant constructor'); - } - ctor = prop.val; - node.items.splice(j--, 1); - ctorPlace = i; - } - if (!(prop.val instanceof Fun || prop.accessor)) { - continue; - } - if (key.isComplex()) { - key = Var(o.scope.temporary('key')); - prop.key = Assign(key, prop.key); - } - if (prop.val.bound) { - if (prop.val.curried) { - curriedBoundFuncs.push(prop.key); - } else { - boundFuncs.push(prop.key); - } - prop.val.bound = false; - prop.val.classBound = true; - } - for (i$ = 0, len$ = (ref$ = [].concat(prop.val)).length; i$ < len$; ++i$) { - v = ref$[i$]; - v.meth = key; - } - } - if (node.items.length) { - return Import(proto, node); - } else { - return Literal('void'); - } - }; - for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) { - i = i$; - node = lines[i$]; - if (node instanceof Obj) { - lines[i] = importProtoObj(node, i); - } else if (node instanceof Fun && !node.statement) { - ctor && node.carp('redundant constructor'); - ctor = node; - } else if (node instanceof Assign && node.left instanceof Chain && node.left.head.value === 'this' && node.right instanceof Fun) { - node.right.stat = node.left.tails[0].key; - } else { - node.traverseChildren(fn$); - } - } - ctor || (ctor = lines[lines.length] = this.sup - ? Fun([], Block(Chain(new Super).add(Call([Splat(Literal('arguments'))])))) - : Fun()); - if (!(ctor instanceof Fun)) { - lines.splice(ctorPlace + 1, 0, Assign(Var(ctorName), ctor)); - lines.unshift(ctor = Fun([], Block(Return(Chain(Var(ctorName)).add(Call([Splat('arguments', true)])))))); - } - ctor.name = name; - ctor.ctor = true; - ctor.statement = true; - for (i$ = 0, len$ = boundFuncs.length; i$ < len$; ++i$) { - f = boundFuncs[i$]; - ctor.body.lines.unshift(Assign(Chain(Literal('this')).add(Index(f)), Chain(Var(util('bind'))).add(Call([Literal('this'), Literal("'" + f.name + "'"), Var('prototype')])))); - } - for (i$ = 0, len$ = curriedBoundFuncs.length; i$ < len$; ++i$) { - f = curriedBoundFuncs[i$]; - ctor.body.lines.unshift(Assign(Chain(Literal('this')).add(Index(Key("_" + f.name))), Chain(Var(util('curry'))).add(Call([Chain(Var('prototype')).add(Index(f)), Var('true')]))), Assign(Chain(Literal('this')).add(Index(f)), Chain(Var(util('bind'))).add(Call([Literal('this'), Literal("'_" + f.name + "'")])))); - } - lines.push(vname = fun.proto = Var(fun.bound = name)); - args = []; - if (that = this.sup) { - args.push(that); - imports = Chain(Import(Literal('this'), Var('superclass'))); - fun.proto = Util.Extends(fun.cname ? Block([Assign(imports.add(Index(Key('displayName'))), Literal("'" + name + "'")), Literal(name)]) : imports, (ref$ = fun.params)[ref$.length] = Var('superclass')); - } - if (that = this.mixins) { - res$ = []; - for (i$ = 0, len$ = that.length; i$ < len$; ++i$) { - args[args.length] = that[i$]; - res$.push(Import(proto, JS("arguments[" + (args.length - 1) + "]"), true)); - } - imports = res$; - body.prepend.apply(body, imports); - } - if (fun.cname && !this.sup) { - body.prepend(Literal(name + ".displayName = '" + name + "'")); - } - clas = Parens(Call.make(fun, args), true); - if (decl && title.isComplex()) { - clas = Assign(vname, clas); - } - if (title) { - clas = Assign(title, clas); - } - return sn(null, clas.compile(o, level)); - function fn$(it){ - var i$, ref$, len$, k, child; - if (it instanceof Block) { - for (i$ = 0, len$ = (ref$ = it.lines).length; i$ < len$; ++i$) { - k = i$; - child = ref$[i$]; - if (child instanceof Obj) { - it.lines[k] = importProtoObj(child, i); - } - } - } - } - }; - return Class; -}(Node)); -exports.Super = Super = (function(superclass){ - var prototype = extend$((import$(Super, superclass).displayName = 'Super', Super), superclass).prototype, constructor = Super; - function Super(){} - prototype.isCallable = YES; - prototype.compile = function(o){ - var scope, that, result, ref$; - scope = o.scope; - if (!this.sproto) { - for (; that = !scope.get('superclass') && scope.fun; scope = scope.parent) { - result = that; - if (that = result.meth) { - return sn(this, 'superclass.prototype', Index(that).compile(o)); - } - if (that = result.stat) { - return sn(this, 'superclass', Index(that).compile(o)); - } - if (that = scope.fun.inClass) { - return sn(this, that, ".superclass.prototype.", scope.fun.name); - } else if (that = scope.fun.inClassStatic) { - return sn(this, that, ".superclass.", scope.fun.name); - } - } - if (that = (ref$ = o.scope.fun) != null ? ref$.name : void 8) { - return sn(this, that, ".superclass"); - } - } - return sn(this, 'superclass'); - }; - return Super; -}(Node)); -exports.Parens = Parens = (function(superclass){ - var prototype = extend$((import$(Parens, superclass).displayName = 'Parens', Parens), superclass).prototype, constructor = Parens; - function Parens(it, keep, string, lb, rb){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.it = it; - this$.keep = keep; - this$.string = string; - this$.lb = lb; - this$.rb = rb; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['it']; - prototype.show = function(){ - return this.string && '""'; - }; - prototype.delegate(['isComplex', 'isCallable', 'isArray', 'isRegex'], function(it){ - return this.it[it](); - }); - prototype.isString = function(){ - return this.string || this.it.isString(); - }; - prototype.unparen = function(){ - if (this.keep) { - return this; - } else { - return this.it.unparen(); - } - }; - prototype.compile = function(o, level){ - var it; - level == null && (level = o.level); - it = this.it; - it.cond || (it.cond = this.cond), it['void'] || (it['void'] = this['void']); - if (this.calling && (!level || this['void'])) { - it.head.hushed = true; - } - if (!(this.keep || this.newed || level >= LEVEL_OP + PREC[it.op])) { - return (it.front = this.front, it).compile(o, level || LEVEL_PAREN); - } - if (it.isStatement()) { - return it.compileClosure(o); - } else { - return sn(null, sn(this.lb, "("), it.compile(o, LEVEL_PAREN), sn(this.rb, ")")); - } - }; - return Parens; -}(Node)); -exports.Splat = Splat = (function(superclass){ - var ref$, prototype = extend$((import$(Splat, superclass).displayName = 'Splat', Splat), superclass).prototype, constructor = Splat; - function Splat(it, filler){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.it = it; - this$.filler = filler; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - ref$ = Parens.prototype, prototype.children = ref$.children, prototype.isComplex = ref$.isComplex; - prototype.isAssignable = YES; - prototype.assigns = function(it){ - return this.it.assigns(it); - }; - prototype.compile = function(){ - return this.carp('invalid splat'); - }; - Splat.compileArray = function(o, list, apply){ - var index, i$, len$, node, args, atoms, ref$; - expand(list); - index = 0; - for (i$ = 0, len$ = list.length; i$ < len$; ++i$) { - node = list[i$]; - if (node instanceof Splat) { - break; - } - ++index; - } - if (index >= list.length) { - return sn(this, ''); - } - if (!list[1]) { - return sn(this, (apply ? Object : ensureArray)(list[0].it).compile(o, LEVEL_LIST)); - } - args = []; - atoms = []; - for (i$ = 0, len$ = (ref$ = list.splice(index, 9e9)).length; i$ < len$; ++i$) { - node = ref$[i$]; - if (node instanceof Splat) { - if (atoms.length) { - args.push(Arr(atoms.splice(0, 9e9))); - } - args.push(ensureArray(node.it)); - } else { - atoms.push(node); - } - } - if (atoms.length) { - args.push(Arr(atoms)); - } - return sn(null, (index - ? Arr(list) - : args.shift()).compile(o, LEVEL_CALL), sn(this, ".concat("), List.compile(o, args), sn(this, ")")); - }; - function expand(nodes){ - var index, node, it; - index = -1; - while (node = nodes[++index]) { - if (node instanceof Splat) { - it = node.it; - if (it.isEmpty()) { - nodes.splice(index--, 1); - } else if (it instanceof Arr) { - nodes.splice.apply(nodes, [index, 1].concat(slice$.call(expand(it.items)))); - index += it.items.length - 1; - } - } - } - return nodes; - } - function ensureArray(node){ - if (node.isArray()) { - return node; - } - return Call.make(JS(util('slice') + '.call'), [node]); - } - return Splat; -}(Node)); -exports.Jump = Jump = (function(superclass){ - var prototype = extend$((import$(Jump, superclass).displayName = 'Jump', Jump), superclass).prototype, constructor = Jump; - function Jump(verb, label){ - this.verb = verb; - this.label = label; - } - prototype.show = function(){ - var that; - return (this.verb || '') + ((that = this.label) ? ' ' + that : ''); - }; - prototype.isStatement = YES; - prototype.makeReturn = THIS; - prototype.getJump = function(ctx){ - var that, ref$; - ctx || (ctx = {}); - if (!ctx[this.verb]) { - return this; - } - if (that = this.label) { - return !in$(that, (ref$ = ctx.labels) != null - ? ref$ - : ctx.labels = []) && this; - } - }; - prototype.compileNode = function(o){ - var that, ref$; - if (that = this.label) { - in$(that, (ref$ = o.labels) != null - ? ref$ - : o.labels = []) || this.carp("unknown label \"" + that + "\""); - } else { - o[this.verb] || this.carp("stray " + this.verb); - } - return sn(this, this.show() + ';'); - }; - Jump.extended = function(sub){ - sub.prototype.children = ['it']; - this[sub.displayName.toLowerCase()] = sub; - }; - return Jump; -}(Node)); -exports.Throw = Throw = (function(superclass){ - var prototype = extend$((import$(Throw, superclass).displayName = 'Throw', Throw), superclass).prototype, constructor = Throw; - function Throw(it){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.it = it; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.getJump = VOID; - prototype.compileNode = function(o){ - var ref$; - return sn(this, "throw ", ((ref$ = this.it) != null ? ref$.compile(o, LEVEL_PAREN) : void 8) || 'null', ";"); - }; - return Throw; -}(Jump)); -exports.Return = Return = (function(superclass){ - var prototype = extend$((import$(Return, superclass).displayName = 'Return', Return), superclass).prototype, constructor = Return; - function Return(it){ - var this$ = this instanceof ctor$ ? this : new ctor$; - if (it && it.value !== 'void') { - this$.it = it; - } - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.getJump = THIS; - prototype.compileNode = function(o){ - var that; - return sn.apply(null, [this, "return"].concat( - (that = this.it) - ? [' ', that.compile(o, LEVEL_PAREN)] - : [], [";"] - )); - }; - return Return; -}(Jump)); -exports.While = While = (function(superclass){ - var prototype = extend$((import$(While, superclass).displayName = 'While', While), superclass).prototype, constructor = While; - function While(test, un, mode){ - this.un = un; - mode && (mode instanceof Node - ? this.update = mode - : this.post = true); - if (this.post || test.value !== '' + !un) { - this.test = test; - } - } - prototype.children = ['test', 'body', 'update', 'else']; - prototype.aSource = 'test'; - prototype.aTargets = ['body', 'update']; - prototype.show = function(){ - return [this.un ? '!' : void 8, this.post ? 'do' : void 8].join(''); - }; - prototype.isStatement = prototype.isArray = YES; - prototype.makeComprehension = function(toAdd, loops){ - this.isComprehension = true; - while (loops.length) { - toAdd = loops.pop().addBody(Block(toAdd)); - if (!toAdd.isComprehension) { - toAdd.inComprehension = true; - } - } - return this.addBody(Block(toAdd)); - }; - prototype.getJump = function(ctx){ - var i$, ref$, ref1$, len$, node; - ctx || (ctx = {}); - ctx['continue'] = true; - ctx['break'] = true; - for (i$ = 0, len$ = (ref$ = ((ref1$ = this.body) != null ? ref1$.lines : void 8) || []).length; i$ < len$; ++i$) { - node = ref$[i$]; - if (node.getJump(ctx)) { - return node; - } - } - }; - prototype.addBody = function(body){ - var top; - this.body = body; - if (this.guard) { - this.body = Block(If(this.guard, this.body)); - } - top = this.body.lines[0]; - if ((top != null ? top.verb : void 8) === 'continue' && !top.label) { - this.body.lines.length = 0; - } - return this; - }; - prototype.addGuard = function(guard){ - this.guard = guard; - return this; - }; - prototype.addObjComp = function(objComp){ - this.objComp = objComp != null ? objComp : true; - return this; - }; - prototype.makeReturn = function(it){ - var last, ref$, ref1$, ref2$; - if (this.hasReturned) { - return this; - } - if (it) { - if (this.objComp) { - this.body = Block(this.body.makeReturn(it, true)); - } else { - if (!(this.body || this.index)) { - this.addBody(Block(Var(this.index = 'ridx$'))); - } - last = (ref$ = this.body.lines) != null ? ref$[ref$.length - 1] : void 8; - if ((this.isComprehension || this.inComprehension) && !(last != null && last.isComprehension)) { - (ref1$ = this.body).makeReturn.apply(ref1$, arguments); - if ((ref1$ = this['else']) != null) { - ref1$.makeReturn.apply(ref1$, arguments); - } - this.hasReturned = true; - } else { - this.resVar = it; - if ((ref2$ = this['else']) != null) { - ref2$.makeReturn.apply(ref2$, arguments); - } - } - } - } else { - this.getJump() || (this.returns = true); - } - return this; - }; - prototype.compileNode = function(o){ - var test, ref$, head, that; - o.loop = true; - this.test && (this.un - ? this.test = this.test.invert() - : this.anaphorize()); - if (this.post) { - return sn(null, sn(this, 'do {'), this.compileBody((o.indent += TAB, o))); - } - test = ((ref$ = this.test) != null ? ref$.compile(o, LEVEL_PAREN) : void 8) || ''; - if (!(this.update || this['else'])) { - head = !snEmpty(test) - ? [sn(this, "while ("), test] - : [sn(this, 'for (;;')]; - } else { - head = [sn(this, 'for (')]; - if (this['else']) { - head.push(this.yet = o.scope.temporary('yet'), " = true"); - } - head.push(sn(this, ";"), test.toString() && ' ', test, sn(this, ";")); - if (that = this.update) { - head.push(' ', that.compile(o, LEVEL_PAREN)); - } - } - return sn.apply(null, [null].concat(slice$.call(head), [sn(this, ') {'), this.compileBody((o.indent += TAB, o))])); - }; - prototype.compileBody = function(o){ - var lines, yet, tab, code, ret, mid, empty, _resultName, getResultName, last, hasLoop, res, temp, key$, ref$, bodyCode, this$ = this; - o['break'] = o['continue'] = true; - lines = this.body.lines, yet = this.yet, tab = this.tab; - code = []; - ret = []; - mid = []; - empty = this.objComp ? '{}' : '[]'; - getResultName = function(){ - return _resultName != null - ? _resultName - : _resultName = o.scope.temporary(this$.objComp ? 'resultObj' : 'results'); - }; - last = lines != null ? lines[lines.length - 1] : void 8; - if (!(this.isComprehension || this.inComprehension) || (last != null && last.isComprehension)) { - hasLoop = false; - if (last != null) { - last.traverseChildren(function(it){ - var ref$; - if (it instanceof Block && (ref$ = it.lines)[ref$.length - 1] instanceof While) { - hasLoop = true; - } - }); - } - if (this.returns && !this.resVar) { - this.resVar = res = o.scope.assign(getResultName(), empty); - } - if (this.resVar && (last instanceof While || hasLoop)) { - temp = o.scope.temporary('lresult'); - lines.unshift(Assign(Var(temp), lines[lines.length - 1].objComp - ? Obj() - : Arr(), '=')); - if (lines[key$ = lines.length - 1] != null) { - lines[key$] = lines[key$].makeReturn(temp); - } - mid.push(TAB, Chain(Var(this.resVar)).add(Index(Key('push'), '.', true)).add(Call([Chain(Var(temp))])).compile(o), ";\n" + this.tab); - } else { - this.hasReturned = true; - if (this.resVar) { - this.body.makeReturn(this.resVar); - } - } - } - if (this.returns) { - if ((!last instanceof While && !this.hasReturned) || this.isComprehension || this.inComprehension) { - if (lines[key$ = lines.length - 1] != null) { - lines[key$] = lines[key$].makeReturn(res = o.scope.assign(getResultName(), empty), this.objComp); - } - } - ret.push("\n" + this.tab + "return ", res || empty, ";"); - if ((ref$ = this['else']) != null) { - ref$.makeReturn(); - } - } - yet && lines.unshift(JS(yet + " = false;")); - if (!snEmpty(bodyCode = this.body.compile(o, LEVEL_TOP))) { - code.push("\n", bodyCode, "\n" + tab); - } - code.push.apply(code, mid); - code.push('}'); - if (this.post) { - code.push(sn(this, " while ("), this.test.compile((o.tab = tab, o), LEVEL_PAREN), sn(this, ");")); - } - if (yet) { - code.push(sn(this, " if ("), yet, sn(this, ") "), this.compileBlock(o, Block(this['else']))); - o.scope.free(yet); - } - return sn.apply(null, [null].concat(slice$.call(code), slice$.call(ret))); - }; - return While; -}(Node)); -exports.For = For = (function(superclass){ - var prototype = extend$((import$(For, superclass).displayName = 'For', For), superclass).prototype, constructor = For; - function For(it){ - var i$, x$, ref$, len$; - importAll$(this, it); - if (this.item instanceof Var && !this.item.value) { - this.item = null; - } - for (i$ = 0, len$ = (ref$ = this.kind || []).length; i$ < len$; ++i$) { - x$ = ref$[i$]; - this[x$] = true; - } - if (this.own && !this.object) { - this.carp('`for own` requires `of`'); - } - } - prototype.children = ['item', 'source', 'from', 'to', 'step', 'body']; - prototype.aSource = null; - prototype.show = function(){ - return ((this.kind || []).concat(this.index)).join(' '); - }; - prototype.addBody = function(body){ - var hasYield, ref$, x$, that, this$ = this; - hasYield = !!body.traverseChildren(function(child){ - if (child instanceof Yield) { - return true; - } - }); - if (this['let']) { - if (ref$ = this.ref, delete this.ref, ref$) { - this.item = Literal('..'); - } - body = Block(Call['let']((x$ = [], (that = this.index) && x$.push(Assign(Var(that), Literal('index$$'))), (that = this.item) && x$.push(Assign(that, Literal('item$$'))), x$), body, hasYield)); - } - superclass.prototype.addBody.call(this, body); - if (this.guard && this['let'] && (this.index || this.item)) { - this.body.lines[0]['if'].traverseChildren(function(it){ - if (it instanceof Var) { - if (this$.index && it.value === this$.index) { - it.value = 'index$$'; - } - if (this$.item && it.value === this$.item.value) { - it.value = 'item$$'; - } - } - }); - } - if (this['let']) { - if (hasYield) { - this.body = Block(Yield('yieldfrom', body)); - } - delete this.index; - delete this.item; - } - return this; - }; - prototype.compileNode = function(o){ - var temps, idx, ref$, pvar, step, tvar, tail, fvar, vars, eq, cond, svar, srcPart, lvar, head, that, body; - o.loop = true; - temps = this.temps = []; - if (this.object && this.index) { - o.scope.declare(idx = this.index); - } else { - temps.push(idx = o.scope.temporary('i')); - } - if (!this.body) { - this.addBody(Block(Var(idx))); - } - if (!this.object) { - ref$ = (this.step || Literal(1)).compileLoopReference(o, 'step'), pvar = ref$[0], step = ref$[1]; - pvar === step || temps.push(pvar); - } - if (this.from) { - ref$ = this.to.compileLoopReference(o, 'to'), tvar = ref$[0], tail = ref$[1]; - fvar = this.from.compile(o, LEVEL_LIST); - vars = idx + " = " + fvar; - if (tail !== tvar) { - vars += ", " + tail; - temps.push(tvar); - } - if (!this.step && +fvar > +tvar) { - pvar = step = -1; - } - eq = this.op === 'til' ? '' : '='; - cond = +pvar - ? idx + " " + '<>'.charAt(pvar < 0) + eq + " " + tvar - : pvar + " < 0 ? " + idx + " >" + eq + " " + tvar + " : " + idx + " <" + eq + " " + tvar; - } else { - if (this.ref) { - this.item = Var(o.scope.temporary('x')); - } - if (this.item || this.object && this.own || this['let']) { - ref$ = this.source.compileLoopReference(o, 'ref', !this.object), svar = ref$[0], srcPart = ref$[1]; - svar === srcPart || temps.push(svar); - } else { - svar = srcPart = this.source.compile(o, LEVEL_PAREN); - } - if (!this.object) { - if (0 > pvar && ~~pvar === +pvar) { - vars = idx + " = " + srcPart + ".length - 1"; - cond = idx + " >= 0"; - } else { - temps.push(lvar = o.scope.temporary('len')); - vars = idx + " = 0, " + lvar + " = " + srcPart + ".length"; - cond = idx + " < " + lvar; - } - } - } - this['else'] && (this.yet = o.scope.temporary('yet')); - head = [sn(this, 'for (')]; - if (this.object) { - head.push(idx, " in "); - } - if (that = this.yet) { - head.push(that, " = true, "); - } - if (this.object) { - head.push(srcPart); - } else { - step === pvar || (vars += ', ' + step); - head.push(vars, "; ", cond, "; " + (1 == Math.abs(pvar) - ? (pvar < 0 ? '--' : '++') + idx - : idx + (pvar < 0 - ? ' -= ' + pvar.toString().slice(1) - : ' += ' + pvar))); - } - this.own && head.push(sn(this, ") if ("), o.scope.assign('own$', '{}.hasOwnProperty'), ".call(", svar, ", ", idx, ")"); - head.push(sn(this, ') {')); - if (this['let']) { - this.body.traverseChildren(function(it){ - switch (it.value) { - case 'index$$': - it.value = idx; - break; - case 'item$$': - it.value = svar + "[" + idx + "]"; - } - }); - } - o.indent += TAB; - if (this.index && !this.object) { - head.push('\n' + o.indent, Assign(Var(this.index), JS(idx)).compile(o, LEVEL_TOP), ';'); - } - if (this.item && !this.item.isEmpty()) { - head.push('\n' + o.indent, Assign(this.item, JS(svar + "[" + idx + "]")).compile(o, LEVEL_TOP), ';'); - } - if (this.ref) { - o.ref = this.item.value; - } - body = this.compileBody(o); - if ((this.item || (this.index && !this.object)) && '}' === body.toString().charAt(0)) { - head.push('\n' + this.tab); - } - return sn.apply(null, [null].concat(slice$.call(head), [body])); - }; - return For; -}(While)); -exports.StepSlice = StepSlice = (function(superclass){ - var prototype = extend$((import$(StepSlice, superclass).displayName = 'StepSlice', StepSlice), superclass).prototype, constructor = StepSlice; - prototype.makeReturn = function(makeReturnArg){ - this.makeReturnArg = makeReturnArg; - return superclass.prototype.makeReturn.apply(this, arguments); - }; - prototype.compileNode = function(o){ - var ref$, sub, ref, temps, code; - this.index = o.scope.temporary('x'); - ref$ = this.target.unwrap().cache(o), sub = ref$[0], ref = ref$[1], temps = ref$[2]; - this.guard = Binary('<', Literal(this.index), Chain(ref).add(Index(Key('length')))); - this.makeComprehension(Chain(ref).add(Index(Literal(this.index))), this); - if (this.makeReturnArg != null) { - this.makeReturn(this.makeReturnArg); - } - code = []; - if (temps) { - code.push(sub.compile(o), ';' + '\n' + o.indent); - } - code.push(superclass.prototype.compileNode.apply(this, arguments)); - return sn.apply(null, [this].concat(slice$.call(code))); - }; - function StepSlice(){ - StepSlice.superclass.apply(this, arguments); - } - return StepSlice; -}(For)); -exports.Try = Try = (function(superclass){ - var prototype = extend$((import$(Try, superclass).displayName = 'Try', Try), superclass).prototype, constructor = Try; - function Try(attempt, thrown, recovery, ensure){ - var ref$; - this.attempt = attempt; - this.thrown = thrown; - this.recovery = recovery; - this.ensure = ensure; - if ((ref$ = this.recovery) != null) { - ref$.lines.unshift(Assign(this.thrown || Var('e'), Var('e$'))); - } - } - prototype.children = ['attempt', 'recovery', 'ensure']; - prototype.show = function(){ - return this.thrown; - }; - prototype.isStatement = YES; - prototype.isCallable = function(){ - var ref$; - return ((ref$ = this.recovery) != null ? ref$.isCallable() : void 8) && this.attempt.isCallable(); - }; - prototype.getJump = function(it){ - var ref$; - return this.attempt.getJump(it) || ((ref$ = this.recovery) != null ? ref$.getJump(it) : void 8); - }; - prototype.makeReturn = function(){ - var ref$; - this.attempt = (ref$ = this.attempt).makeReturn.apply(ref$, arguments); - if (this.recovery != null) { - this.recovery = (ref$ = this.recovery).makeReturn.apply(ref$, arguments); - } - return this; - }; - prototype.compileNode = function(o){ - var code, that; - o.indent += TAB; - code = [sn(this, 'try '), this.compileBlock(o, this.attempt)]; - if (that = this.recovery || !this.ensure && JS('')) { - code.push(sn(that, ' catch (e$) '), this.compileBlock(o, that)); - } - if (that = this.ensure) { - code.push(sn(that, ' finally '), this.compileBlock(o, that)); - } - return sn.apply(null, [null].concat(slice$.call(code))); - }; - return Try; -}(Node)); -exports.Switch = Switch = (function(superclass){ - var prototype = extend$((import$(Switch, superclass).displayName = 'Switch', Switch), superclass).prototype, constructor = Switch; - function Switch(type, topic, cases, $default){ - var last, ref$; - this.type = type; - this.topic = topic; - this.cases = cases; - this['default'] = $default; - if (type === 'match') { - if (topic) { - this.target = Arr(topic); - } - this.topic = null; - } else { - if (topic) { - if (topic.length > 1) { - throw "can't have more than one topic in switch statement"; - } - this.topic = this.topic[0]; - } - } - if (this.cases.length && (last = (ref$ = this.cases)[ref$.length - 1]).tests.length === 1 && last.tests[0] instanceof Var && last.tests[0].value === '_') { - this.cases.pop(); - this['default'] = last.body; - } - } - prototype.children = ['topic', 'cases', 'default']; - prototype.aSource = 'topic'; - prototype.aTargets = ['cases', 'default']; - prototype.show = function(){ - return this.type; - }; - prototype.isStatement = YES; - prototype.isCallable = function(){ - var i$, ref$, len$, c; - for (i$ = 0, len$ = (ref$ = this.cases).length; i$ < len$; ++i$) { - c = ref$[i$]; - if (!c.isCallable()) { - return false; - } - } - if (this['default']) { - return this['default'].isCallable(); - } else { - return true; - } - }; - prototype.getJump = function(ctx){ - var i$, ref$, len$, c, that; - ctx || (ctx = {}); - ctx['break'] = true; - for (i$ = 0, len$ = (ref$ = this.cases).length; i$ < len$; ++i$) { - c = ref$[i$]; - if (that = c.body.getJump(ctx)) { - return that; - } - } - return (ref$ = this['default']) != null ? ref$.getJump(ctx) : void 8; - }; - prototype.makeReturn = function(){ - var i$, ref$, len$, c; - for (i$ = 0, len$ = (ref$ = this.cases).length; i$ < len$; ++i$) { - c = ref$[i$]; - c.makeReturn.apply(c, arguments); - } - if ((ref$ = this['default']) != null) { - ref$.makeReturn.apply(ref$, arguments); - } - return this; - }; - prototype.compileNode = function(o){ - var tab, ref$, targetNode, target, topic, t, code, stop, i$, len$, i, c, that; - tab = this.tab; - if (this.target) { - ref$ = Chain(this.target).cacheReference(o), targetNode = ref$[0], target = ref$[1]; - } - topic = this.type === 'match' - ? (t = target - ? [targetNode] - : [], Block(t.concat([Literal('false')])).compile(o, LEVEL_PAREN)) - : !!this.topic && this.anaphorize().compile(o, LEVEL_PAREN); - code = [sn(this, "switch (", snSafe(topic), ") {\n")]; - stop = this['default'] || this.cases.length - 1; - o['break'] = true; - for (i$ = 0, len$ = (ref$ = this.cases).length; i$ < len$; ++i$) { - i = i$; - c = ref$[i$]; - code.push(c.compileCase(o, tab, i === stop, this.type === 'match' || !topic, this.type, target)); - } - if (this['default']) { - o.indent = tab + TAB; - if (that = this['default'].compile(o, LEVEL_TOP)) { - code.push(tab + "default:\n", that, "\n"); - } - } - return sn.apply(null, [null].concat(slice$.call(code), [tab + '}'])); - }; - return Switch; -}(Node)); -exports.Case = Case = (function(superclass){ - var prototype = extend$((import$(Case, superclass).displayName = 'Case', Case), superclass).prototype, constructor = Case; - function Case(tests, body){ - this.tests = tests; - this.body = body; - } - prototype.children = ['tests', 'body']; - prototype.isCallable = function(){ - return this.body.isCallable(); - }; - prototype.makeReturn = function(){ - var ref$, ref1$; - if (((ref$ = (ref1$ = this.body.lines)[ref1$.length - 1]) != null ? ref$.value : void 8) !== 'fallthrough') { - (ref1$ = this.body).makeReturn.apply(ref1$, arguments); - } - return this; - }; - prototype.compileCase = function(o, tab, nobr, bool, type, target){ - var tests, i$, ref$, len$, test, j$, ref1$, len1$, t, i, tar, binary, that, code, lines, last, ft, bodyCode; - tests = []; - for (i$ = 0, len$ = (ref$ = this.tests).length; i$ < len$; ++i$) { - test = ref$[i$]; - test = test.expandSlice(o).unwrap(); - if (test instanceof Arr && type !== 'match') { - for (j$ = 0, len1$ = (ref1$ = test.items).length; j$ < len1$; ++j$) { - t = ref1$[j$]; - tests.push(t); - } - } else { - tests.push(test); - } - } - tests.length || tests.push(Literal('void')); - if (type === 'match') { - for (i$ = 0, len$ = tests.length; i$ < len$; ++i$) { - i = i$; - test = tests[i$]; - tar = Chain(target).add(Index(Literal(i), '.', true)); - tests[i] = Chain(test).autoCompare(target ? [tar] : null); - } - } - if (bool) { - binary = type === 'match' ? '&&' : '||'; - t = tests[0]; - i = 0; - while (that = tests[++i]) { - t = Binary(binary, t, that); - } - tests = [(this.t = t, this.aSource = 't', this.aTargets = ['body'], this).anaphorize().invert()]; - } - code = []; - for (i$ = 0, len$ = tests.length; i$ < len$; ++i$) { - t = tests[i$]; - code.push(tab, sn(t, "case ", t.compile(o, LEVEL_PAREN), ":\n")); - } - lines = this.body.lines; - last = lines[lines.length - 1]; - if (ft = (last != null ? last.value : void 8) === 'fallthrough') { - lines[lines.length - 1] = JS('// fallthrough'); - } - o.indent = tab += TAB; - if (!snEmpty(bodyCode = this.body.compile(o, LEVEL_TOP))) { - code.push(bodyCode, '\n'); - } - if (!(nobr || ft || last instanceof Jump)) { - code.push(tab + 'break;\n'); - } - return sn.apply(null, [null].concat(slice$.call(code))); - }; - return Case; -}(Node)); -exports.If = If = (function(superclass){ - var prototype = extend$((import$(If, superclass).displayName = 'If', If), superclass).prototype, constructor = If; - function If($if, then, un){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$['if'] = $if; - this$.then = then; - this$.un = un; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['if', 'then', 'else']; - prototype.aSource = 'if'; - prototype.aTargets = ['then']; - prototype.show = function(){ - return this.un && '!'; - }; - prototype.terminator = ''; - prototype.delegate(['isCallable', 'isArray', 'isString', 'isRegex'], function(it){ - var ref$; - return ((ref$ = this['else']) != null ? ref$[it]() : void 8) && this.then[it](); - }); - prototype.getJump = function(it){ - var ref$; - return this.then.getJump(it) || ((ref$ = this['else']) != null ? ref$.getJump(it) : void 8); - }; - prototype.makeReturn = function(){ - var ref$; - this.then = (ref$ = this.then).makeReturn.apply(ref$, arguments); - if (this['else'] != null) { - this['else'] = (ref$ = this['else']).makeReturn.apply(ref$, arguments); - } - return this; - }; - prototype.compileNode = function(o){ - if (this.un) { - this['if'] = this['if'].invert(); - } else { - this.soak || this.anaphorize(); - } - if (o.level) { - return this.compileExpression(o); - } else { - return this.compileStatement(o); - } - }; - prototype.compileStatement = function(o){ - var code, els; - code = [sn(this, "if (", this['if'].compile(o, LEVEL_PAREN), ") ")]; - o.indent += TAB; - code.push(this.compileBlock(o, Block(this.then))); - if (!(els = this['else'])) { - return sn.apply(null, [null].concat(slice$.call(code))); - } - return sn.apply(null, [null].concat( - slice$.call(code), [ - sn(els, ' else '), els instanceof constructor - ? els.compile((o.indent = this.tab, o), LEVEL_TOP) - : this.compileBlock(o, els) - ] - )); - }; - prototype.compileExpression = function(o){ - var thn, els, code, pad; - thn = this.then, els = this['else'] || Literal('void'); - this['void'] && (thn['void'] = els['void'] = true); - if (!this['else'] && (this.cond || this['void'])) { - return Parens(Binary('&&', this['if'], thn)).compile(o); - } - code = [sn(this, this['if'].compile(o, LEVEL_COND))]; - pad = els.isComplex() ? '\n' + (o.indent += TAB) : ' '; - code.push(pad + "", sn(thn, "? "), thn.compile(o, LEVEL_LIST), pad + "", sn(els, ": "), els.compile(o, LEVEL_LIST)); - if (o.level < LEVEL_COND) { - return sn.apply(null, [null].concat(slice$.call(code))); - } else { - return sn(null, "(", code, ")"); - } - }; - If.unfoldSoak = function(o, parent, name){ - var that; - if (that = parent[name].unfoldSoak(o)) { - parent[name] = that.then; - return that.cond = parent.cond, that['void'] = parent['void'], that.then = Chain(parent), that; - } - }; - return If; -}(Node)); -exports.Label = Label = (function(superclass){ - var ref$, prototype = extend$((import$(Label, superclass).displayName = 'Label', Label), superclass).prototype, constructor = Label; - function Label(label, it){ - var fun; - this.label = label || '_'; - this.it = it; - if (fun = (it instanceof Fun || it instanceof Class) && it || it.calling && it.it.head) { - fun.name || (fun.name = this.label, fun.labeled = true); - return it; - } - } - ref$ = Parens.prototype, prototype.children = ref$.children, prototype.isCallable = ref$.isCallable, prototype.isArray = ref$.isArray; - prototype.show = function(){ - return this.label; - }; - prototype.isStatement = YES; - prototype.getJump = function(ctx){ - var ref$; - ctx || (ctx = {}); - ((ref$ = ctx.labels) != null - ? ref$ - : ctx.labels = []).push(this.label); - return this.it.getJump((ctx['break'] = true, ctx)); - }; - prototype.makeReturn = function(){ - var ref$; - this.it = (ref$ = this.it).makeReturn.apply(ref$, arguments); - return this; - }; - prototype.compileNode = function(o){ - var label, it, labels; - label = this.label, it = this.it; - labels = o.labels = slice$.call(o.labels || []); - if (in$(label, labels)) { - this.carp("duplicate label \"" + label + "\""); - } - labels.push(label); - it.isStatement() || (it = Block(it)); - return sn(null, sn(this, label, ": "), it instanceof Block - ? (o.indent += TAB, this.compileBlock(o, it)) - : it.compile(o)); - }; - return Label; -}(Node)); -exports.Cascade = Cascade = (function(superclass){ - var prototype = extend$((import$(Cascade, superclass).displayName = 'Cascade', Cascade), superclass).prototype, constructor = Cascade; - function Cascade(input, output, prog1){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.input = input; - this$.output = output; - this$.prog1 = prog1; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.show = function(){ - return this.prog1; - }; - prototype.children = ['input', 'output']; - prototype.terminator = ''; - prototype.delegate(['isCallable', 'isArray', 'isString', 'isRegex'], function(it){ - return this[this.prog1 ? 'input' : 'output'][it](); - }); - prototype.getJump = function(it){ - return this.output.getJump(it); - }; - prototype.makeReturn = function(ret){ - this.ret = ret; - return this; - }; - prototype.compileNode = function(o){ - var level, input, output, prog1, ref, ref$, code, out; - level = o.level; - input = this.input, output = this.output, prog1 = this.prog1, ref = this.ref; - if (prog1 && ('ret' in this || level && !this['void'])) { - output.add((ref$ = Literal('..'), ref$.cascadee = true, ref$)); - } - if ('ret' in this) { - output = output.makeReturn(this.ret); - } - if (ref) { - prog1 || (output = Assign(Var(ref), output)); - } else { - ref = o.scope.temporary('x'); - } - if (input instanceof Cascade) { - input.ref = ref; - } else { - input && (input = Assign(Var(ref), input)); - } - o.level && (o.level = LEVEL_PAREN); - code = [input.compile(o)]; - out = Block(output).compile((o.ref = new String(ref), o)); - if (prog1 === 'cascade' && !o.ref.erred) { - this.carp("unreferred cascadee"); - } - if (!level) { - return sn.apply(null, [null].concat(slice$.call(code), [input.terminator, "\n", out])); - } - code.push(", ", out); - if (level > LEVEL_PAREN) { - return sn.apply(null, [null, "("].concat(slice$.call(code), [")"])); - } else { - return sn.apply(null, [null].concat(slice$.call(code))); - } - }; - return Cascade; -}(Node)); -exports.JS = JS = (function(superclass){ - var prototype = extend$((import$(JS, superclass).displayName = 'JS', JS), superclass).prototype, constructor = JS; - function JS(code, literal, comment){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.code = code; - this$.literal = literal; - this$.comment = comment; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.show = function(){ - if (this.comment) { - return this.code; - } else { - return "`" + this.code + "`"; - } - }; - prototype.terminator = ''; - prototype.isAssignable = prototype.isCallable = function(){ - return !this.comment; - }; - prototype.compile = function(it){ - return sn(this, snSafe(this.literal - ? entab(this.code, it.indent) - : this.code)); - }; - return JS; -}(Node)); -exports.Require = Require = (function(superclass){ - var prototype = extend$((import$(Require, superclass).displayName = 'Require', Require), superclass).prototype, constructor = Require; - function Require(body){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.body = body; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['body']; - prototype.compile = function(o){ - var getValue, processItem, code, i$, ref$, len$, item, this$ = this; - getValue = function(item, throwError){ - switch (false) { - case !(item instanceof Key): - return item.name; - case !(item instanceof Var): - return item.value; - case !(item instanceof Literal): - return item.value; - default: - if (throwError) { - return this$.carp('invalid require! argument'); - } else { - return item; - } - } - }; - processItem = function(item){ - var ref$, asg, value, asgValue, toAsg, main; - ref$ = (function(){ - switch (false) { - case !(item instanceof Prop): - return [item.val, item.key]; - default: - return [item, item]; - } - }()), asg = ref$[0], value = ref$[1]; - asgValue = getValue(asg); - toAsg = toString$.call(asgValue).slice(8, -1) === 'String' ? CopyL(asg, Var(nameFromPath(asgValue))) : asg; - value = stripString(getValue(value, true)); - main = Chain(CopyL(this, Var('require'))).add(Call([Literal("'" + value + "'")])); - return sn(item, Assign(toAsg, main).compile(o)); - }; - if (this.body.items != null) { - code = []; - for (i$ = 0, len$ = (ref$ = this.body.items).length; i$ < len$; ++i$) { - item = ref$[i$]; - code.push(processItem(item), ";\n" + o.indent); - } - code.pop(); - return sn.apply(null, [null].concat(slice$.call(code))); - } else { - return sn(null, processItem(this.body)); - } - }; - return Require; -}(Node)); -exports.Util = Util = (function(superclass){ - var prototype = extend$((import$(Util, superclass).displayName = 'Util', Util), superclass).prototype, constructor = Util; - function Util(verb){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.verb = verb; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.show = Jump.prototype.show; - prototype.isCallable = YES; - prototype.compile = function(){ - return sn(this, util(this.verb)); - }; - Util.Extends = function(){ - return Call.make(Util('extend'), [arguments[0], arguments[1]]); - }; - return Util; -}(Node)); -exports.Vars = Vars = (function(superclass){ - var prototype = extend$((import$(Vars, superclass).displayName = 'Vars', Vars), superclass).prototype, constructor = Vars; - function Vars(vars){ - var this$ = this instanceof ctor$ ? this : new ctor$; - this$.vars = vars; - return this$; - } function ctor$(){} ctor$.prototype = prototype; - prototype.children = ['vars']; - prototype.makeReturn = THIS; - prototype.compile = function(o, level){ - var i$, ref$, len$, v, value; - for (i$ = 0, len$ = (ref$ = this.vars).length; i$ < len$; ++i$) { - v = ref$[i$], value = v.value; - if (!(v instanceof Var)) { - v.carp('invalid variable declaration'); - } - if (o.scope.check(value)) { - v.carp("redeclaration of \"" + value + "\""); - } - o.scope.declare(value, v); - } - return sn(this, Literal('void').compile(o, level)); - }; - return Vars; -}(Node)); -exports.L = function(a, b, node){ - if (node && typeof node === "object") { - node.first_line = a.first_line + 1; - node.first_column = a.first_column; - node.last_line = b.last_line + 1; - node.last_column = b.last_column; - node.line = a.first_line + 1; - node.column = a.first_column; - } - return node; -}; -exports.CopyL = CopyL = function(a, node){ - if (node && typeof node === "object") { - node.first_line = a.first_line; - node.first_column = a.first_column; - node.last_line = a.last_line; - node.last_column = a.last_column; - node.line = a.line; - node.column = a.column; - } - return node; -}; -exports.Box = function(v){ - if (typeof v === "object") { - return v; - } else { - return new v.constructor(v); - } -}; -exports.Decl = function(type, nodes, lno){ - if (!nodes[0]) { - throw SyntaxError("empty " + type + " on line " + lno); - } - return DECLS[type](nodes); -}; -DECLS = { - 'export': function(lines){ - var i, out, node, that, ref$; - i = -1; - out = Util('out'); - while (node = lines[++i]) { - if (node instanceof Block) { - lines.splice.apply(lines, [i--, 1].concat(slice$.call(node.lines))); - continue; - } - if (that = node instanceof Fun && node.name) { - lines.splice(i++, 0, Assign(Chain(out, [Index(Key(that))]), Var(that))); - continue; - } - lines[i] = (that = node.varName() || node instanceof Assign && node.left.varName() || node instanceof Class && ((ref$ = node.title) != null ? ref$.varName() : void 8)) - ? Assign(Chain(out, [Index(Key(that))]), node) - : Import(out, node); - } - return Block(lines); - }, - 'import': function(lines, all){ - var i$, len$, i, line; - for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) { - i = i$; - line = lines[i$]; - lines[i] = Import(Literal('this'), line, all); - } - return Block(lines); - }, - importAll: function(it){ - return this['import'](it, true); - }, - 'const': function(lines){ - var i$, len$, node; - for (i$ = 0, len$ = lines.length; i$ < len$; ++i$) { - node = lines[i$]; - node.op === '=' || node.carp('invalid constant variable declaration'); - node['const'] = true; - } - return Block(lines); - }, - 'var': Vars -}; -function Scope(parent, shared){ - this.parent = parent; - this.shared = shared; - this.variables = {}; -} -ref$ = Scope.prototype; -ref$.READ_ONLY = { - 'const': 'constant', - 'function': 'function', - undefined: 'undeclared' -}; -ref$.add = function(name, type, node){ - var t, that; - if (node && (t = this.variables[name + "."])) { - if (that = this.READ_ONLY[t] || this.READ_ONLY[type]) { - node.carp("redeclaration of " + that + " \"" + name + "\""); - } else if (t === type && type === 'arg') { - node.carp("duplicate parameter \"" + name + "\""); - } else if (t === 'upvar') { - node.carp("accidental shadow of \"" + name + "\""); - } - if (t === 'arg' || t === 'function') { - return name; - } - } - this.variables[name + "."] = type; - return name; -}; -ref$.get = function(name){ - return this.variables[name + "."]; -}; -ref$.declare = function(name, node, constant){ - var that, scope; - if (that = this.shared) { - if (this.check(name)) { - return; - } - scope = that; - } else { - scope = this; - } - return scope.add(name, constant ? 'const' : 'var', node); -}; -ref$.assign = function(name, value){ - return this.add(name, { - value: value - }); -}; -ref$.temporary = function(name){ - var ref$; - name || (name = 'ref'); - while ((ref$ = this.variables[name + "$."]) !== 'reuse' && ref$ !== void 8) { - name = name.length < 2 && name < 'z' - ? String.fromCharCode(name.charCodeAt() + 1) - : name.replace(/\d*$/, fn$); - } - return this.add(name + '$', 'var'); - function fn$(it){ - return ++it; - } -}; -ref$.free = function(name){ - return this.add(name, 'reuse'); -}; -ref$.check = function(name, above){ - var type, ref$; - if ((type = this.variables[name + "."]) || !above) { - return type; - } - return (ref$ = this.parent) != null ? ref$.check(name, above) : void 8; -}; -ref$.checkReadOnly = function(name){ - var that, ref$, key$; - if (that = this.READ_ONLY[this.check(name, true)]) { - return that; - } - (ref$ = this.variables)[key$ = name + "."] || (ref$[key$] = 'upvar'); - return ''; -}; -ref$.emit = function(code, tab){ - var vrs, asn, fun, name, ref$, type, that, val, declCode; - vrs = []; - asn = []; - fun = []; - for (name in ref$ = this.variables) { - type = ref$[name]; - name = name.slice(0, -1); - if (type === 'var' || type === 'const' || type === 'reuse') { - vrs.push(name, ", "); - } else if (that = type.value) { - if (~(val = entab(that, tab)).toString().lastIndexOf('function(', 0)) { - if (val instanceof SourceNode) { - snRemoveLeft(val, 8); - } else { - val = val.slice(8); - } - fun.push("function ", name, val, "\n" + tab); - } else { - asn.push(name, " = ", val, ", "); - } - } - } - declCode = vrs.concat(asn); - declCode.pop(); - fun.pop(); - if (declCode.length > 0) { - code = sn.apply(null, [this, tab + "var "].concat(slice$.call(declCode), [";\n", code])); - } - if (fun.length > 0) { - return sn.apply(null, [this, code, "\n" + tab].concat(slice$.call(fun))); - } else { - return sn(this, code); - } -}; -function YES(){ - return true; -} -function NO(){ - return false; -} -function THIS(){ - return this; -} -function VOID(){} -UTILS = { - clone: 'function(it){\n function fun(){} fun.prototype = it;\n return new fun;\n}', - extend: 'function(sub, sup){\n function fun(){} fun.prototype = (sub.superclass = sup).prototype;\n (sub.prototype = new fun).constructor = sub;\n if (typeof sup.extended == \'function\') sup.extended(sub);\n return sub;\n}', - bind: 'function(obj, key, target){\n return function(){ return (target || obj)[key].apply(obj, arguments) };\n}', - 'import': 'function(obj, src){\n var own = {}.hasOwnProperty;\n for (var key in src) if (own.call(src, key)) obj[key] = src[key];\n return obj;\n}', - importAll: 'function(obj, src){\n for (var key in src) obj[key] = src[key];\n return obj;\n}', - repeatString: 'function(str, n){\n for (var r = \'\'; n > 0; (n >>= 1) && (str += str)) if (n & 1) r += str;\n return r;\n}', - repeatArray: 'function(arr, n){\n for (var r = []; n > 0; (n >>= 1) && (arr = arr.concat(arr)))\n if (n & 1) r.push.apply(r, arr);\n return r;\n}', - 'in': 'function(x, xs){\n var i = -1, l = xs.length >>> 0;\n while (++i < l) if (x === xs[i]) return true;\n return false;\n}', - out: 'typeof exports != \'undefined\' && exports || this', - curry: 'function(f, bound){\n var context,\n _curry = function(args) {\n return f.length > 1 ? function(){\n var params = args ? args.concat() : [];\n context = bound ? context || this : this;\n return params.push.apply(params, arguments) <\n f.length && arguments.length ?\n _curry.call(context, params) : f.apply(context, params);\n } : f;\n };\n return _curry();\n}', - flip: 'function(f){\n return curry$(function (x, y) { return f(y, x); });\n}', - partialize: 'function(f, args, where){\n var context = this;\n return function(){\n var params = slice$.call(arguments), i,\n len = params.length, wlen = where.length,\n ta = args ? args.concat() : [], tw = where ? where.concat() : [];\n for(i = 0; i < len; ++i) { ta[tw[0]] = params[i]; tw.shift(); }\n return len < wlen && len ?\n partialize$.apply(context, [f, ta, tw]) : f.apply(context, ta);\n };\n}', - not: 'function(x){ return !x; }', - compose: 'function() {\n var functions = arguments;\n return function() {\n var i, result;\n result = functions[0].apply(this, arguments);\n for (i = 1; i < functions.length; ++i) {\n result = functions[i](result);\n }\n return result;\n };\n}', - deepEq: 'function(x, y, type){\n var toString = {}.toString, hasOwnProperty = {}.hasOwnProperty,\n has = function (obj, key) { return hasOwnProperty.call(obj, key); };\n var first = true;\n return eq(x, y, []);\n function eq(a, b, stack) {\n var className, length, size, result, alength, blength, r, key, ref, sizeB;\n if (a == null || b == null) { return a === b; }\n if (a.__placeholder__ || b.__placeholder__) { return true; }\n if (a === b) { return a !== 0 || 1 / a == 1 / b; }\n className = toString.call(a);\n if (toString.call(b) != className) { return false; }\n switch (className) {\n case \'[object String]\': return a == String(b);\n case \'[object Number]\':\n return a != +a ? b != +b : (a == 0 ? 1 / a == 1 / b : a == +b);\n case \'[object Date]\':\n case \'[object Boolean]\':\n return +a == +b;\n case \'[object RegExp]\':\n return a.source == b.source &&\n a.global == b.global &&\n a.multiline == b.multiline &&\n a.ignoreCase == b.ignoreCase;\n }\n if (typeof a != \'object\' || typeof b != \'object\') { return false; }\n length = stack.length;\n while (length--) { if (stack[length] == a) { return true; } }\n stack.push(a);\n size = 0;\n result = true;\n if (className == \'[object Array]\') {\n alength = a.length;\n blength = b.length;\n if (first) {\n switch (type) {\n case \'===\': result = alength === blength; break;\n case \'<==\': result = alength <= blength; break;\n case \'<<=\': result = alength < blength; break;\n }\n size = alength;\n first = false;\n } else {\n result = alength === blength;\n size = alength;\n }\n if (result) {\n while (size--) {\n if (!(result = size in a == size in b && eq(a[size], b[size], stack))){ break; }\n }\n }\n } else {\n if (\'constructor\' in a != \'constructor\' in b || a.constructor != b.constructor) {\n return false;\n }\n for (key in a) {\n if (has(a, key)) {\n size++;\n if (!(result = has(b, key) && eq(a[key], b[key], stack))) { break; }\n }\n }\n if (result) {\n sizeB = 0;\n for (key in b) {\n if (has(b, key)) { ++sizeB; }\n }\n if (first) {\n if (type === \'<<=\') {\n result = size < sizeB;\n } else if (type === \'<==\') {\n result = size <= sizeB\n } else {\n result = size === sizeB;\n }\n } else {\n first = false;\n result = size === sizeB;\n }\n }\n }\n stack.pop();\n return result;\n }\n}', - split: "''.split", - replace: "''.replace", - toString: '{}.toString', - join: '[].join', - slice: '[].slice', - splice: '[].splice' -}; -LEVEL_TOP = 0; -LEVEL_PAREN = 1; -LEVEL_LIST = 2; -LEVEL_COND = 3; -LEVEL_OP = 4; -LEVEL_CALL = 5; -(function(){ - this['&&'] = this['||'] = this['xor'] = 0.2; - this['.&.'] = this['.^.'] = this['.|.'] = 0.3; - this['=='] = this['!='] = this['~='] = this['!~='] = this['==='] = this['!=='] = 0.4; - this['<'] = this['>'] = this['<='] = this['>='] = this.of = this['instanceof'] = 0.5; - this['<<='] = this['>>='] = this['<=='] = this['>=='] = this['++'] = 0.5; - this['.<<.'] = this['.>>.'] = this['.>>>.'] = 0.6; - this['+'] = this['-'] = 0.7; - this['*'] = this['/'] = this['%'] = 0.8; -}.call(PREC = { - unary: 0.9 -})); -TAB = ' '; -ID = /^(?!\d)[\w$\xAA-\uFFDC]+$/; -SIMPLENUM = /^\d+$/; -function util(it){ - return Scope.root.assign(it + '$', UTILS[it]); -} -function entab(code, tab){ - return code.replace(/\n/g, '\n' + tab); -} -function import$(obj, src){ - var own = {}.hasOwnProperty; - for (var key in src) if (own.call(src, key)) obj[key] = src[key]; - return obj; -} -function clone$(it){ - function fun(){} fun.prototype = it; - return new fun; -} -function extend$(sub, sup){ - function fun(){} fun.prototype = (sub.superclass = sup).prototype; - (sub.prototype = new fun).constructor = sub; - if (typeof sup.extended == 'function') sup.extended(sub); - return sub; -} -function in$(x, xs){ - var i = -1, l = xs.length >>> 0; - while (++i < l) if (x === xs[i]) return true; - return false; -} -function repeatArray$(arr, n){ - for (var r = []; n > 0; (n >>= 1) && (arr = arr.concat(arr))) - if (n & 1) r.push.apply(r, arr); - return r; -} -function repeatString$(str, n){ - for (var r = ''; n > 0; (n >>= 1) && (str += str)) if (n & 1) r += str; - return r; -} -function importAll$(obj, src){ - for (var key in src) obj[key] = src[key]; - return obj; -} -},{"./util":6,"prelude-ls":20,"source-map":22}],2:[function(require,module,exports){ -(function (Buffer){ -// Generated by LiveScript 1.4.0 -var lexer, parser, ast, SourceNode, path, toString$ = {}.toString; -lexer = require('./lexer'); -parser = require('./parser').parser; -ast = require('./ast'); -SourceNode = require('source-map').SourceNode; -path = require('path'); -parser.yy = ast; -parser.lexer = { - lex: function(){ - var ref$, tag, first_line, first_column, last_line, last_column; - ref$ = this.tokens[++this.pos] || [''], tag = ref$[0], this.yytext = ref$[1], first_line = ref$[2], first_column = ref$[3]; - ref$ = this.tokens[this.pos + 1] || [''], last_line = ref$[2], last_column = ref$[3]; - this.yylineno = first_line; - this.yylloc = { - first_line: first_line, - first_column: first_column, - last_line: last_line, - last_column: last_column - }; - return tag; - }, - setInput: function(it){ - this.pos = -1; - return this.tokens = it; - }, - upcomingInput: function(){ - return ''; - } -}; -exports.VERSION = '1.4.0'; -exports.compile = function(code, options){ - var result, ast, output, filename, outputFilename, ref$, mapPath, e, that; - options == null && (options = {}); - options.header == null && (options.header = true); - try { - if (options.json) { - result = Function(exports.compile(code, { - bare: true, - run: true, - print: true - }))(); - return JSON.stringify(result, null, 2) + "\n"; - } else { - ast = parser.parse(lexer.lex(code)); - if (options.run && options.print) { - ast.makeReturn(); - } - output = ast.compileRoot(options); - if (options.header) { - output = new SourceNode(null, null, null, ["// Generated by LiveScript " + exports.VERSION + "\n", output]); - } - if (options.map && options.map !== 'none') { - filename = options.filename, outputFilename = options.outputFilename; - if (!filename) { - filename = "unnamed-" + Math.floor(Math.random() * 4294967296).toString(16) + ".ls"; - } - output.setFile(filename); - result = output.toStringWithSourceMap(); - if (options.map === 'embedded') { - result.map.setSourceContent(filename, code); - } - if ((ref$ = options.map) === 'linked' || ref$ === 'debug') { - mapPath = outputFilename + ".map"; - result.code += "\n//# sourceMappingURL=" + mapPath + "\n"; - } else { - result.code += "\n//# sourceMappingURL=data:application/json;base64," + new Buffer(result.map.toString()).toString('base64') + "\n"; - } - return result; - } else { - return output.toString(); - } - } - } catch (e$) { - e = e$; - if (that = options.filename) { - e.message += "\nat " + that; - } - throw e; - } -}; -exports.ast = function(it){ - return parser.parse(typeof it === 'string' ? lexer.lex(it) : it); -}; -exports.tokens = lexer.lex; -exports.lex = function(it){ - return lexer.lex(it, { - raw: true - }); -}; -exports.run = function(code, options){ - var output, ref$; - output = exports.compile(code, (ref$ = {}, import$(ref$, options), ref$.bare = true, ref$)); - return Function(toString$.call(output).slice(8, -1) === 'String' - ? output - : output.code)(); -}; -exports.tokens.rewrite = lexer.rewrite; -importAll$(exports.ast, parser.yy); -if (require.extensions) { - require('./node')(exports); -} else { - exports.require = require; -} -function import$(obj, src){ - var own = {}.hasOwnProperty; - for (var key in src) if (own.call(src, key)) obj[key] = src[key]; - return obj; -} -function importAll$(obj, src){ - for (var key in src) obj[key] = src[key]; - return obj; -} -}).call(this,require("buffer").Buffer) -},{"./ast":1,"./lexer":3,"./node":4,"./parser":5,"buffer":10,"path":14,"source-map":22}],3:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var string, TABS, unlines, enlines, enslash, reslash, camelize, character, KEYWORDS_SHARED, KEYWORDS_UNUSED, JS_KEYWORDS, LS_KEYWORDS, ID, SYMBOL, SPACE, MULTIDENT, SIMPLESTR, JSTOKEN, BSTOKEN, NUMBER, NUMBER_OMIT, REGEX, HEREGEX_OMIT, LASTDENT, INLINEDENT, NONASCII, OPENERS, CLOSERS, INVERSES, i, o, c, CHAIN, ARG, BLOCK_USERS, slice$ = [].slice; -exports.lex = function(code, options){ - return clone$(exports).tokenize(code || '', options || {}); -}; -exports.rewrite = function(it){ - var ref$; - it || (it = this.tokens); - firstPass(it); - addImplicitIndentation(it); - rewriteBlockless(it); - addImplicitParentheses(it); - addImplicitBraces(it); - expandLiterals(it); - if (((ref$ = it[0]) != null ? ref$[0] : void 8) === 'NEWLINE') { - it.shift(); - } - return it; -}; -exports.tokenize = function(code, o){ - var i, prevIndex, c, charsConsumed, that; - this.inter || (code = code.replace(/[\r\u2028\u2029\uFEFF]/g, '')); - code = '\n' + code; - this.tokens = [this.last = ['NEWLINE', '\n', 0, 0]]; - this.line = ~-o.line; - this.column = o.column || 0; - this.dents = []; - this.closes = []; - this.parens = []; - this.flags = []; - i = 0; - prevIndex = i; - this.charsCounted = 0; - this.isAtPrefix = true; - while (c = code.charAt(i)) { - charsConsumed = i - prevIndex; - prevIndex = i; - if (this.charsCounted > charsConsumed) { - throw new Error('Location information out-of-sync in lexer'); - } - this.column += charsConsumed - this.charsCounted; - this.charsCounted = 0; - switch (c) { - case ' ': - i += this.doSpace(code, i); - break; - case '\n': - i += this.doLine(code, i); - break; - case '\\': - i += this.doBackslash(code, i); - break; - case '\'': - case '"': - i += this.doString(code, i, c); - break; - case "0": - case "1": - case "2": - case "3": - case "4": - case "5": - case "6": - case "7": - case "8": - case "9": - i += this.doNumber(code, i); - break; - case '/': - switch (code.charAt(i + 1)) { - case '*': - i += this.doComment(code, i); - break; - case '/': - i += this.doHeregex(code, i); - break; - default: - i += this.doRegex(code, i) || this.doLiteral(code, i); - } - break; - case '`': - if ('`' === code.charAt(i + 1)) { - i += this.doJS(code, i); - } else { - i += this.doLiteral(code, i); - } - break; - default: - i += this.doID(code, i) || this.doLiteral(code, i) || this.doSpace(code, i); - } - } - this.dedent(this.dent); - if (that = this.closes.pop()) { - this.carp("missing `" + that + "`"); - } - if (this.inter) { - this.rest == null && this.carp('unterminated interpolation'); - } else { - this.last.spaced = true; - this.newline(); - } - o.raw || this.rewrite(); - return this.tokens; -}; -exports.dent = 0; -exports.identifiers = {}; -exports.hasOwn = Object.prototype.hasOwnProperty; -exports.checkConsistency = function(camel, id){ - if (this.hasOwn.call(this.identifiers, camel) && this.identifiers[camel] !== id) { - throw new ReferenceError("Inconsistent use of " + camel + " as " + id + " on line " + (-~this.line)); - } else { - return this.identifiers[camel] = id; - } -}; -exports.doID = function(code, index){ - var regexMatch, input, id, e, last, ref$, tag, ref1$, that; - input = (regexMatch = (ID.lastIndex = index, ID).exec(code))[0]; - if (!input) { - return 0; - } - id = camelize(regexMatch[1]); - if (/-/.test(regexMatch[1])) { - this.checkConsistency(id, regexMatch[1]); - } - if (NONASCII.test(id)) { - try { - Function("var " + id); - } catch (e$) { - e = e$; - this.carp("invalid identifier '" + id + "'"); - } - } - last = this.last; - if (regexMatch[2] || last[0] === 'DOT' || this.adi()) { - this.token('ID', in$(id, JS_KEYWORDS) ? (ref$ = Object(id), ref$.reserved = true, ref$) : id); - if (regexMatch[2]) { - this.token(':', ':'); - } - return input.length; - } - switch (id) { - case 'true': - case 'false': - case 'on': - case 'off': - case 'yes': - case 'no': - case 'null': - case 'void': - case 'arguments': - case 'debugger': - tag = 'LITERAL'; - break; - case 'new': - case 'do': - case 'typeof': - case 'delete': - tag = 'UNARY'; - break; - case 'yield': - tag = 'YIELD'; - break; - case 'return': - case 'throw': - tag = 'HURL'; - break; - case 'break': - case 'continue': - tag = 'JUMP'; - break; - case 'this': - case 'eval': - case 'super': - return this.token('LITERAL', id, true).length; - case 'for': - id = []; - this.fset('for', true); - this.fset('to', false); - break; - case 'then': - this.fset('for', false); - this.fset('to', false); - break; - case 'catch': - case 'function': - id = ''; - break; - case 'in': - case 'of': - if (this.fget('for')) { - this.fset('for', false); - if (id === 'in') { - this.fset('by', true); - id = ''; - if (last[0] === 'ID' && ((ref$ = (ref1$ = this.tokens)[ref1$.length - 2][0]) === ',' || ref$ === ']' || ref$ === '}')) { - id = this.tokens.pop()[1]; - if ((ref$ = this.tokens)[ref$.length - 1][0] === ',') { - this.tokens.pop(); - } - } - } - break; - } - // fallthrough - case 'instanceof': - if (last[1] === '!') { - id = this.tokens.pop()[1] + id; - } - tag = (ref$ = this.tokens)[ref$.length - 1][0] === '(' ? 'BIOPR' : 'RELATION'; - break; - case 'not': - if (last.alias && last[1] === '===') { - return last[1] = '!==', 3; - } - tag = 'UNARY'; - id = '!'; - break; - case 'and': - case 'or': - case 'xor': - case 'is': - case 'isnt': - this.unline(); - tag = id === 'is' || id === 'isnt' ? 'COMPARE' : 'LOGIC'; - if (last[0] === '(') { - tag = 'BIOP'; - } - this.token(tag, (function(){ - switch (id) { - case 'is': - return '==='; - case 'isnt': - return '!=='; - case 'or': - return '||'; - case 'and': - return '&&'; - case 'xor': - return 'xor'; - } - }())); - this.last.alias = true; - return id.length; - case 'unless': - tag = 'IF'; - break; - case 'until': - tag = 'WHILE'; - break; - case 'import': - if (last[0] === '(') { - id = '<<<'; - tag = 'BIOP'; - } else { - if (able(this.tokens)) { - id = '<<<'; - } else { - tag = 'DECL'; - } - } - break; - case 'export': - case 'const': - case 'var': - tag = 'DECL'; - break; - case 'with': - tag = (function(){ - switch (false) { - case !able(this.tokens): - return 'CLONEPORT'; - case last[0] !== '(': - return 'BIOP'; - default: - return 'WITH'; - } - }.call(this)); - break; - case 'when': - this.fset('for', false); - tag = 'CASE'; - // fallthrough - case 'case': - if (this.doCase()) { - return input.length; - } - break; - case 'match': - tag = 'SWITCH'; - break; - case 'loop': - this.token('WHILE', id); - this.token('LITERAL', 'true'); - return input.length; - case 'let': - case 'own': - if (last[0] === 'FOR' && !in$(id, last[1])) { - last[1].push(id); - return 3; - } - // fallthrough - default: - if (in$(id, KEYWORDS_SHARED)) { - break; - } - if (in$(id, KEYWORDS_UNUSED)) { - this.carp("reserved word '" + id + "'"); - } - if (!last[1] && ((ref$ = last[0]) === 'FUNCTION' || ref$ === 'GENERATOR' || ref$ === 'LABEL')) { - last[1] = id; - last.spaced = false; - return input.length; - } - tag = 'ID'; - switch (id) { - case 'otherwise': - if ((ref$ = last[0]) === 'CASE' || ref$ === '|') { - last[0] = 'DEFAULT'; - return id.length; - } - break; - case 'all': - if (that = last[1] === '<<<' && '<' || last[1] === 'import' && 'All') { - last[1] += that; - return 3; - } - break; - case 'from': - if (last[1] === 'yield') { - last[1] += 'from'; - return 4; - } - this.forange() && (tag = 'FROM'); - break; - case 'to': - case 'til': - this.forange() && this.tokens.push(['FROM', '', this.line, this.column], ['STRNUM', '0', this.line, this.column]); - if (this.fget('from')) { - this.fset('from', false); - this.fset('by', true); - tag = 'TO'; - } else if (!last.callable && last[0] === 'STRNUM' && (ref$ = this.tokens)[ref$.length - 2][0] === '[') { - last[0] = 'RANGE'; - last.op = id; - return id.length; - } else if (in$(']', this.closes)) { - this.token('TO', id); - return id.length; - } - break; - case 'by': - if (last[0] === 'STRNUM' && (ref$ = this.tokens)[ref$.length - 2][0] === 'RANGE' && (ref$ = this.tokens)[ref$.length - 3][0] === '[') { - tag = 'RANGE_BY'; - } else if (in$(']', this.closes)) { - tag = 'BY'; - } else if (this.fget('by')) { - tag = 'BY'; - this.fset('by', false); - } - break; - case 'ever': - if (last[0] === 'FOR') { - this.fset('for', false); - last[0] = 'WHILE'; - tag = 'LITERAL'; - id = 'true'; - } - } - } - tag || (tag = regexMatch[1].toUpperCase()); - if ((tag === 'COMPARE' || tag === 'LOGIC' || tag === 'RELATION') && last[0] === '(') { - tag = tag === 'RELATION' ? 'BIOPR' : 'BIOP'; - } - if (tag === 'THEN' || tag === 'IF' || tag === 'WHILE') { - this.fset('for', false); - this.fset('by', false); - } - if (tag === 'RELATION' || tag === 'THEN' || tag === 'ELSE' || tag === 'CASE' || tag === 'DEFAULT' || tag === 'CATCH' || tag === 'FINALLY' || tag === 'IN' || tag === 'OF' || tag === 'FROM' || tag === 'TO' || tag === 'BY' || tag === 'EXTENDS' || tag === 'IMPLEMENTS' || tag === 'WHERE') { - this.unline(); - } - this.token(tag, id); - return input.length; -}; -exports.doNumber = function(code, lastIndex){ - var input, regexMatch, last, radix, num, rnum, bound, ref$; - NUMBER.lastIndex = lastIndex; - if (!(input = (regexMatch = NUMBER.exec(code))[0])) { - return 0; - } - last = this.last; - if (regexMatch[5] && (last[0] === 'DOT' || this.adi())) { - this.token('STRNUM', regexMatch[4].replace(NUMBER_OMIT, '')); - return regexMatch[4].length; - } - if (radix = regexMatch[1]) { - num = parseInt(rnum = regexMatch[2].replace(NUMBER_OMIT, ''), radix); - bound = false; - if (radix > 36 || radix < 2) { - if (/[0-9]/.exec(rnum)) { - this.carp("invalid number base " + radix + " (with number " + rnum + "),base must be from 2 to 36"); - } else { - bound = true; - } - } - if (isNaN(num) || num === parseInt(rnum.slice(0, -1), radix)) { - this.strnum(regexMatch[1]); - this.token('DOT', '.~'); - this.token('ID', regexMatch[2]); - return input.length; - } - num += ''; - } else { - num = (regexMatch[3] || input).replace(NUMBER_OMIT, ''); - if (regexMatch[3] && num.charAt() === '0' && ((ref$ = num.charAt(1)) !== '' && ref$ !== '.')) { - this.carp("deprecated octal literal " + regexMatch[4]); - } - } - if (!last.spaced && last[0] === '+-') { - last[0] = 'STRNUM'; - last[1] += num; - return input.length; - } - this.strnum(num); - return input.length; -}; -exports.doString = function(code, index, q){ - var parts, str; - if (q === code.charAt(index + 1)) { - return q === code.charAt(index + 2) - ? this.doHeredoc(code, index, q) - : (this.strnum(q + q), 2); - } - if (q === '"') { - parts = this.interpolate(code, index, q); - this.addInterpolated(parts, unlines); - return parts.size; - } - str = (SIMPLESTR.lastIndex = index, SIMPLESTR).exec(code)[0] || this.carp('unterminated string'); - this.strnum(unlines(this.string(q, str.slice(1, -1)))); - return this.countLines(str).length; -}; -exports.doHeredoc = function(code, index, q){ - var end, raw, doc, parts, tabs, i$, len$, i, t; - if (q === '\'') { - ~(end = code.indexOf(q + q + q, index + 3)) || this.carp('unterminated heredoc'); - raw = code.slice(index + 3, end); - doc = raw.replace(LASTDENT, ''); - this.strnum(enlines(this.string(q, lchomp(detab(doc, heretabs(doc)))))); - return this.countLines(raw).length + 6; - } - parts = this.interpolate(code, index, q + q + q); - tabs = heretabs(code.slice(index + 3, index + parts.size - 3).replace(LASTDENT, '')); - for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) { - i = i$; - t = parts[i$]; - if (t[0] === 'S') { - if (i + 1 === parts.length) { - t[1] = t[1].replace(LASTDENT, ''); - } - t[1] = detab(t[1], tabs); - if (i === 0) { - t[1] = lchomp(t[1]); - } - } - } - this.addInterpolated(parts, enlines); - return parts.size; -}; -exports.doComment = function(code, index){ - var comment, end, ref$; - comment = ~(end = code.indexOf('*/', index + 2)) - ? code.slice(index, end + 2) - : code.slice(index) + '*/'; - if ((ref$ = this.last[0]) === 'NEWLINE' || ref$ === 'INDENT' || ref$ === 'THEN') { - this.token('COMMENT', detab(comment, this.dent)); - this.token('NEWLINE', '\n'); - } - return this.countLines(comment).length; -}; -exports.doJS = function(code, lastIndex){ - var js, ref$; - JSTOKEN.lastIndex = lastIndex; - js = JSTOKEN.exec(code)[0] || this.carp('unterminated JS literal'); - this.token('LITERAL', (ref$ = Object(detab(js.slice(2, -2), this.dent)), ref$.js = true, ref$), true); - return this.countLines(js).length; -}; -exports.doRegex = function(code, index){ - var divisible, ref$, input, body, flag; - if (divisible = able(this.tokens) || this.last[0] === 'CREMENT') { - if (!this.last.spaced || ((ref$ = code.charAt(index + 1)) === ' ' || ref$ === '=')) { - return 0; - } - } - ref$ = (REGEX.lastIndex = index, REGEX).exec(code), input = ref$[0], body = ref$[1], flag = ref$[2]; - if (input) { - this.regex(body, flag); - } else if (!divisible && this.last[0] !== '(') { - this.carp('unterminated regex'); - } - return input.length; -}; -exports.doHeregex = function(code, index){ - var tokens, last, parts, rest, flag, i$, i, t, dynaflag, len$, val, one; - tokens = this.tokens, last = this.last; - parts = this.interpolate(code, index, '//'); - rest = code.slice(index + parts.size); - flag = this.validate(/^(?:[gimy]{1,4}|[?$]?)/.exec(rest)[0]); - if (parts[1]) { - if (flag === '$') { - this.adi(); - this.token('(', '"'); - } else { - tokens.push(['ID', 'RegExp', last[2], last[3]], ['CALL(', '', last[2], last[3]]); - if (flag === '?') { - for (i$ = parts.length - 1; i$ >= 0; --i$) { - i = i$; - t = parts[i$]; - if (t[0] === 'TOKENS') { - dynaflag = parts.splice(i, 1)[0][1]; - break; - } - } - } - } - for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) { - i = i$; - t = parts[i$]; - if (t[0] === 'TOKENS') { - tokens.push.apply(tokens, t[1]); - } else { - val = t[1].replace(HEREGEX_OMIT, ''); - if (one && !val) { - continue; - } - one = tokens.push((t[0] = 'STRNUM', t[1] = this.string('\'', enslash(val)), t)); - } - tokens.push(['+-', '+', tokens[tokens.length - 1][2], tokens[tokens.length - 1][3]]); - } - --tokens.length; - if (dynaflag || flag >= 'g') { - this.token(',', ','); - if (dynaflag) { - tokens.push.apply(tokens, dynaflag); - } else { - this.token('STRNUM', "'" + flag + "'"); - } - } - this.token(flag === '$' ? ')' : ')CALL', ''); - } else { - this.regex(reslash(parts[0][1].replace(HEREGEX_OMIT, '')), flag); - } - return parts.size + flag.length; -}; -exports.doBackslash = function(code, lastIndex){ - var ref$, input, word; - BSTOKEN.lastIndex = lastIndex; - ref$ = BSTOKEN.exec(code), input = ref$[0], word = ref$[1]; - if (word) { - this.strnum(this.string('\'', word)); - } else { - this.countLines(input); - } - return input.length; -}; -exports.doLine = function(code, index){ - var ref$, input, tabs, length, last, that, delta, tag, val; - ref$ = (MULTIDENT.lastIndex = index, MULTIDENT).exec(code), input = ref$[0], tabs = ref$[1]; - length = this.countLines(input).length; - last = this.last; - last.eol = true; - last.spaced = true; - if (index + length >= code.length) { - return length; - } - if (that = tabs && (this.emender || (this.emender = RegExp('[^' + tabs.charAt() + ']'))).exec(tabs)) { - this.carp("contaminated indent " + escape(that)); - } - if (0 > (delta = tabs.length - this.dent)) { - this.dedent(-delta); - this.newline(); - } else { - tag = last[0], val = last[1]; - if (tag === 'ASSIGN' && ((ref$ = val + '') !== '=' && ref$ !== ':=' && ref$ !== '+=') || val === '++' && (ref$ = this.tokens)[ref$.length - 2].spaced || (tag === '+-' || tag === 'PIPE' || tag === 'BACKPIPE' || tag === 'COMPOSE' || tag === 'DOT' || tag === 'LOGIC' || tag === 'MATH' || tag === 'COMPARE' || tag === 'RELATION' || tag === 'SHIFT' || tag === 'IN' || tag === 'OF' || tag === 'TO' || tag === 'BY' || tag === 'FROM' || tag === 'EXTENDS' || tag === 'IMPLEMENTS')) { - return length; - } - if (delta) { - this.indent(delta); - } else { - this.newline(); - } - } - this.fset('for', false); - this.fset('by', false); - return length; -}; -exports.doSpace = function(code, lastIndex){ - var input; - SPACE.lastIndex = lastIndex; - if (input = SPACE.exec(code)[0]) { - this.last.spaced = true; - } - return input.length; -}; -exports.doCase = function(){ - var ref$, ref1$; - this.seenFor = false; - if (((ref$ = this.last[0]) === 'ASSIGN' || ref$ === '->' || ref$ === ':') || (this.last[0] === 'INDENT' && ((ref$ = (ref1$ = this.tokens)[ref1$.length - 2][0]) === 'ASSIGN' || ref$ === '->' || ref$ === ':'))) { - this.token('SWITCH', 'switch'); - return this.token('CASE', 'case'); - } -}; -exports.doLiteral = function(code, index){ - var sym, tag, val, ref$, that; - if (!(sym = (SYMBOL.lastIndex = index, SYMBOL).exec(code)[0])) { - return 0; - } - switch (tag = val = sym) { - case '|': - tag = 'CASE'; - if (this.doCase()) { - return sym.length; - } - break; - case '|>': - tag = 'PIPE'; - break; - case '`': - tag = 'BACKTICK'; - break; - case '<<': - case '>>': - tag = 'COMPOSE'; - break; - case '<|': - tag = 'BACKPIPE'; - break; - case '+': - case '-': - tag = '+-'; - break; - case '&&': - case '||': - tag = 'LOGIC'; - break; - case '.&.': - case '.|.': - case '.^.': - tag = 'BITWISE'; - break; - case '^^': - tag = 'CLONE'; - break; - case '**': - case '^': - tag = 'POWER'; - break; - case '?': - if (this.last[0] === '(') { - this.token('PARAM(', '('); - this.token(')PARAM', ')'); - this.token('->', '->'); - this.token('ID', 'it'); - } else { - if (this.last.spaced) { - tag = 'LOGIC'; - } - } - break; - case '/': - case '%': - case '%%': - tag = 'MATH'; - break; - case '++': - case '--': - tag = 'CREMENT'; - break; - case '<<<': - case '<<<<': - tag = 'IMPORT'; - break; - case ';': - tag = 'NEWLINE'; - this.fset('by', false); - break; - case '..': - this.token('LITERAL', '..', true); - return 2; - case '.': - if (this.last[1] === '?') { - this.last[0] = '?'; - } - tag = 'DOT'; - break; - case ',': - switch (this.last[0]) { - case ',': - case '[': - case '(': - case 'CALL(': - this.token('LITERAL', 'void'); - break; - case 'FOR': - case 'OWN': - this.token('ID', ''); - } - break; - case '!=': - case '~=': - if (!(able(this.tokens) || ((ref$ = this.last[0]) === '(' || ref$ === 'CREMENT'))) { - this.tokens.push(val === '!=' - ? ['UNARY', '!', this.line, this.column] - : ['UNARY', '~', this.line, this.column], ['ASSIGN', '=', this.line, this.column]); - return 2; - } - // fallthrough - case '!~=': - case '==': - val = (function(){ - switch (val) { - case '~=': - return '=='; - case '!~=': - return '!='; - case '==': - return '==='; - case '!=': - return '!=='; - } - }()); - tag = 'COMPARE'; - break; - case '===': - case '!==': - val += '='; - // fallthrough - case '<': - case '>': - case '<=': - case '>=': - case '<==': - case '>==': - case '>>=': - case '<<=': - tag = 'COMPARE'; - break; - case '.<<.': - case '.>>.': - case '.>>>.': - case '?': - tag = 'SHIFT'; - break; - case '(': - if (!(((ref$ = this.last[0]) === 'FUNCTION' || ref$ === 'GENERATOR' || ref$ === 'LET') || this.able(true) || this.last[1] === '.@')) { - this.token('(', '('); - this.closes.push(')'); - this.parens.push(this.last); - return 1; - } - tag = 'CALL('; - this.closes.push(')CALL'); - break; - case '[': - case '{': - this.adi(); - this.closes.push(']}'.charAt(val === '{')); - break; - case '}': - if (this.inter && val !== (ref$ = this.closes)[ref$.length - 1]) { - this.rest = code.slice(index + 1); - return 9e9; - } - // fallthrough - case ']': - case ')': - if (tag === ')' && ((ref$ = this.last[0]) === '+-' || ref$ === 'COMPARE' || ref$ === 'LOGIC' || ref$ === 'MATH' || ref$ === 'POWER' || ref$ === 'SHIFT' || ref$ === 'BITWISE' || ref$ === 'CONCAT' || ref$ === 'COMPOSE' || ref$ === 'RELATION' || ref$ === 'PIPE' || ref$ === 'BACKPIPE' || ref$ === 'IMPORT' || ref$ === 'CLONEPORT' || ref$ === 'ASSIGN')) { - (ref$ = this.tokens)[ref$.length - 1][0] = (function(){ - switch (this.last[0]) { - case 'RELATION': - return 'BIOPR'; - case 'PIPE': - this.parameters(false, -1); - return 'BIOPP'; - default: - return 'BIOP'; - } - }.call(this)); - } - if (')' === (tag = val = this.pair(val))) { - this.lpar = this.parens.pop(); - } - break; - case '=': - case ':': - if (val === ':') { - switch (this.last[0]) { - case 'ID': - case 'STRNUM': - case ')': - break; - case '...': - this.last[0] = 'STRNUM'; - break; - default: - tag = 'LABEL'; - val = ''; - } - this.token(tag, val); - return sym.length; - } - // fallthrough - case ':=': - case '+=': - case '-=': - case '*=': - case '/=': - case '%=': - case '%%=': - case '?=': - case '**=': - case '^=': - case '.&.=': - case '.|.=': - case '.^.=': - case '.<<.=': - case '.>>.=': - case '.>>>.=': - case '++=': - case '|>=': - if (this.last[1] === '.' || this.last[0] === '?' && this.adi()) { - this.last[1] += val; - return val.length; - } - if (this.last[0] === 'LOGIC') { - (val = Object(val)).logic = this.tokens.pop()[1]; - } else if ((val === '+=' || val === '-=') && !able(this.tokens) && ((ref$ = this.last[0]) !== '+-' && ref$ !== 'UNARY' && ref$ !== 'LABEL')) { - this.token('UNARY', val.charAt()); - val = '='; - } - tag = 'ASSIGN'; - break; - case '::=': - this.token('DOT', '.'); - this.token('ID', 'prototype'); - this.token('IMPORT', '<<'); - return sym.length; - case '*': - if (this.last[0] === 'FUNCTION') { - this.last[0] = 'GENERATOR'; - return sym.length; - } - if (that = ((ref$ = this.last[0]) === 'NEWLINE' || ref$ === 'INDENT' || ref$ === 'THEN' || ref$ === '=>') && (INLINEDENT.lastIndex = index + 1, INLINEDENT).exec(code)[0].length) { - this.tokens.push(['LITERAL', 'void', this.line, this.column], ['ASSIGN', '=', this.line, this.column]); - this.indent(index + that - 1 - this.dent - code.lastIndexOf('\n', index - 1)); - return that; - } - tag = able(this.tokens) || this.last[0] === 'CREMENT' && able(this.tokens, this.tokens.length - 1) || this.last[0] === '(' ? 'MATH' : 'STRNUM'; - break; - case '@': - this.adi(); - if (this.last[0] === 'DOT' && this.last[1] === '.' && (ref$ = this.tokens)[ref$.length - 2][0] === 'ID' && (ref$ = this.tokens)[ref$.length - 2][1] === 'constructor') { - this.tokens.pop(); - this.tokens.pop(); - this.token('LITERAL', 'this', true); - this.adi(); - this.token('ID', 'constructor', true); - } else { - this.token('LITERAL', 'this', true); - } - return 1; - case '@@': - this.adi(); - this.token('ID', 'constructor', true); - return 2; - case '&': - this.token('LITERAL', 'arguments'); - return 1; - case '!': - switch (false) { - default: - if (!this.last.spaced) { - if (this.last[1] === 'require') { - this.last[0] = 'REQUIRE'; - this.last[1] = 'require!'; - } else if (able(this.tokens, null, true)) { - this.token('CALL(', '!'); - this.token(')CALL', ')'); - } else if (this.last[1] === 'typeof') { - this.last[1] = 'classof'; - } else if (this.last[1] === 'delete') { - this.last[1] = 'jsdelete'; - } else { - break; - } - return 1; - } - } - tag = 'UNARY'; - break; - case '&': - if (!able(this.tokens)) { - tag = 'LITERAL'; - } - break; - case '|': - tag = 'BITWISE'; - break; - case '~': - if (this.dotcat(val)) { - return 1; - } - tag = 'UNARY'; - break; - case '::': - this.adi(); - val = 'prototype'; - tag = 'ID'; - break; - case '=>': - this.unline(); - this.fset('for', false); - tag = 'THEN'; - break; - default: - if (/^!?(?:--?|~~?)>\*?$/.test(val)) { - this.parameters(tag = '->'); - } else if (/^\*?<(?:--?|~~?)!?$/.test(val)) { - this.parameters(tag = '<-'); - } else { - switch (val.charAt(0)) { - case '(': - this.token('CALL(', '('); - tag = ')CALL'; - val = ')'; - break; - case '<': - if (val.length < 4) { - this.carp('unterminated words'); - } - this.token('WORDS', val.slice(2, -2), this.adi()); - return this.countLines(val).length; - } - } - } - if ((tag === '+-' || tag === 'COMPARE' || tag === 'LOGIC' || tag === 'MATH' || tag === 'POWER' || tag === 'SHIFT' || tag === 'BITWISE' || tag === 'CONCAT' || tag === 'RELATION' || tag === 'PIPE' || tag === 'BACKPIPE' || tag === 'COMPOSE' || tag === 'IMPORT') && this.last[0] === '(') { - tag = tag === 'BACKPIPE' ? 'BIOPBP' : 'BIOP'; - } - if (tag === ',' || tag === 'CASE' || tag === 'PIPE' || tag === 'BACKPIPE' || tag === 'COMPOSE' || tag === 'DOT' || tag === 'LOGIC' || tag === 'COMPARE' || tag === 'MATH' || tag === 'POWER' || tag === 'IMPORT' || tag === 'SHIFT' || tag === 'BITWISE') { - this.unline(); - } - this.token(tag, val); - return sym.length; -}; -exports.token = function(tag, value, callable){ - this.tokens.push(this.last = [tag, value, this.line, this.column]); - if (callable) { - this.last.callable = true; - } - return value; -}; -exports.indent = function(delta){ - this.dent += delta; - this.dents.push(this.token('INDENT', delta)); - this.closes.push('DEDENT'); -}; -exports.dedent = function(debt){ - var dent; - this.dent -= debt; - while (debt > 0 && (dent = this.dents.pop())) { - if (debt < dent && !this.inter) { - this.carp("unmatched dedent (" + debt + " for " + dent + ")"); - } - this.pair('DEDENT'); - debt -= typeof dent === 'number' ? this.token('DEDENT', dent) : dent; - } -}; -exports.newline = function(){ - var ref$; - this.last[1] === '\n' || this.tokens.push(this.last = (ref$ = ['NEWLINE', '\n', this.line, this.column], ref$.spaced = true, ref$)); -}; -exports.unline = function(){ - var ref$; - if (!this.tokens[1]) { - return; - } - switch (this.last[0]) { - case 'INDENT': - (ref$ = this.dents)[ref$.length - 1] += ''; - // fallthrough - case 'NEWLINE': - this.tokens.length--; - } -}; -exports.parameters = function(arrow, offset){ - var i$, ref$, i, t, ref1$; - if (this.last[0] === ')' && ')' === this.last[1]) { - this.lpar[0] = 'PARAM('; - this.last[0] = ')PARAM'; - return; - } - if (arrow === '->') { - this.token('PARAM(', ''); - } else { - for (i$ = (ref$ = this.tokens).length - 1; i$ >= 0; --i$) { - i = i$; - t = ref$[i$]; - if ((ref1$ = t[0]) === 'NEWLINE' || ref1$ === 'INDENT' || ref1$ === 'THEN' || ref1$ === '=>' || ref1$ === '(') { - break; - } - } - this.tokens.splice(i + 1, 0, ['PARAM(', '', t[2], t[3]]); - } - if (offset) { - this.tokens.splice(this.tokens.length + offset, 0, [')PARAM', '', t[2], t[3]]); - } else { - this.token(')PARAM', ''); - } -}; -exports.interpolate = function(str, idx, end){ - var parts, end0, pos, i, ref$, oldLine, oldColumn, ch, c1, id, stringified, length, tag, e, delta, nested, clone, ref1$; - parts = []; - end0 = end.charAt(0); - pos = 0; - i = -1; - str = str.slice(idx + end.length); - ref$ = [this.line, this.column], oldLine = ref$[0], oldColumn = ref$[1]; - this.countLines(end); - while (ch = str.charAt(++i)) { - switch (ch) { - case end0: - if (end !== str.slice(i, i + end.length)) { - continue; - } - parts.push(['S', this.countLines(str.slice(0, i)), oldLine, oldColumn]); - this.countLines(end); - return parts.size = pos + i + end.length * 2, parts; - case '#': - c1 = str.charAt(i + 1); - id = in$(c1, ['@']) && c1 || (ID.lastIndex = i + 1, ID).exec(str)[1]; - if (!(id || c1 === '{')) { - continue; - } - break; - case '\\': - ++i; - // fallthrough - default: - continue; - } - if (i || nested && !stringified) { - stringified = parts.push(['S', this.countLines(str.slice(0, i)), oldLine, oldColumn]); - ref$ = [this.line, this.column], oldLine = ref$[0], oldColumn = ref$[1]; - } - if (id) { - length = id.length; - if (id === '@') { - id = 'this'; - } - if (in$(id, ['this'])) { - tag = 'LITERAL'; - } else { - id = camelize(id); - try { - Function("'use strict'; var " + id); - } catch (e$) { - e = e$; - this.carp("invalid variable interpolation '" + id + "'"); - } - tag = 'ID'; - } - str = str.slice(delta = i + 1 + length); - parts.push(['TOKENS', nested = [[tag, id, this.line, this.column]]]); - } else { - clone = (ref$ = clone$(exports), ref$.inter = true, ref$.emender = this.emender, ref$); - nested = clone.tokenize(str.slice(i + 2), { - line: this.line, - column: this.column + 2, - raw: true - }); - delta = str.length - clone.rest.length; - this.countLines(str.slice(i, delta)); - str = clone.rest; - while (((ref$ = nested[0]) != null ? ref$[0] : void 8) === 'NEWLINE') { - nested.shift(); - } - if (nested.length) { - nested.unshift(['(', '(', oldLine, oldColumn]); - nested.push([')', ')', this.line, this.column - 1]); - parts.push(['TOKENS', nested]); - } - ref1$ = [this.line, this.column], oldLine = ref1$[0], oldColumn = ref1$[1]; - } - pos += delta; - i = -1; - } - this.carp("missing `" + end + "`"); -}; -exports.addInterpolated = function(parts, nlines){ - var tokens, last, ref$, left, right, joint, callable, i$, len$, i, t; - if (!parts[1]) { - return this.strnum(nlines(this.string('"', parts[0][1]))); - } - tokens = this.tokens, last = this.last; - ref$ = !last.spaced && last[1] === '%' - ? (--tokens.length, this.last = last = tokens[tokens.length - 1], ['[', ']', [',', ',']]) - : ['(', ')', ['+-', '+']], left = ref$[0], right = ref$[1], joint = ref$[2]; - callable = this.adi(); - tokens.push([left, '"', last[2], last[3]]); - for (i$ = 0, len$ = parts.length; i$ < len$; ++i$) { - i = i$; - t = parts[i$]; - if (t[0] === 'TOKENS') { - tokens.push.apply(tokens, t[1]); - } else { - if (i > 1 && !t[1]) { - continue; - } - tokens.push(['STRNUM', nlines(this.string('"', t[1])), t[2], t[3]]); - } - tokens.push(joint.concat(tokens[tokens.length - 1][2], tokens[tokens.length - 1][3])); - } - --tokens.length; - this.token(right, '', callable); -}; -exports.strnum = function(it){ - this.token('STRNUM', it, this.adi() || this.last[0] === 'DOT'); -}; -exports.regex = function(body, flag){ - var e; - try { - RegExp(body); - } catch (e$) { - e = e$; - this.carp(e.message); - } - if (flag === '$') { - return this.strnum(this.string('\'', enslash(body))); - } - return this.token('LITERAL', "/" + (body || '(?:)') + "/" + this.validate(flag)); -}; -exports.adi = function(){ - if (this.last.spaced) { - return; - } - if (!able(this.tokens)) { - return; - } - return this.token('DOT', '.'); -}; -exports.dotcat = function(it){ - if (this.last[1] === '.' || this.adi()) { - return this.last[1] += it; - } -}; -exports.pair = function(it){ - var wanted, ref$; - if (!(it === (wanted = (ref$ = this.closes)[ref$.length - 1]) || ')CALL' === wanted && it === ')')) { - if ('DEDENT' !== wanted) { - this.carp("unmatched `" + it + "`"); - } - this.dedent((ref$ = this.dents)[ref$.length - 1]); - return this.pair(it); - } - this.unline(); - return this.closes.pop(); -}; -exports.able = function(call){ - return !this.last.spaced && able(this.tokens, null, call); -}; -exports.countLines = function(it){ - var pos; - if (!this.isAtPrefix) { - this.column += it.length; - } - while (pos = 1 + it.indexOf('\n', pos)) { - if (!this.isAtPrefix) { - this.column = 0; - } - this.column += it.length - pos; - ++this.line; - this.isAtPrefix = false; - } - this.charsCounted += it.length; - return it; -}; -exports.forange = function(){ - var ref$, ref1$, ref2$; - if (((ref$ = (ref1$ = this.tokens)[ref1$.length - 2 - ((ref2$ = this.last[0]) === 'NEWLINE' || ref2$ === 'INDENT')]) != null ? ref$[0] : void 8) === 'FOR' || this.last[0] === 'FOR') { - this.fset('for', false); - this.fset('from', true); - return true; - } else { - return false; - } -}; -exports.validate = function(flag){ - var that; - if (that = flag && /(.).*\1/.exec(flag)) { - this.carp("duplicate regex flag `" + that[1] + "`"); - } - return flag; -}; -exports.fget = function(key){ - var ref$; - return (ref$ = this.flags[this.closes.length]) != null ? ref$[key] : void 8; -}; -exports.fset = function(key, val){ - var ref$, key$; - ((ref$ = this.flags)[key$ = this.closes.length] || (ref$[key$] = {}))[key] = val; -}; -exports.carp = function(it){ - carp(it, this.line); -}; -exports.string = function(q, body){ - return string(q, body, this.line); -}; -function carp(msg, lno){ - throw SyntaxError(msg + " on line " + (-~lno)); -} -function able(tokens, i, call){ - var token, tag; - i == null && (i = tokens.length); - tag = (token = tokens[i - 1])[0]; - return (tag === 'ID' || tag === ']' || tag === '?') || (call - ? token.callable || (tag === ')' || tag === ')CALL' || tag === 'BIOPBP') && token[1] - : tag === '}' || tag === ')' || tag === ')CALL' || tag === 'STRNUM' || tag === 'LITERAL' || tag === 'WORDS'); -} -string = (function(re){ - return function(q, body, lno){ - body = body.replace(re, function(it, oct, xu, rest){ - if (it === q || it === '\\') { - return '\\' + it; - } - if (oct) { - return '\\x' + (0x100 + parseInt(oct, 8)).toString(16).slice(1); - } - if (xu) { - carp('malformed character escape sequence', lno); - } - if (!rest || q === rest) { - return it; - } else { - return rest; - } - }); - return q + body + q; - }; -}.call(this, /['"]|\\(?:([0-3]?[0-7]{2}|[1-7]|0(?=[89]))|x[\dA-Fa-f]{2}|u[\dA-Fa-f]{4}|([xu])|[\\0bfnrtv]|[^\n\S]|([\w\W]))?/g)); -function heretabs(doc){ - var dent, that, ref$; - dent = 0 / 0; - while (that = TABS.exec(doc)) { - dent <= (ref$ = that[0].length - 1) || (dent = ref$); - } - return dent; -} -TABS = /\n(?!$)[^\n\S]*/mg; -function detab(str, len){ - if (len) { - return str.replace(detab[len] || (detab[len] = RegExp('\\n[^\\n\\S]{1,' + len + '}', 'g')), '\n'); - } else { - return str; - } -} -unlines = function(it){ - return it.replace(/\n[^\n\S]*/g, ''); -}; -enlines = function(it){ - return it.replace(/\n/g, '\\n'); -}; -enslash = function(it){ - return it.replace(/\\/g, '\\\\'); -}; -reslash = function(it){ - return it.replace(/(\\.)|\//g, function(){ - return arguments[1] || '\\/'; - }); -}; -camelize = function(it){ - return it.replace(/-[a-z]/ig, function(it){ - return it.charAt(1).toUpperCase(); - }); -}; -function lchomp(it){ - return it.slice(1 + it.lastIndexOf('\n', 0)); -} -function decode(val, lno){ - if (!isNaN(val)) { - return [+val]; - } - val = val.length > 8 - ? 'ng' - : Function('return ' + val)(); - val.length === 1 || carp('bad string in range', lno); - return [val.charCodeAt(), true]; -} -function uxxxx(it){ - return '"\\u' + ('000' + it.toString(16)).slice(-4) + '"'; -} -character = typeof JSON == 'undefined' || JSON === null - ? uxxxx - : function(it){ - switch (it) { - case 0x2028: - case 0x2029: - return uxxxx(it); - default: - return JSON.stringify(String.fromCharCode(it)); - } - }; -function firstPass(tokens){ - var prev, i, token, tag, val, line, column, next, ts, parens, i$, j; - prev = ['NEWLINE', '\n', 0]; - i = 0; - while (token = tokens[++i]) { - tag = token[0], val = token[1], line = token[2], column = token[3]; - switch (false) { - case !(tag === 'ASSIGN' && in$(prev[1], LS_KEYWORDS) && tokens[i - 2][0] !== 'DOT'): - carp("cannot assign to reserved word '" + prev[1] + "'", line); - break; - case !(tag === 'DOT' && prev[0] === ']' && tokens[i - 2][0] === '[' && tokens[i - 3][0] === 'DOT'): - tokens.splice(i - 2, 3); - tokens[i - 3][1] = '[]'; - break; - case !(tag === 'DOT' && prev[0] === '}' && tokens[i - 2][0] === '{' && tokens[i - 3][0] === 'DOT'): - tokens.splice(i - 2, 3); - tokens[i - 3][1] = '{}'; - break; - case !(val === '.' && token.spaced && prev.spaced): - tokens[i] = ['COMPOSE', '<<', line, column]; - break; - case val !== '++': - if (!(next = tokens[i + 1])) { - break; - } - ts = ['ID', 'LITERAL', 'STRNUM']; - if (prev.spaced && token.spaced || !(prev.spaced || token.spaced) && in$(prev[0], ts) && in$(next[0], ts)) { - tokens[i][0] = 'CONCAT'; - } - if (prev[0] === '(' && next[0] === ')' || prev[0] === '(' && token.spaced || next[0] === ')' && prev.spaced) { - tokens[i][0] = 'BIOP'; - } - break; - case tag !== 'DOT': - next = tokens[i + 1]; - if (prev[0] === '(' && next[0] === ')') { - tokens[i][0] = 'BIOP'; - } else if (prev[0] === '(') { - tokens.splice(i, 0, ['PARAM(', '(', line, column], [')PARAM', ')', line, column], ['->', '->', line, column], ['ID', 'it', line, column]); - } else if (next[0] === ')') { - tokens.splice(i + 1, 0, ['[', '[', line, column], ['ID', 'it', line, column], [']', ']', line, column]); - parens = 1; - LOOP: for (i$ = i + 1; i$ >= 0; --i$) { - j = i$; - switch (tokens[j][0]) { - case ')': - ++parens; - break; - case '(': - if (--parens === 0) { - tokens.splice(j + 1, 0, ['PARAM(', '(', line, column], ['ID', 'it', line, column], [')PARAM', ')', line, column], ['->', '->', line, column]); - break LOOP; - } - } - } - } - } - prev = token; - continue; - } -} -function rewriteBlockless(tokens){ - var i, token, tag; - i = -1; - while (token = tokens[++i]) { - tag = token[0]; - if (tag === 'IF' || tag === 'CLASS' || tag === 'CATCH') { - detectEnd(tokens, i + 1, ok, go); - } - } - function ok(it){ - var ref$; - return (ref$ = it[0]) === 'NEWLINE' || ref$ === 'INDENT'; - } - function go(it, i){ - var lno, cno; - if (tag === 'IF') { - if (it[0] !== 'INDENT' || !it[1] && !it.then || in$(tokens[i - 1][0], BLOCK_USERS)) { - token[0] = 'POST_IF'; - } - } else if (it[0] !== 'INDENT') { - tokens.splice(i, 0, ['INDENT', 0, lno = tokens[i - 1][2], cno = tokens[i - 1][3]], ['DEDENT', 0, lno, cno]); - } - } -} -function addImplicitIndentation(tokens){ - var i, token, tag, next, indent, dedent, ref$, ref1$, idx; - i = 0; - while (token = tokens[++i]) { - tag = token[0]; - if (tag !== '->' && tag !== 'THEN' && tag !== 'ELSE' && tag !== 'DEFAULT' && tag !== 'TRY' && tag !== 'FINALLY' && tag !== 'DECL') { - continue; - } - switch (next = tokens[i + 1][0]) { - case 'IF': - if (tag === 'ELSE') { - continue; - } - break; - case 'INDENT': - case 'THEN': - if (tag === 'THEN') { - tokens.splice(i--, 1); - } - continue; - } - indent = ['INDENT', 0, token[2], token[3]]; - dedent = ['DEDENT', 0]; - if (tag === 'THEN') { - (tokens[i] = indent).then = true; - } else { - tokens.splice(++i, 0, indent); - } - switch (false) { - case tag !== 'DECL': - break; - case next !== 'DOT' && next !== '?' && next !== ',' && next !== 'PIPE' && next !== 'BACKPIPE': - --i; - // fallthrough - case !((next === 'ID' || next === 'STRNUM' || next === 'LITERAL') && ',' === ((ref$ = tokens[i + 2]) != null ? ref$[0] : void 8)): - go(0, i += 2); - ++i; - continue; - case !((next === '(' || next === '[' || next === '{') && ',' === ((ref1$ = tokens[idx = 1 + indexOfPair(tokens, i + 1)]) != null ? ref1$[0] : void 8)): - go(0, idx); - ++i; - continue; - } - detectEnd(tokens, i + 1, ok, go); - } - function ok(token, i){ - var t0, t; - t0 = token[0]; - t = tag; - if (tag === t0 || tag === 'THEN' && t0 === 'SWITCH') { - tag = ''; - } - switch (t0) { - case 'NEWLINE': - return token[1] !== ';'; - case 'DOT': - case '?': - case ',': - case 'PIPE': - case 'BACKPIPE': - return tokens[i - 1].eol; - case 'ELSE': - return t === 'THEN'; - case 'CATCH': - return t === 'TRY'; - case 'FINALLY': - return t === 'TRY' || t === 'CATCH' || t === 'THEN'; - case 'CASE': - case 'DEFAULT': - return t === 'CASE' || t === 'THEN'; - } - } - function go(arg$, i){ - var prev; - prev = tokens[i - 1]; - tokens.splice(prev[0] === ',' ? i - 1 : i, 0, (dedent[2] = prev[2], dedent[3] = prev[3], dedent)); - } -} -function addImplicitParentheses(tokens){ - var i, brackets, token, endi, ref$, tpair, tag, prev, ref1$, skipBlock, seenSwitch; - i = 0; - brackets = []; - while (token = tokens[++i]) { - if (token[1] === 'do' && tokens[i + 1][0] === 'INDENT') { - endi = indexOfPair(tokens, i + 1); - if (tokens[endi + 1][0] === 'NEWLINE' && ((ref$ = tokens[endi + 2]) != null ? ref$[0] : void 8) === 'WHILE') { - token[0] = 'DO'; - tokens[endi + 2].done = true; - tokens.splice(endi + 1, 1); - } else { - (token = tokens[1 + i])[0] = '('; - (tpair = tokens[endi])[0] = ')'; - token.doblock = true; - tokens.splice(i, 1); - } - } - tag = token[0]; - prev = tokens[i - 1]; - tag === '[' && brackets.push(prev[0] === 'DOT'); - if (prev[0] === ']') { - if (brackets.pop()) { - prev.index = true; - } else { - continue; - } - } - if (!(((ref1$ = prev[0]) === 'FUNCTION' || ref1$ === 'GENERATOR' || ref1$ === 'LET' || ref1$ === 'WHERE') || prev.spaced && able(tokens, i, true))) { - continue; - } - if (token.doblock) { - token[0] = 'CALL('; - tpair[0] = ')CALL'; - continue; - } - if (!exp(token)) { - continue; - } - if (tag === 'CREMENT') { - if (token.spaced || !in$((ref1$ = tokens[i + 1]) != null ? ref1$[0] : void 8, CHAIN)) { - continue; - } - } - skipBlock = seenSwitch = false; - tokens.splice(i++, 0, ['CALL(', '', token[2], token[3]]); - detectEnd(tokens, i, ok, go); - } - function exp(token){ - var tag; - tag = token[0]; - return in$(tag, ARG) || !token.spaced && (tag === '+-' || tag === 'CLONE'); - } - function ok(token, i){ - var tag, ref$, pre; - tag = token[0]; - if (tag === 'POST_IF' || tag === 'PIPE' || tag === 'BACKPIPE') { - return true; - } - if (!skipBlock) { - if (token.alias && ((ref$ = token[1]) === '&&' || ref$ === '||' || ref$ === 'xor') || (tag === 'TO' || tag === 'BY' || tag === 'IMPLEMENTS')) { - return true; - } - } - pre = tokens[i - 1]; - switch (tag) { - case 'NEWLINE': - return pre[0] !== ','; - case 'DOT': - case '?': - return !skipBlock && (pre.spaced || pre[0] === 'DEDENT'); - case 'SWITCH': - seenSwitch = true; - // fallthrough - case 'IF': - case 'CLASS': - case 'FUNCTION': - case 'GENERATOR': - case 'LET': - case 'WITH': - case 'CATCH': - skipBlock = true; - break; - case 'CASE': - if (seenSwitch) { - skipBlock = true; - } else { - return true; - } - break; - case 'INDENT': - if (skipBlock) { - return skipBlock = false; - } - return !in$(pre[0], BLOCK_USERS); - case 'WHILE': - if (token.done) { - return false; - } - // fallthrough - case 'FOR': - skipBlock = true; - return able(tokens, i) || pre[0] === 'CREMENT' || pre[0] === '...' && pre.spaced; - } - return false; - } - function go(token, i){ - tokens.splice(i, 0, [')CALL', '', tokens[i - 1][2], tokens[i - 1][3]]); - } -} -function addImplicitBraces(tokens){ - var stack, i, token, tag, start, paren, index, pre, ref$, inline, ref1$; - stack = []; - i = 0; - while (token = tokens[++i]) { - if (':' !== (tag = token[0])) { - switch (false) { - case !in$(tag, CLOSERS): - start = stack.pop(); - break; - case !in$(tag, OPENERS): - if (tag === 'INDENT' && tokens[i - 1][0] === '{') { - tag = '{'; - } - stack.push([tag, i]); - } - continue; - } - paren = tokens[i - 1][0] === ')'; - index = paren - ? start[1] - : i - 1; - pre = tokens[index - 1]; - if (!(((ref$ = pre[0]) === ':' || ref$ === 'ASSIGN' || ref$ === 'IMPORT') || ((ref$ = stack[stack.length - 1]) != null ? ref$[0] : void 8) !== '{')) { - continue; - } - stack.push(['{']); - inline = !pre.doblock && ((ref1$ = pre[0]) !== 'NEWLINE' && ref1$ !== 'INDENT'); - while (((ref1$ = tokens[index - 2]) != null ? ref1$[0] : void 8) === 'COMMENT') { - index -= 2; - } - tokens.splice(index, 0, ['{', '{', tokens[index][2], tokens[index][3]]); - detectEnd(tokens, ++i + 1, ok, go); - } - function ok(token, i){ - var tag, t1, ref$, ref1$; - switch (tag = token[0]) { - case ',': - break; - case 'NEWLINE': - if (inline) { - return true; - } - break; - case 'DEDENT': - return true; - case 'POST_IF': - case 'FOR': - case 'WHILE': - return inline; - default: - return false; - } - t1 = (ref$ = tokens[i + 1]) != null ? ref$[0] : void 8; - return t1 !== (tag === ',' ? 'NEWLINE' : 'COMMENT') && ':' !== ((ref1$ = tokens[t1 === '(' - ? 1 + indexOfPair(tokens, i + 1) - : i + 2]) != null ? ref1$[0] : void 8); - } - function go(token, i){ - tokens.splice(i, 0, ['}', '', token[2], token[3]]); - } -} -function expandLiterals(tokens){ - var i, fromNum, token, sig, ref$, ref1$, lno, cno, ref2$, ref3$, ref4$, char, toNum, tochar, byNum, byp, ref5$, ts, enc, add, i$, n, ref6$, ref7$, len$, word, that; - i = 0; - while (token = tokens[++i]) { - switch (token[0]) { - case 'STRNUM': - if (~'-+'.indexOf(sig = token[1].charAt(0))) { - token[1] = token[1].slice(1); - tokens.splice(i++, 0, ['+-', sig, token[2], token[3]]); - } - if (token.callable) { - continue; - } - break; - case 'TO': - case 'TIL': - if (!(tokens[i - 1][0] === '[' && ((tokens[i + 2][0] === ']' && (((ref$ = tokens[i + 1][1].charAt(0)) === '\'' || ref$ === '"') || +tokens[i + 1][1] >= 0)) || (tokens[i + 2][0] === 'BY' && ((ref$ = tokens[i + 3]) != null ? ref$[0] : void 8) === 'STRNUM' && ((ref1$ = tokens[i + 4]) != null ? ref1$[0] : void 8) === ']')))) { - continue; - } - if (tokens[i + 2][0] === 'BY') { - tokens[i + 2][0] = 'RANGE_BY'; - } - token.op = token[1]; - fromNum = 0; - // fallthrough - case 'RANGE': - lno = token[2]; - cno = token[3]; - if (fromNum != null || (tokens[i - 1][0] === '[' && tokens[i + 1][0] === 'STRNUM' && ((tokens[i + 2][0] === ']' && (((ref2$ = tokens[i + 1][1].charAt(0)) === '\'' || ref2$ === '"') || +tokens[i + 1][1] >= 0)) || (tokens[i + 2][0] === 'RANGE_BY' && ((ref2$ = tokens[i + 3]) != null ? ref2$[0] : void 8) === 'STRNUM' && ((ref3$ = tokens[i + 4]) != null ? ref3$[0] : void 8) === ']')))) { - if (fromNum == null) { - ref4$ = decode(token[1], lno), fromNum = ref4$[0], char = ref4$[1]; - } - ref4$ = decode(tokens[i + 1][1], lno), toNum = ref4$[0], tochar = ref4$[1]; - if (toNum == null || char ^ tochar) { - carp('bad "to" in range', lno); - } - byNum = 1; - if (byp = ((ref4$ = tokens[i + 2]) != null ? ref4$[0] : void 8) === 'RANGE_BY') { - if (!(byNum = +((ref5$ = tokens[i + 3]) != null ? ref5$[1] : void 8))) { - carp('bad "by" in range', tokens[i + 2][2]); - } - } else if (fromNum > toNum) { - byNum = -1; - } - ts = []; - enc = char ? character : String; - add = fn$; - if (token.op === 'to') { - for (i$ = fromNum; byNum < 0 ? i$ >= toNum : i$ <= toNum; i$ += byNum) { - n = i$; - add(); - } - } else { - for (i$ = fromNum; byNum < 0 ? i$ > toNum : i$ < toNum; i$ += byNum) { - n = i$; - add(); - } - } - ts.pop() || carp('empty range', lno); - tokens.splice.apply(tokens, [i, 2 + 2 * byp].concat(slice$.call(ts))); - i += ts.length - 1; - } else { - token[0] = 'STRNUM'; - if (((ref6$ = tokens[i + 2]) != null ? ref6$[0] : void 8) === 'RANGE_BY') { - tokens.splice(i + 2, 1, ['BY', 'by', lno, cno]); - } - tokens.splice(i + 1, 0, ['TO', token.op, lno, cno]); - } - fromNum = null; - break; - case 'WORDS': - ts = [['[', '[', lno = token[2], cno = token[3]]]; - for (i$ = 0, len$ = (ref7$ = token[1].match(/\S+/g) || '').length; i$ < len$; ++i$) { - word = ref7$[i$]; - ts.push(['STRNUM', string('\'', word, lno), lno, cno], [',', ',', lno, cno]); - } - tokens.splice.apply(tokens, [i, 1].concat(slice$.call(ts), [[']', ']', lno, cno]])); - i += ts.length; - break; - case 'INDENT': - if (that = tokens[i - 1]) { - if (that[1] === 'new') { - tokens.splice(i++, 0, ['PARAM(', '', token[2], token[3]], [')PARAM', '', token[2], token[3]], ['->', '', token[2], token[3]]); - } else if ((ref7$ = that[0]) === 'FUNCTION' || ref7$ === 'GENERATOR' || ref7$ === 'LET') { - tokens.splice(i, 0, ['CALL(', '', token[2], token[3]], [')CALL', '', token[2], token[3]]); - i += 2; - } - } - continue; - case 'LITERAL': - case '}': - break; - case ')': - case ')CALL': - if (token[1]) { - continue; - } - break; - case ']': - if (token.index) { - continue; - } - break; - case 'CREMENT': - if (!able(tokens, i)) { - continue; - } - break; - case 'BIOP': - if (!token.spaced && ((ref7$ = token[1]) === '+' || ref7$ === '-') && tokens[i + 1][0] !== ')') { - tokens[i][0] = '+-'; - } - continue; - default: - continue; - } - if (token.spaced && in$(tokens[i + 1][0], ARG)) { - tokens.splice(++i, 0, [',', ',', token[2], token[3]]); - } - } - function fn$(){ - if (0x10000 < ts.push(['STRNUM', enc(n), lno, cno], [',', ',', lno, cno])) { - carp('range limit exceeded', lno); - } - } -} -function detectEnd(tokens, i, ok, go){ - var levels, token, tag; - levels = 0; - for (; token = tokens[i]; ++i) { - if (!levels && ok(token, i)) { - return go(token, i); - } - tag = token[0]; - if (0 > (levels += in$(tag, OPENERS) || -in$(tag, CLOSERS))) { - return go(token, i); - } - } -} -function indexOfPair(tokens, i){ - var level, end, start, that; - level = 1; - end = INVERSES[start = tokens[i][0]]; - while (that = tokens[++i]) { - switch (that[0]) { - case start: - ++level; - break; - case end: - if (!--level) { - return i; - } - } - } - return -1; -} -KEYWORDS_SHARED = ['true', 'false', 'null', 'this', 'void', 'super', 'return', 'throw', 'break', 'continue', 'if', 'else', 'for', 'while', 'switch', 'case', 'default', 'try', 'catch', 'finally', 'function', 'class', 'extends', 'implements', 'new', 'do', 'delete', 'typeof', 'in', 'instanceof', 'let', 'with', 'var', 'const', 'import', 'export', 'debugger', 'yield']; -KEYWORDS_UNUSED = ['enum', 'interface', 'package', 'private', 'protected', 'public', 'static']; -JS_KEYWORDS = KEYWORDS_SHARED.concat(KEYWORDS_UNUSED); -LS_KEYWORDS = ['xor', 'match', 'where']; -ID = /((?!\s)[a-z_$\xAA-\uFFDC](?:(?!\s)[\w$\xAA-\uFFDC]|-[a-z])*)([^\n\S]*:(?![:=]))?|/ig; -SYMBOL = /[-\/^]=|[%+:*]{1,2}=|\|>=|\.(?:[&\|\^]|<<|>>>?)\.=?|\.{1,3}|\^\^|\*?<(?:--?|~~?)!?|!?(?:--?|~~?)>\*?|([-+&|:])\1|%%|&|\([^\n\S]*\)|[!=]==?|!?\~=|@@?|<\[(?:[\s\S]*?\]>)?|<<<]==|<<=|>>=|<<|>>|[<>]\??=?|\|>|\||=>|\*\*|\^|`|[^\s#]?/g; -SPACE = /[^\n\S]*(?:#.*)?/g; -MULTIDENT = /(?:\s*#.*)*(?:\n([^\n\S]*))*/g; -SIMPLESTR = /'[^\\']*(?:\\[\s\S][^\\']*)*'|/g; -JSTOKEN = /``[^\\`]*(?:\\[\s\S][^\\`]*)*``|/g; -BSTOKEN = RegExp('\\\\(?:(\\S[^\\s,;)}\\]]*)|(?:' + SPACE.source + '\\n?)*)', 'g'); -NUMBER = /0x[\dA-Fa-f][\dA-Fa-f_]*|(\d*)~([\dA-Za-z]\w*)|((\d[\d_]*)(\.\d[\d_]*)?(?:e[+-]?\d[\d_]*)?)[$\w]*|/g; -NUMBER_OMIT = /_+/g; -REGEX = /\/([^[\/\n\\]*(?:(?:\\.|\[[^\]\n\\]*(?:\\.[^\]\n\\]*)*\])[^[\/\n\\]*)*)\/([gimy]{1,4}|\$?)|/g; -HEREGEX_OMIT = /\s+(?:#.*)?/g; -LASTDENT = /\n[^\n\S]*$/; -INLINEDENT = /[^\n\S]*[^#\s]?/g; -NONASCII = /[\x80-\uFFFF]/; -OPENERS = ['(', '[', '{', 'CALL(', 'PARAM(', 'INDENT']; -CLOSERS = [')', ']', '}', ')CALL', ')PARAM', 'DEDENT']; -INVERSES = import$((function(){ - var i$, ref$, len$, resultObj$ = {}; - for (i$ = 0, len$ = (ref$ = OPENERS).length; i$ < len$; ++i$) { - i = i$; - o = ref$[i$]; - resultObj$[o] = CLOSERS[i]; - } - return resultObj$; -}()), (function(){ - var i$, ref$, len$, resultObj$ = {}; - for (i$ = 0, len$ = (ref$ = CLOSERS).length; i$ < len$; ++i$) { - i = i$; - c = ref$[i$]; - resultObj$[c] = OPENERS[i]; - } - return resultObj$; -}())); -CHAIN = ['(', '{', '[', 'ID', 'STRNUM', 'LITERAL', 'LET', 'WITH', 'WORDS']; -ARG = CHAIN.concat(['...', 'UNARY', 'YIELD', 'CREMENT', 'PARAM(', 'FUNCTION', 'GENERATOR', 'IF', 'SWITCH', 'TRY', 'CLASS', 'RANGE', 'LABEL', 'DECL', 'DO', 'BIOPBP']); -BLOCK_USERS = [',', ':', '->', 'ELSE', 'ASSIGN', 'IMPORT', 'UNARY', 'DEFAULT', 'TRY', 'FINALLY', 'HURL', 'DECL', 'DO', 'LET', 'FUNCTION', 'GENERATOR']; -function clone$(it){ - function fun(){} fun.prototype = it; - return new fun; -} -function in$(x, xs){ - var i = -1, l = xs.length >>> 0; - while (++i < l) if (x === xs[i]) return true; - return false; -} -function import$(obj, src){ - var own = {}.hasOwnProperty; - for (var key in src) if (own.call(src, key)) obj[key] = src[key]; - return obj; -} -},{}],4:[function(require,module,exports){ -(function (process,global){ -// Generated by LiveScript 1.4.0 -module.exports = function(LiveScript){ - var fs, path, events; - fs = require('fs'); - path = require('path'); - events = require('events'); - LiveScript.run = function(code, options, arg$){ - var filename, ref$, js, context, main, dirname, e; - if (options != null) { - filename = options.filename; - } - ref$ = arg$ != null - ? arg$ - : {}, js = ref$.js, context = ref$.context; - main = require.main; - if (filename) { - dirname = path.dirname(fs.realpathSync(filename = process.argv[1] = path.resolve(filename))); - } else { - dirname = filename = '.'; - } - main.paths = main.constructor._nodeModulePaths(dirname); - main.filename = filename; - if (!js) { - code = LiveScript.compile(code, (ref$ = {}, import$(ref$, options), ref$.bare = true, ref$)); - } - if (context) { - global.__runContext = context; - code = "return (function() {\n" + code + "\n}).call(global.__runContext);"; - } - try { - return main._compile(code, filename); - } catch (e$) { - e = e$; - throw hackTrace(e, code, filename); - } - }; - importAll$(LiveScript, events.EventEmitter.prototype); - require.extensions['.ls'] = function(module, filename){ - var js, e; - js = LiveScript.compile(fs.readFileSync(filename, 'utf8'), { - filename: filename, - bare: true, - map: "embedded" - }).code; - try { - return module._compile(js, filename); - } catch (e$) { - e = e$; - throw hackTrace(e, js, filename); - } - }; -}; -function hackTrace(error, js, filename){ - var stack, traces, i$, len$, i, trace, index, lno, end, length, lines, j$, ref$, n; - if (error != null) { - stack = error.stack; - } - if (!stack) { - return error; - } - traces = stack.split('\n'); - if (!(traces.length > 1)) { - return error; - } - for (i$ = 0, len$ = traces.length; i$ < len$; ++i$) { - i = i$; - trace = traces[i$]; - if (0 > (index = trace.indexOf("(" + filename + ":"))) { - continue; - } - lno = (/:(\d+):/.exec(trace.slice(index + filename.length)) || '')[1]; - if (!(lno = +lno)) { - continue; - } - end = lno + 4; - length = ('' + end).length; - lines || (lines = js.split('\n')); - for (j$ = 1 > (ref$ = lno - 4) ? 1 : ref$; j$ <= end; ++j$) { - n = j$; - traces[i] += "\n" + (' ' + n).slice(-length) + "" + '|+'.charAt(n === lno) + " " + [lines[n - 1]]; - } - } - return error.stack = traces.join('\n'), error; -} -function import$(obj, src){ - var own = {}.hasOwnProperty; - for (var key in src) if (own.call(src, key)) obj[key] = src[key]; - return obj; -} -function importAll$(obj, src){ - for (var key in src) obj[key] = src[key]; - return obj; -} -}).call(this,require('_process'),typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"_process":21,"events":12,"fs":9,"path":14}],5:[function(require,module,exports){ -(function (process){ -/* parser generated by jison 0.4.15 */ -/* - Returns a Parser object of the following structure: - - Parser: { - yy: {} - } - - Parser.prototype: { - yy: {}, - trace: function(), - symbols_: {associative list: name ==> number}, - terminals_: {associative list: number ==> name}, - productions_: [...], - performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$), - table: [...], - defaultActions: {...}, - parseError: function(str, hash), - parse: function(input), - - lexer: { - EOF: 1, - parseError: function(str, hash), - setInput: function(input), - input: function(), - unput: function(str), - more: function(), - less: function(n), - pastInput: function(), - upcomingInput: function(), - showPosition: function(), - test_match: function(regex_match_array, rule_index), - next: function(), - lex: function(), - begin: function(condition), - popState: function(), - _currentRules: function(), - topState: function(), - pushState: function(condition), - - options: { - ranges: boolean (optional: true ==> token location info will include a .range[] member) - flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match) - backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code) - }, - - performAction: function(yy, yy_, $avoiding_name_collisions, YY_START), - rules: [...], - conditions: {associative list: name ==> set}, - } - } - - - token location info (@$, _$, etc.): { - first_line: n, - last_line: n, - first_column: n, - last_column: n, - range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based) - } - - - the parseError function receives a 'hash' object with these members for lexer and parser errors: { - text: (matched text) - token: (the produced terminal token, if any) - line: (yylineno) - } - while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: { - loc: (yylloc) - expected: (string describing the set of expected tokens) - recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error) - } -*/ -var parser = (function(){ -var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[2,59],$V1=[1,30],$V2=[1,33],$V3=[1,34],$V4=[1,35],$V5=[1,36],$V6=[1,37],$V7=[1,38],$V8=[1,8],$V9=[1,14],$Va=[1,13],$Vb=[1,39],$Vc=[1,40],$Vd=[1,28],$Ve=[1,6],$Vf=[1,10],$Vg=[1,9],$Vh=[1,11],$Vi=[1,15],$Vj=[1,16],$Vk=[1,17],$Vl=[1,18],$Vm=[1,19],$Vn=[1,20],$Vo=[1,22],$Vp=[1,41],$Vq=[1,23],$Vr=[1,24],$Vs=[1,25],$Vt=[1,26],$Vu=[1,27],$Vv=[1,29],$Vw=[1,42],$Vx=[1,22,27,45],$Vy=[22,45],$Vz=[2,63],$VA=[1,46],$VB=[1,47],$VC=[1,48],$VD=[1,49],$VE=[1,50],$VF=[1,51],$VG=[1,52],$VH=[1,53],$VI=[1,54],$VJ=[1,55],$VK=[1,56],$VL=[1,57],$VM=[1,58],$VN=[1,59],$VO=[1,60],$VP=[32,44,45,46],$VQ=[2,49],$VR=[1,65],$VS=[1,64],$VT=[1,67],$VU=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,80,103],$VV=[2,73],$VW=[1,73],$VX=[1,74],$VY=[1,75],$VZ=[1,70],$V_=[1,68],$V$=[1,69],$V01=[1,71],$V11=[1,72],$V21=[1,79],$V31=[1,77],$V41=[1,97],$V51=[46,103],$V61=[2,193],$V71=[1,101],$V81=[2,1],$V91=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,100,101,103],$Va1=[21,44,45,46],$Vb1=[24,44,45],$Vc1=[2,151],$Vd1=[1,122],$Ve1=[1,123],$Vf1=[1,120],$Vg1=[1,121],$Vh1=[1,124],$Vi1=[1,112],$Vj1=[1,116],$Vk1=[1,117],$Vl1=[1,115],$Vm1=[27,45],$Vn1=[1,138],$Vo1=[1,139],$Vp1=[32,45,46],$Vq1=[2,57],$Vr1=[1,161],$Vs1=[14,21,22,32,44,45,46],$Vt1=[2,54],$Vu1=[14,44,45,46],$Vv1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,56,59,60,61,63,64,65,67,68,69,76,79,80,103],$Vw1=[22,44,45,46],$Vx1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,76,79,80,103],$Vy1=[2,160],$Vz1=[1,183],$VA1=[1,187],$VB1=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,103],$VC1=[1,190],$VD1=[44,46,80],$VE1=[2,195],$VF1=[1,196],$VG1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,68,69,76,79,80,103],$VH1=[1,203],$VI1=[21,45,46],$VJ1=[24,45],$VK1=[1,208],$VL1=[22,24,44,45],$VM1=[1,210],$VN1=[22,24,44,45,54,60],$VO1=[1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,98,100,101,103],$VP1=[1,238],$VQ1=[1,237],$VR1=[21,22,24,39,45,46,79],$VS1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,59,60,63,64,65,67,68,69,76,79,80,103],$VT1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,60,64,68,69,76,79,80,103],$VU1=[1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,59,60,64,67,68,69,76,79,80,103],$VV1=[1,249],$VW1=[1,250],$VX1=[2,58],$VY1=[14,45,46],$VZ1=[22,45,46],$V_1=[1,283],$V$1=[1,284],$V02=[1,292],$V12=[1,322],$V22=[1,323],$V32=[1,14,21,22,24,26,27,28,32,35,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,80,86,87,103],$V42=[1,392]; -var parser = {trace: function trace() { }, -yy: {}, -symbols_: {"error":2,"Chain":3,"ID":4,"Parenthetical":5,"List":6,"STRNUM":7,"LITERAL":8,"DOT":9,"Key":10,"CALL(":11,"ArgList":12,"OptComma":13,")CALL":14,"?":15,"LET":16,"Block":17,"[":18,"Expression":19,"LoopHeads":20,"]":21,"DEDENT":22,"{":23,"}":24,"(":25,"BIOP":26,")":27,"BIOPR":28,"BIOPBP":29,"BIOPP":30,"PARAM(":31,")PARAM":32,"UNARY":33,"CREMENT":34,"BACKTICK":35,"TO":36,"BY":37,"WITH":38,"FOR":39,"Properties":40,"LABEL":41,"KeyBase":42,"Arg":43,",":44,"NEWLINE":45,"INDENT":46,"...":47,"Lines":48,"Line":49,"<-":50,"COMMENT":51,"REQUIRE":52,"CLONEPORT":53,"ASSIGN":54,"IMPORT":55,"+-":56,"CLONE":57,"YIELD":58,"COMPARE":59,"LOGIC":60,"MATH":61,"POWER":62,"SHIFT":63,"BITWISE":64,"CONCAT":65,"COMPOSE":66,"RELATION":67,"PIPE":68,"BACKPIPE":69,"!?":70,"->":71,"FUNCTION":72,"GENERATOR":73,"IF":74,"Else":75,"POST_IF":76,"LoopHead":77,"DO":78,"WHILE":79,"CASE":80,"HURL":81,"JUMP":82,"SWITCH":83,"Exprs":84,"Cases":85,"DEFAULT":86,"ELSE":87,"TRY":88,"CATCH":89,"FINALLY":90,"CLASS":91,"OptExtends":92,"OptImplements":93,"EXTENDS":94,"DECL":95,"KeyValue":96,"Property":97,":":98,"Body":99,"IN":100,"OF":101,"FROM":102,"IMPLEMENTS":103,"Root":104,"$accept":0,"$end":1}, -terminals_: {2:"error",4:"ID",7:"STRNUM",8:"LITERAL",9:"DOT",11:"CALL(",14:")CALL",15:"?",16:"LET",18:"[",21:"]",22:"DEDENT",23:"{",24:"}",25:"(",26:"BIOP",27:")",28:"BIOPR",29:"BIOPBP",30:"BIOPP",31:"PARAM(",32:")PARAM",33:"UNARY",34:"CREMENT",35:"BACKTICK",36:"TO",37:"BY",38:"WITH",39:"FOR",41:"LABEL",44:",",45:"NEWLINE",46:"INDENT",47:"...",50:"<-",51:"COMMENT",52:"REQUIRE",53:"CLONEPORT",54:"ASSIGN",55:"IMPORT",56:"+-",57:"CLONE",58:"YIELD",59:"COMPARE",60:"LOGIC",61:"MATH",62:"POWER",63:"SHIFT",64:"BITWISE",65:"CONCAT",66:"COMPOSE",67:"RELATION",68:"PIPE",69:"BACKPIPE",70:"!?",71:"->",72:"FUNCTION",73:"GENERATOR",74:"IF",76:"POST_IF",78:"DO",79:"WHILE",80:"CASE",81:"HURL",82:"JUMP",83:"SWITCH",86:"DEFAULT",87:"ELSE",88:"TRY",89:"CATCH",90:"FINALLY",91:"CLASS",94:"EXTENDS",95:"DECL",98:":",100:"IN",101:"OF",102:"FROM",103:"IMPLEMENTS"}, -productions_: [0,[3,1],[3,1],[3,1],[3,1],[3,1],[3,3],[3,3],[3,5],[3,2],[3,6],[3,4],[3,5],[3,7],[3,3],[3,4],[3,4],[3,3],[3,4],[3,4],[3,3],[3,7],[3,3],[3,7],[3,3],[3,3],[3,5],[3,6],[3,6],[3,5],[3,7],[3,4],[3,6],[3,9],[3,8],[3,7],[3,6],[3,6],[3,5],[3,3],[3,3],[6,4],[6,4],[6,5],[6,5],[10,1],[10,1],[42,1],[42,1],[12,0],[12,1],[12,3],[12,4],[12,6],[43,1],[43,2],[43,1],[13,0],[13,1],[48,0],[48,1],[48,3],[48,2],[49,1],[49,2],[49,6],[49,1],[49,1],[49,2],[17,3],[19,3],[19,3],[19,5],[19,1],[19,3],[19,6],[19,3],[19,6],[19,2],[19,2],[19,3],[19,3],[19,3],[19,2],[19,2],[19,2],[19,5],[19,1],[19,2],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,3],[19,2],[19,6],[19,6],[19,6],[19,4],[19,3],[19,3],[19,4],[19,6],[19,2],[19,5],[19,1],[19,1],[19,2],[19,3],[19,5],[19,5],[19,2],[19,4],[19,4],[19,2],[19,2],[19,4],[19,6],[19,5],[19,7],[19,4],[19,5],[19,4],[19,3],[19,2],[19,2],[19,5],[84,1],[84,3],[96,1],[96,1],[96,3],[96,3],[96,5],[96,5],[97,3],[97,6],[97,1],[97,3],[97,3],[97,2],[97,2],[97,2],[97,1],[40,0],[40,1],[40,3],[40,4],[40,4],[5,3],[99,1],[99,1],[99,3],[75,0],[75,2],[75,5],[77,4],[77,6],[77,6],[77,8],[77,2],[77,4],[77,4],[77,6],[77,4],[77,6],[77,6],[77,8],[77,6],[77,5],[77,8],[77,7],[77,8],[77,10],[77,10],[77,2],[77,4],[77,4],[77,6],[20,1],[20,2],[20,3],[20,3],[85,3],[85,4],[92,2],[92,0],[93,2],[93,0],[104,1]], -performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) { -/* this == yyval */ - -var $0 = $$.length - 1; -switch (yystate) { -case 1: -this.$ = yy.L(_$[$0], _$[$0],yy.Chain(yy.L(_$[$0],_$[$0],yy.Var($$[$0])))); -break; -case 2: case 3: -this.$ = yy.L(_$[$0], _$[$0],yy.Chain($$[$0])); -break; -case 4: case 5: -this.$ = yy.L(_$[$0], _$[$0],yy.Chain(yy.L(_$[$0],_$[$0],yy.Literal($$[$0])))); -break; -case 6: case 7: -this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].add(yy.L(_$[$0-1],_$[$0], yy.Index($$[$0], $$[$0-1], true)))); -break; -case 8: -this.$ = yy.L(_$[$0-4], _$[$0],$$[$0-4].add(yy.L(_$[$0-3],_$[$0], yy.Call($$[$0-2])))); -break; -case 9: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0], yy.Existence($$[$0-1].unwrap())))); -break; -case 10: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0-1], yy.Call['let']($$[$0-3], $$[$0])))); -break; -case 11: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-3],_$[$0], $$[$0-1][0].makeComprehension($$[$0-2], $$[$0-1].slice(1))))); -break; -case 12: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0], $$[$0-2][0].makeComprehension($$[$0-3], $$[$0-2].slice(1))))); -break; -case 13: -this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-6],_$[$0], $$[$0-1][0].addObjComp().makeComprehension(yy.L(_$[$0-4],_$[$0-4],yy.Arr($$[$0-4])), $$[$0-1].slice(1))))); -break; -case 14: case 20: case 22: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1])))); -break; -case 15: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-2],yy.Binary($$[$0-2], void 8, $$[$0-1])))); -break; -case 16: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1], $$[$0-2])))); -break; -case 17: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0-1],'!' === $$[$0-1].charAt(0) - ? yy.Binary($$[$0-1].slice(1)).invertIt() - : yy.Binary($$[$0-1])))); -break; -case 18: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-2],'!' === $$[$0-2].charAt(0) - ? yy.Binary($$[$0-2].slice(1), void 8, $$[$0-1]).invertIt() - : yy.Binary($$[$0-2], void 8, $$[$0-1])))); -break; -case 19: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0-1],'!' === $$[$0-1].charAt(0) - ? yy.Binary($$[$0-1].slice(1), $$[$0-2]).invertIt() - : yy.Binary($$[$0-1], $$[$0-2])))); -break; -case 21: -this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0-5],yy.Binary($$[$0-5], void 8, $$[$0-3])))); -break; -case 23: -this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1], $$[$0-4])))); -break; -case 24: case 25: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-1],_$[$0-1],yy.Unary($$[$0-1])))); -break; -case 26: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Chain($$[$0-2])); -break; -case 27: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0-1], $$[$0-2].add(yy.L(_$[$0-4],_$[$0-4],yy.Call([$$[$0-4]])))))); -break; -case 28: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-3],_$[$0-3],yy.Chain(yy.Var('flip$'))).add(yy.L(_$[$0-3],_$[$0-3],yy.Call([$$[$0-3]])))).flipIt().add(yy.L(_$[$0-1],_$[$0-1],yy.Call([$$[$0-1]])))); -break; -case 29: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Chain(yy.L(_$[$0-3],_$[$0-1], new yy.For({ - from: $$[$0-3], - op: $$[$0-2], - to: $$[$0-1], - inComprehension: true - })))); -break; -case 30: -this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0-1], new yy.For({ - from: $$[$0-5], - op: $$[$0-4], - to: $$[$0-3], - step: $$[$0-1], - inComprehension: true - })))); -break; -case 31: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], new yy.For({ - from: yy.Chain(yy.Literal(0)), - op: $$[$0-2], - to: $$[$0-1], - inComprehension: true - })))); -break; -case 32: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0-1], new yy.For({ - from: yy.Chain(yy.Literal(0)), - op: $$[$0-4], - to: $$[$0-3], - step: $$[$0-1], - inComprehension: true - })))); -break; -case 33: -this.$ = yy.L(_$[$0-8], _$[$0],yy.Chain(yy.L(_$[$0-8],_$[$0], new yy.StepSlice({ - op: $$[$0-4], - target: $$[$0-8], - from: $$[$0-5], - to: $$[$0-3], - step: $$[$0-1] - })))); -break; -case 34: -this.$ = yy.L(_$[$0-7], _$[$0],yy.Chain(yy.L(_$[$0-7],_$[$0], new yy.StepSlice({ - op: $$[$0-4], - target: $$[$0-7], - from: yy.Literal(0), - to: $$[$0-3], - step: $$[$0-1] - })))); -break; -case 35: -this.$ = yy.L(_$[$0-6], _$[$0],yy.Chain(yy.L(_$[$0-6],_$[$0], yy.Slice({ - type: $$[$0-2], - target: $$[$0-6], - from: $$[$0-3], - to: $$[$0-1] - })))); -break; -case 36: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0], yy.Slice({ - type: $$[$0-1], - target: $$[$0-5], - from: $$[$0-2] - })))); -break; -case 37: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Chain(yy.L(_$[$0-5],_$[$0], yy.Slice({ - type: $$[$0-2], - target: $$[$0-5], - to: $$[$0-1] - })))); -break; -case 38: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Chain(yy.L(_$[$0-4],_$[$0], yy.Slice({ - type: $$[$0-1], - target: $$[$0-4] - })))); -break; -case 39: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], yy.Cascade($$[$0-1], $$[$0], 'with')))); -break; -case 40: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Chain(yy.L(_$[$0-2],_$[$0-1], new yy.For({ - kind: $$[$0-2], - source: $$[$0-1], - body: $$[$0], - ref: true - }).addBody($$[$0])))); -break; -case 41: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Arr($$[$0-2])); -break; -case 42: -this.$ = yy.L(_$[$0-3], _$[$0],yy.Obj($$[$0-2])); -break; -case 43: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Arr($$[$0-3]).named($$[$0])); -break; -case 44: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Obj($$[$0-3]).named($$[$0])); -break; -case 45: case 46: case 54: case 57: case 58: case 62: case 63: case 136: case 144: case 157: case 158: - -break; -case 47: -this.$ = yy.L(_$[$0], _$[$0],yy.Key($$[$0])); -break; -case 48: -this.$ = yy.L(_$[$0], _$[$0],yy.Literal($$[$0])); -break; -case 49: case 151: -this.$ = yy.L(_$[$0], _$[$0],[]); -break; -case 50: case 134: case 152: case 186: -this.$ = yy.L(_$[$0], _$[$0],[$$[$0]]); -break; -case 51: case 135: case 153: case 188: case 189: -this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].concat($$[$0])); -break; -case 52: case 154: -this.$ = yy.L(_$[$0-3], _$[$0],$$[$0-3].concat($$[$0])); -break; -case 53: -this.$ = yy.L(_$[$0-5], _$[$0-2],$$[$0-5].concat($$[$0-2])); -break; -case 55: case 149: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Splat($$[$0])); -break; -case 56: -this.$ = yy.L(_$[$0], _$[$0],yy.Splat(yy.L(_$[$0],_$[$0],yy.Arr()), true)); -break; -case 59: -this.$ = yy.L(_$[$0], _$[$0],yy.Block()); -break; -case 60: -this.$ = yy.L(_$[$0], _$[$0],yy.Block($$[$0])); -break; -case 61: case 159: -this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].add($$[$0])); -break; -case 64: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Cascade($$[$0-1], $$[$0], 'cascade')); -break; -case 65: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Call.back($$[$0-4], $$[$0], /~/.test($$[$0-1]), /--|~~/.test($$[$0-1]), /!/.test($$[$0-1]), /\*/.test($$[$0-1]))); -break; -case 66: case 150: -this.$ = yy.L(_$[$0], _$[$0],yy.JS($$[$0], true, true)); -break; -case 67: -this.$ = yy.L(_$[$0], _$[$0],yy.Throw(yy.L(_$[$0],_$[$0],yy.JS("Error('unimplemented')")))); -break; -case 68: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Require($$[$0].unwrap())); -break; -case 69: -this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-1]); -break; -case 70: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Import(yy.L(_$[$0-2],_$[$0-1], yy.Unary('^^', $$[$0-2], { - prec: 'yy.UNARY' - })), $$[$0], false)); -break; -case 71: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Import(yy.L(_$[$0-2],_$[$0-1], yy.Unary('^^', $$[$0-2], { - prec: 'yy.UNARY' - })), $$[$0].unwrap(), false)); -break; -case 72: -this.$ = yy.L(_$[$0-4], _$[$0],$$[$0-2].add(yy.L(_$[$0-4],_$[$0], yy.Call([$$[$0-4], $$[$0]])))); -break; -case 73: -this.$ = yy.L(_$[$0], _$[$0],$$[$0].unwrap()); -break; -case 74: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Assign($$[$0-2].unwrap(), $$[$0], yy.L(_$[$0-1],_$[$0-1],yy.Box($$[$0-1])))); -break; -case 75: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Assign($$[$0-5].unwrap(), yy.Arr.maybe($$[$0-2]), yy.L(_$[$0-4],_$[$0-4],yy.Box($$[$0-4])))); -break; -case 76: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Import($$[$0-2], $$[$0], $$[$0-1] === '<<<<')); -break; -case 77: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Import($$[$0-5], yy.Arr.maybe($$[$0-2]), $$[$0-4] === '<<<<')); -break; -case 78: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0-1], $$[$0].unwrap())); -break; -case 79: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0], $$[$0-1].unwrap(), true)); -break; -case 80: case 81: case 82: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Assign($$[$0].unwrap(), [$$[$0-2]], yy.L(_$[$0-1],_$[$0-1],yy.Box($$[$0-1])))); -break; -case 83: case 84: case 85: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Unary($$[$0-1], $$[$0])); -break; -case 86: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Unary($$[$0-4], yy.Arr.maybe($$[$0-2]))); -break; -case 87: -this.$ = yy.L(_$[$0], _$[$0],yy.Yield($$[$0])); -break; -case 88: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Yield($$[$0-1], $$[$0])); -break; -case 89: case 90: case 91: case 92: case 93: case 94: case 95: case 96: case 97: case 145: -this.$ = (yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1], $$[$0-2], $$[$0]))); -break; -case 98: -this.$ = yy.L(_$[$0-2], _$[$0],'!' === $$[$0-1].charAt(0) - ? yy.Binary($$[$0-1].slice(1), $$[$0-2], $$[$0]).invert() - : yy.Binary($$[$0-1], $$[$0-2], $$[$0])); -break; -case 99: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Block($$[$0-2]).pipe($$[$0], $$[$0-1])); -break; -case 100: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Block($$[$0-2]).pipe([$$[$0]], $$[$0-1])); -break; -case 101: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Existence($$[$0-1].unwrap(), true)); -break; -case 102: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Fun($$[$0-4], $$[$0], /~/.test($$[$0-1]), /--|~~/.test($$[$0-1]), /!/.test($$[$0-1]), /\*/.test($$[$0-1]))); -break; -case 103: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Fun($$[$0-3], $$[$0]).named($$[$0-5])); -break; -case 104: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Fun($$[$0-3], $$[$0], false, false, false, true).named($$[$0-5])); -break; -case 105: -this.$ = (yy.L(_$[$0-3],_$[$0-2], yy.If($$[$0-2], $$[$0-1], $$[$0-3] === 'unless')).addElse($$[$0])); -break; -case 106: -this.$ = (yy.L(_$[$0-1],_$[$0], yy.If($$[$0], $$[$0-2], $$[$0-1] === 'unless'))); -break; -case 107: -this.$ = yy.L(_$[$0-2], _$[$0],$$[$0-2].addBody($$[$0-1]).addElse($$[$0])); -break; -case 108: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.While($$[$0], $$[$0-1] === 'until', true).addBody($$[$0-2])); -break; -case 109: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.While($$[$0-2], $$[$0-3] === 'until', true).addGuard($$[$0]).addBody($$[$0-4])); -break; -case 110: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Jump[$$[$0-1]]($$[$0])); -break; -case 111: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Jump[$$[$0-4]](yy.Arr.maybe($$[$0-2]))); -break; -case 112: -this.$ = yy.L(_$[$0], _$[$0],yy.Jump[$$[$0]]()); -break; -case 113: -this.$ = yy.L(_$[$0], _$[$0],new yy.Jump($$[$0])); -break; -case 114: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.Jump($$[$0-1], $$[$0])); -break; -case 115: -this.$ = yy.L(_$[$0-2], _$[$0],new yy.Switch($$[$0-2], $$[$0-1], $$[$0])); -break; -case 116: case 117: -this.$ = yy.L(_$[$0-4], _$[$0],new yy.Switch($$[$0-4], $$[$0-3], $$[$0-2], $$[$0])); -break; -case 118: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.Switch($$[$0-1], null, $$[$0])); -break; -case 119: case 120: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.Switch($$[$0-3], null, $$[$0-2], $$[$0])); -break; -case 121: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.Switch($$[$0-1], null, [], $$[$0])); -break; -case 122: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.Try($$[$0])); -break; -case 123: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.Try($$[$0-2], void 8, yy.L(_$[$0-1],_$[$0-1],$$[$0]))); -break; -case 124: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.Try($$[$0-4], void 8, yy.L(_$[$0-3],_$[$0-3],$$[$0-2]), yy.L(_$[$0-1],_$[$0-1],$$[$0]))); -break; -case 125: -this.$ = yy.L(_$[$0-4], _$[$0],new yy.Try($$[$0-3], $$[$0-1], yy.L(_$[$0-2],_$[$0-1], $$[$0]))); -break; -case 126: -this.$ = yy.L(_$[$0-6], _$[$0],new yy.Try($$[$0-5], $$[$0-3], yy.L(_$[$0-4],_$[$0-3], $$[$0-2]), yy.L(_$[$0-1],_$[$0-1],$$[$0]))); -break; -case 127: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.Try($$[$0-2], void 8, void 8, yy.L(_$[$0-1],_$[$0-1],$$[$0]))); -break; -case 128: -this.$ = yy.L(_$[$0-4], _$[$0],new yy.Class({ - title: $$[$0-3].unwrap(), - sup: $$[$0-2], - mixins: $$[$0-1], - body: $$[$0] - })); -break; -case 129: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.Class({ - sup: $$[$0-2], - mixins: $$[$0-1], - body: $$[$0] - })); -break; -case 130: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Util.Extends($$[$0-2].unwrap(), $$[$0])); -break; -case 131: case 132: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.Label($$[$0-1], $$[$0])); -break; -case 133: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Decl($$[$0-4], $$[$0-2], yylineno + 1)); -break; -case 137: -this.$ = yy.L(_$[$0], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0], $$[$0] !== 'arguments' && $$[$0] !== 'eval')), yy.L(_$[$0],_$[$0],yy.Literal($$[$0])))); -break; -case 138: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Prop($$[$0], yy.Chain($$[$0-2], [yy.L(_$[$0-1],_$[$0], yy.Index($$[$0], $$[$0-1]))]))); -break; -case 139: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Prop($$[$0], yy.Chain(yy.L(_$[$0-2],_$[$0-2],yy.Literal($$[$0-2])), [yy.L(_$[$0-1],_$[$0], yy.Index($$[$0], $$[$0-1]))]))); -break; -case 140: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0])), yy.L(_$[$0-4],_$[$0-1], yy.Obj($$[$0-3]).named($$[$0])))); -break; -case 141: -this.$ = yy.L(_$[$0-4], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0])), yy.L(_$[$0-4],_$[$0-1], yy.Arr($$[$0-3]).named($$[$0])))); -break; -case 142: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Prop($$[$0-2], $$[$0])); -break; -case 143: -this.$ = yy.L(_$[$0-5], _$[$0],yy.Prop($$[$0-5], yy.Arr.maybe($$[$0-2]))); -break; -case 146: -this.$ = (yy.L(_$[$0-1],_$[$0-1],yy.Binary($$[$0-1], $$[$0-2], $$[$0], true))); -break; -case 147: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Prop($$[$0].maybeKey(), yy.L(_$[$0-1],_$[$0-1],yy.Literal($$[$0-1] === '+')))); -break; -case 148: -this.$ = yy.L(_$[$0-1], _$[$0],yy.Prop(yy.L(_$[$0],_$[$0],yy.Key($$[$0], true)), yy.L(_$[$0-1],_$[$0-1],yy.Literal($$[$0-1] === '+')))); -break; -case 155: -this.$ = yy.L(_$[$0-3], _$[$0],$$[$0-2]); -break; -case 156: -this.$ = yy.L(_$[$0-2], _$[$0],yy.Parens($$[$0-1].chomp().unwrap(), false, $$[$0-2] === '"', yy.L(_$[$0-2],_$[$0-2],{}), yy.L(_$[$0],_$[$0],{}))); -break; -case 160: case 193: case 195: -this.$ = yy.L(_$[$0], _$[$0],null); -break; -case 161: case 192: case 194: -this.$ = yy.L(_$[$0-1], _$[$0],$$[$0]); -break; -case 162: -this.$ = yy.L(_$[$0-4], _$[$0],yy.If($$[$0-2], $$[$0-1], $$[$0-3] === 'unless').addElse($$[$0])); -break; -case 163: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ - kind: $$[$0-3], - item: $$[$0-2].unwrap(), - index: $$[$0-1], - source: $$[$0] - })); -break; -case 164: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ - kind: $$[$0-5], - item: $$[$0-4].unwrap(), - index: $$[$0-3], - source: $$[$0-2], - guard: $$[$0] - })); -break; -case 165: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ - kind: $$[$0-5], - item: $$[$0-4].unwrap(), - index: $$[$0-3], - source: $$[$0-2], - step: $$[$0] - })); -break; -case 166: -this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ - kind: $$[$0-7], - item: $$[$0-6].unwrap(), - index: $$[$0-5], - source: $$[$0-4], - step: $$[$0-2], - guard: $$[$0] - })); -break; -case 167: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.For({ - kind: $$[$0-1], - source: $$[$0], - ref: true - })); -break; -case 168: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ - kind: $$[$0-3], - source: $$[$0-2], - ref: true, - guard: $$[$0] - })); -break; -case 169: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ - kind: $$[$0-3], - source: $$[$0-2], - ref: true, - step: $$[$0] - })); -break; -case 170: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ - kind: $$[$0-5], - source: $$[$0-4], - ref: true, - step: $$[$0-2], - guard: $$[$0] - })); -break; -case 171: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.For({ - object: true, - kind: $$[$0-3], - index: $$[$0-2], - source: $$[$0] - })); -break; -case 172: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ - object: true, - kind: $$[$0-5], - index: $$[$0-4], - source: $$[$0-2], - guard: $$[$0] - })); -break; -case 173: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ - object: true, - kind: $$[$0-5], - index: $$[$0-4], - item: $$[$0-2].unwrap(), - source: $$[$0] - })); -break; -case 174: -this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ - object: true, - kind: $$[$0-7], - index: $$[$0-6], - item: $$[$0-4].unwrap(), - source: $$[$0-2], - guard: $$[$0] - })); -break; -case 175: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.For({ - kind: $$[$0-5], - index: $$[$0-4], - from: $$[$0-2], - op: $$[$0-1], - to: $$[$0] - })); -break; -case 176: -this.$ = yy.L(_$[$0-4], _$[$0],new yy.For({ - kind: $$[$0-4], - from: $$[$0-2], - op: $$[$0-1], - to: $$[$0] - })); -break; -case 177: -this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ - kind: $$[$0-7], - index: $$[$0-6], - from: $$[$0-4], - op: $$[$0-3], - to: $$[$0-2], - guard: $$[$0] - })); -break; -case 178: -this.$ = yy.L(_$[$0-6], _$[$0],new yy.For({ - kind: $$[$0-6], - from: $$[$0-4], - op: $$[$0-3], - to: $$[$0-2], - guard: $$[$0] - })); -break; -case 179: -this.$ = yy.L(_$[$0-7], _$[$0],new yy.For({ - kind: $$[$0-7], - index: $$[$0-6], - from: $$[$0-4], - op: $$[$0-3], - to: $$[$0-2], - step: $$[$0] - })); -break; -case 180: -this.$ = yy.L(_$[$0-9], _$[$0],new yy.For({ - kind: $$[$0-9], - index: $$[$0-8], - from: $$[$0-6], - op: $$[$0-5], - to: $$[$0-4], - step: $$[$0-2], - guard: $$[$0] - })); -break; -case 181: -this.$ = yy.L(_$[$0-9], _$[$0],new yy.For({ - kind: $$[$0-9], - index: $$[$0-8], - from: $$[$0-6], - op: $$[$0-5], - to: $$[$0-4], - guard: $$[$0-2], - step: $$[$0] - })); -break; -case 182: -this.$ = yy.L(_$[$0-1], _$[$0],new yy.While($$[$0], $$[$0-1] === 'until')); -break; -case 183: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.While($$[$0-2], $$[$0-3] === 'until').addGuard($$[$0])); -break; -case 184: -this.$ = yy.L(_$[$0-3], _$[$0],new yy.While($$[$0-2], $$[$0-3] === 'until', $$[$0])); -break; -case 185: -this.$ = yy.L(_$[$0-5], _$[$0],new yy.While($$[$0-4], $$[$0-5] === 'until', $$[$0-2]).addGuard($$[$0])); -break; -case 187: -this.$ = yy.L(_$[$0-1], _$[$0],$$[$0-1].concat($$[$0])); -break; -case 190: -this.$ = yy.L(_$[$0-2], _$[$0],[yy.L(_$[$0-2],_$[$0-1], new yy.Case($$[$0-1], $$[$0]))]); -break; -case 191: -this.$ = yy.L(_$[$0-3], _$[$0],$$[$0-3].concat(yy.L(_$[$0-2],_$[$0-1], new yy.Case($$[$0-1], $$[$0])))); -break; -case 196: -return this.$ -break; -} -}, -table: [o([1,45],$V0,{104:1,99:2,48:3,17:4,49:5,19:7,3:12,77:21,5:31,6:32,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$Vf,51:$Vg,52:$Vh,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{1:[3]},{1:[2,196]},o($Vu,[2,157],{45:$Vw}),o($Vu,[2,158],{45:[1,43]}),o($Vx,[2,60]),o($Vy,$V0,{49:5,19:7,3:12,77:21,5:31,6:32,48:44,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$Vf,51:$Vg,52:$Vh,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vx,$Vz,{17:45,35:$VA,46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VP,$VQ,{3:12,77:21,5:31,6:32,12:61,43:62,19:63,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vx,[2,66]),o($Vx,[2,67]),{3:66,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($VU,$VV,{9:$VW,11:$VX,15:$VY,34:$VZ,53:$V_,54:$V$,70:$V01,94:$V11}),{3:76,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:78,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$V21,54:$V31,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:81,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,54:[1,80],56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:83,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,54:[1,82],56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o([1,14,21,22,24,26,27,28,32,35,36,37,44,45,46,55,59,60,61,62,63,64,65,66,67,68,69,76,80,103],[2,87],{3:12,77:21,5:31,6:32,19:84,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{11:[1,85]},{11:[1,86]},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:87,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{17:88,46:$Ve},{17:89,46:$Ve},o([1,14,21,22,24,26,27,28,32,35,36,37,44,45,55,59,60,61,62,63,64,65,66,67,68,69,76,80,103],[2,112],{3:12,77:21,5:31,6:32,19:90,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,91],56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($VU,[2,113],{4:[1,92]}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,17:95,18:$V5,19:96,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,80:$V41,81:$Vq,82:$Vr,83:$Vs,84:93,85:94,88:$Vt,91:$Vu,95:$Vv},{17:98,46:$Ve},o($V51,$V61,{5:31,6:32,3:99,92:100,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT,94:$V71}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,17:103,18:$V5,19:102,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{46:[1,104]},o([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,101,103],$V81),o($V91,[2,2]),o($V91,[2,3]),o($V91,[2,4]),o($V91,[2,5]),{11:[1,105]},o($Va1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:106,12:108,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,36:[1,107],38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vb1,$Vc1,{40:110,97:111,10:113,96:114,42:118,5:119,4:$Vd1,7:$Ve1,8:$Vf1,18:[1,109],23:$Vg1,25:$Vh1,46:$Vi1,47:$Vj1,51:$Vk1,56:$Vl1}),o($Vm1,$V0,{48:3,17:4,49:5,3:12,77:21,5:31,6:32,19:126,99:134,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,26:[1,125],28:[1,127],29:[1,128],30:[1,129],31:[1,130],33:[1,131],34:[1,132],35:[1,133],38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$Vf,51:$Vg,52:$Vh,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:135,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:137,4:$Vn1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:136,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv,102:$Vo1},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:140,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($Vx,[2,62],{19:7,3:12,77:21,5:31,6:32,49:141,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$Vf,51:$Vg,52:$Vh,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o([1,27,45],$V0,{49:5,19:7,3:12,77:21,5:31,6:32,48:142,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$Vf,51:$Vg,52:$Vh,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{22:[1,143],45:$Vw},o($Vx,[2,64]),{3:144,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:145,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,146],56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:147,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:148,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:149,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:150,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:151,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:152,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:153,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:154,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:155,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:156,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:157,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:158,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:159,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($Vp1,$Vq1,{13:160,44:$Vr1}),o($Vs1,[2,50]),o($Vs1,$Vt1,{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($Vs1,[2,56],{3:12,77:21,5:31,6:32,19:162,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($VP,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:163,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vx,[2,68],{9:$VW,11:$VX,15:$VY}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:164,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,17:166,18:$V5,19:165,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:167,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,168],56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VU,[2,79]),o($VU,[2,101]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:169,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{4:$Vd1,5:119,6:171,7:$Ve1,10:170,18:[1,172],23:[1,173],25:$Vh1,42:118},o($Vu1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:174,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($V91,[2,9]),o($VU,[2,78],{9:$VW,11:$VX,15:$VY}),{3:175,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vv1,[2,83],{35:$VA,62:$VG,66:$VK}),o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:176,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{3:177,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vv1,[2,84],{35:$VA,62:$VG,66:$VK}),{3:178,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($Vv1,[2,85],{35:$VA,62:$VG,66:$VK}),o($Vx1,[2,88],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN}),o($Vu1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:179,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vu1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:180,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{17:181,35:$VA,46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($VU,$Vy1,{75:182,87:$Vz1}),{79:[1,184]},o($Vx1,[2,110],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN}),o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:185,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($VU,[2,114]),{44:$VA1,80:$V41,85:186},o($VB1,[2,118],{80:$VC1,86:[1,188],87:[1,189]}),o($VU,[2,121]),o($VD1,[2,134],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:96,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,84:191,88:$Vt,91:$Vu,95:$Vv},o($VU,[2,122],{89:[1,192],90:[1,193]}),o($V51,$V61,{92:194,9:$VW,11:$VX,15:$VY,94:$V71}),{46:$VE1,93:195,103:$VF1},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:197,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VG1,[2,131],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL}),o($VU,[2,132]),o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:198,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vu1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:199,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Va1,$Vt1,{20:200,77:202,35:$VA,36:[1,201],39:$VH1,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,79:$Vp}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:204,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VI1,$Vq1,{13:205,44:$Vr1}),o($Va1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:206,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($VJ1,$Vq1,{13:207,44:$VK1}),o($VL1,[2,152]),o([22,44,45],$Vc1,{97:111,10:113,96:114,42:118,5:119,40:209,4:$Vd1,7:$Ve1,8:$Vf1,18:$VM1,23:$Vg1,25:$Vh1,46:$Vi1,47:$Vj1,51:$Vk1,56:$Vl1}),o($VN1,[2,136],{9:[1,212],98:[1,211]}),o($VL1,[2,144],{54:[1,214],60:[1,213]}),{4:$Vd1,5:119,7:$Ve1,8:[1,216],10:215,25:$Vh1,42:118},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:217,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VL1,[2,150]),o($VO1,[2,45]),o($VO1,[2,46]),o($VN1,[2,137],{9:[1,218]}),o($Vb1,$Vc1,{97:111,10:113,96:114,42:118,5:119,40:219,4:$Vd1,7:$Ve1,8:$Vf1,18:$VM1,23:$Vg1,25:$Vh1,46:$Vi1,47:$Vj1,51:$Vk1,56:$Vl1}),o($VO1,[2,47]),o($VO1,[2,48]),o($Vm1,$V0,{48:3,17:4,49:5,19:7,3:12,77:21,5:31,6:32,99:134,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$V8,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$Ve,47:$Vf,51:$Vg,52:$Vh,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:221,23:$V6,25:$V7,27:[1,220],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($Vm1,$Vz,{17:45,26:[1,222],28:[1,223],35:[1,224],46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:226,23:$V6,25:$V7,27:[1,225],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{11:[1,228],27:[1,227]},{27:[1,229]},o($VP,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:230,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:78,23:$V6,25:$V7,27:[1,231],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:$V21,54:$V31,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:76,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,27:[1,232],38:$Vb,39:$VT},{3:233,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{27:[1,234]},{17:235,35:$VA,46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{17:236,35:$VA,37:$VP1,46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:$VQ1},o([21,22,24,35,37,39,45,46,55,56,59,60,61,62,63,64,65,66,67,68,69,76,79,80],$VV,{9:$VW,11:$VX,15:$VY,34:$VZ,53:$V_,54:$V$,70:$V01,94:$V11,100:[1,239]}),o([9,11,15,21,22,24,34,35,37,39,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,94,100],$V81,{44:[1,241],101:[1,240],102:[1,242]}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:243,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,182],{35:$VA,44:[1,245],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,244]}),o($Vx,[2,61]),o($Vu,[2,159],{45:$Vw}),o([1,9,11,14,15,21,22,24,26,27,28,32,34,35,36,37,39,44,45,46,53,54,55,56,59,60,61,62,63,64,65,66,67,68,69,70,76,79,80,86,87,89,90,94,100,101,103],[2,69]),{9:$VW,11:$VX,15:$VY,35:[1,246]},o($VS1,[2,76],{35:$VA,56:$VC,61:$VF,62:$VG,66:$VK}),o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:247,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,56,59,60,63,64,65,67,68,69,76,79,80,103],[2,89],{35:$VA,61:$VF,62:$VG,66:$VK}),o($VT1,[2,90],{35:$VA,55:$VB,56:$VC,59:$VD,61:$VF,62:$VG,63:$VH,65:$VJ,66:$VK,67:$VL}),o($VG1,[2,91],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL}),o($Vv1,[2,92],{35:$VA,62:$VG,66:$VK}),o($Vv1,[2,93],{35:$VA,62:$VG,66:$VK}),o($VS1,[2,94],{35:$VA,56:$VC,61:$VF,62:$VG,66:$VK}),o($VT1,[2,95],{35:$VA,55:$VB,56:$VC,59:$VD,61:$VF,62:$VG,63:$VH,65:$VJ,66:$VK,67:$VL}),o($VU1,[2,96],{35:$VA,55:$VB,56:$VC,61:$VF,62:$VG,63:$VH,65:$VJ,66:$VK}),o([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,55,56,59,60,61,62,63,64,65,67,68,69,76,79,80,103],[2,97],{35:$VA,66:$VK}),o($VU1,[2,98],{35:$VA,55:$VB,56:$VC,61:$VF,62:$VG,63:$VH,65:$VJ,66:$VK}),o($VG1,[2,99],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL}),o($Vx1,[2,100],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN}),o($Vx1,[2,106],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN}),{32:[1,248],45:$VV1,46:$VW1},o([14,21,22,32,45,46],$VX1,{3:12,77:21,5:31,6:32,19:63,43:251,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vs1,[2,55],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($Vp1,$Vq1,{13:252,44:$Vr1}),{17:236,35:$VA,46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($VS1,[2,70],{35:$VA,56:$VC,61:$VF,62:$VG,66:$VK}),o($VU,[2,71]),o($Vx1,[2,74],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN}),o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:253,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($VG1,[2,130],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL}),o($V91,[2,6]),o($V91,[2,7]),o($Va1,$VQ,{3:12,77:21,5:31,6:32,43:62,12:108,19:254,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,36:[1,255],38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vb1,$Vc1,{40:110,97:111,10:113,96:114,42:118,5:119,4:$Vd1,7:$Ve1,8:$Vf1,18:$VM1,23:$Vg1,25:$Vh1,46:$Vi1,47:$Vj1,51:$Vk1,56:$Vl1}),o($VY1,$Vq1,{13:256,44:$Vr1}),o($VU,[2,80],{9:$VW,11:$VX,15:$VY}),o($VZ1,$Vq1,{13:257,44:$Vr1}),o($VU,[2,81],{9:$VW,11:$VX,15:$VY}),o($VU,[2,82],{9:$VW,11:$VX,15:$VY}),o($VY1,$Vq1,{13:258,44:$Vr1}),o($VY1,$Vq1,{13:259,44:$Vr1}),o($VU,$Vy1,{75:260,87:$Vz1}),o($VU,[2,107]),{17:261,46:$Ve,74:[1,262]},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:263,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VZ1,$Vq1,{13:264,44:$Vr1}),o($VB1,[2,115],{80:$VC1,86:[1,265],87:[1,266]}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:267,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{17:268,46:$Ve},{17:269,46:$Ve},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:96,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,84:270,88:$Vt,91:$Vu,95:$Vv},{17:271,44:$VA1,46:$Ve},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,17:272,18:$V5,19:63,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,43:273,46:$Ve,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{17:274,46:$Ve},{46:$VE1,93:275,103:$VF1},{17:276,46:$Ve},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:96,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,84:277,88:$Vt,91:$Vu,95:$Vv},o($V51,[2,192],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VZ1,$Vq1,{13:278,44:$Vr1}),o($VY1,$Vq1,{13:279,44:$Vr1}),{21:[1,280],22:[1,281],39:$VH1,45:$V_1,46:$V$1,77:282,79:$Vp},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:285,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,186]),{3:137,4:$Vn1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:286,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv,102:$Vo1},{21:[1,287],35:$VA,37:[1,288],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{21:[1,289],45:$VV1,46:$VW1},o($VI1,$Vq1,{13:290,44:$Vr1}),{24:[1,291],45:$V02},o([22,24,45],$VX1,{10:113,96:114,42:118,5:119,97:293,4:$Vd1,7:$Ve1,8:$Vf1,18:$VM1,23:$Vg1,25:$Vh1,47:$Vj1,51:$Vk1,56:$Vl1}),o($Vy,$Vq1,{13:294,44:$VK1}),o($Va1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:295,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:296,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,46:[1,297],56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{4:$Vd1,7:$Ve1,42:298},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:299,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:300,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VL1,[2,147]),o($VL1,[2,148]),o($VL1,[2,149],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),{4:$Vd1,7:$Ve1,42:301},o($VJ1,$Vq1,{13:302,44:$VK1}),o($V91,[2,14]),{27:[1,303],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{27:[1,304]},{27:[1,305]},{3:306,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},o($V91,[2,17]),{27:[1,307],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($V91,[2,20]),o($Vu1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:308,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($V91,[2,22]),o($Vp1,$Vq1,{13:309,44:$Vr1}),o($V91,[2,24]),o($V91,[2,25]),{9:$VW,11:$VX,15:$VY,35:[1,310]},o($VO1,[2,156]),o($V91,[2,39]),o($V91,[2,40]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:311,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:312,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:313,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:314,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:315,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,38:$Vb,39:$VT},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:316,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{35:$VA,36:[1,317],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:318,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:319,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:320,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VZ1,$Vq1,{13:321,44:$Vr1}),{50:$V12,71:$V22},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:63,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,43:324,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:325,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($Vs1,[2,51]),{32:[1,326],45:$VV1,46:$VW1},o($VZ1,$Vq1,{13:327,44:$Vr1}),o($Va1,$Vt1,{35:$VA,36:[1,328],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:329,21:[1,330],23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{14:[1,331],45:$VV1,46:$VW1},{22:[1,332],45:$VV1,46:$VW1},{14:[1,333],45:$VV1,46:$VW1},{14:[1,334],45:$VV1,46:$VW1},o($VU,[2,105]),o($VU,[2,161]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:335,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o([1,14,21,22,24,26,27,28,32,36,37,39,44,45,46,68,69,76,79,103],[2,108],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,80:[1,336]}),{22:[1,337],45:$VV1,46:$VW1},{17:338,46:$Ve},{17:339,46:$Ve},o($VD1,[2,135],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VU,[2,119]),o($VU,[2,120]),{17:340,44:$VA1,46:$Ve},o($V32,[2,190]),o($VU,[2,123],{90:[1,341]}),{17:342,46:$Ve},o($VU,[2,127]),{17:343,46:$Ve},o($VU,[2,129]),{44:$VA1,46:[2,194]},{22:[1,344],45:$VV1,46:$VW1},{14:[1,345],45:$VV1,46:$VW1},o($V91,[2,11]),{21:[1,346]},o($VR1,[2,187]),{39:$VH1,77:347,79:$Vp},{39:$VH1,77:348,79:$Vp},{21:[1,349],35:$VA,37:[1,350],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($VR1,[2,167],{35:$VA,37:$VP1,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:$VQ1}),o($V91,[2,31]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:351,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($V91,[2,41],{41:[1,352]}),{21:[1,353],45:$VV1,46:$VW1},o($V91,[2,42],{41:[1,354]}),{4:$Vd1,5:119,7:$Ve1,8:$Vf1,10:113,18:$VM1,23:$Vg1,25:$Vh1,42:118,47:$Vj1,51:$Vk1,56:$Vl1,96:114,97:355},o($VL1,[2,153]),{22:[1,356],45:$V02},o($VI1,$Vq1,{13:357,44:$Vr1}),o($VL1,[2,142],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($Vw1,$VQ,{3:12,77:21,5:31,6:32,43:62,19:63,12:358,4:$V1,7:$V2,8:$V3,16:$V4,18:$V5,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,47:$VS,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv}),o($VN1,[2,138]),o($VL1,[2,145],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VL1,[2,146],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VN1,[2,139]),{24:[1,359],45:$V02},o($V91,[2,15]),o($V91,[2,16]),o($V91,[2,19]),{9:$VW,11:$VX,15:$VY,35:[1,360]},o($V91,[2,18]),o($VY1,$Vq1,{13:361,44:$Vr1}),{32:[1,362],45:$VV1,46:$VW1},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:364,23:$V6,25:$V7,27:[1,363],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,168],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,169],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,365]}),o($VR1,[2,163],{35:$VA,37:[1,367],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,366]}),o($VR1,[2,171],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,368]}),{9:$VW,11:$VX,15:$VY,101:[1,369]},{35:$VA,36:[1,370],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:371,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,183],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,184],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,372]}),o($VU,[2,72]),{22:[1,373],45:$VV1,46:$VW1},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:374,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{17:375,46:$Ve},o($Vs1,[2,52]),o($VZ1,$Vq1,{13:376,44:$Vr1}),{71:$V22},{22:[1,377],45:$VV1,46:$VW1},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:378,21:[1,379],23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{21:[1,381],35:$VA,37:[1,380],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($V91,[2,38]),o($V91,[2,8]),o($VU,[2,86]),{17:382,46:$Ve},{17:383,46:$Ve},{17:384,35:$VA,46:$Ve,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:385,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VU,[2,111]),o($VU,[2,116]),o($VU,[2,117]),o($V32,[2,191]),{17:386,46:$Ve},o($VU,[2,125],{90:[1,387]}),o($VU,[2,128]),o($VU,[2,133]),{17:388,46:$Ve},o($V91,[2,12]),o($VR1,[2,188]),o($VR1,[2,189]),o($V91,[2,29]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:389,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{21:[1,390],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($V91,[2,43]),{20:391,39:$VH1,41:$V42,77:202,79:$Vp},o($V91,[2,44]),o($VL1,[2,154]),o($VL1,[2,155]),{21:[1,393],45:$VV1,46:$VW1},o($VZ1,$Vq1,{13:394,44:$Vr1}),{41:[1,395]},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:320,23:$V6,25:$V7,27:[1,396],31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{14:[1,397],45:$VV1,46:$VW1},{30:[1,398],50:$V12,71:$V22},o($V91,[2,26]),{27:[1,399],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:400,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:401,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:402,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:403,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:404,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:405,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,176],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,406]}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:407,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VU,[2,77]),o($Vx,[2,65],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VU,[2,102]),{22:[1,408],45:$VV1,46:$VW1},o($VU,[2,75]),{21:[1,410],35:$VA,37:[1,409],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($V91,[2,36]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:411,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($V91,[2,37]),o($VU,[2,103]),o($VU,[2,104]),o($VU,$Vy1,{75:412,87:$Vz1}),o($VG1,[2,109],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL}),o($VU,[2,124]),{17:413,46:$Ve},o($V91,[2,10]),{21:[1,414],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($V91,[2,32]),{24:[1,415],39:$VH1,45:$V_1,46:$V$1,77:282,79:$Vp},o($VN1,[2,141]),{41:$V42},{22:[1,416],45:$VV1,46:$VW1},o($VN1,[2,140]),o($V91,[2,27]),{27:[1,417]},{27:[1,418]},o($V91,[2,28]),o($VR1,[2,170],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,164],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,165],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,419]}),o($VR1,[2,172],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,173],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,420]}),o($VR1,[2,175],{35:$VA,37:[1,422],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,421]}),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:423,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,185],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($Vs1,[2,53]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:424,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($V91,[2,35]),{21:[1,425],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($VU,[2,162]),o($VU,[2,126]),o($V91,[2,30]),o($V91,[2,13]),o($VL1,[2,143]),o($V91,[2,21]),o($V91,[2,23]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:426,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:427,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:428,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:429,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,178],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),{21:[1,430],35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO},o($V91,[2,34]),o($VR1,[2,166],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,174],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,177],{35:$VA,37:[1,431],55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,179],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO,80:[1,432]}),o($V91,[2,33]),{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:433,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},{3:12,4:$V1,5:31,6:32,7:$V2,8:$V3,16:$V4,18:$V5,19:434,23:$V6,25:$V7,31:$VR,33:$V9,34:$Va,38:$Vb,39:$Vc,41:$Vd,56:$Vi,57:$Vj,58:$Vk,72:$Vl,73:$Vm,74:$Vn,77:21,78:$Vo,79:$Vp,81:$Vq,82:$Vr,83:$Vs,88:$Vt,91:$Vu,95:$Vv},o($VR1,[2,181],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO}),o($VR1,[2,180],{35:$VA,55:$VB,56:$VC,59:$VD,60:$VE,61:$VF,62:$VG,63:$VH,64:$VI,65:$VJ,66:$VK,67:$VL,68:$VM,69:$VN,76:$VO})], -defaultActions: {2:[2,196]}, -parseError: function parseError(str, hash) { - if (hash.recoverable) { - this.trace(str); - } else { - throw new Error(str); - } -}, -parse: function parse(input) { - var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1; - var args = lstack.slice.call(arguments, 1); - var lexer = Object.create(this.lexer); - var sharedState = { yy: {} }; - for (var k in this.yy) { - if (Object.prototype.hasOwnProperty.call(this.yy, k)) { - sharedState.yy[k] = this.yy[k]; - } - } - lexer.setInput(input, sharedState.yy); - sharedState.yy.lexer = lexer; - sharedState.yy.parser = this; - if (typeof lexer.yylloc == 'undefined') { - lexer.yylloc = {}; - } - var yyloc = lexer.yylloc; - lstack.push(yyloc); - var ranges = lexer.options && lexer.options.ranges; - if (typeof sharedState.yy.parseError === 'function') { - this.parseError = sharedState.yy.parseError; - } else { - this.parseError = Object.getPrototypeOf(this).parseError; - } - function popStack(n) { - stack.length = stack.length - 2 * n; - vstack.length = vstack.length - n; - lstack.length = lstack.length - n; - } - _token_stack: - function lex() { - var token; - token = lexer.lex() || EOF; - if (typeof token !== 'number') { - token = self.symbols_[token] || token; - } - return token; - } - var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected; - while (true) { - state = stack[stack.length - 1]; - if (this.defaultActions[state]) { - action = this.defaultActions[state]; - } else { - if (symbol === null || typeof symbol == 'undefined') { - symbol = lex(); - } - action = table[state] && table[state][symbol]; - } - if (typeof action === 'undefined' || !action.length || !action[0]) { - var errStr = ''; - expected = []; - for (p in table[state]) { - if (this.terminals_[p] && p > TERROR) { - expected.push('\'' + this.terminals_[p] + '\''); - } - } - if (lexer.showPosition) { - errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\''; - } else { - errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\''); - } - this.parseError(errStr, { - text: lexer.match, - token: this.terminals_[symbol] || symbol, - line: lexer.yylineno, - loc: yyloc, - expected: expected - }); - } - if (action[0] instanceof Array && action.length > 1) { - throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol); - } - switch (action[0]) { - case 1: - stack.push(symbol); - vstack.push(lexer.yytext); - lstack.push(lexer.yylloc); - stack.push(action[1]); - symbol = null; - if (!preErrorSymbol) { - yyleng = lexer.yyleng; - yytext = lexer.yytext; - yylineno = lexer.yylineno; - yyloc = lexer.yylloc; - if (recovering > 0) { - recovering--; - } - } else { - symbol = preErrorSymbol; - preErrorSymbol = null; - } - break; - case 2: - len = this.productions_[action[1]][1]; - yyval.$ = vstack[vstack.length - len]; - yyval._$ = { - first_line: lstack[lstack.length - (len || 1)].first_line, - last_line: lstack[lstack.length - 1].last_line, - first_column: lstack[lstack.length - (len || 1)].first_column, - last_column: lstack[lstack.length - 1].last_column - }; - if (ranges) { - yyval._$.range = [ - lstack[lstack.length - (len || 1)].range[0], - lstack[lstack.length - 1].range[1] - ]; - } - r = this.performAction.apply(yyval, [ - yytext, - yyleng, - yylineno, - sharedState.yy, - action[1], - vstack, - lstack - ].concat(args)); - if (typeof r !== 'undefined') { - return r; - } - if (len) { - stack = stack.slice(0, -1 * len * 2); - vstack = vstack.slice(0, -1 * len); - lstack = lstack.slice(0, -1 * len); - } - stack.push(this.productions_[action[1]][0]); - vstack.push(yyval.$); - lstack.push(yyval._$); - newState = table[stack[stack.length - 2]][stack[stack.length - 1]]; - stack.push(newState); - break; - case 3: - return true; - } - } - return true; -}}; - -function Parser () { - this.yy = {}; -} -Parser.prototype = parser;parser.Parser = Parser; -return new Parser; -})(); - - -if (typeof require !== 'undefined' && typeof exports !== 'undefined') { -exports.parser = parser; -exports.Parser = parser.Parser; -exports.parse = function () { return parser.parse.apply(parser, arguments); }; -exports.main = function commonjsMain(args) { - if (!args[1]) { - console.log('Usage: '+args[0]+' FILE'); - process.exit(1); - } - var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8"); - return exports.parser.parse(source); -}; -if (typeof module !== 'undefined' && require.main === module) { - exports.main(process.argv.slice(1)); -} -} - -}).call(this,require('_process')) -},{"_process":21,"fs":9,"path":14}],6:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var path, stripString, nameFromPath; -path = require('path'); -stripString = function(val){ - var that; - if (that = /^['"](.*)['"]$/.exec(val.trim())) { - return that[1]; - } else { - return val; - } -}; -nameFromPath = function(modulePath){ - return path.basename(stripString(modulePath)).split('.')[0].replace(/-[a-z]/ig, function(it){ - return it.charAt(1).toUpperCase(); - }); -}; -module.exports = { - nameFromPath: nameFromPath, - stripString: stripString -}; -},{"path":14}],7:[function(require,module,exports){ -(function (process,__filename){ -/** vim: et:ts=4:sw=4:sts=4 - * @license amdefine 1.0.0 Copyright (c) 2011-2015, The Dojo Foundation All Rights Reserved. - * Available via the MIT or new BSD license. - * see: http://github.com/jrburke/amdefine for details - */ - -/*jslint node: true */ -/*global module, process */ -'use strict'; - -/** - * Creates a define for node. - * @param {Object} module the "module" object that is defined by Node for the - * current module. - * @param {Function} [requireFn]. Node's require function for the current module. - * It only needs to be passed in Node versions before 0.5, when module.require - * did not exist. - * @returns {Function} a define function that is usable for the current node - * module. - */ -function amdefine(module, requireFn) { - 'use strict'; - var defineCache = {}, - loaderCache = {}, - alreadyCalled = false, - path = require('path'), - makeRequire, stringRequire; - - /** - * Trims the . and .. from an array of path segments. - * It will keep a leading path segment if a .. will become - * the first path segment, to help with module name lookups, - * which act like paths, but can be remapped. But the end result, - * all paths that use this function should look normalized. - * NOTE: this method MODIFIES the input array. - * @param {Array} ary the array of path segments. - */ - function trimDots(ary) { - var i, part; - for (i = 0; ary[i]; i+= 1) { - part = ary[i]; - if (part === '.') { - ary.splice(i, 1); - i -= 1; - } else if (part === '..') { - if (i === 1 && (ary[2] === '..' || ary[0] === '..')) { - //End of the line. Keep at least one non-dot - //path segment at the front so it can be mapped - //correctly to disk. Otherwise, there is likely - //no path mapping for a path starting with '..'. - //This can still fail, but catches the most reasonable - //uses of .. - break; - } else if (i > 0) { - ary.splice(i - 1, 2); - i -= 2; - } - } - } - } - - function normalize(name, baseName) { - var baseParts; - - //Adjust any relative paths. - if (name && name.charAt(0) === '.') { - //If have a base name, try to normalize against it, - //otherwise, assume it is a top-level require that will - //be relative to baseUrl in the end. - if (baseName) { - baseParts = baseName.split('/'); - baseParts = baseParts.slice(0, baseParts.length - 1); - baseParts = baseParts.concat(name.split('/')); - trimDots(baseParts); - name = baseParts.join('/'); - } - } - - return name; - } - - /** - * Create the normalize() function passed to a loader plugin's - * normalize method. - */ - function makeNormalize(relName) { - return function (name) { - return normalize(name, relName); - }; - } - - function makeLoad(id) { - function load(value) { - loaderCache[id] = value; - } - - load.fromText = function (id, text) { - //This one is difficult because the text can/probably uses - //define, and any relative paths and requires should be relative - //to that id was it would be found on disk. But this would require - //bootstrapping a module/require fairly deeply from node core. - //Not sure how best to go about that yet. - throw new Error('amdefine does not implement load.fromText'); - }; - - return load; - } - - makeRequire = function (systemRequire, exports, module, relId) { - function amdRequire(deps, callback) { - if (typeof deps === 'string') { - //Synchronous, single module require('') - return stringRequire(systemRequire, exports, module, deps, relId); - } else { - //Array of dependencies with a callback. - - //Convert the dependencies to modules. - deps = deps.map(function (depName) { - return stringRequire(systemRequire, exports, module, depName, relId); - }); - - //Wait for next tick to call back the require call. - if (callback) { - process.nextTick(function () { - callback.apply(null, deps); - }); - } - } - } - - amdRequire.toUrl = function (filePath) { - if (filePath.indexOf('.') === 0) { - return normalize(filePath, path.dirname(module.filename)); - } else { - return filePath; - } - }; - - return amdRequire; - }; - - //Favor explicit value, passed in if the module wants to support Node 0.4. - requireFn = requireFn || function req() { - return module.require.apply(module, arguments); - }; - - function runFactory(id, deps, factory) { - var r, e, m, result; - - if (id) { - e = loaderCache[id] = {}; - m = { - id: id, - uri: __filename, - exports: e - }; - r = makeRequire(requireFn, e, m, id); - } else { - //Only support one define call per file - if (alreadyCalled) { - throw new Error('amdefine with no module ID cannot be called more than once per file.'); - } - alreadyCalled = true; - - //Use the real variables from node - //Use module.exports for exports, since - //the exports in here is amdefine exports. - e = module.exports; - m = module; - r = makeRequire(requireFn, e, m, module.id); - } - - //If there are dependencies, they are strings, so need - //to convert them to dependency values. - if (deps) { - deps = deps.map(function (depName) { - return r(depName); - }); - } - - //Call the factory with the right dependencies. - if (typeof factory === 'function') { - result = factory.apply(m.exports, deps); - } else { - result = factory; - } - - if (result !== undefined) { - m.exports = result; - if (id) { - loaderCache[id] = m.exports; - } - } - } - - stringRequire = function (systemRequire, exports, module, id, relId) { - //Split the ID by a ! so that - var index = id.indexOf('!'), - originalId = id, - prefix, plugin; - - if (index === -1) { - id = normalize(id, relId); - - //Straight module lookup. If it is one of the special dependencies, - //deal with it, otherwise, delegate to node. - if (id === 'require') { - return makeRequire(systemRequire, exports, module, relId); - } else if (id === 'exports') { - return exports; - } else if (id === 'module') { - return module; - } else if (loaderCache.hasOwnProperty(id)) { - return loaderCache[id]; - } else if (defineCache[id]) { - runFactory.apply(null, defineCache[id]); - return loaderCache[id]; - } else { - if(systemRequire) { - return systemRequire(originalId); - } else { - throw new Error('No module with ID: ' + id); - } - } - } else { - //There is a plugin in play. - prefix = id.substring(0, index); - id = id.substring(index + 1, id.length); - - plugin = stringRequire(systemRequire, exports, module, prefix, relId); - - if (plugin.normalize) { - id = plugin.normalize(id, makeNormalize(relId)); - } else { - //Normalize the ID normally. - id = normalize(id, relId); - } - - if (loaderCache[id]) { - return loaderCache[id]; - } else { - plugin.load(id, makeRequire(systemRequire, exports, module, relId), makeLoad(id), {}); - - return loaderCache[id]; - } - } - }; - - //Create a define function specific to the module asking for amdefine. - function define(id, deps, factory) { - if (Array.isArray(id)) { - factory = deps; - deps = id; - id = undefined; - } else if (typeof id !== 'string') { - factory = id; - id = deps = undefined; - } - - if (deps && !Array.isArray(deps)) { - factory = deps; - deps = undefined; - } - - if (!deps) { - deps = ['require', 'exports', 'module']; - } - - //Set up properties for this module. If an ID, then use - //internal cache. If no ID, then use the external variables - //for this node module. - if (id) { - //Put the module in deep freeze until there is a - //require call for it. - defineCache[id] = [id, deps, factory]; - } else { - runFactory(id, deps, factory); - } - } - - //define.require, which has access to all the values in the - //cache. Useful for AMD modules that all have IDs in the file, - //but need to finally export a value to node based on one of those - //IDs. - define.require = function (id) { - if (loaderCache[id]) { - return loaderCache[id]; - } - - if (defineCache[id]) { - runFactory.apply(null, defineCache[id]); - return loaderCache[id]; - } - }; - - define.amd = {}; - - return define; -} - -module.exports = amdefine; - -}).call(this,require('_process'),"/node_modules/amdefine/amdefine.js") -},{"_process":21,"path":14}],8:[function(require,module,exports){ -var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; - -;(function (exports) { - 'use strict'; - - var Arr = (typeof Uint8Array !== 'undefined') - ? Uint8Array - : Array - - var PLUS = '+'.charCodeAt(0) - var SLASH = '/'.charCodeAt(0) - var NUMBER = '0'.charCodeAt(0) - var LOWER = 'a'.charCodeAt(0) - var UPPER = 'A'.charCodeAt(0) - var PLUS_URL_SAFE = '-'.charCodeAt(0) - var SLASH_URL_SAFE = '_'.charCodeAt(0) - - function decode (elt) { - var code = elt.charCodeAt(0) - if (code === PLUS || - code === PLUS_URL_SAFE) - return 62 // '+' - if (code === SLASH || - code === SLASH_URL_SAFE) - return 63 // '/' - if (code < NUMBER) - return -1 //no match - if (code < NUMBER + 10) - return code - NUMBER + 26 + 26 - if (code < UPPER + 26) - return code - UPPER - if (code < LOWER + 26) - return code - LOWER + 26 - } - - function b64ToByteArray (b64) { - var i, j, l, tmp, placeHolders, arr - - if (b64.length % 4 > 0) { - throw new Error('Invalid string. Length must be a multiple of 4') - } - - // the number of equal signs (place holders) - // if there are two placeholders, than the two characters before it - // represent one byte - // if there is only one, then the three characters before it represent 2 bytes - // this is just a cheap hack to not do indexOf twice - var len = b64.length - placeHolders = '=' === b64.charAt(len - 2) ? 2 : '=' === b64.charAt(len - 1) ? 1 : 0 - - // base64 is 4/3 + up to two characters of the original data - arr = new Arr(b64.length * 3 / 4 - placeHolders) - - // if there are placeholders, only get up to the last complete 4 chars - l = placeHolders > 0 ? b64.length - 4 : b64.length - - var L = 0 - - function push (v) { - arr[L++] = v - } - - for (i = 0, j = 0; i < l; i += 4, j += 3) { - tmp = (decode(b64.charAt(i)) << 18) | (decode(b64.charAt(i + 1)) << 12) | (decode(b64.charAt(i + 2)) << 6) | decode(b64.charAt(i + 3)) - push((tmp & 0xFF0000) >> 16) - push((tmp & 0xFF00) >> 8) - push(tmp & 0xFF) - } - - if (placeHolders === 2) { - tmp = (decode(b64.charAt(i)) << 2) | (decode(b64.charAt(i + 1)) >> 4) - push(tmp & 0xFF) - } else if (placeHolders === 1) { - tmp = (decode(b64.charAt(i)) << 10) | (decode(b64.charAt(i + 1)) << 4) | (decode(b64.charAt(i + 2)) >> 2) - push((tmp >> 8) & 0xFF) - push(tmp & 0xFF) - } - - return arr - } - - function uint8ToBase64 (uint8) { - var i, - extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes - output = "", - temp, length - - function encode (num) { - return lookup.charAt(num) - } - - function tripletToBase64 (num) { - return encode(num >> 18 & 0x3F) + encode(num >> 12 & 0x3F) + encode(num >> 6 & 0x3F) + encode(num & 0x3F) - } - - // go through the array every three bytes, we'll deal with trailing stuff later - for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) { - temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]) - output += tripletToBase64(temp) - } - - // pad the end with zeros, but make sure to not forget the extra bytes - switch (extraBytes) { - case 1: - temp = uint8[uint8.length - 1] - output += encode(temp >> 2) - output += encode((temp << 4) & 0x3F) - output += '==' - break - case 2: - temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]) - output += encode(temp >> 10) - output += encode((temp >> 4) & 0x3F) - output += encode((temp << 2) & 0x3F) - output += '=' - break - } - - return output - } - - exports.toByteArray = b64ToByteArray - exports.fromByteArray = uint8ToBase64 -}(typeof exports === 'undefined' ? (this.base64js = {}) : exports)) - -},{}],9:[function(require,module,exports){ - -},{}],10:[function(require,module,exports){ -(function (global){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -/* eslint-disable no-proto */ - -'use strict' - -var base64 = require('base64-js') -var ieee754 = require('ieee754') -var isArray = require('isarray') - -exports.Buffer = Buffer -exports.SlowBuffer = SlowBuffer -exports.INSPECT_MAX_BYTES = 50 -Buffer.poolSize = 8192 // not used by this implementation - -var rootParent = {} - -/** - * If `Buffer.TYPED_ARRAY_SUPPORT`: - * === true Use Uint8Array implementation (fastest) - * === false Use Object implementation (most compatible, even IE6) - * - * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, - * Opera 11.6+, iOS 4.2+. - * - * Due to various browser bugs, sometimes the Object implementation will be used even - * when the browser supports typed arrays. - * - * Note: - * - * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances, - * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438. - * - * - Safari 5-7 lacks support for changing the `Object.prototype.constructor` property - * on objects. - * - * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function. - * - * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of - * incorrect length in some situations. - - * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they - * get the Object implementation, which is slower but behaves correctly. - */ -Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined - ? global.TYPED_ARRAY_SUPPORT - : typedArraySupport() - -function typedArraySupport () { - function Bar () {} - try { - var arr = new Uint8Array(1) - arr.foo = function () { return 42 } - arr.constructor = Bar - return arr.foo() === 42 && // typed array instances can be augmented - arr.constructor === Bar && // constructor can be set - typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray` - arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray` - } catch (e) { - return false - } -} - -function kMaxLength () { - return Buffer.TYPED_ARRAY_SUPPORT - ? 0x7fffffff - : 0x3fffffff -} - -/** - * Class: Buffer - * ============= - * - * The Buffer constructor returns instances of `Uint8Array` that are augmented - * with function properties for all the node `Buffer` API functions. We use - * `Uint8Array` so that square bracket notation works as expected -- it returns - * a single octet. - * - * By augmenting the instances, we can avoid modifying the `Uint8Array` - * prototype. - */ -function Buffer (arg) { - if (!(this instanceof Buffer)) { - // Avoid going through an ArgumentsAdaptorTrampoline in the common case. - if (arguments.length > 1) return new Buffer(arg, arguments[1]) - return new Buffer(arg) - } - - if (!Buffer.TYPED_ARRAY_SUPPORT) { - this.length = 0 - this.parent = undefined - } - - // Common case. - if (typeof arg === 'number') { - return fromNumber(this, arg) - } - - // Slightly less common case. - if (typeof arg === 'string') { - return fromString(this, arg, arguments.length > 1 ? arguments[1] : 'utf8') - } - - // Unusual. - return fromObject(this, arg) -} - -function fromNumber (that, length) { - that = allocate(that, length < 0 ? 0 : checked(length) | 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) { - for (var i = 0; i < length; i++) { - that[i] = 0 - } - } - return that -} - -function fromString (that, string, encoding) { - if (typeof encoding !== 'string' || encoding === '') encoding = 'utf8' - - // Assumption: byteLength() return value is always < kMaxLength. - var length = byteLength(string, encoding) | 0 - that = allocate(that, length) - - that.write(string, encoding) - return that -} - -function fromObject (that, object) { - if (Buffer.isBuffer(object)) return fromBuffer(that, object) - - if (isArray(object)) return fromArray(that, object) - - if (object == null) { - throw new TypeError('must start with number, buffer, array or string') - } - - if (typeof ArrayBuffer !== 'undefined') { - if (object.buffer instanceof ArrayBuffer) { - return fromTypedArray(that, object) - } - if (object instanceof ArrayBuffer) { - return fromArrayBuffer(that, object) - } - } - - if (object.length) return fromArrayLike(that, object) - - return fromJsonObject(that, object) -} - -function fromBuffer (that, buffer) { - var length = checked(buffer.length) | 0 - that = allocate(that, length) - buffer.copy(that, 0, 0, length) - return that -} - -function fromArray (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -// Duplicate of fromArray() to keep fromArray() monomorphic. -function fromTypedArray (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - // Truncating the elements is probably not what people expect from typed - // arrays with BYTES_PER_ELEMENT > 1 but it's compatible with the behavior - // of the old Buffer constructor. - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -function fromArrayBuffer (that, array) { - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - array.byteLength - that = Buffer._augment(new Uint8Array(array)) - } else { - // Fallback: Return an object instance of the Buffer class - that = fromTypedArray(that, new Uint8Array(array)) - } - return that -} - -function fromArrayLike (that, array) { - var length = checked(array.length) | 0 - that = allocate(that, length) - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -// Deserialize { type: 'Buffer', data: [1,2,3,...] } into a Buffer object. -// Returns a zero-length buffer for inputs that don't conform to the spec. -function fromJsonObject (that, object) { - var array - var length = 0 - - if (object.type === 'Buffer' && isArray(object.data)) { - array = object.data - length = checked(array.length) | 0 - } - that = allocate(that, length) - - for (var i = 0; i < length; i += 1) { - that[i] = array[i] & 255 - } - return that -} - -if (Buffer.TYPED_ARRAY_SUPPORT) { - Buffer.prototype.__proto__ = Uint8Array.prototype - Buffer.__proto__ = Uint8Array -} else { - // pre-set for values that may exist in the future - Buffer.prototype.length = undefined - Buffer.prototype.parent = undefined -} - -function allocate (that, length) { - if (Buffer.TYPED_ARRAY_SUPPORT) { - // Return an augmented `Uint8Array` instance, for best performance - that = Buffer._augment(new Uint8Array(length)) - that.__proto__ = Buffer.prototype - } else { - // Fallback: Return an object instance of the Buffer class - that.length = length - that._isBuffer = true - } - - var fromPool = length !== 0 && length <= Buffer.poolSize >>> 1 - if (fromPool) that.parent = rootParent - - return that -} - -function checked (length) { - // Note: cannot use `length < kMaxLength` here because that fails when - // length is NaN (which is otherwise coerced to zero.) - if (length >= kMaxLength()) { - throw new RangeError('Attempt to allocate Buffer larger than maximum ' + - 'size: 0x' + kMaxLength().toString(16) + ' bytes') - } - return length | 0 -} - -function SlowBuffer (subject, encoding) { - if (!(this instanceof SlowBuffer)) return new SlowBuffer(subject, encoding) - - var buf = new Buffer(subject, encoding) - delete buf.parent - return buf -} - -Buffer.isBuffer = function isBuffer (b) { - return !!(b != null && b._isBuffer) -} - -Buffer.compare = function compare (a, b) { - if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { - throw new TypeError('Arguments must be Buffers') - } - - if (a === b) return 0 - - var x = a.length - var y = b.length - - var i = 0 - var len = Math.min(x, y) - while (i < len) { - if (a[i] !== b[i]) break - - ++i - } - - if (i !== len) { - x = a[i] - y = b[i] - } - - if (x < y) return -1 - if (y < x) return 1 - return 0 -} - -Buffer.isEncoding = function isEncoding (encoding) { - switch (String(encoding).toLowerCase()) { - case 'hex': - case 'utf8': - case 'utf-8': - case 'ascii': - case 'binary': - case 'base64': - case 'raw': - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return true - default: - return false - } -} - -Buffer.concat = function concat (list, length) { - if (!isArray(list)) throw new TypeError('list argument must be an Array of Buffers.') - - if (list.length === 0) { - return new Buffer(0) - } - - var i - if (length === undefined) { - length = 0 - for (i = 0; i < list.length; i++) { - length += list[i].length - } - } - - var buf = new Buffer(length) - var pos = 0 - for (i = 0; i < list.length; i++) { - var item = list[i] - item.copy(buf, pos) - pos += item.length - } - return buf -} - -function byteLength (string, encoding) { - if (typeof string !== 'string') string = '' + string - - var len = string.length - if (len === 0) return 0 - - // Use a for loop to avoid recursion - var loweredCase = false - for (;;) { - switch (encoding) { - case 'ascii': - case 'binary': - // Deprecated - case 'raw': - case 'raws': - return len - case 'utf8': - case 'utf-8': - return utf8ToBytes(string).length - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return len * 2 - case 'hex': - return len >>> 1 - case 'base64': - return base64ToBytes(string).length - default: - if (loweredCase) return utf8ToBytes(string).length // assume utf8 - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} -Buffer.byteLength = byteLength - -function slowToString (encoding, start, end) { - var loweredCase = false - - start = start | 0 - end = end === undefined || end === Infinity ? this.length : end | 0 - - if (!encoding) encoding = 'utf8' - if (start < 0) start = 0 - if (end > this.length) end = this.length - if (end <= start) return '' - - while (true) { - switch (encoding) { - case 'hex': - return hexSlice(this, start, end) - - case 'utf8': - case 'utf-8': - return utf8Slice(this, start, end) - - case 'ascii': - return asciiSlice(this, start, end) - - case 'binary': - return binarySlice(this, start, end) - - case 'base64': - return base64Slice(this, start, end) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return utf16leSlice(this, start, end) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = (encoding + '').toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toString = function toString () { - var length = this.length | 0 - if (length === 0) return '' - if (arguments.length === 0) return utf8Slice(this, 0, length) - return slowToString.apply(this, arguments) -} - -Buffer.prototype.equals = function equals (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return true - return Buffer.compare(this, b) === 0 -} - -Buffer.prototype.inspect = function inspect () { - var str = '' - var max = exports.INSPECT_MAX_BYTES - if (this.length > 0) { - str = this.toString('hex', 0, max).match(/.{2}/g).join(' ') - if (this.length > max) str += ' ... ' - } - return '' -} - -Buffer.prototype.compare = function compare (b) { - if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') - if (this === b) return 0 - return Buffer.compare(this, b) -} - -Buffer.prototype.indexOf = function indexOf (val, byteOffset) { - if (byteOffset > 0x7fffffff) byteOffset = 0x7fffffff - else if (byteOffset < -0x80000000) byteOffset = -0x80000000 - byteOffset >>= 0 - - if (this.length === 0) return -1 - if (byteOffset >= this.length) return -1 - - // Negative offsets start from the end of the buffer - if (byteOffset < 0) byteOffset = Math.max(this.length + byteOffset, 0) - - if (typeof val === 'string') { - if (val.length === 0) return -1 // special case: looking for empty string always fails - return String.prototype.indexOf.call(this, val, byteOffset) - } - if (Buffer.isBuffer(val)) { - return arrayIndexOf(this, val, byteOffset) - } - if (typeof val === 'number') { - if (Buffer.TYPED_ARRAY_SUPPORT && Uint8Array.prototype.indexOf === 'function') { - return Uint8Array.prototype.indexOf.call(this, val, byteOffset) - } - return arrayIndexOf(this, [ val ], byteOffset) - } - - function arrayIndexOf (arr, val, byteOffset) { - var foundIndex = -1 - for (var i = 0; byteOffset + i < arr.length; i++) { - if (arr[byteOffset + i] === val[foundIndex === -1 ? 0 : i - foundIndex]) { - if (foundIndex === -1) foundIndex = i - if (i - foundIndex + 1 === val.length) return byteOffset + foundIndex - } else { - foundIndex = -1 - } - } - return -1 - } - - throw new TypeError('val must be string, number or Buffer') -} - -// `get` is deprecated -Buffer.prototype.get = function get (offset) { - console.log('.get() is deprecated. Access using array indexes instead.') - return this.readUInt8(offset) -} - -// `set` is deprecated -Buffer.prototype.set = function set (v, offset) { - console.log('.set() is deprecated. Access using array indexes instead.') - return this.writeUInt8(v, offset) -} - -function hexWrite (buf, string, offset, length) { - offset = Number(offset) || 0 - var remaining = buf.length - offset - if (!length) { - length = remaining - } else { - length = Number(length) - if (length > remaining) { - length = remaining - } - } - - // must be an even number of digits - var strLen = string.length - if (strLen % 2 !== 0) throw new Error('Invalid hex string') - - if (length > strLen / 2) { - length = strLen / 2 - } - for (var i = 0; i < length; i++) { - var parsed = parseInt(string.substr(i * 2, 2), 16) - if (isNaN(parsed)) throw new Error('Invalid hex string') - buf[offset + i] = parsed - } - return i -} - -function utf8Write (buf, string, offset, length) { - return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) -} - -function asciiWrite (buf, string, offset, length) { - return blitBuffer(asciiToBytes(string), buf, offset, length) -} - -function binaryWrite (buf, string, offset, length) { - return asciiWrite(buf, string, offset, length) -} - -function base64Write (buf, string, offset, length) { - return blitBuffer(base64ToBytes(string), buf, offset, length) -} - -function ucs2Write (buf, string, offset, length) { - return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) -} - -Buffer.prototype.write = function write (string, offset, length, encoding) { - // Buffer#write(string) - if (offset === undefined) { - encoding = 'utf8' - length = this.length - offset = 0 - // Buffer#write(string, encoding) - } else if (length === undefined && typeof offset === 'string') { - encoding = offset - length = this.length - offset = 0 - // Buffer#write(string, offset[, length][, encoding]) - } else if (isFinite(offset)) { - offset = offset | 0 - if (isFinite(length)) { - length = length | 0 - if (encoding === undefined) encoding = 'utf8' - } else { - encoding = length - length = undefined - } - // legacy write(string, encoding, offset, length) - remove in v0.13 - } else { - var swap = encoding - encoding = offset - offset = length | 0 - length = swap - } - - var remaining = this.length - offset - if (length === undefined || length > remaining) length = remaining - - if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { - throw new RangeError('attempt to write outside buffer bounds') - } - - if (!encoding) encoding = 'utf8' - - var loweredCase = false - for (;;) { - switch (encoding) { - case 'hex': - return hexWrite(this, string, offset, length) - - case 'utf8': - case 'utf-8': - return utf8Write(this, string, offset, length) - - case 'ascii': - return asciiWrite(this, string, offset, length) - - case 'binary': - return binaryWrite(this, string, offset, length) - - case 'base64': - // Warning: maxLength not taken into account in base64Write - return base64Write(this, string, offset, length) - - case 'ucs2': - case 'ucs-2': - case 'utf16le': - case 'utf-16le': - return ucs2Write(this, string, offset, length) - - default: - if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) - encoding = ('' + encoding).toLowerCase() - loweredCase = true - } - } -} - -Buffer.prototype.toJSON = function toJSON () { - return { - type: 'Buffer', - data: Array.prototype.slice.call(this._arr || this, 0) - } -} - -function base64Slice (buf, start, end) { - if (start === 0 && end === buf.length) { - return base64.fromByteArray(buf) - } else { - return base64.fromByteArray(buf.slice(start, end)) - } -} - -function utf8Slice (buf, start, end) { - end = Math.min(buf.length, end) - var res = [] - - var i = start - while (i < end) { - var firstByte = buf[i] - var codePoint = null - var bytesPerSequence = (firstByte > 0xEF) ? 4 - : (firstByte > 0xDF) ? 3 - : (firstByte > 0xBF) ? 2 - : 1 - - if (i + bytesPerSequence <= end) { - var secondByte, thirdByte, fourthByte, tempCodePoint - - switch (bytesPerSequence) { - case 1: - if (firstByte < 0x80) { - codePoint = firstByte - } - break - case 2: - secondByte = buf[i + 1] - if ((secondByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) - if (tempCodePoint > 0x7F) { - codePoint = tempCodePoint - } - } - break - case 3: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) - if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { - codePoint = tempCodePoint - } - } - break - case 4: - secondByte = buf[i + 1] - thirdByte = buf[i + 2] - fourthByte = buf[i + 3] - if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { - tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) - if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { - codePoint = tempCodePoint - } - } - } - } - - if (codePoint === null) { - // we did not generate a valid codePoint so insert a - // replacement char (U+FFFD) and advance only 1 byte - codePoint = 0xFFFD - bytesPerSequence = 1 - } else if (codePoint > 0xFFFF) { - // encode to utf16 (surrogate pair dance) - codePoint -= 0x10000 - res.push(codePoint >>> 10 & 0x3FF | 0xD800) - codePoint = 0xDC00 | codePoint & 0x3FF - } - - res.push(codePoint) - i += bytesPerSequence - } - - return decodeCodePointsArray(res) -} - -// Based on http://stackoverflow.com/a/22747272/680742, the browser with -// the lowest limit is Chrome, with 0x10000 args. -// We go 1 magnitude less, for safety -var MAX_ARGUMENTS_LENGTH = 0x1000 - -function decodeCodePointsArray (codePoints) { - var len = codePoints.length - if (len <= MAX_ARGUMENTS_LENGTH) { - return String.fromCharCode.apply(String, codePoints) // avoid extra slice() - } - - // Decode in chunks to avoid "call stack size exceeded". - var res = '' - var i = 0 - while (i < len) { - res += String.fromCharCode.apply( - String, - codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) - ) - } - return res -} - -function asciiSlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; i++) { - ret += String.fromCharCode(buf[i] & 0x7F) - } - return ret -} - -function binarySlice (buf, start, end) { - var ret = '' - end = Math.min(buf.length, end) - - for (var i = start; i < end; i++) { - ret += String.fromCharCode(buf[i]) - } - return ret -} - -function hexSlice (buf, start, end) { - var len = buf.length - - if (!start || start < 0) start = 0 - if (!end || end < 0 || end > len) end = len - - var out = '' - for (var i = start; i < end; i++) { - out += toHex(buf[i]) - } - return out -} - -function utf16leSlice (buf, start, end) { - var bytes = buf.slice(start, end) - var res = '' - for (var i = 0; i < bytes.length; i += 2) { - res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256) - } - return res -} - -Buffer.prototype.slice = function slice (start, end) { - var len = this.length - start = ~~start - end = end === undefined ? len : ~~end - - if (start < 0) { - start += len - if (start < 0) start = 0 - } else if (start > len) { - start = len - } - - if (end < 0) { - end += len - if (end < 0) end = 0 - } else if (end > len) { - end = len - } - - if (end < start) end = start - - var newBuf - if (Buffer.TYPED_ARRAY_SUPPORT) { - newBuf = Buffer._augment(this.subarray(start, end)) - } else { - var sliceLen = end - start - newBuf = new Buffer(sliceLen, undefined) - for (var i = 0; i < sliceLen; i++) { - newBuf[i] = this[i + start] - } - } - - if (newBuf.length) newBuf.parent = this.parent || this - - return newBuf -} - -/* - * Need to make sure that buffer isn't trying to write out of bounds. - */ -function checkOffset (offset, ext, length) { - if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') - if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') -} - -Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - - return val -} - -Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) { - checkOffset(offset, byteLength, this.length) - } - - var val = this[offset + --byteLength] - var mul = 1 - while (byteLength > 0 && (mul *= 0x100)) { - val += this[offset + --byteLength] * mul - } - - return val -} - -Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - return this[offset] -} - -Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return this[offset] | (this[offset + 1] << 8) -} - -Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - return (this[offset] << 8) | this[offset + 1] -} - -Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return ((this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16)) + - (this[offset + 3] * 0x1000000) -} - -Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] * 0x1000000) + - ((this[offset + 1] << 16) | - (this[offset + 2] << 8) | - this[offset + 3]) -} - -Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var val = this[offset] - var mul = 1 - var i = 0 - while (++i < byteLength && (mul *= 0x100)) { - val += this[offset + i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkOffset(offset, byteLength, this.length) - - var i = byteLength - var mul = 1 - var val = this[offset + --i] - while (i > 0 && (mul *= 0x100)) { - val += this[offset + --i] * mul - } - mul *= 0x80 - - if (val >= mul) val -= Math.pow(2, 8 * byteLength) - - return val -} - -Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { - if (!noAssert) checkOffset(offset, 1, this.length) - if (!(this[offset] & 0x80)) return (this[offset]) - return ((0xff - this[offset] + 1) * -1) -} - -Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset] | (this[offset + 1] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 2, this.length) - var val = this[offset + 1] | (this[offset] << 8) - return (val & 0x8000) ? val | 0xFFFF0000 : val -} - -Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset]) | - (this[offset + 1] << 8) | - (this[offset + 2] << 16) | - (this[offset + 3] << 24) -} - -Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - - return (this[offset] << 24) | - (this[offset + 1] << 16) | - (this[offset + 2] << 8) | - (this[offset + 3]) -} - -Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, true, 23, 4) -} - -Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 4, this.length) - return ieee754.read(this, offset, false, 23, 4) -} - -Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, true, 52, 8) -} - -Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { - if (!noAssert) checkOffset(offset, 8, this.length) - return ieee754.read(this, offset, false, 52, 8) -} - -function checkInt (buf, value, offset, ext, max, min) { - if (!Buffer.isBuffer(buf)) throw new TypeError('buffer must be a Buffer instance') - if (value > max || value < min) throw new RangeError('value is out of bounds') - if (offset + ext > buf.length) throw new RangeError('index out of range') -} - -Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) - - var mul = 1 - var i = 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - byteLength = byteLength | 0 - if (!noAssert) checkInt(this, value, offset, byteLength, Math.pow(2, 8 * byteLength), 0) - - var i = byteLength - 1 - var mul = 1 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = (value / mul) & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - this[offset] = (value & 0xff) - return offset + 1 -} - -function objectWriteUInt16 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; i++) { - buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>> - (littleEndian ? i : 1 - i) * 8 - } -} - -Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -function objectWriteUInt32 (buf, value, offset, littleEndian) { - if (value < 0) value = 0xffffffff + value + 1 - for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; i++) { - buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff - } -} - -Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset + 3] = (value >>> 24) - this[offset + 2] = (value >>> 16) - this[offset + 1] = (value >>> 8) - this[offset] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = 0 - var mul = 1 - var sub = value < 0 ? 1 : 0 - this[offset] = value & 0xFF - while (++i < byteLength && (mul *= 0x100)) { - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) { - var limit = Math.pow(2, 8 * byteLength - 1) - - checkInt(this, value, offset, byteLength, limit - 1, -limit) - } - - var i = byteLength - 1 - var mul = 1 - var sub = value < 0 ? 1 : 0 - this[offset + i] = value & 0xFF - while (--i >= 0 && (mul *= 0x100)) { - this[offset + i] = ((value / mul) >> 0) - sub & 0xFF - } - - return offset + byteLength -} - -Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) - if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value) - if (value < 0) value = 0xff + value + 1 - this[offset] = (value & 0xff) - return offset + 1 -} - -Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - } else { - objectWriteUInt16(this, value, offset, true) - } - return offset + 2 -} - -Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 8) - this[offset + 1] = (value & 0xff) - } else { - objectWriteUInt16(this, value, offset, false) - } - return offset + 2 -} - -Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value & 0xff) - this[offset + 1] = (value >>> 8) - this[offset + 2] = (value >>> 16) - this[offset + 3] = (value >>> 24) - } else { - objectWriteUInt32(this, value, offset, true) - } - return offset + 4 -} - -Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { - value = +value - offset = offset | 0 - if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) - if (value < 0) value = 0xffffffff + value + 1 - if (Buffer.TYPED_ARRAY_SUPPORT) { - this[offset] = (value >>> 24) - this[offset + 1] = (value >>> 16) - this[offset + 2] = (value >>> 8) - this[offset + 3] = (value & 0xff) - } else { - objectWriteUInt32(this, value, offset, false) - } - return offset + 4 -} - -function checkIEEE754 (buf, value, offset, ext, max, min) { - if (value > max || value < min) throw new RangeError('value is out of bounds') - if (offset + ext > buf.length) throw new RangeError('index out of range') - if (offset < 0) throw new RangeError('index out of range') -} - -function writeFloat (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) - } - ieee754.write(buf, value, offset, littleEndian, 23, 4) - return offset + 4 -} - -Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { - return writeFloat(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { - return writeFloat(this, value, offset, false, noAssert) -} - -function writeDouble (buf, value, offset, littleEndian, noAssert) { - if (!noAssert) { - checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) - } - ieee754.write(buf, value, offset, littleEndian, 52, 8) - return offset + 8 -} - -Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { - return writeDouble(this, value, offset, true, noAssert) -} - -Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { - return writeDouble(this, value, offset, false, noAssert) -} - -// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) -Buffer.prototype.copy = function copy (target, targetStart, start, end) { - if (!start) start = 0 - if (!end && end !== 0) end = this.length - if (targetStart >= target.length) targetStart = target.length - if (!targetStart) targetStart = 0 - if (end > 0 && end < start) end = start - - // Copy 0 bytes; we're done - if (end === start) return 0 - if (target.length === 0 || this.length === 0) return 0 - - // Fatal error conditions - if (targetStart < 0) { - throw new RangeError('targetStart out of bounds') - } - if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') - if (end < 0) throw new RangeError('sourceEnd out of bounds') - - // Are we oob? - if (end > this.length) end = this.length - if (target.length - targetStart < end - start) { - end = target.length - targetStart + start - } - - var len = end - start - var i - - if (this === target && start < targetStart && targetStart < end) { - // descending copy from end - for (i = len - 1; i >= 0; i--) { - target[i + targetStart] = this[i + start] - } - } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { - // ascending copy from start - for (i = 0; i < len; i++) { - target[i + targetStart] = this[i + start] - } - } else { - target._set(this.subarray(start, start + len), targetStart) - } - - return len -} - -// fill(value, start=0, end=buffer.length) -Buffer.prototype.fill = function fill (value, start, end) { - if (!value) value = 0 - if (!start) start = 0 - if (!end) end = this.length - - if (end < start) throw new RangeError('end < start') - - // Fill 0 bytes; we're done - if (end === start) return - if (this.length === 0) return - - if (start < 0 || start >= this.length) throw new RangeError('start out of bounds') - if (end < 0 || end > this.length) throw new RangeError('end out of bounds') - - var i - if (typeof value === 'number') { - for (i = start; i < end; i++) { - this[i] = value - } - } else { - var bytes = utf8ToBytes(value.toString()) - var len = bytes.length - for (i = start; i < end; i++) { - this[i] = bytes[i % len] - } - } - - return this -} - -/** - * Creates a new `ArrayBuffer` with the *copied* memory of the buffer instance. - * Added in Node 0.12. Only available in browsers that support ArrayBuffer. - */ -Buffer.prototype.toArrayBuffer = function toArrayBuffer () { - if (typeof Uint8Array !== 'undefined') { - if (Buffer.TYPED_ARRAY_SUPPORT) { - return (new Buffer(this)).buffer - } else { - var buf = new Uint8Array(this.length) - for (var i = 0, len = buf.length; i < len; i += 1) { - buf[i] = this[i] - } - return buf.buffer - } - } else { - throw new TypeError('Buffer.toArrayBuffer not supported in this browser') - } -} - -// HELPER FUNCTIONS -// ================ - -var BP = Buffer.prototype - -/** - * Augment a Uint8Array *instance* (not the Uint8Array class!) with Buffer methods - */ -Buffer._augment = function _augment (arr) { - arr.constructor = Buffer - arr._isBuffer = true - - // save reference to original Uint8Array set method before overwriting - arr._set = arr.set - - // deprecated - arr.get = BP.get - arr.set = BP.set - - arr.write = BP.write - arr.toString = BP.toString - arr.toLocaleString = BP.toString - arr.toJSON = BP.toJSON - arr.equals = BP.equals - arr.compare = BP.compare - arr.indexOf = BP.indexOf - arr.copy = BP.copy - arr.slice = BP.slice - arr.readUIntLE = BP.readUIntLE - arr.readUIntBE = BP.readUIntBE - arr.readUInt8 = BP.readUInt8 - arr.readUInt16LE = BP.readUInt16LE - arr.readUInt16BE = BP.readUInt16BE - arr.readUInt32LE = BP.readUInt32LE - arr.readUInt32BE = BP.readUInt32BE - arr.readIntLE = BP.readIntLE - arr.readIntBE = BP.readIntBE - arr.readInt8 = BP.readInt8 - arr.readInt16LE = BP.readInt16LE - arr.readInt16BE = BP.readInt16BE - arr.readInt32LE = BP.readInt32LE - arr.readInt32BE = BP.readInt32BE - arr.readFloatLE = BP.readFloatLE - arr.readFloatBE = BP.readFloatBE - arr.readDoubleLE = BP.readDoubleLE - arr.readDoubleBE = BP.readDoubleBE - arr.writeUInt8 = BP.writeUInt8 - arr.writeUIntLE = BP.writeUIntLE - arr.writeUIntBE = BP.writeUIntBE - arr.writeUInt16LE = BP.writeUInt16LE - arr.writeUInt16BE = BP.writeUInt16BE - arr.writeUInt32LE = BP.writeUInt32LE - arr.writeUInt32BE = BP.writeUInt32BE - arr.writeIntLE = BP.writeIntLE - arr.writeIntBE = BP.writeIntBE - arr.writeInt8 = BP.writeInt8 - arr.writeInt16LE = BP.writeInt16LE - arr.writeInt16BE = BP.writeInt16BE - arr.writeInt32LE = BP.writeInt32LE - arr.writeInt32BE = BP.writeInt32BE - arr.writeFloatLE = BP.writeFloatLE - arr.writeFloatBE = BP.writeFloatBE - arr.writeDoubleLE = BP.writeDoubleLE - arr.writeDoubleBE = BP.writeDoubleBE - arr.fill = BP.fill - arr.inspect = BP.inspect - arr.toArrayBuffer = BP.toArrayBuffer - - return arr -} - -var INVALID_BASE64_RE = /[^+\/0-9A-Za-z-_]/g - -function base64clean (str) { - // Node strips out invalid characters like \n and \t from the string, base64-js does not - str = stringtrim(str).replace(INVALID_BASE64_RE, '') - // Node converts strings with length < 2 to '' - if (str.length < 2) return '' - // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not - while (str.length % 4 !== 0) { - str = str + '=' - } - return str -} - -function stringtrim (str) { - if (str.trim) return str.trim() - return str.replace(/^\s+|\s+$/g, '') -} - -function toHex (n) { - if (n < 16) return '0' + n.toString(16) - return n.toString(16) -} - -function utf8ToBytes (string, units) { - units = units || Infinity - var codePoint - var length = string.length - var leadSurrogate = null - var bytes = [] - - for (var i = 0; i < length; i++) { - codePoint = string.charCodeAt(i) - - // is surrogate component - if (codePoint > 0xD7FF && codePoint < 0xE000) { - // last char was a lead - if (!leadSurrogate) { - // no lead yet - if (codePoint > 0xDBFF) { - // unexpected trail - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } else if (i + 1 === length) { - // unpaired lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - continue - } - - // valid lead - leadSurrogate = codePoint - - continue - } - - // 2 leads in a row - if (codePoint < 0xDC00) { - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - leadSurrogate = codePoint - continue - } - - // valid surrogate pair - codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 - } else if (leadSurrogate) { - // valid bmp char, but last char was a lead - if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) - } - - leadSurrogate = null - - // encode utf8 - if (codePoint < 0x80) { - if ((units -= 1) < 0) break - bytes.push(codePoint) - } else if (codePoint < 0x800) { - if ((units -= 2) < 0) break - bytes.push( - codePoint >> 0x6 | 0xC0, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x10000) { - if ((units -= 3) < 0) break - bytes.push( - codePoint >> 0xC | 0xE0, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else if (codePoint < 0x110000) { - if ((units -= 4) < 0) break - bytes.push( - codePoint >> 0x12 | 0xF0, - codePoint >> 0xC & 0x3F | 0x80, - codePoint >> 0x6 & 0x3F | 0x80, - codePoint & 0x3F | 0x80 - ) - } else { - throw new Error('Invalid code point') - } - } - - return bytes -} - -function asciiToBytes (str) { - var byteArray = [] - for (var i = 0; i < str.length; i++) { - // Node's code seems to be doing this and not & 0x7F.. - byteArray.push(str.charCodeAt(i) & 0xFF) - } - return byteArray -} - -function utf16leToBytes (str, units) { - var c, hi, lo - var byteArray = [] - for (var i = 0; i < str.length; i++) { - if ((units -= 2) < 0) break - - c = str.charCodeAt(i) - hi = c >> 8 - lo = c % 256 - byteArray.push(lo) - byteArray.push(hi) - } - - return byteArray -} - -function base64ToBytes (str) { - return base64.toByteArray(base64clean(str)) -} - -function blitBuffer (src, dst, offset, length) { - for (var i = 0; i < length; i++) { - if ((i + offset >= dst.length) || (i >= src.length)) break - dst[i + offset] = src[i] - } - return i -} - -}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"base64-js":8,"ieee754":13,"isarray":11}],11:[function(require,module,exports){ -var toString = {}.toString; - -module.exports = Array.isArray || function (arr) { - return toString.call(arr) == '[object Array]'; -}; - -},{}],12:[function(require,module,exports){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -function EventEmitter() { - this._events = this._events || {}; - this._maxListeners = this._maxListeners || undefined; -} -module.exports = EventEmitter; - -// Backwards-compat with node 0.10.x -EventEmitter.EventEmitter = EventEmitter; - -EventEmitter.prototype._events = undefined; -EventEmitter.prototype._maxListeners = undefined; - -// By default EventEmitters will print a warning if more than 10 listeners are -// added to it. This is a useful default which helps finding memory leaks. -EventEmitter.defaultMaxListeners = 10; - -// Obviously not all Emitters should be limited to 10. This function allows -// that to be increased. Set to zero for unlimited. -EventEmitter.prototype.setMaxListeners = function(n) { - if (!isNumber(n) || n < 0 || isNaN(n)) - throw TypeError('n must be a positive number'); - this._maxListeners = n; - return this; -}; - -EventEmitter.prototype.emit = function(type) { - var er, handler, len, args, i, listeners; - - if (!this._events) - this._events = {}; - - // If there is no 'error' event listener then throw. - if (type === 'error') { - if (!this._events.error || - (isObject(this._events.error) && !this._events.error.length)) { - er = arguments[1]; - if (er instanceof Error) { - throw er; // Unhandled 'error' event - } - throw TypeError('Uncaught, unspecified "error" event.'); - } - } - - handler = this._events[type]; - - if (isUndefined(handler)) - return false; - - if (isFunction(handler)) { - switch (arguments.length) { - // fast cases - case 1: - handler.call(this); - break; - case 2: - handler.call(this, arguments[1]); - break; - case 3: - handler.call(this, arguments[1], arguments[2]); - break; - // slower - default: - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - handler.apply(this, args); - } - } else if (isObject(handler)) { - len = arguments.length; - args = new Array(len - 1); - for (i = 1; i < len; i++) - args[i - 1] = arguments[i]; - - listeners = handler.slice(); - len = listeners.length; - for (i = 0; i < len; i++) - listeners[i].apply(this, args); - } - - return true; -}; - -EventEmitter.prototype.addListener = function(type, listener) { - var m; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events) - this._events = {}; - - // To avoid recursion in the case that type === "newListener"! Before - // adding it to the listeners, first emit "newListener". - if (this._events.newListener) - this.emit('newListener', type, - isFunction(listener.listener) ? - listener.listener : listener); - - if (!this._events[type]) - // Optimize the case of one listener. Don't need the extra array object. - this._events[type] = listener; - else if (isObject(this._events[type])) - // If we've already got an array, just append. - this._events[type].push(listener); - else - // Adding the second element, need to change to array. - this._events[type] = [this._events[type], listener]; - - // Check for listener leak - if (isObject(this._events[type]) && !this._events[type].warned) { - var m; - if (!isUndefined(this._maxListeners)) { - m = this._maxListeners; - } else { - m = EventEmitter.defaultMaxListeners; - } - - if (m && m > 0 && this._events[type].length > m) { - this._events[type].warned = true; - console.error('(node) warning: possible EventEmitter memory ' + - 'leak detected. %d listeners added. ' + - 'Use emitter.setMaxListeners() to increase limit.', - this._events[type].length); - if (typeof console.trace === 'function') { - // not supported in IE 10 - console.trace(); - } - } - } - - return this; -}; - -EventEmitter.prototype.on = EventEmitter.prototype.addListener; - -EventEmitter.prototype.once = function(type, listener) { - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - var fired = false; - - function g() { - this.removeListener(type, g); - - if (!fired) { - fired = true; - listener.apply(this, arguments); - } - } - - g.listener = listener; - this.on(type, g); - - return this; -}; - -// emits a 'removeListener' event iff the listener was removed -EventEmitter.prototype.removeListener = function(type, listener) { - var list, position, length, i; - - if (!isFunction(listener)) - throw TypeError('listener must be a function'); - - if (!this._events || !this._events[type]) - return this; - - list = this._events[type]; - length = list.length; - position = -1; - - if (list === listener || - (isFunction(list.listener) && list.listener === listener)) { - delete this._events[type]; - if (this._events.removeListener) - this.emit('removeListener', type, listener); - - } else if (isObject(list)) { - for (i = length; i-- > 0;) { - if (list[i] === listener || - (list[i].listener && list[i].listener === listener)) { - position = i; - break; - } - } - - if (position < 0) - return this; - - if (list.length === 1) { - list.length = 0; - delete this._events[type]; - } else { - list.splice(position, 1); - } - - if (this._events.removeListener) - this.emit('removeListener', type, listener); - } - - return this; -}; - -EventEmitter.prototype.removeAllListeners = function(type) { - var key, listeners; - - if (!this._events) - return this; - - // not listening for removeListener, no need to emit - if (!this._events.removeListener) { - if (arguments.length === 0) - this._events = {}; - else if (this._events[type]) - delete this._events[type]; - return this; - } - - // emit removeListener for all listeners on all events - if (arguments.length === 0) { - for (key in this._events) { - if (key === 'removeListener') continue; - this.removeAllListeners(key); - } - this.removeAllListeners('removeListener'); - this._events = {}; - return this; - } - - listeners = this._events[type]; - - if (isFunction(listeners)) { - this.removeListener(type, listeners); - } else { - // LIFO order - while (listeners.length) - this.removeListener(type, listeners[listeners.length - 1]); - } - delete this._events[type]; - - return this; -}; - -EventEmitter.prototype.listeners = function(type) { - var ret; - if (!this._events || !this._events[type]) - ret = []; - else if (isFunction(this._events[type])) - ret = [this._events[type]]; - else - ret = this._events[type].slice(); - return ret; -}; - -EventEmitter.listenerCount = function(emitter, type) { - var ret; - if (!emitter._events || !emitter._events[type]) - ret = 0; - else if (isFunction(emitter._events[type])) - ret = 1; - else - ret = emitter._events[type].length; - return ret; -}; - -function isFunction(arg) { - return typeof arg === 'function'; -} - -function isNumber(arg) { - return typeof arg === 'number'; -} - -function isObject(arg) { - return typeof arg === 'object' && arg !== null; -} - -function isUndefined(arg) { - return arg === void 0; -} - -},{}],13:[function(require,module,exports){ -exports.read = function (buffer, offset, isLE, mLen, nBytes) { - var e, m - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var nBits = -7 - var i = isLE ? (nBytes - 1) : 0 - var d = isLE ? -1 : 1 - var s = buffer[offset + i] - - i += d - - e = s & ((1 << (-nBits)) - 1) - s >>= (-nBits) - nBits += eLen - for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - m = e & ((1 << (-nBits)) - 1) - e >>= (-nBits) - nBits += mLen - for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {} - - if (e === 0) { - e = 1 - eBias - } else if (e === eMax) { - return m ? NaN : ((s ? -1 : 1) * Infinity) - } else { - m = m + Math.pow(2, mLen) - e = e - eBias - } - return (s ? -1 : 1) * m * Math.pow(2, e - mLen) -} - -exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { - var e, m, c - var eLen = nBytes * 8 - mLen - 1 - var eMax = (1 << eLen) - 1 - var eBias = eMax >> 1 - var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) - var i = isLE ? 0 : (nBytes - 1) - var d = isLE ? 1 : -1 - var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 - - value = Math.abs(value) - - if (isNaN(value) || value === Infinity) { - m = isNaN(value) ? 1 : 0 - e = eMax - } else { - e = Math.floor(Math.log(value) / Math.LN2) - if (value * (c = Math.pow(2, -e)) < 1) { - e-- - c *= 2 - } - if (e + eBias >= 1) { - value += rt / c - } else { - value += rt * Math.pow(2, 1 - eBias) - } - if (value * c >= 2) { - e++ - c /= 2 - } - - if (e + eBias >= eMax) { - m = 0 - e = eMax - } else if (e + eBias >= 1) { - m = (value * c - 1) * Math.pow(2, mLen) - e = e + eBias - } else { - m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) - e = 0 - } - } - - for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} - - e = (e << mLen) | m - eLen += mLen - for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} - - buffer[offset + i - d] |= s * 128 -} - -},{}],14:[function(require,module,exports){ -(function (process){ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -// resolves . and .. elements in a path array with directory names there -// must be no slashes, empty elements, or device names (c:\) in the array -// (so also no leading and trailing slashes - it does not distinguish -// relative and absolute paths) -function normalizeArray(parts, allowAboveRoot) { - // if the path tries to go above the root, `up` ends up > 0 - var up = 0; - for (var i = parts.length - 1; i >= 0; i--) { - var last = parts[i]; - if (last === '.') { - parts.splice(i, 1); - } else if (last === '..') { - parts.splice(i, 1); - up++; - } else if (up) { - parts.splice(i, 1); - up--; - } - } - - // if the path is allowed to go above the root, restore leading ..s - if (allowAboveRoot) { - for (; up--; up) { - parts.unshift('..'); - } - } - - return parts; -} - -// Split a filename into [root, dir, basename, ext], unix version -// 'root' is just a slash, or nothing. -var splitPathRe = - /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; -var splitPath = function(filename) { - return splitPathRe.exec(filename).slice(1); -}; - -// path.resolve([from ...], to) -// posix version -exports.resolve = function() { - var resolvedPath = '', - resolvedAbsolute = false; - - for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { - var path = (i >= 0) ? arguments[i] : process.cwd(); - - // Skip empty and invalid entries - if (typeof path !== 'string') { - throw new TypeError('Arguments to path.resolve must be strings'); - } else if (!path) { - continue; - } - - resolvedPath = path + '/' + resolvedPath; - resolvedAbsolute = path.charAt(0) === '/'; - } - - // At this point the path should be resolved to a full absolute path, but - // handle relative paths to be safe (might happen when process.cwd() fails) - - // Normalize the path - resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { - return !!p; - }), !resolvedAbsolute).join('/'); - - return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; -}; - -// path.normalize(path) -// posix version -exports.normalize = function(path) { - var isAbsolute = exports.isAbsolute(path), - trailingSlash = substr(path, -1) === '/'; - - // Normalize the path - path = normalizeArray(filter(path.split('/'), function(p) { - return !!p; - }), !isAbsolute).join('/'); - - if (!path && !isAbsolute) { - path = '.'; - } - if (path && trailingSlash) { - path += '/'; - } - - return (isAbsolute ? '/' : '') + path; -}; - -// posix version -exports.isAbsolute = function(path) { - return path.charAt(0) === '/'; -}; - -// posix version -exports.join = function() { - var paths = Array.prototype.slice.call(arguments, 0); - return exports.normalize(filter(paths, function(p, index) { - if (typeof p !== 'string') { - throw new TypeError('Arguments to path.join must be strings'); - } - return p; - }).join('/')); -}; - - -// path.relative(from, to) -// posix version -exports.relative = function(from, to) { - from = exports.resolve(from).substr(1); - to = exports.resolve(to).substr(1); - - function trim(arr) { - var start = 0; - for (; start < arr.length; start++) { - if (arr[start] !== '') break; - } - - var end = arr.length - 1; - for (; end >= 0; end--) { - if (arr[end] !== '') break; - } - - if (start > end) return []; - return arr.slice(start, end - start + 1); - } - - var fromParts = trim(from.split('/')); - var toParts = trim(to.split('/')); - - var length = Math.min(fromParts.length, toParts.length); - var samePartsLength = length; - for (var i = 0; i < length; i++) { - if (fromParts[i] !== toParts[i]) { - samePartsLength = i; - break; - } - } - - var outputParts = []; - for (var i = samePartsLength; i < fromParts.length; i++) { - outputParts.push('..'); - } - - outputParts = outputParts.concat(toParts.slice(samePartsLength)); - - return outputParts.join('/'); -}; - -exports.sep = '/'; -exports.delimiter = ':'; - -exports.dirname = function(path) { - var result = splitPath(path), - root = result[0], - dir = result[1]; - - if (!root && !dir) { - // No dirname whatsoever - return '.'; - } - - if (dir) { - // It has a dirname, strip trailing slash - dir = dir.substr(0, dir.length - 1); - } - - return root + dir; -}; - - -exports.basename = function(path, ext) { - var f = splitPath(path)[2]; - // TODO: make this comparison case-insensitive on windows? - if (ext && f.substr(-1 * ext.length) === ext) { - f = f.substr(0, f.length - ext.length); - } - return f; -}; - - -exports.extname = function(path) { - return splitPath(path)[3]; -}; - -function filter (xs, f) { - if (xs.filter) return xs.filter(f); - var res = []; - for (var i = 0; i < xs.length; i++) { - if (f(xs[i], i, xs)) res.push(xs[i]); - } - return res; -} - -// String.prototype.substr - negative index don't work in IE8 -var substr = 'ab'.substr(-1) === 'b' - ? function (str, start, len) { return str.substr(start, len) } - : function (str, start, len) { - if (start < 0) start = str.length + start; - return str.substr(start, len); - } -; - -}).call(this,require('_process')) -},{"_process":21}],15:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var apply, curry, flip, fix, over, memoize, slice$ = [].slice, toString$ = {}.toString; -apply = curry$(function(f, list){ - return f.apply(null, list); -}); -curry = function(f){ - return curry$(f); -}; -flip = curry$(function(f, x, y){ - return f(y, x); -}); -fix = function(f){ - return function(g){ - return function(){ - return f(g(g)).apply(null, arguments); - }; - }(function(g){ - return function(){ - return f(g(g)).apply(null, arguments); - }; - }); -}; -over = curry$(function(f, g, x, y){ - return f(g(x), g(y)); -}); -memoize = function(f){ - var memo; - memo = {}; - return function(){ - var args, key, arg; - args = slice$.call(arguments); - key = (function(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = args).length; i$ < len$; ++i$) { - arg = ref$[i$]; - results$.push(arg + toString$.call(arg).slice(8, -1)); - } - return results$; - }()).join(''); - return memo[key] = key in memo - ? memo[key] - : f.apply(null, args); - }; -}; -module.exports = { - curry: curry, - flip: flip, - fix: fix, - apply: apply, - over: over, - memoize: memoize -}; -function curry$(f, bound){ - var context, - _curry = function(args) { - return f.length > 1 ? function(){ - var params = args ? args.concat() : []; - context = bound ? context || this : this; - return params.push.apply(params, arguments) < - f.length && arguments.length ? - _curry.call(context, params) : f.apply(context, params); - } : f; - }; - return _curry(); -} -},{}],16:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var each, map, compact, filter, reject, partition, find, head, first, tail, last, initial, empty, reverse, unique, uniqueBy, fold, foldl, fold1, foldl1, foldr, foldr1, unfoldr, concat, concatMap, flatten, difference, intersection, union, countBy, groupBy, andList, orList, any, all, sort, sortWith, sortBy, sum, product, mean, average, maximum, minimum, maximumBy, minimumBy, scan, scanl, scan1, scanl1, scanr, scanr1, slice, take, drop, splitAt, takeWhile, dropWhile, span, breakList, zip, zipWith, zipAll, zipAllWith, at, elemIndex, elemIndices, findIndex, findIndices, toString$ = {}.toString, slice$ = [].slice; -each = curry$(function(f, xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - f(x); - } - return xs; -}); -map = curry$(function(f, xs){ - var i$, len$, x, results$ = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - results$.push(f(x)); - } - return results$; -}); -compact = function(xs){ - var i$, len$, x, results$ = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (x) { - results$.push(x); - } - } - return results$; -}; -filter = curry$(function(f, xs){ - var i$, len$, x, results$ = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (f(x)) { - results$.push(x); - } - } - return results$; -}); -reject = curry$(function(f, xs){ - var i$, len$, x, results$ = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (!f(x)) { - results$.push(x); - } - } - return results$; -}); -partition = curry$(function(f, xs){ - var passed, failed, i$, len$, x; - passed = []; - failed = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - (f(x) ? passed : failed).push(x); - } - return [passed, failed]; -}); -find = curry$(function(f, xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (f(x)) { - return x; - } - } -}); -head = first = function(xs){ - return xs[0]; -}; -tail = function(xs){ - if (!xs.length) { - return; - } - return xs.slice(1); -}; -last = function(xs){ - return xs[xs.length - 1]; -}; -initial = function(xs){ - if (!xs.length) { - return; - } - return xs.slice(0, -1); -}; -empty = function(xs){ - return !xs.length; -}; -reverse = function(xs){ - return xs.concat().reverse(); -}; -unique = function(xs){ - var result, i$, len$, x; - result = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (!in$(x, result)) { - result.push(x); - } - } - return result; -}; -uniqueBy = curry$(function(f, xs){ - var seen, i$, len$, x, val, results$ = []; - seen = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - val = f(x); - if (in$(val, seen)) { - continue; - } - seen.push(val); - results$.push(x); - } - return results$; -}); -fold = foldl = curry$(function(f, memo, xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - memo = f(memo, x); - } - return memo; -}); -fold1 = foldl1 = curry$(function(f, xs){ - return fold(f, xs[0], xs.slice(1)); -}); -foldr = curry$(function(f, memo, xs){ - var i$, x; - for (i$ = xs.length - 1; i$ >= 0; --i$) { - x = xs[i$]; - memo = f(x, memo); - } - return memo; -}); -foldr1 = curry$(function(f, xs){ - return foldr(f, xs[xs.length - 1], xs.slice(0, -1)); -}); -unfoldr = curry$(function(f, b){ - var result, x, that; - result = []; - x = b; - while ((that = f(x)) != null) { - result.push(that[0]); - x = that[1]; - } - return result; -}); -concat = function(xss){ - return [].concat.apply([], xss); -}; -concatMap = curry$(function(f, xs){ - var x; - return [].concat.apply([], (function(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) { - x = ref$[i$]; - results$.push(f(x)); - } - return results$; - }())); -}); -flatten = function(xs){ - var x; - return [].concat.apply([], (function(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (toString$.call(x).slice(8, -1) === 'Array') { - results$.push(flatten(x)); - } else { - results$.push(x); - } - } - return results$; - }())); -}; -difference = function(xs){ - var yss, results, i$, len$, x, j$, len1$, ys; - yss = slice$.call(arguments, 1); - results = []; - outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) { - ys = yss[j$]; - if (in$(x, ys)) { - continue outer; - } - } - results.push(x); - } - return results; -}; -intersection = function(xs){ - var yss, results, i$, len$, x, j$, len1$, ys; - yss = slice$.call(arguments, 1); - results = []; - outer: for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - for (j$ = 0, len1$ = yss.length; j$ < len1$; ++j$) { - ys = yss[j$]; - if (!in$(x, ys)) { - continue outer; - } - } - results.push(x); - } - return results; -}; -union = function(){ - var xss, results, i$, len$, xs, j$, len1$, x; - xss = slice$.call(arguments); - results = []; - for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) { - xs = xss[i$]; - for (j$ = 0, len1$ = xs.length; j$ < len1$; ++j$) { - x = xs[j$]; - if (!in$(x, results)) { - results.push(x); - } - } - } - return results; -}; -countBy = curry$(function(f, xs){ - var results, i$, len$, x, key; - results = {}; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - key = f(x); - if (key in results) { - results[key] += 1; - } else { - results[key] = 1; - } - } - return results; -}); -groupBy = curry$(function(f, xs){ - var results, i$, len$, x, key; - results = {}; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - key = f(x); - if (key in results) { - results[key].push(x); - } else { - results[key] = [x]; - } - } - return results; -}); -andList = function(xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (!x) { - return false; - } - } - return true; -}; -orList = function(xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (x) { - return true; - } - } - return false; -}; -any = curry$(function(f, xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (f(x)) { - return true; - } - } - return false; -}); -all = curry$(function(f, xs){ - var i$, len$, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - if (!f(x)) { - return false; - } - } - return true; -}); -sort = function(xs){ - return xs.concat().sort(function(x, y){ - if (x > y) { - return 1; - } else if (x < y) { - return -1; - } else { - return 0; - } - }); -}; -sortWith = curry$(function(f, xs){ - return xs.concat().sort(f); -}); -sortBy = curry$(function(f, xs){ - return xs.concat().sort(function(x, y){ - if (f(x) > f(y)) { - return 1; - } else if (f(x) < f(y)) { - return -1; - } else { - return 0; - } - }); -}); -sum = function(xs){ - var result, i$, len$, x; - result = 0; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - result += x; - } - return result; -}; -product = function(xs){ - var result, i$, len$, x; - result = 1; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - result *= x; - } - return result; -}; -mean = average = function(xs){ - var sum, i$, len$, x; - sum = 0; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - x = xs[i$]; - sum += x; - } - return sum / xs.length; -}; -maximum = function(xs){ - var max, i$, ref$, len$, x; - max = xs[0]; - for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (x > max) { - max = x; - } - } - return max; -}; -minimum = function(xs){ - var min, i$, ref$, len$, x; - min = xs[0]; - for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (x < min) { - min = x; - } - } - return min; -}; -maximumBy = curry$(function(f, xs){ - var max, i$, ref$, len$, x; - max = xs[0]; - for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (f(x) > f(max)) { - max = x; - } - } - return max; -}); -minimumBy = curry$(function(f, xs){ - var min, i$, ref$, len$, x; - min = xs[0]; - for (i$ = 0, len$ = (ref$ = xs.slice(1)).length; i$ < len$; ++i$) { - x = ref$[i$]; - if (f(x) < f(min)) { - min = x; - } - } - return min; -}); -scan = scanl = curry$(function(f, memo, xs){ - var last, x; - last = memo; - return [memo].concat((function(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = xs).length; i$ < len$; ++i$) { - x = ref$[i$]; - results$.push(last = f(last, x)); - } - return results$; - }())); -}); -scan1 = scanl1 = curry$(function(f, xs){ - if (!xs.length) { - return; - } - return scan(f, xs[0], xs.slice(1)); -}); -scanr = curry$(function(f, memo, xs){ - xs = xs.concat().reverse(); - return scan(f, memo, xs).reverse(); -}); -scanr1 = curry$(function(f, xs){ - if (!xs.length) { - return; - } - xs = xs.concat().reverse(); - return scan(f, xs[0], xs.slice(1)).reverse(); -}); -slice = curry$(function(x, y, xs){ - return xs.slice(x, y); -}); -take = curry$(function(n, xs){ - if (n <= 0) { - return xs.slice(0, 0); - } else { - return xs.slice(0, n); - } -}); -drop = curry$(function(n, xs){ - if (n <= 0) { - return xs; - } else { - return xs.slice(n); - } -}); -splitAt = curry$(function(n, xs){ - return [take(n, xs), drop(n, xs)]; -}); -takeWhile = curry$(function(p, xs){ - var len, i; - len = xs.length; - if (!len) { - return xs; - } - i = 0; - while (i < len && p(xs[i])) { - i += 1; - } - return xs.slice(0, i); -}); -dropWhile = curry$(function(p, xs){ - var len, i; - len = xs.length; - if (!len) { - return xs; - } - i = 0; - while (i < len && p(xs[i])) { - i += 1; - } - return xs.slice(i); -}); -span = curry$(function(p, xs){ - return [takeWhile(p, xs), dropWhile(p, xs)]; -}); -breakList = curry$(function(p, xs){ - return span(compose$(p, not$), xs); -}); -zip = curry$(function(xs, ys){ - var result, len, i$, len$, i, x; - result = []; - len = ys.length; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - i = i$; - x = xs[i$]; - if (i === len) { - break; - } - result.push([x, ys[i]]); - } - return result; -}); -zipWith = curry$(function(f, xs, ys){ - var result, len, i$, len$, i, x; - result = []; - len = ys.length; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - i = i$; - x = xs[i$]; - if (i === len) { - break; - } - result.push(f(x, ys[i])); - } - return result; -}); -zipAll = function(){ - var xss, minLength, i$, len$, xs, ref$, i, lresult$, j$, results$ = []; - xss = slice$.call(arguments); - minLength = undefined; - for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) { - xs = xss[i$]; - minLength <= (ref$ = xs.length) || (minLength = ref$); - } - for (i$ = 0; i$ < minLength; ++i$) { - i = i$; - lresult$ = []; - for (j$ = 0, len$ = xss.length; j$ < len$; ++j$) { - xs = xss[j$]; - lresult$.push(xs[i]); - } - results$.push(lresult$); - } - return results$; -}; -zipAllWith = function(f){ - var xss, minLength, i$, len$, xs, ref$, i, results$ = []; - xss = slice$.call(arguments, 1); - minLength = undefined; - for (i$ = 0, len$ = xss.length; i$ < len$; ++i$) { - xs = xss[i$]; - minLength <= (ref$ = xs.length) || (minLength = ref$); - } - for (i$ = 0; i$ < minLength; ++i$) { - i = i$; - results$.push(f.apply(null, (fn$()))); - } - return results$; - function fn$(){ - var i$, ref$, len$, results$ = []; - for (i$ = 0, len$ = (ref$ = xss).length; i$ < len$; ++i$) { - xs = ref$[i$]; - results$.push(xs[i]); - } - return results$; - } -}; -at = curry$(function(n, xs){ - if (n < 0) { - return xs[xs.length + n]; - } else { - return xs[n]; - } -}); -elemIndex = curry$(function(el, xs){ - var i$, len$, i, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - i = i$; - x = xs[i$]; - if (x === el) { - return i; - } - } -}); -elemIndices = curry$(function(el, xs){ - var i$, len$, i, x, results$ = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - i = i$; - x = xs[i$]; - if (x === el) { - results$.push(i); - } - } - return results$; -}); -findIndex = curry$(function(f, xs){ - var i$, len$, i, x; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - i = i$; - x = xs[i$]; - if (f(x)) { - return i; - } - } -}); -findIndices = curry$(function(f, xs){ - var i$, len$, i, x, results$ = []; - for (i$ = 0, len$ = xs.length; i$ < len$; ++i$) { - i = i$; - x = xs[i$]; - if (f(x)) { - results$.push(i); - } - } - return results$; -}); -module.exports = { - each: each, - map: map, - filter: filter, - compact: compact, - reject: reject, - partition: partition, - find: find, - head: head, - first: first, - tail: tail, - last: last, - initial: initial, - empty: empty, - reverse: reverse, - difference: difference, - intersection: intersection, - union: union, - countBy: countBy, - groupBy: groupBy, - fold: fold, - fold1: fold1, - foldl: foldl, - foldl1: foldl1, - foldr: foldr, - foldr1: foldr1, - unfoldr: unfoldr, - andList: andList, - orList: orList, - any: any, - all: all, - unique: unique, - uniqueBy: uniqueBy, - sort: sort, - sortWith: sortWith, - sortBy: sortBy, - sum: sum, - product: product, - mean: mean, - average: average, - concat: concat, - concatMap: concatMap, - flatten: flatten, - maximum: maximum, - minimum: minimum, - maximumBy: maximumBy, - minimumBy: minimumBy, - scan: scan, - scan1: scan1, - scanl: scanl, - scanl1: scanl1, - scanr: scanr, - scanr1: scanr1, - slice: slice, - take: take, - drop: drop, - splitAt: splitAt, - takeWhile: takeWhile, - dropWhile: dropWhile, - span: span, - breakList: breakList, - zip: zip, - zipWith: zipWith, - zipAll: zipAll, - zipAllWith: zipAllWith, - at: at, - elemIndex: elemIndex, - elemIndices: elemIndices, - findIndex: findIndex, - findIndices: findIndices -}; -function curry$(f, bound){ - var context, - _curry = function(args) { - return f.length > 1 ? function(){ - var params = args ? args.concat() : []; - context = bound ? context || this : this; - return params.push.apply(params, arguments) < - f.length && arguments.length ? - _curry.call(context, params) : f.apply(context, params); - } : f; - }; - return _curry(); -} -function in$(x, xs){ - var i = -1, l = xs.length >>> 0; - while (++i < l) if (x === xs[i]) return true; - return false; -} -function compose$() { - var functions = arguments; - return function() { - var i, result; - result = functions[0].apply(this, arguments); - for (i = 1; i < functions.length; ++i) { - result = functions[i](result); - } - return result; - }; -} -function not$(x){ return !x; } -},{}],17:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var max, min, negate, abs, signum, quot, rem, div, mod, recip, pi, tau, exp, sqrt, ln, pow, sin, tan, cos, asin, acos, atan, atan2, truncate, round, ceiling, floor, isItNaN, even, odd, gcd, lcm; -max = curry$(function(x$, y$){ - return x$ > y$ ? x$ : y$; -}); -min = curry$(function(x$, y$){ - return x$ < y$ ? x$ : y$; -}); -negate = function(x){ - return -x; -}; -abs = Math.abs; -signum = function(x){ - if (x < 0) { - return -1; - } else if (x > 0) { - return 1; - } else { - return 0; - } -}; -quot = curry$(function(x, y){ - return ~~(x / y); -}); -rem = curry$(function(x$, y$){ - return x$ % y$; -}); -div = curry$(function(x, y){ - return Math.floor(x / y); -}); -mod = curry$(function(x$, y$){ - var ref$; - return (((x$) % (ref$ = y$) + ref$) % ref$); -}); -recip = (function(it){ - return 1 / it; -}); -pi = Math.PI; -tau = pi * 2; -exp = Math.exp; -sqrt = Math.sqrt; -ln = Math.log; -pow = curry$(function(x$, y$){ - return Math.pow(x$, y$); -}); -sin = Math.sin; -tan = Math.tan; -cos = Math.cos; -asin = Math.asin; -acos = Math.acos; -atan = Math.atan; -atan2 = curry$(function(x, y){ - return Math.atan2(x, y); -}); -truncate = function(x){ - return ~~x; -}; -round = Math.round; -ceiling = Math.ceil; -floor = Math.floor; -isItNaN = function(x){ - return x !== x; -}; -even = function(x){ - return x % 2 === 0; -}; -odd = function(x){ - return x % 2 !== 0; -}; -gcd = curry$(function(x, y){ - var z; - x = Math.abs(x); - y = Math.abs(y); - while (y !== 0) { - z = x % y; - x = y; - y = z; - } - return x; -}); -lcm = curry$(function(x, y){ - return Math.abs(Math.floor(x / gcd(x, y) * y)); -}); -module.exports = { - max: max, - min: min, - negate: negate, - abs: abs, - signum: signum, - quot: quot, - rem: rem, - div: div, - mod: mod, - recip: recip, - pi: pi, - tau: tau, - exp: exp, - sqrt: sqrt, - ln: ln, - pow: pow, - sin: sin, - tan: tan, - cos: cos, - acos: acos, - asin: asin, - atan: atan, - atan2: atan2, - truncate: truncate, - round: round, - ceiling: ceiling, - floor: floor, - isItNaN: isItNaN, - even: even, - odd: odd, - gcd: gcd, - lcm: lcm -}; -function curry$(f, bound){ - var context, - _curry = function(args) { - return f.length > 1 ? function(){ - var params = args ? args.concat() : []; - context = bound ? context || this : this; - return params.push.apply(params, arguments) < - f.length && arguments.length ? - _curry.call(context, params) : f.apply(context, params); - } : f; - }; - return _curry(); -} -},{}],18:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var values, keys, pairsToObj, objToPairs, listsToObj, objToLists, empty, each, map, compact, filter, reject, partition, find; -values = function(object){ - var i$, x, results$ = []; - for (i$ in object) { - x = object[i$]; - results$.push(x); - } - return results$; -}; -keys = function(object){ - var x, results$ = []; - for (x in object) { - results$.push(x); - } - return results$; -}; -pairsToObj = function(object){ - var i$, len$, x, resultObj$ = {}; - for (i$ = 0, len$ = object.length; i$ < len$; ++i$) { - x = object[i$]; - resultObj$[x[0]] = x[1]; - } - return resultObj$; -}; -objToPairs = function(object){ - var key, value, results$ = []; - for (key in object) { - value = object[key]; - results$.push([key, value]); - } - return results$; -}; -listsToObj = curry$(function(keys, values){ - var i$, len$, i, key, resultObj$ = {}; - for (i$ = 0, len$ = keys.length; i$ < len$; ++i$) { - i = i$; - key = keys[i$]; - resultObj$[key] = values[i]; - } - return resultObj$; -}); -objToLists = function(object){ - var keys, values, key, value; - keys = []; - values = []; - for (key in object) { - value = object[key]; - keys.push(key); - values.push(value); - } - return [keys, values]; -}; -empty = function(object){ - var x; - for (x in object) { - return false; - } - return true; -}; -each = curry$(function(f, object){ - var i$, x; - for (i$ in object) { - x = object[i$]; - f(x); - } - return object; -}); -map = curry$(function(f, object){ - var k, x, resultObj$ = {}; - for (k in object) { - x = object[k]; - resultObj$[k] = f(x); - } - return resultObj$; -}); -compact = function(object){ - var k, x, resultObj$ = {}; - for (k in object) { - x = object[k]; - if (x) { - resultObj$[k] = x; - } - } - return resultObj$; -}; -filter = curry$(function(f, object){ - var k, x, resultObj$ = {}; - for (k in object) { - x = object[k]; - if (f(x)) { - resultObj$[k] = x; - } - } - return resultObj$; -}); -reject = curry$(function(f, object){ - var k, x, resultObj$ = {}; - for (k in object) { - x = object[k]; - if (!f(x)) { - resultObj$[k] = x; - } - } - return resultObj$; -}); -partition = curry$(function(f, object){ - var passed, failed, k, x; - passed = {}; - failed = {}; - for (k in object) { - x = object[k]; - (f(x) ? passed : failed)[k] = x; - } - return [passed, failed]; -}); -find = curry$(function(f, object){ - var i$, x; - for (i$ in object) { - x = object[i$]; - if (f(x)) { - return x; - } - } -}); -module.exports = { - values: values, - keys: keys, - pairsToObj: pairsToObj, - objToPairs: objToPairs, - listsToObj: listsToObj, - objToLists: objToLists, - empty: empty, - each: each, - map: map, - filter: filter, - compact: compact, - reject: reject, - partition: partition, - find: find -}; -function curry$(f, bound){ - var context, - _curry = function(args) { - return f.length > 1 ? function(){ - var params = args ? args.concat() : []; - context = bound ? context || this : this; - return params.push.apply(params, arguments) < - f.length && arguments.length ? - _curry.call(context, params) : f.apply(context, params); - } : f; - }; - return _curry(); -} -},{}],19:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var split, join, lines, unlines, words, unwords, chars, unchars, reverse, repeat, capitalize, camelize, dasherize; -split = curry$(function(sep, str){ - return str.split(sep); -}); -join = curry$(function(sep, xs){ - return xs.join(sep); -}); -lines = function(str){ - if (!str.length) { - return []; - } - return str.split('\n'); -}; -unlines = function(it){ - return it.join('\n'); -}; -words = function(str){ - if (!str.length) { - return []; - } - return str.split(/[ ]+/); -}; -unwords = function(it){ - return it.join(' '); -}; -chars = function(it){ - return it.split(''); -}; -unchars = function(it){ - return it.join(''); -}; -reverse = function(str){ - return str.split('').reverse().join(''); -}; -repeat = curry$(function(n, str){ - var result, i$; - result = ''; - for (i$ = 0; i$ < n; ++i$) { - result += str; - } - return result; -}); -capitalize = function(str){ - return str.charAt(0).toUpperCase() + str.slice(1); -}; -camelize = function(it){ - return it.replace(/[-_]+(.)?/g, function(arg$, c){ - return (c != null ? c : '').toUpperCase(); - }); -}; -dasherize = function(str){ - return str.replace(/([^-A-Z])([A-Z]+)/g, function(arg$, lower, upper){ - return lower + "-" + (upper.length > 1 - ? upper - : upper.toLowerCase()); - }).replace(/^([A-Z]+)/, function(arg$, upper){ - if (upper.length > 1) { - return upper + "-"; - } else { - return upper.toLowerCase(); - } - }); -}; -module.exports = { - split: split, - join: join, - lines: lines, - unlines: unlines, - words: words, - unwords: unwords, - chars: chars, - unchars: unchars, - reverse: reverse, - repeat: repeat, - capitalize: capitalize, - camelize: camelize, - dasherize: dasherize -}; -function curry$(f, bound){ - var context, - _curry = function(args) { - return f.length > 1 ? function(){ - var params = args ? args.concat() : []; - context = bound ? context || this : this; - return params.push.apply(params, arguments) < - f.length && arguments.length ? - _curry.call(context, params) : f.apply(context, params); - } : f; - }; - return _curry(); -} -},{}],20:[function(require,module,exports){ -// Generated by LiveScript 1.4.0 -var Func, List, Obj, Str, Num, id, isType, replicate, prelude, toString$ = {}.toString; -Func = require('./Func.js'); -List = require('./List.js'); -Obj = require('./Obj.js'); -Str = require('./Str.js'); -Num = require('./Num.js'); -id = function(x){ - return x; -}; -isType = curry$(function(type, x){ - return toString$.call(x).slice(8, -1) === type; -}); -replicate = curry$(function(n, x){ - var i$, results$ = []; - for (i$ = 0; i$ < n; ++i$) { - results$.push(x); - } - return results$; -}); -Str.empty = List.empty; -Str.slice = List.slice; -Str.take = List.take; -Str.drop = List.drop; -Str.splitAt = List.splitAt; -Str.takeWhile = List.takeWhile; -Str.dropWhile = List.dropWhile; -Str.span = List.span; -Str.breakStr = List.breakList; -prelude = { - Func: Func, - List: List, - Obj: Obj, - Str: Str, - Num: Num, - id: id, - isType: isType, - replicate: replicate -}; -prelude.each = List.each; -prelude.map = List.map; -prelude.filter = List.filter; -prelude.compact = List.compact; -prelude.reject = List.reject; -prelude.partition = List.partition; -prelude.find = List.find; -prelude.head = List.head; -prelude.first = List.first; -prelude.tail = List.tail; -prelude.last = List.last; -prelude.initial = List.initial; -prelude.empty = List.empty; -prelude.reverse = List.reverse; -prelude.difference = List.difference; -prelude.intersection = List.intersection; -prelude.union = List.union; -prelude.countBy = List.countBy; -prelude.groupBy = List.groupBy; -prelude.fold = List.fold; -prelude.foldl = List.foldl; -prelude.fold1 = List.fold1; -prelude.foldl1 = List.foldl1; -prelude.foldr = List.foldr; -prelude.foldr1 = List.foldr1; -prelude.unfoldr = List.unfoldr; -prelude.andList = List.andList; -prelude.orList = List.orList; -prelude.any = List.any; -prelude.all = List.all; -prelude.unique = List.unique; -prelude.uniqueBy = List.uniqueBy; -prelude.sort = List.sort; -prelude.sortWith = List.sortWith; -prelude.sortBy = List.sortBy; -prelude.sum = List.sum; -prelude.product = List.product; -prelude.mean = List.mean; -prelude.average = List.average; -prelude.concat = List.concat; -prelude.concatMap = List.concatMap; -prelude.flatten = List.flatten; -prelude.maximum = List.maximum; -prelude.minimum = List.minimum; -prelude.maximumBy = List.maximumBy; -prelude.minimumBy = List.minimumBy; -prelude.scan = List.scan; -prelude.scanl = List.scanl; -prelude.scan1 = List.scan1; -prelude.scanl1 = List.scanl1; -prelude.scanr = List.scanr; -prelude.scanr1 = List.scanr1; -prelude.slice = List.slice; -prelude.take = List.take; -prelude.drop = List.drop; -prelude.splitAt = List.splitAt; -prelude.takeWhile = List.takeWhile; -prelude.dropWhile = List.dropWhile; -prelude.span = List.span; -prelude.breakList = List.breakList; -prelude.zip = List.zip; -prelude.zipWith = List.zipWith; -prelude.zipAll = List.zipAll; -prelude.zipAllWith = List.zipAllWith; -prelude.at = List.at; -prelude.elemIndex = List.elemIndex; -prelude.elemIndices = List.elemIndices; -prelude.findIndex = List.findIndex; -prelude.findIndices = List.findIndices; -prelude.apply = Func.apply; -prelude.curry = Func.curry; -prelude.flip = Func.flip; -prelude.fix = Func.fix; -prelude.over = Func.over; -prelude.split = Str.split; -prelude.join = Str.join; -prelude.lines = Str.lines; -prelude.unlines = Str.unlines; -prelude.words = Str.words; -prelude.unwords = Str.unwords; -prelude.chars = Str.chars; -prelude.unchars = Str.unchars; -prelude.repeat = Str.repeat; -prelude.capitalize = Str.capitalize; -prelude.camelize = Str.camelize; -prelude.dasherize = Str.dasherize; -prelude.values = Obj.values; -prelude.keys = Obj.keys; -prelude.pairsToObj = Obj.pairsToObj; -prelude.objToPairs = Obj.objToPairs; -prelude.listsToObj = Obj.listsToObj; -prelude.objToLists = Obj.objToLists; -prelude.max = Num.max; -prelude.min = Num.min; -prelude.negate = Num.negate; -prelude.abs = Num.abs; -prelude.signum = Num.signum; -prelude.quot = Num.quot; -prelude.rem = Num.rem; -prelude.div = Num.div; -prelude.mod = Num.mod; -prelude.recip = Num.recip; -prelude.pi = Num.pi; -prelude.tau = Num.tau; -prelude.exp = Num.exp; -prelude.sqrt = Num.sqrt; -prelude.ln = Num.ln; -prelude.pow = Num.pow; -prelude.sin = Num.sin; -prelude.tan = Num.tan; -prelude.cos = Num.cos; -prelude.acos = Num.acos; -prelude.asin = Num.asin; -prelude.atan = Num.atan; -prelude.atan2 = Num.atan2; -prelude.truncate = Num.truncate; -prelude.round = Num.round; -prelude.ceiling = Num.ceiling; -prelude.floor = Num.floor; -prelude.isItNaN = Num.isItNaN; -prelude.even = Num.even; -prelude.odd = Num.odd; -prelude.gcd = Num.gcd; -prelude.lcm = Num.lcm; -prelude.VERSION = '1.1.2'; -module.exports = prelude; -function curry$(f, bound){ - var context, - _curry = function(args) { - return f.length > 1 ? function(){ - var params = args ? args.concat() : []; - context = bound ? context || this : this; - return params.push.apply(params, arguments) < - f.length && arguments.length ? - _curry.call(context, params) : f.apply(context, params); - } : f; - }; - return _curry(); -} -},{"./Func.js":15,"./List.js":16,"./Num.js":17,"./Obj.js":18,"./Str.js":19}],21:[function(require,module,exports){ -// shim for using process in browser - -var process = module.exports = {}; -var queue = []; -var draining = false; - -function drainQueue() { - if (draining) { - return; - } - draining = true; - var currentQueue; - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - var i = -1; - while (++i < len) { - currentQueue[i](); - } - len = queue.length; - } - draining = false; -} -process.nextTick = function (fun) { - queue.push(fun); - if (!draining) { - setTimeout(drainQueue, 0); - } -}; - -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -// TODO(shtylman) -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],22:[function(require,module,exports){ -/* - * Copyright 2009-2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE.txt or: - * http://opensource.org/licenses/BSD-3-Clause - */ -exports.SourceMapGenerator = require('./source-map/source-map-generator').SourceMapGenerator; -exports.SourceMapConsumer = require('./source-map/source-map-consumer').SourceMapConsumer; -exports.SourceNode = require('./source-map/source-node').SourceNode; - -},{"./source-map/source-map-consumer":30,"./source-map/source-map-generator":31,"./source-map/source-node":32}],23:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var util = require('./util'); - - /** - * A data structure which is a combination of an array and a set. Adding a new - * member is O(1), testing for membership is O(1), and finding the index of an - * element is O(1). Removing elements from the set is not supported. Only - * strings are supported for membership. - */ - function ArraySet() { - this._array = []; - this._set = {}; - } - - /** - * Static method for creating ArraySet instances from an existing array. - */ - ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { - var set = new ArraySet(); - for (var i = 0, len = aArray.length; i < len; i++) { - set.add(aArray[i], aAllowDuplicates); - } - return set; - }; - - /** - * Add the given string to this set. - * - * @param String aStr - */ - ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { - var isDuplicate = this.has(aStr); - var idx = this._array.length; - if (!isDuplicate || aAllowDuplicates) { - this._array.push(aStr); - } - if (!isDuplicate) { - this._set[util.toSetString(aStr)] = idx; - } - }; - - /** - * Is the given string a member of this set? - * - * @param String aStr - */ - ArraySet.prototype.has = function ArraySet_has(aStr) { - return Object.prototype.hasOwnProperty.call(this._set, - util.toSetString(aStr)); - }; - - /** - * What is the index of the given string in the array? - * - * @param String aStr - */ - ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { - if (this.has(aStr)) { - return this._set[util.toSetString(aStr)]; - } - throw new Error('"' + aStr + '" is not in the set.'); - }; - - /** - * What is the element at the given index? - * - * @param Number aIdx - */ - ArraySet.prototype.at = function ArraySet_at(aIdx) { - if (aIdx >= 0 && aIdx < this._array.length) { - return this._array[aIdx]; - } - throw new Error('No element indexed by ' + aIdx); - }; - - /** - * Returns the array representation of this set (which has the proper indices - * indicated by indexOf). Note that this is a copy of the internal array used - * for storing the members so that no one can mess with internal state. - */ - ArraySet.prototype.toArray = function ArraySet_toArray() { - return this._array.slice(); - }; - - exports.ArraySet = ArraySet; - -}); - -},{"./util":33,"amdefine":7}],24:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - * - * Based on the Base 64 VLQ implementation in Closure Compiler: - * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java - * - * Copyright 2011 The Closure Compiler Authors. All rights reserved. - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following - * disclaimer in the documentation and/or other materials provided - * with the distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived - * from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var base64 = require('./base64'); - - // A single base 64 digit can contain 6 bits of data. For the base 64 variable - // length quantities we use in the source map spec, the first bit is the sign, - // the next four bits are the actual value, and the 6th bit is the - // continuation bit. The continuation bit tells us whether there are more - // digits in this value following this digit. - // - // Continuation - // | Sign - // | | - // V V - // 101011 - - var VLQ_BASE_SHIFT = 5; - - // binary: 100000 - var VLQ_BASE = 1 << VLQ_BASE_SHIFT; - - // binary: 011111 - var VLQ_BASE_MASK = VLQ_BASE - 1; - - // binary: 100000 - var VLQ_CONTINUATION_BIT = VLQ_BASE; - - /** - * Converts from a two-complement value to a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) - * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) - */ - function toVLQSigned(aValue) { - return aValue < 0 - ? ((-aValue) << 1) + 1 - : (aValue << 1) + 0; - } - - /** - * Converts to a two-complement value from a value where the sign bit is - * placed in the least significant bit. For example, as decimals: - * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 - * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 - */ - function fromVLQSigned(aValue) { - var isNegative = (aValue & 1) === 1; - var shifted = aValue >> 1; - return isNegative - ? -shifted - : shifted; - } - - /** - * Returns the base 64 VLQ encoded value. - */ - exports.encode = function base64VLQ_encode(aValue) { - var encoded = ""; - var digit; - - var vlq = toVLQSigned(aValue); - - do { - digit = vlq & VLQ_BASE_MASK; - vlq >>>= VLQ_BASE_SHIFT; - if (vlq > 0) { - // There are still more digits in this value, so we must make sure the - // continuation bit is marked. - digit |= VLQ_CONTINUATION_BIT; - } - encoded += base64.encode(digit); - } while (vlq > 0); - - return encoded; - }; - - /** - * Decodes the next base 64 VLQ value from the given string and returns the - * value and the rest of the string via the out parameter. - */ - exports.decode = function base64VLQ_decode(aStr, aOutParam) { - var i = 0; - var strLen = aStr.length; - var result = 0; - var shift = 0; - var continuation, digit; - - do { - if (i >= strLen) { - throw new Error("Expected more digits in base 64 VLQ value."); - } - digit = base64.decode(aStr.charAt(i++)); - continuation = !!(digit & VLQ_CONTINUATION_BIT); - digit &= VLQ_BASE_MASK; - result = result + (digit << shift); - shift += VLQ_BASE_SHIFT; - } while (continuation); - - aOutParam.value = fromVLQSigned(result); - aOutParam.rest = aStr.slice(i); - }; - -}); - -},{"./base64":25,"amdefine":7}],25:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var charToIntMap = {}; - var intToCharMap = {}; - - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' - .split('') - .forEach(function (ch, index) { - charToIntMap[ch] = index; - intToCharMap[index] = ch; - }); - - /** - * Encode an integer in the range of 0 to 63 to a single base 64 digit. - */ - exports.encode = function base64_encode(aNumber) { - if (aNumber in intToCharMap) { - return intToCharMap[aNumber]; - } - throw new TypeError("Must be between 0 and 63: " + aNumber); - }; - - /** - * Decode a single base 64 digit to an integer. - */ - exports.decode = function base64_decode(aChar) { - if (aChar in charToIntMap) { - return charToIntMap[aChar]; - } - throw new TypeError("Not a valid base 64 digit: " + aChar); - }; - -}); - -},{"amdefine":7}],26:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var util = require('./util'); - var binarySearch = require('./binary-search'); - var ArraySet = require('./array-set').ArraySet; - var base64VLQ = require('./base64-vlq'); - var SourceMapConsumer = require('./source-map-consumer').SourceMapConsumer; - - /** - * A BasicSourceMapConsumer instance represents a parsed source map which we can - * query for information about the original file positions by giving it a file - * position in the generated source. - * - * The only parameter is the raw source map (either as a JSON string, or - * already parsed to an object). According to the spec, source maps have the - * following attributes: - * - * - version: Which version of the source map spec this map is following. - * - sources: An array of URLs to the original source files. - * - names: An array of identifiers which can be referrenced by individual mappings. - * - sourceRoot: Optional. The URL root from which all sources are relative. - * - sourcesContent: Optional. An array of contents of the original source files. - * - mappings: A string of base64 VLQs which contain the actual mappings. - * - file: Optional. The generated file this source map is associated with. - * - * Here is an example source map, taken from the source map spec[0]: - * - * { - * version : 3, - * file: "out.js", - * sourceRoot : "", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AA,AB;;ABCDE;" - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# - */ - function BasicSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sources = util.getArg(sourceMap, 'sources'); - // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which - // requires the array) to play nice here. - var names = util.getArg(sourceMap, 'names', []); - var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); - var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); - var mappings = util.getArg(sourceMap, 'mappings'); - var file = util.getArg(sourceMap, 'file', null); - - // Once again, Sass deviates from the spec and supplies the version as a - // string rather than a number, so we use loose equality checking here. - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - // Some source maps produce relative source paths like "./foo.js" instead of - // "foo.js". Normalize these first so that future comparisons will succeed. - // See bugzil.la/1090768. - sources = sources.map(util.normalize); - - // Pass `true` below to allow duplicate names and sources. While source maps - // are intended to be compressed and deduplicated, the TypeScript compiler - // sometimes generates source maps with duplicates in them. See Github issue - // #72 and bugzil.la/889492. - this._names = ArraySet.fromArray(names, true); - this._sources = ArraySet.fromArray(sources, true); - - this.sourceRoot = sourceRoot; - this.sourcesContent = sourcesContent; - this._mappings = mappings; - this.file = file; - } - - BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); - BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; - - /** - * Create a BasicSourceMapConsumer from a SourceMapGenerator. - * - * @param SourceMapGenerator aSourceMap - * The source map that will be consumed. - * @returns BasicSourceMapConsumer - */ - BasicSourceMapConsumer.fromSourceMap = - function SourceMapConsumer_fromSourceMap(aSourceMap) { - var smc = Object.create(BasicSourceMapConsumer.prototype); - - smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); - smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); - smc.sourceRoot = aSourceMap._sourceRoot; - smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), - smc.sourceRoot); - smc.file = aSourceMap._file; - - smc.__generatedMappings = aSourceMap._mappings.toArray().slice(); - smc.__originalMappings = aSourceMap._mappings.toArray().slice() - .sort(util.compareByOriginalPositions); - - return smc; - }; - - /** - * The version of the source mapping spec that we are consuming. - */ - BasicSourceMapConsumer.prototype._version = 3; - - /** - * The list of original sources. - */ - Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { - get: function () { - return this._sources.toArray().map(function (s) { - return this.sourceRoot != null ? util.join(this.sourceRoot, s) : s; - }, this); - } - }); - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - BasicSourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - var generatedLine = 1; - var previousGeneratedColumn = 0; - var previousOriginalLine = 0; - var previousOriginalColumn = 0; - var previousSource = 0; - var previousName = 0; - var str = aStr; - var temp = {}; - var mapping; - - while (str.length > 0) { - if (str.charAt(0) === ';') { - generatedLine++; - str = str.slice(1); - previousGeneratedColumn = 0; - } - else if (str.charAt(0) === ',') { - str = str.slice(1); - } - else { - mapping = {}; - mapping.generatedLine = generatedLine; - - // Generated column. - base64VLQ.decode(str, temp); - mapping.generatedColumn = previousGeneratedColumn + temp.value; - previousGeneratedColumn = mapping.generatedColumn; - str = temp.rest; - - if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) { - // Original source. - base64VLQ.decode(str, temp); - mapping.source = this._sources.at(previousSource + temp.value); - previousSource += temp.value; - str = temp.rest; - if (str.length === 0 || this._nextCharIsMappingSeparator(str)) { - throw new Error('Found a source, but no line and column'); - } - - // Original line. - base64VLQ.decode(str, temp); - mapping.originalLine = previousOriginalLine + temp.value; - previousOriginalLine = mapping.originalLine; - // Lines are stored 0-based - mapping.originalLine += 1; - str = temp.rest; - if (str.length === 0 || this._nextCharIsMappingSeparator(str)) { - throw new Error('Found a source and line, but no column'); - } - - // Original column. - base64VLQ.decode(str, temp); - mapping.originalColumn = previousOriginalColumn + temp.value; - previousOriginalColumn = mapping.originalColumn; - str = temp.rest; - - if (str.length > 0 && !this._nextCharIsMappingSeparator(str)) { - // Original name. - base64VLQ.decode(str, temp); - mapping.name = this._names.at(previousName + temp.value); - previousName += temp.value; - str = temp.rest; - } - } - - this.__generatedMappings.push(mapping); - if (typeof mapping.originalLine === 'number') { - this.__originalMappings.push(mapping); - } - } - } - - this.__generatedMappings.sort(util.compareByGeneratedPositions); - this.__originalMappings.sort(util.compareByOriginalPositions); - }; - - /** - * Find the mapping that best matches the hypothetical "needle" mapping that - * we are searching for in the given "haystack" of mappings. - */ - BasicSourceMapConsumer.prototype._findMapping = - function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, - aColumnName, aComparator) { - // To return the position we are searching for, we must first find the - // mapping for the given position and then return the opposite position it - // points to. Because the mappings are sorted, we can use binary search to - // find the best mapping. - - if (aNeedle[aLineName] <= 0) { - throw new TypeError('Line must be greater than or equal to 1, got ' - + aNeedle[aLineName]); - } - if (aNeedle[aColumnName] < 0) { - throw new TypeError('Column must be greater than or equal to 0, got ' - + aNeedle[aColumnName]); - } - - return binarySearch.search(aNeedle, aMappings, aComparator); - }; - - /** - * Compute the last column for each generated mapping. The last column is - * inclusive. - */ - BasicSourceMapConsumer.prototype.computeColumnSpans = - function SourceMapConsumer_computeColumnSpans() { - for (var index = 0; index < this._generatedMappings.length; ++index) { - var mapping = this._generatedMappings[index]; - - // Mappings do not contain a field for the last generated columnt. We - // can come up with an optimistic estimate, however, by assuming that - // mappings are contiguous (i.e. given two consecutive mappings, the - // first mapping ends where the second one starts). - if (index + 1 < this._generatedMappings.length) { - var nextMapping = this._generatedMappings[index + 1]; - - if (mapping.generatedLine === nextMapping.generatedLine) { - mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; - continue; - } - } - - // The last mapping for each line spans the entire line. - mapping.lastGeneratedColumn = Infinity; - } - }; - - /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ - BasicSourceMapConsumer.prototype.originalPositionFor = - function SourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - var index = this._findMapping(needle, - this._generatedMappings, - "generatedLine", - "generatedColumn", - util.compareByGeneratedPositions); - - if (index >= 0) { - var mapping = this._generatedMappings[index]; - - if (mapping.generatedLine === needle.generatedLine) { - var source = util.getArg(mapping, 'source', null); - if (source != null && this.sourceRoot != null) { - source = util.join(this.sourceRoot, source); - } - return { - source: source, - line: util.getArg(mapping, 'originalLine', null), - column: util.getArg(mapping, 'originalColumn', null), - name: util.getArg(mapping, 'name', null) - }; - } - } - - return { - source: null, - line: null, - column: null, - name: null - }; - }; - - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * availible. - */ - BasicSourceMapConsumer.prototype.sourceContentFor = - function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - if (!this.sourcesContent) { - return null; - } - - if (this.sourceRoot != null) { - aSource = util.relative(this.sourceRoot, aSource); - } - - if (this._sources.has(aSource)) { - return this.sourcesContent[this._sources.indexOf(aSource)]; - } - - var url; - if (this.sourceRoot != null - && (url = util.urlParse(this.sourceRoot))) { - // XXX: file:// URIs and absolute paths lead to unexpected behavior for - // many users. We can help them out when they expect file:// URIs to - // behave like it would if they were running a local HTTP server. See - // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. - var fileUriAbsPath = aSource.replace(/^file:\/\//, ""); - if (url.scheme == "file" - && this._sources.has(fileUriAbsPath)) { - return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] - } - - if ((!url.path || url.path == "/") - && this._sources.has("/" + aSource)) { - return this.sourcesContent[this._sources.indexOf("/" + aSource)]; - } - } - - // This function is used recursively from - // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we - // don't want to throw if we can't find the source - we just want to - // return null, so we provide a flag to exit gracefully. - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - - /** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - BasicSourceMapConsumer.prototype.generatedPositionFor = - function SourceMapConsumer_generatedPositionFor(aArgs) { - var needle = { - source: util.getArg(aArgs, 'source'), - originalLine: util.getArg(aArgs, 'line'), - originalColumn: util.getArg(aArgs, 'column') - }; - - if (this.sourceRoot != null) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - - var index = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions); - - if (index >= 0) { - var mapping = this._originalMappings[index]; - - return { - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }; - } - - return { - line: null, - column: null, - lastColumn: null - }; - }; - - exports.BasicSourceMapConsumer = BasicSourceMapConsumer; - -}); - -},{"./array-set":23,"./base64-vlq":24,"./binary-search":27,"./source-map-consumer":30,"./util":33,"amdefine":7}],27:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - /** - * Recursive implementation of binary search. - * - * @param aLow Indices here and lower do not contain the needle. - * @param aHigh Indices here and higher do not contain the needle. - * @param aNeedle The element being searched for. - * @param aHaystack The non-empty array being searched. - * @param aCompare Function which takes two elements and returns -1, 0, or 1. - * @param aBias Either 'binarySearch.LEAST_UPPER_BOUND' or - * 'binarySearch.GREATEST_LOWER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the element we are - * searching for if the exact element cannot be found. - */ - function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { - // This function terminates when one of the following is true: - // - // 1. We find the exact element we are looking for. - // - // 2. We did not find the exact element, but we can return the index of - // the next closest element. - // - // 3. We did not find the exact element, and there is no next-closest - // element than the one we are searching for, so we return -1. - var mid = Math.floor((aHigh - aLow) / 2) + aLow; - var cmp = aCompare(aNeedle, aHaystack[mid], true); - if (cmp === 0) { - // Found the element we are looking for. - return mid; - } - else if (cmp > 0) { - // Our needle is greater than aHaystack[mid]. - if (aHigh - mid > 1) { - // The element is in the upper half. - return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); - } - // The exact needle element was not found in this haystack. Determine if - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return aHigh < aHaystack.length ? aHigh : -1; - } else { - return mid; - } - } - else { - // Our needle is less than aHaystack[mid]. - if (mid - aLow > 1) { - // The element is in the lower half. - return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); - } - // The exact needle element was not found in this haystack. Determine if - // we are in termination case (3) or (2) and return the appropriate thing. - if (aBias == exports.LEAST_UPPER_BOUND) { - return mid; - } else { - return aLow < 0 ? -1 : aLow; - } - } - } - - exports.LEAST_UPPER_BOUND = 1; - exports.GREATEST_LOWER_BOUND = 2; - - /** - * This is an implementation of binary search which will always try and return - * the index of next highest value checked if there is no exact hit. This is - * because mappings between original and generated line/col pairs are single - * points, and there is an implicit region between each of them, so a miss - * just means that you aren't on the very start of a region. - * - * @param aNeedle The element you are looking for. - * @param aHaystack The array that is being searched. - * @param aCompare A function which takes the needle and an element in the - * array and returns -1, 0, or 1 depending on whether the needle is less - * than, equal to, or greater than the element, respectively. - * @param aBias Either 'exports.LEAST_UPPER_BOUND' or - * 'exports.GREATEST_LOWER_BOUND'. Specifies whether to return the - * closest element that is smaller than or greater than the element we are - * searching for if the exact element cannot be found. Defaults to - * 'exports.LEAST_UPPER_BOUND'. - */ - exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { - var aBias = aBias || exports.LEAST_UPPER_BOUND; - - if (aHaystack.length === 0) { - return -1; - } - return recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, aCompare, aBias) - }; - -}); - -},{"amdefine":7}],28:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var util = require('./util'); - var binarySearch = require('./binary-search'); - var SourceMapConsumer = require('./source-map-consumer').SourceMapConsumer; - var BasicSourceMapConsumer = require('./basic-source-map-consumer').BasicSourceMapConsumer; - - /** - * An IndexedSourceMapConsumer instance represents a parsed source map which - * we can query for information. It differs from BasicSourceMapConsumer in - * that it takes "indexed" source maps (i.e. ones with a "sections" field) as - * input. - * - * The only parameter is a raw source map (either as a JSON string, or already - * parsed to an object). According to the spec for indexed source maps, they - * have the following attributes: - * - * - version: Which version of the source map spec this map is following. - * - file: Optional. The generated file this source map is associated with. - * - sections: A list of section definitions. - * - * Each value under the "sections" field has two fields: - * - offset: The offset into the original specified at which this section - * begins to apply, defined as an object with a "line" and "column" - * field. - * - map: A source map definition. This source map could also be indexed, - * but doesn't have to be. - * - * Instead of the "map" field, it's also possible to have a "url" field - * specifying a URL to retrieve a source map from, but that's currently - * unsupported. - * - * Here's an example source map, taken from the source map spec[0], but - * modified to omit a section which uses the "url" field. - * - * { - * version : 3, - * file: "app.js", - * sections: [{ - * offset: {line:100, column:10}, - * map: { - * version : 3, - * file: "section.js", - * sources: ["foo.js", "bar.js"], - * names: ["src", "maps", "are", "fun"], - * mappings: "AAAA,E;;ABCDE;" - * } - * }], - * } - * - * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt - */ - function IndexedSourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - var version = util.getArg(sourceMap, 'version'); - var sections = util.getArg(sourceMap, 'sections'); - - if (version != this._version) { - throw new Error('Unsupported version: ' + version); - } - - var lastOffset = { - line: -1, - column: 0 - }; - this._sections = sections.map(function (s) { - if (s.url) { - // The url field will require support for asynchronicity. - // See https://github.com/mozilla/source-map/issues/16 - throw new Error('Support for url field in sections not implemented.'); - } - var offset = util.getArg(s, 'offset'); - var offsetLine = util.getArg(offset, 'line'); - var offsetColumn = util.getArg(offset, 'column'); - - if (offsetLine < lastOffset.line || - (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { - throw new Error('Section offsets must be ordered and non-overlapping.'); - } - lastOffset = offset; - - return { - generatedOffset: { - // The offset fields are 0-based, but we use 1-based indices when - // encoding/decoding from VLQ. - generatedLine: offsetLine + 1, - generatedColumn: offsetColumn + 1 - }, - consumer: new SourceMapConsumer(util.getArg(s, 'map')) - } - }); - } - - IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); - IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; - - /** - * The version of the source mapping spec that we are consuming. - */ - IndexedSourceMapConsumer.prototype._version = 3; - - /** - * The list of original sources. - */ - Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { - get: function () { - var sources = []; - for (var i = 0; i < this._sections.length; i++) { - for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { - sources.push(this._sections[i].consumer.sources[j]); - } - }; - return sources; - } - }); - - /** - * Returns the original source, line, and column information for the generated - * source's line and column positions provided. The only argument is an object - * with the following properties: - * - * - line: The line number in the generated source. - * - column: The column number in the generated source. - * - * and an object is returned with the following properties: - * - * - source: The original source file, or null. - * - line: The line number in the original source, or null. - * - column: The column number in the original source, or null. - * - name: The original identifier, or null. - */ - IndexedSourceMapConsumer.prototype.originalPositionFor = - function IndexedSourceMapConsumer_originalPositionFor(aArgs) { - var needle = { - generatedLine: util.getArg(aArgs, 'line'), - generatedColumn: util.getArg(aArgs, 'column') - }; - - // Find the section containing the generated position we're trying to map - // to an original position. - var sectionIndex = binarySearch.search(needle, this._sections, - function(needle, section) { - var cmp = needle.generatedLine - section.generatedOffset.generatedLine; - if (cmp) { - return cmp; - } - - return (needle.generatedColumn - - section.generatedOffset.generatedColumn); - }, binarySearch.GREATEST_LOWER_BOUND); - var section = this._sections[sectionIndex]; - - if (!section) { - return { - source: null, - line: null, - column: null, - name: null - }; - } - - return section.consumer.originalPositionFor({ - line: needle.generatedLine - - (section.generatedOffset.generatedLine - 1), - column: needle.generatedColumn - - (section.generatedOffset.generatedLine === needle.generatedLine - ? section.generatedOffset.generatedColumn - 1 - : 0) - }); - }; - - /** - * Returns the original source content. The only argument is the url of the - * original source file. Returns null if no original source content is - * available. - */ - IndexedSourceMapConsumer.prototype.sourceContentFor = - function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - var content = section.consumer.sourceContentFor(aSource, true); - if (content) { - return content; - } - } - if (nullOnMissing) { - return null; - } - else { - throw new Error('"' + aSource + '" is not in the SourceMap.'); - } - }; - - /** - * Returns the generated line and column information for the original source, - * line, and column positions provided. The only argument is an object with - * the following properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - column: The column number in the original source. - * - * and an object is returned with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - IndexedSourceMapConsumer.prototype.generatedPositionFor = - function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - - // Only consider this section if the requested source is in the list of - // sources of the consumer. - if (section.consumer.sources.indexOf(util.getArg(aArgs, 'source')) === -1) { - continue; - } - var generatedPosition = section.consumer.generatedPositionFor(aArgs); - if (generatedPosition) { - var ret = { - line: generatedPosition.line + - (section.generatedOffset.generatedLine - 1), - column: generatedPosition.column + - (section.generatedOffset.generatedLine === generatedPosition.line - ? section.generatedOffset.generatedColumn - 1 - : 0) - }; - return ret; - } - } - - return { - line: null, - column: null - }; - }; - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - IndexedSourceMapConsumer.prototype._parseMappings = - function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { - this.__generatedMappings = []; - this.__originalMappings = []; - for (var i = 0; i < this._sections.length; i++) { - var section = this._sections[i]; - var sectionMappings = section.consumer._generatedMappings; - for (var j = 0; j < sectionMappings.length; j++) { - var mapping = sectionMappings[i]; - - var source = mapping.source; - var sourceRoot = section.consumer.sourceRoot; - - if (source != null && sourceRoot != null) { - source = util.join(sourceRoot, source); - } - - // The mappings coming from the consumer for the section have - // generated positions relative to the start of the section, so we - // need to offset them to be relative to the start of the concatenated - // generated file. - var adjustedMapping = { - source: source, - generatedLine: mapping.generatedLine + - (section.generatedOffset.generatedLine - 1), - generatedColumn: mapping.column + - (section.generatedOffset.generatedLine === mapping.generatedLine) - ? section.generatedOffset.generatedColumn - 1 - : 0, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name - }; - - this.__generatedMappings.push(adjustedMapping); - if (typeof adjustedMapping.originalLine === 'number') { - this.__originalMappings.push(adjustedMapping); - } - }; - }; - - this.__generatedMappings.sort(util.compareByGeneratedPositions); - this.__originalMappings.sort(util.compareByOriginalPositions); - }; - - exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; -}); - -},{"./basic-source-map-consumer":26,"./binary-search":27,"./source-map-consumer":30,"./util":33,"amdefine":7}],29:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2014 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var util = require('./util'); - - /** - * Determine whether mappingB is after mappingA with respect to generated - * position. - */ - function generatedPositionAfter(mappingA, mappingB) { - // Optimized for most common case - var lineA = mappingA.generatedLine; - var lineB = mappingB.generatedLine; - var columnA = mappingA.generatedColumn; - var columnB = mappingB.generatedColumn; - return lineB > lineA || lineB == lineA && columnB >= columnA || - util.compareByGeneratedPositions(mappingA, mappingB) <= 0; - } - - /** - * A data structure to provide a sorted view of accumulated mappings in a - * performance conscious manner. It trades a neglibable overhead in general - * case for a large speedup in case of mappings being added in order. - */ - function MappingList() { - this._array = []; - this._sorted = true; - // Serves as infimum - this._last = {generatedLine: -1, generatedColumn: 0}; - } - - /** - * Iterate through internal items. This method takes the same arguments that - * `Array.prototype.forEach` takes. - * - * NOTE: The order of the mappings is NOT guaranteed. - */ - MappingList.prototype.unsortedForEach = - function MappingList_forEach(aCallback, aThisArg) { - this._array.forEach(aCallback, aThisArg); - }; - - /** - * Add the given source mapping. - * - * @param Object aMapping - */ - MappingList.prototype.add = function MappingList_add(aMapping) { - var mapping; - if (generatedPositionAfter(this._last, aMapping)) { - this._last = aMapping; - this._array.push(aMapping); - } else { - this._sorted = false; - this._array.push(aMapping); - } - }; - - /** - * Returns the flat, sorted array of mappings. The mappings are sorted by - * generated position. - * - * WARNING: This method returns internal data without copying, for - * performance. The return value must NOT be mutated, and should be treated as - * an immutable borrow. If you want to take ownership, you must make your own - * copy. - */ - MappingList.prototype.toArray = function MappingList_toArray() { - if (!this._sorted) { - this._array.sort(util.compareByGeneratedPositions); - this._sorted = true; - } - return this._array; - }; - - exports.MappingList = MappingList; - -}); - -},{"./util":33,"amdefine":7}],30:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var util = require('./util'); - - function SourceMapConsumer(aSourceMap) { - var sourceMap = aSourceMap; - if (typeof aSourceMap === 'string') { - sourceMap = JSON.parse(aSourceMap.replace(/^\)\]\}'/, '')); - } - - // We do late requires because the subclasses require() this file. - if (sourceMap.sections != null) { - var indexedSourceMapConsumer = require('./indexed-source-map-consumer'); - return new indexedSourceMapConsumer.IndexedSourceMapConsumer(sourceMap); - } else { - var basicSourceMapConsumer = require('./basic-source-map-consumer'); - return new basicSourceMapConsumer.BasicSourceMapConsumer(sourceMap); - } - } - - SourceMapConsumer.fromSourceMap = function(aSourceMap) { - var basicSourceMapConsumer = require('./basic-source-map-consumer'); - return basicSourceMapConsumer.BasicSourceMapConsumer - .fromSourceMap(aSourceMap); - } - - /** - * The version of the source mapping spec that we are consuming. - */ - SourceMapConsumer.prototype._version = 3; - - - // `__generatedMappings` and `__originalMappings` are arrays that hold the - // parsed mapping coordinates from the source map's "mappings" attribute. They - // are lazily instantiated, accessed via the `_generatedMappings` and - // `_originalMappings` getters respectively, and we only parse the mappings - // and create these arrays once queried for a source location. We jump through - // these hoops because there can be many thousands of mappings, and parsing - // them is expensive, so we only want to do it if we must. - // - // Each object in the arrays is of the form: - // - // { - // generatedLine: The line number in the generated code, - // generatedColumn: The column number in the generated code, - // source: The path to the original source file that generated this - // chunk of code, - // originalLine: The line number in the original source that - // corresponds to this chunk of generated code, - // originalColumn: The column number in the original source that - // corresponds to this chunk of generated code, - // name: The name of the original symbol which generated this chunk of - // code. - // } - // - // All properties except for `generatedLine` and `generatedColumn` can be - // `null`. - // - // `_generatedMappings` is ordered by the generated positions. - // - // `_originalMappings` is ordered by the original positions. - - SourceMapConsumer.prototype.__generatedMappings = null; - Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { - get: function () { - if (!this.__generatedMappings) { - this.__generatedMappings = []; - this.__originalMappings = []; - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__generatedMappings; - } - }); - - SourceMapConsumer.prototype.__originalMappings = null; - Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { - get: function () { - if (!this.__originalMappings) { - this.__generatedMappings = []; - this.__originalMappings = []; - this._parseMappings(this._mappings, this.sourceRoot); - } - - return this.__originalMappings; - } - }); - - SourceMapConsumer.prototype._nextCharIsMappingSeparator = - function SourceMapConsumer_nextCharIsMappingSeparator(aStr) { - var c = aStr.charAt(0); - return c === ";" || c === ","; - }; - - /** - * Parse the mappings in a string in to a data structure which we can easily - * query (the ordered arrays in the `this.__generatedMappings` and - * `this.__originalMappings` properties). - */ - SourceMapConsumer.prototype._parseMappings = - function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { - throw new Error("Subclasses must implement _parseMappings"); - }; - - SourceMapConsumer.GENERATED_ORDER = 1; - SourceMapConsumer.ORIGINAL_ORDER = 2; - - SourceMapConsumer.LEAST_UPPER_BOUND = 1; - SourceMapConsumer.GREATEST_LOWER_BOUND = 2; - - /** - * Iterate over each mapping between an original source/line/column and a - * generated line/column in this source map. - * - * @param Function aCallback - * The function that is called with each mapping. - * @param Object aContext - * Optional. If specified, this object will be the value of `this` every - * time that `aCallback` is called. - * @param aOrder - * Either `SourceMapConsumer.GENERATED_ORDER` or - * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to - * iterate over the mappings sorted by the generated file's line/column - * order or the original's source/line/column order, respectively. Defaults to - * `SourceMapConsumer.GENERATED_ORDER`. - */ - SourceMapConsumer.prototype.eachMapping = - function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { - var context = aContext || null; - var order = aOrder || SourceMapConsumer.GENERATED_ORDER; - - var mappings; - switch (order) { - case SourceMapConsumer.GENERATED_ORDER: - mappings = this._generatedMappings; - break; - case SourceMapConsumer.ORIGINAL_ORDER: - mappings = this._originalMappings; - break; - default: - throw new Error("Unknown order of iteration."); - } - - var sourceRoot = this.sourceRoot; - mappings.map(function (mapping) { - var source = mapping.source; - if (source != null && sourceRoot != null) { - source = util.join(sourceRoot, source); - } - return { - source: source, - generatedLine: mapping.generatedLine, - generatedColumn: mapping.generatedColumn, - originalLine: mapping.originalLine, - originalColumn: mapping.originalColumn, - name: mapping.name - }; - }).forEach(aCallback, context); - }; - - /** - * Returns all generated line and column information for the original source - * and line provided. The only argument is an object with the following - * properties: - * - * - source: The filename of the original source. - * - line: The line number in the original source. - * - * and an array of objects is returned, each with the following properties: - * - * - line: The line number in the generated source, or null. - * - column: The column number in the generated source, or null. - */ - SourceMapConsumer.prototype.allGeneratedPositionsFor = - function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { - var needle = { - source: util.getArg(aArgs, 'source'), - originalLine: util.getArg(aArgs, 'line'), - originalColumn: 0 - }; - - if (this.sourceRoot != null) { - needle.source = util.relative(this.sourceRoot, needle.source); - } - - var mappings = []; - - var index = this._findMapping(needle, - this._originalMappings, - "originalLine", - "originalColumn", - util.compareByOriginalPositions); - if (index >= 0) { - var mapping = this._originalMappings[index]; - - // Iterate until either we run out of mappings, or we run into - // a mapping for a different line. Since mappings are sorted, this is - // guaranteed to find all mappings for the line we are interested in. - while (mapping && mapping.originalLine === needle.originalLine) { - mappings.push({ - line: util.getArg(mapping, 'generatedLine', null), - column: util.getArg(mapping, 'generatedColumn', null), - lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) - }); - - mapping = this._originalMappings[++index]; - } - } - - return mappings; - }; - - exports.SourceMapConsumer = SourceMapConsumer; - -}); - -},{"./basic-source-map-consumer":26,"./indexed-source-map-consumer":28,"./util":33,"amdefine":7}],31:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var base64VLQ = require('./base64-vlq'); - var util = require('./util'); - var ArraySet = require('./array-set').ArraySet; - var MappingList = require('./mapping-list').MappingList; - - /** - * An instance of the SourceMapGenerator represents a source map which is - * being built incrementally. You may pass an object with the following - * properties: - * - * - file: The filename of the generated source. - * - sourceRoot: A root for all relative URLs in this source map. - */ - function SourceMapGenerator(aArgs) { - if (!aArgs) { - aArgs = {}; - } - this._file = util.getArg(aArgs, 'file', null); - this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); - this._skipValidation = util.getArg(aArgs, 'skipValidation', false); - this._sources = new ArraySet(); - this._names = new ArraySet(); - this._mappings = new MappingList(); - this._sourcesContents = null; - } - - SourceMapGenerator.prototype._version = 3; - - /** - * Creates a new SourceMapGenerator based on a SourceMapConsumer - * - * @param aSourceMapConsumer The SourceMap. - */ - SourceMapGenerator.fromSourceMap = - function SourceMapGenerator_fromSourceMap(aSourceMapConsumer) { - var sourceRoot = aSourceMapConsumer.sourceRoot; - var generator = new SourceMapGenerator({ - file: aSourceMapConsumer.file, - sourceRoot: sourceRoot - }); - aSourceMapConsumer.eachMapping(function (mapping) { - var newMapping = { - generated: { - line: mapping.generatedLine, - column: mapping.generatedColumn - } - }; - - if (mapping.source != null) { - newMapping.source = mapping.source; - if (sourceRoot != null) { - newMapping.source = util.relative(sourceRoot, newMapping.source); - } - - newMapping.original = { - line: mapping.originalLine, - column: mapping.originalColumn - }; - - if (mapping.name != null) { - newMapping.name = mapping.name; - } - } - - generator.addMapping(newMapping); - }); - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - generator.setSourceContent(sourceFile, content); - } - }); - return generator; - }; - - /** - * Add a single mapping from original source line and column to the generated - * source's line and column for this source map being created. The mapping - * object should have the following properties: - * - * - generated: An object with the generated line and column positions. - * - original: An object with the original line and column positions. - * - source: The original source file (relative to the sourceRoot). - * - name: An optional original token name for this mapping. - */ - SourceMapGenerator.prototype.addMapping = - function SourceMapGenerator_addMapping(aArgs) { - var generated = util.getArg(aArgs, 'generated'); - var original = util.getArg(aArgs, 'original', null); - var source = util.getArg(aArgs, 'source', null); - var name = util.getArg(aArgs, 'name', null); - - if (!this._skipValidation) { - this._validateMapping(generated, original, source, name); - } - - if (source != null && !this._sources.has(source)) { - this._sources.add(source); - } - - if (name != null && !this._names.has(name)) { - this._names.add(name); - } - - this._mappings.add({ - generatedLine: generated.line, - generatedColumn: generated.column, - originalLine: original != null && original.line, - originalColumn: original != null && original.column, - source: source, - name: name - }); - }; - - /** - * Set the source content for a source file. - */ - SourceMapGenerator.prototype.setSourceContent = - function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { - var source = aSourceFile; - if (this._sourceRoot != null) { - source = util.relative(this._sourceRoot, source); - } - - if (aSourceContent != null) { - // Add the source content to the _sourcesContents map. - // Create a new _sourcesContents map if the property is null. - if (!this._sourcesContents) { - this._sourcesContents = {}; - } - this._sourcesContents[util.toSetString(source)] = aSourceContent; - } else if (this._sourcesContents) { - // Remove the source file from the _sourcesContents map. - // If the _sourcesContents map is empty, set the property to null. - delete this._sourcesContents[util.toSetString(source)]; - if (Object.keys(this._sourcesContents).length === 0) { - this._sourcesContents = null; - } - } - }; - - /** - * Applies the mappings of a sub-source-map for a specific source file to the - * source map being generated. Each mapping to the supplied source file is - * rewritten using the supplied source map. Note: The resolution for the - * resulting mappings is the minimium of this map and the supplied map. - * - * @param aSourceMapConsumer The source map to be applied. - * @param aSourceFile Optional. The filename of the source file. - * If omitted, SourceMapConsumer's file property will be used. - * @param aSourceMapPath Optional. The dirname of the path to the source map - * to be applied. If relative, it is relative to the SourceMapConsumer. - * This parameter is needed when the two source maps aren't in the same - * directory, and the source map to be applied contains relative source - * paths. If so, those relative source paths need to be rewritten - * relative to the SourceMapGenerator. - */ - SourceMapGenerator.prototype.applySourceMap = - function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { - var sourceFile = aSourceFile; - // If aSourceFile is omitted, we will use the file property of the SourceMap - if (aSourceFile == null) { - if (aSourceMapConsumer.file == null) { - throw new Error( - 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + - 'or the source map\'s "file" property. Both were omitted.' - ); - } - sourceFile = aSourceMapConsumer.file; - } - var sourceRoot = this._sourceRoot; - // Make "sourceFile" relative if an absolute Url is passed. - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - // Applying the SourceMap can add and remove items from the sources and - // the names array. - var newSources = new ArraySet(); - var newNames = new ArraySet(); - - // Find mappings for the "sourceFile" - this._mappings.unsortedForEach(function (mapping) { - if (mapping.source === sourceFile && mapping.originalLine != null) { - // Check if it can be mapped by the source map, then update the mapping. - var original = aSourceMapConsumer.originalPositionFor({ - line: mapping.originalLine, - column: mapping.originalColumn - }); - if (original.source != null) { - // Copy mapping - mapping.source = original.source; - if (aSourceMapPath != null) { - mapping.source = util.join(aSourceMapPath, mapping.source) - } - if (sourceRoot != null) { - mapping.source = util.relative(sourceRoot, mapping.source); - } - mapping.originalLine = original.line; - mapping.originalColumn = original.column; - if (original.name != null) { - mapping.name = original.name; - } - } - } - - var source = mapping.source; - if (source != null && !newSources.has(source)) { - newSources.add(source); - } - - var name = mapping.name; - if (name != null && !newNames.has(name)) { - newNames.add(name); - } - - }, this); - this._sources = newSources; - this._names = newNames; - - // Copy sourcesContents of applied map. - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aSourceMapPath != null) { - sourceFile = util.join(aSourceMapPath, sourceFile); - } - if (sourceRoot != null) { - sourceFile = util.relative(sourceRoot, sourceFile); - } - this.setSourceContent(sourceFile, content); - } - }, this); - }; - - /** - * A mapping can have one of the three levels of data: - * - * 1. Just the generated position. - * 2. The Generated position, original position, and original source. - * 3. Generated and original position, original source, as well as a name - * token. - * - * To maintain consistency, we validate that any new mapping being added falls - * in to one of these categories. - */ - SourceMapGenerator.prototype._validateMapping = - function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, - aName) { - if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aGenerated.line > 0 && aGenerated.column >= 0 - && !aOriginal && !aSource && !aName) { - // Case 1. - return; - } - else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated - && aOriginal && 'line' in aOriginal && 'column' in aOriginal - && aGenerated.line > 0 && aGenerated.column >= 0 - && aOriginal.line > 0 && aOriginal.column >= 0 - && aSource) { - // Cases 2 and 3. - return; - } - else { - throw new Error('Invalid mapping: ' + JSON.stringify({ - generated: aGenerated, - source: aSource, - original: aOriginal, - name: aName - })); - } - }; - - /** - * Serialize the accumulated mappings in to the stream of base 64 VLQs - * specified by the source map format. - */ - SourceMapGenerator.prototype._serializeMappings = - function SourceMapGenerator_serializeMappings() { - var previousGeneratedColumn = 0; - var previousGeneratedLine = 1; - var previousOriginalColumn = 0; - var previousOriginalLine = 0; - var previousName = 0; - var previousSource = 0; - var result = ''; - var mapping; - - var mappings = this._mappings.toArray(); - - for (var i = 0, len = mappings.length; i < len; i++) { - mapping = mappings[i]; - - if (mapping.generatedLine !== previousGeneratedLine) { - previousGeneratedColumn = 0; - while (mapping.generatedLine !== previousGeneratedLine) { - result += ';'; - previousGeneratedLine++; - } - } - else { - if (i > 0) { - if (!util.compareByGeneratedPositions(mapping, mappings[i - 1])) { - continue; - } - result += ','; - } - } - - result += base64VLQ.encode(mapping.generatedColumn - - previousGeneratedColumn); - previousGeneratedColumn = mapping.generatedColumn; - - if (mapping.source != null) { - result += base64VLQ.encode(this._sources.indexOf(mapping.source) - - previousSource); - previousSource = this._sources.indexOf(mapping.source); - - // lines are stored 0-based in SourceMap spec version 3 - result += base64VLQ.encode(mapping.originalLine - 1 - - previousOriginalLine); - previousOriginalLine = mapping.originalLine - 1; - - result += base64VLQ.encode(mapping.originalColumn - - previousOriginalColumn); - previousOriginalColumn = mapping.originalColumn; - - if (mapping.name != null) { - result += base64VLQ.encode(this._names.indexOf(mapping.name) - - previousName); - previousName = this._names.indexOf(mapping.name); - } - } - } - - return result; - }; - - SourceMapGenerator.prototype._generateSourcesContent = - function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { - return aSources.map(function (source) { - if (!this._sourcesContents) { - return null; - } - if (aSourceRoot != null) { - source = util.relative(aSourceRoot, source); - } - var key = util.toSetString(source); - return Object.prototype.hasOwnProperty.call(this._sourcesContents, - key) - ? this._sourcesContents[key] - : null; - }, this); - }; - - /** - * Externalize the source map. - */ - SourceMapGenerator.prototype.toJSON = - function SourceMapGenerator_toJSON() { - var map = { - version: this._version, - sources: this._sources.toArray(), - names: this._names.toArray(), - mappings: this._serializeMappings() - }; - if (this._file != null) { - map.file = this._file; - } - if (this._sourceRoot != null) { - map.sourceRoot = this._sourceRoot; - } - if (this._sourcesContents) { - map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); - } - - return map; - }; - - /** - * Render the source map being generated to a string. - */ - SourceMapGenerator.prototype.toString = - function SourceMapGenerator_toString() { - return JSON.stringify(this.toJSON()); - }; - - exports.SourceMapGenerator = SourceMapGenerator; - -}); - -},{"./array-set":23,"./base64-vlq":24,"./mapping-list":29,"./util":33,"amdefine":7}],32:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; - var util = require('./util'); - - // Matches a Windows-style `\r\n` newline or a `\n` newline used by all other - // operating systems these days (capturing the result). - var REGEX_NEWLINE = /(\r?\n)/; - - // Newline character code for charCodeAt() comparisons - var NEWLINE_CODE = 10; - - // Private symbol for identifying `SourceNode`s when multiple versions of - // the source-map library are loaded. This MUST NOT CHANGE across - // versions! - var isSourceNode = "$$$isSourceNode$$$"; - - /** - * SourceNodes provide a way to abstract over interpolating/concatenating - * snippets of generated JavaScript source code while maintaining the line and - * column information associated with the original source code. - * - * @param aLine The original line number. - * @param aColumn The original column number. - * @param aSource The original source's filename. - * @param aChunks Optional. An array of strings which are snippets of - * generated JS, or other SourceNodes. - * @param aName The original identifier. - */ - function SourceNode(aLine, aColumn, aSource, aChunks, aName) { - this.children = []; - this.sourceContents = {}; - this.line = aLine == null ? null : aLine; - this.column = aColumn == null ? null : aColumn; - this.source = aSource == null ? null : aSource; - this.name = aName == null ? null : aName; - this[isSourceNode] = true; - if (aChunks != null) this.add(aChunks); - } - - /** - * Creates a SourceNode from generated code and a SourceMapConsumer. - * - * @param aGeneratedCode The generated code - * @param aSourceMapConsumer The SourceMap for the generated code - * @param aRelativePath Optional. The path that relative sources in the - * SourceMapConsumer should be relative to. - */ - SourceNode.fromStringWithSourceMap = - function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { - // The SourceNode we want to fill with the generated code - // and the SourceMap - var node = new SourceNode(); - - // All even indices of this array are one line of the generated code, - // while all odd indices are the newlines between two adjacent lines - // (since `REGEX_NEWLINE` captures its match). - // Processed fragments are removed from this array, by calling `shiftNextLine`. - var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); - var shiftNextLine = function() { - var lineContents = remainingLines.shift(); - // The last line of a file might not have a newline. - var newLine = remainingLines.shift() || ""; - return lineContents + newLine; - }; - - // We need to remember the position of "remainingLines" - var lastGeneratedLine = 1, lastGeneratedColumn = 0; - - // The generate SourceNodes we need a code range. - // To extract it current and last mapping is used. - // Here we store the last mapping. - var lastMapping = null; - - aSourceMapConsumer.eachMapping(function (mapping) { - if (lastMapping !== null) { - // We add the code from "lastMapping" to "mapping": - // First check if there is a new line in between. - if (lastGeneratedLine < mapping.generatedLine) { - var code = ""; - // Associate first line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - lastGeneratedLine++; - lastGeneratedColumn = 0; - // The remaining code is added without mapping - } else { - // There is no new line in between. - // Associate the code between "lastGeneratedColumn" and - // "mapping.generatedColumn" with "lastMapping" - var nextLine = remainingLines[0]; - var code = nextLine.substr(0, mapping.generatedColumn - - lastGeneratedColumn); - remainingLines[0] = nextLine.substr(mapping.generatedColumn - - lastGeneratedColumn); - lastGeneratedColumn = mapping.generatedColumn; - addMappingWithCode(lastMapping, code); - // No more remaining code, continue - lastMapping = mapping; - return; - } - } - // We add the generated code until the first mapping - // to the SourceNode without any mapping. - // Each line is added as separate string. - while (lastGeneratedLine < mapping.generatedLine) { - node.add(shiftNextLine()); - lastGeneratedLine++; - } - if (lastGeneratedColumn < mapping.generatedColumn) { - var nextLine = remainingLines[0]; - node.add(nextLine.substr(0, mapping.generatedColumn)); - remainingLines[0] = nextLine.substr(mapping.generatedColumn); - lastGeneratedColumn = mapping.generatedColumn; - } - lastMapping = mapping; - }, this); - // We have processed all mappings. - if (remainingLines.length > 0) { - if (lastMapping) { - // Associate the remaining code in the current line with "lastMapping" - addMappingWithCode(lastMapping, shiftNextLine()); - } - // and add the remaining lines without any mapping - node.add(remainingLines.join("")); - } - - // Copy sourcesContent into SourceNode - aSourceMapConsumer.sources.forEach(function (sourceFile) { - var content = aSourceMapConsumer.sourceContentFor(sourceFile); - if (content != null) { - if (aRelativePath != null) { - sourceFile = util.join(aRelativePath, sourceFile); - } - node.setSourceContent(sourceFile, content); - } - }); - - return node; - - function addMappingWithCode(mapping, code) { - if (mapping === null || mapping.source === undefined) { - node.add(code); - } else { - var source = aRelativePath - ? util.join(aRelativePath, mapping.source) - : mapping.source; - node.add(new SourceNode(mapping.originalLine, - mapping.originalColumn, - source, - code, - mapping.name)); - } - } - }; - - /** - * Add a chunk of generated JS to this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ - SourceNode.prototype.add = function SourceNode_add(aChunk) { - if (Array.isArray(aChunk)) { - aChunk.forEach(function (chunk) { - this.add(chunk); - }, this); - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - if (aChunk) { - this.children.push(aChunk); - } - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; - }; - - /** - * Add a chunk of generated JS to the beginning of this source node. - * - * @param aChunk A string snippet of generated JS code, another instance of - * SourceNode, or an array where each member is one of those things. - */ - SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { - if (Array.isArray(aChunk)) { - for (var i = aChunk.length-1; i >= 0; i--) { - this.prepend(aChunk[i]); - } - } - else if (aChunk[isSourceNode] || typeof aChunk === "string") { - this.children.unshift(aChunk); - } - else { - throw new TypeError( - "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk - ); - } - return this; - }; - - /** - * Walk over the tree of JS snippets in this node and its children. The - * walking function is called once for each snippet of JS and is passed that - * snippet and the its original associated source's line/column location. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walk = function SourceNode_walk(aFn) { - var chunk; - for (var i = 0, len = this.children.length; i < len; i++) { - chunk = this.children[i]; - if (chunk[isSourceNode]) { - chunk.walk(aFn); - } - else { - if (chunk !== '') { - aFn(chunk, { source: this.source, - line: this.line, - column: this.column, - name: this.name }); - } - } - } - }; - - /** - * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between - * each of `this.children`. - * - * @param aSep The separator. - */ - SourceNode.prototype.join = function SourceNode_join(aSep) { - var newChildren; - var i; - var len = this.children.length; - if (len > 0) { - newChildren = []; - for (i = 0; i < len-1; i++) { - newChildren.push(this.children[i]); - newChildren.push(aSep); - } - newChildren.push(this.children[i]); - this.children = newChildren; - } - return this; - }; - - /** - * Call String.prototype.replace on the very right-most source snippet. Useful - * for trimming whitespace from the end of a source node, etc. - * - * @param aPattern The pattern to replace. - * @param aReplacement The thing to replace the pattern with. - */ - SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { - var lastChild = this.children[this.children.length - 1]; - if (lastChild[isSourceNode]) { - lastChild.replaceRight(aPattern, aReplacement); - } - else if (typeof lastChild === 'string') { - this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); - } - else { - this.children.push(''.replace(aPattern, aReplacement)); - } - return this; - }; - - /** - * Set the source content for a source file. This will be added to the SourceMapGenerator - * in the sourcesContent field. - * - * @param aSourceFile The filename of the source file - * @param aSourceContent The content of the source file - */ - SourceNode.prototype.setSourceContent = - function SourceNode_setSourceContent(aSourceFile, aSourceContent) { - this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; - }; - - /** - * Walk over the tree of SourceNodes. The walking function is called for each - * source file content and is passed the filename and source content. - * - * @param aFn The traversal function. - */ - SourceNode.prototype.walkSourceContents = - function SourceNode_walkSourceContents(aFn) { - for (var i = 0, len = this.children.length; i < len; i++) { - if (this.children[i][isSourceNode]) { - this.children[i].walkSourceContents(aFn); - } - } - - var sources = Object.keys(this.sourceContents); - for (var i = 0, len = sources.length; i < len; i++) { - aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); - } - }; - - /** - * Return the string representation of this source node. Walks over the tree - * and concatenates all the various snippets together to one string. - */ - SourceNode.prototype.toString = function SourceNode_toString() { - var str = ""; - this.walk(function (chunk) { - str += chunk; - }); - return str; - }; - - /** - * Returns the string representation of this source node along with a source - * map. - */ - SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { - var generated = { - code: "", - line: 1, - column: 0 - }; - var map = new SourceMapGenerator(aArgs); - var sourceMappingActive = false; - var lastOriginalSource = null; - var lastOriginalLine = null; - var lastOriginalColumn = null; - var lastOriginalName = null; - this.walk(function (chunk, original) { - generated.code += chunk; - if (original.source !== null - && original.line !== null - && original.column !== null) { - if(lastOriginalSource !== original.source - || lastOriginalLine !== original.line - || lastOriginalColumn !== original.column - || lastOriginalName !== original.name) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - lastOriginalSource = original.source; - lastOriginalLine = original.line; - lastOriginalColumn = original.column; - lastOriginalName = original.name; - sourceMappingActive = true; - } else if (sourceMappingActive) { - map.addMapping({ - generated: { - line: generated.line, - column: generated.column - } - }); - lastOriginalSource = null; - sourceMappingActive = false; - } - for (var idx = 0, length = chunk.length; idx < length; idx++) { - if (chunk.charCodeAt(idx) === NEWLINE_CODE) { - generated.line++; - generated.column = 0; - // Mappings end at eol - if (idx + 1 === length) { - lastOriginalSource = null; - sourceMappingActive = false; - } else if (sourceMappingActive) { - map.addMapping({ - source: original.source, - original: { - line: original.line, - column: original.column - }, - generated: { - line: generated.line, - column: generated.column - }, - name: original.name - }); - } - } else { - generated.column++; - } - } - }); - this.walkSourceContents(function (sourceFile, sourceContent) { - map.setSourceContent(sourceFile, sourceContent); - }); - - return { code: generated.code, map: map }; - }; - - exports.SourceNode = SourceNode; - -}); - -},{"./source-map-generator":31,"./util":33,"amdefine":7}],33:[function(require,module,exports){ -/* -*- Mode: js; js-indent-level: 2; -*- */ -/* - * Copyright 2011 Mozilla Foundation and contributors - * Licensed under the New BSD license. See LICENSE or: - * http://opensource.org/licenses/BSD-3-Clause - */ -if (typeof define !== 'function') { - var define = require('amdefine')(module, require); -} -define(function (require, exports, module) { - - /** - * This is a helper function for getting values from parameter/options - * objects. - * - * @param args The object we are extracting values from - * @param name The name of the property we are getting. - * @param defaultValue An optional value to return if the property is missing - * from the object. If this is not specified and the property is missing, an - * error will be thrown. - */ - function getArg(aArgs, aName, aDefaultValue) { - if (aName in aArgs) { - return aArgs[aName]; - } else if (arguments.length === 3) { - return aDefaultValue; - } else { - throw new Error('"' + aName + '" is a required argument.'); - } - } - exports.getArg = getArg; - - var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/; - var dataUrlRegexp = /^data:.+\,.+$/; - - function urlParse(aUrl) { - var match = aUrl.match(urlRegexp); - if (!match) { - return null; - } - return { - scheme: match[1], - auth: match[2], - host: match[3], - port: match[4], - path: match[5] - }; - } - exports.urlParse = urlParse; - - function urlGenerate(aParsedUrl) { - var url = ''; - if (aParsedUrl.scheme) { - url += aParsedUrl.scheme + ':'; - } - url += '//'; - if (aParsedUrl.auth) { - url += aParsedUrl.auth + '@'; - } - if (aParsedUrl.host) { - url += aParsedUrl.host; - } - if (aParsedUrl.port) { - url += ":" + aParsedUrl.port - } - if (aParsedUrl.path) { - url += aParsedUrl.path; - } - return url; - } - exports.urlGenerate = urlGenerate; - - /** - * Normalizes a path, or the path portion of a URL: - * - * - Replaces consequtive slashes with one slash. - * - Removes unnecessary '.' parts. - * - Removes unnecessary '/..' parts. - * - * Based on code in the Node.js 'path' core module. - * - * @param aPath The path or url to normalize. - */ - function normalize(aPath) { - var path = aPath; - var url = urlParse(aPath); - if (url) { - if (!url.path) { - return aPath; - } - path = url.path; - } - var isAbsolute = (path.charAt(0) === '/'); - - var parts = path.split(/\/+/); - for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { - part = parts[i]; - if (part === '.') { - parts.splice(i, 1); - } else if (part === '..') { - up++; - } else if (up > 0) { - if (part === '') { - // The first part is blank if the path is absolute. Trying to go - // above the root is a no-op. Therefore we can remove all '..' parts - // directly after the root. - parts.splice(i + 1, up); - up = 0; - } else { - parts.splice(i, 2); - up--; - } - } - } - path = parts.join('/'); - - if (path === '') { - path = isAbsolute ? '/' : '.'; - } - - if (url) { - url.path = path; - return urlGenerate(url); - } - return path; - } - exports.normalize = normalize; - - /** - * Joins two paths/URLs. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be joined with the root. - * - * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a - * scheme-relative URL: Then the scheme of aRoot, if any, is prepended - * first. - * - Otherwise aPath is a path. If aRoot is a URL, then its path portion - * is updated with the result and aRoot is returned. Otherwise the result - * is returned. - * - If aPath is absolute, the result is aPath. - * - Otherwise the two paths are joined with a slash. - * - Joining for example 'http://' and 'www.example.com' is also supported. - */ - function join(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - if (aPath === "") { - aPath = "."; - } - var aPathUrl = urlParse(aPath); - var aRootUrl = urlParse(aRoot); - if (aRootUrl) { - aRoot = aRootUrl.path || '/'; - } - - // `join(foo, '//www.example.org')` - if (aPathUrl && !aPathUrl.scheme) { - if (aRootUrl) { - aPathUrl.scheme = aRootUrl.scheme; - } - return urlGenerate(aPathUrl); - } - - if (aPathUrl || aPath.match(dataUrlRegexp)) { - return aPath; - } - - // `join('http://', 'www.example.com')` - if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { - aRootUrl.host = aPath; - return urlGenerate(aRootUrl); - } - - var joined = aPath.charAt(0) === '/' - ? aPath - : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); - - if (aRootUrl) { - aRootUrl.path = joined; - return urlGenerate(aRootUrl); - } - return joined; - } - exports.join = join; - - /** - * Make a path relative to a URL or another path. - * - * @param aRoot The root path or URL. - * @param aPath The path or URL to be made relative to aRoot. - */ - function relative(aRoot, aPath) { - if (aRoot === "") { - aRoot = "."; - } - - aRoot = aRoot.replace(/\/$/, ''); - - // XXX: It is possible to remove this block, and the tests still pass! - var url = urlParse(aRoot); - if (aPath.charAt(0) == "/" && url && url.path == "/") { - return aPath.slice(1); - } - - return aPath.indexOf(aRoot + '/') === 0 - ? aPath.substr(aRoot.length + 1) - : aPath; - } - exports.relative = relative; - - /** - * Because behavior goes wacky when you set `__proto__` on objects, we - * have to prefix all the strings in our set with an arbitrary character. - * - * See https://github.com/mozilla/source-map/pull/31 and - * https://github.com/mozilla/source-map/issues/30 - * - * @param String aStr - */ - function toSetString(aStr) { - return '$' + aStr; - } - exports.toSetString = toSetString; - - function fromSetString(aStr) { - return aStr.substr(1); - } - exports.fromSetString = fromSetString; - - function strcmp(aStr1, aStr2) { - var s1 = aStr1 || ""; - var s2 = aStr2 || ""; - return (s1 > s2) - (s1 < s2); - } - - /** - * Comparator between two mappings where the original positions are compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same original source/line/column, but different generated - * line and column the same. Useful when searching for a mapping with a - * stubbed out mapping. - */ - function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { - var cmp; - - cmp = strcmp(mappingA.source, mappingB.source); - if (cmp) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp || onlyCompareOriginal) { - return cmp; - } - - cmp = strcmp(mappingA.name, mappingB.name); - if (cmp) { - return cmp; - } - - cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp) { - return cmp; - } - - return mappingA.generatedColumn - mappingB.generatedColumn; - }; - exports.compareByOriginalPositions = compareByOriginalPositions; - - /** - * Comparator between two mappings where the generated positions are - * compared. - * - * Optionally pass in `true` as `onlyCompareGenerated` to consider two - * mappings with the same generated line and column, but different - * source/name/original line and column the same. Useful when searching for a - * mapping with a stubbed out mapping. - */ - function compareByGeneratedPositions(mappingA, mappingB, onlyCompareGenerated) { - var cmp; - - cmp = mappingA.generatedLine - mappingB.generatedLine; - if (cmp) { - return cmp; - } - - cmp = mappingA.generatedColumn - mappingB.generatedColumn; - if (cmp || onlyCompareGenerated) { - return cmp; - } - - cmp = strcmp(mappingA.source, mappingB.source); - if (cmp) { - return cmp; - } - - cmp = mappingA.originalLine - mappingB.originalLine; - if (cmp) { - return cmp; - } - - cmp = mappingA.originalColumn - mappingB.originalColumn; - if (cmp) { - return cmp; - } - - return strcmp(mappingA.name, mappingB.name); - }; - exports.compareByGeneratedPositions = compareByGeneratedPositions; - -}); - -},{"amdefine":7}],"livescript":[function(require,module,exports){ -// Generated by LiveScript 1.4.0 +require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o