diff --git a/DreamBeanFinal/appmanifest.json b/DreamBeanFinal/appmanifest.json new file mode 100644 index 0000000..e195385 --- /dev/null +++ b/DreamBeanFinal/appmanifest.json @@ -0,0 +1,41 @@ +{ + "name": "Dream Bean", + "short_name": "Dream Bean", + "description": "", + "start_url": "index.html", + "display": "fullscreen", + "orientation": "landscape", + "background_color": "#ffffff", + "icons": [ + { + "src": "icons/icon-16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "icons/icon-32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "icons/icon-64.png", + "sizes": "64x64", + "type": "image/png" + }, + { + "src": "icons/icon-128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "icons/icon-256.png", + "sizes": "256x256", + "type": "image/png" + }, + { + "src": "icons/icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} \ No newline at end of file diff --git a/DreamBeanFinal/data.json b/DreamBeanFinal/data.json new file mode 100644 index 0000000..f1b6191 --- /dev/null +++ b/DreamBeanFinal/data.json @@ -0,0 +1 @@ +{"project":["Dream Bean",null,[[0,false,true,true,true,true,true,true,true,false],[5,true,false,false,false,false,false,false,false,false],[6,false,true,true,true,true,true,true,true,false],[8,false,true,true,true,false,false,false,false,false],[9,true,false,false,false,false,false,false,false,false],[11,false,true,true,false,true,true,true,true,true],[12,true,false,false,false,false,false,false,false,false]],[["colission",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,104321403549865,[["images/shared-0-sheet5.png",5475,35,84,32,32,1,-0.8823529411764706,1.8970588235294117,[],[0.9117647058823529,-0.9264705882352939,0.9117647058823529,-1.8676470588235294,1.8529411764705883,-1.8676470588235294,1.8529411764705883,-0.9264705882352939],0],["images/shared-0-sheet5.png",5475,1,78,32,32,1,1.8970588235294117,1.8823529411764706,[],[-0.9264705882352939,-0.9117647058823528,-1.8676470588235294,-0.9117647058823528,-1.8676470588235294,-1.8529411764705883,-0.9264705882352939,-1.8529411764705883],0]]]],[["Solid",1,633083308257678]],false,false,784214790312695,[],null],["PlayerBox",0,false,[[859799322583503,2],[142883168819130,2],[989402629887761,0]],2,0,null,[["Animation 1",5,false,1,0,false,861034216514490,[["images/shared-0-sheet3.png",4480,35,1,32,64,1,0.5,1,[],[],0]]]],[["Platform",2,378961437779163],["ScrollTo",3,387656692442802]],false,false,976102481953151,[],null],["Mugsy",0,false,[],1,0,null,[["idle",3,true,1,0,false,898520931422952,[["images/mugsy-sheet2.png",1579,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.6033333333333334,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet3.png",1606,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.5700000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet2.png",1579,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.6100000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet3.png",1606,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.5700000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet2.png",1579,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.5700000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet3.png",1606,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.5700000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet2.png",1579,0,0,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.5700000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0],["images/mugsy-sheet1.png",5964,129,129,100,100,1,0.16,0.99,[],[-0.16,-0.5900000000000001,0.12666666666666668,-0.5700000000000001,0.14666666666666664,0.010000000000000009,-0.16,0.010000000000000009],0]]],["walk",10,false,1,0,false,229635463345263,[["images/mugsy-sheet1.png",5964,1,129,100,100,1,0.64,1,[],[],0],["images/mugsy-sheet1.png",5964,129,1,100,100,1,0.64,1,[],[],0],["images/mugsy-sheet1.png",5964,1,1,100,100,1,0.64,1,[],[],0],["images/mugsy-sheet0.png",5989,129,129,100,100,1,0.64,1,[],[],0]]],["jump",5,false,1,0,false,320203316741103,[["images/mugsy-sheet0.png",5989,1,129,100,100,1,0.59,0.94,[],[],0],["images/mugsy-sheet0.png",5989,129,1,100,100,1,0.59,0.94,[],[],0]]],["wall",5,false,1,0,false,709740125811591,[["images/mugsy-sheet0.png",5989,1,1,100,100,1,0.59,0.78,[],[],0]]]],[["Flash",4,797770236831324]],false,false,445182127627308,[],null],["Keyboard",5,false,[],0,0,null,null,[],false,false,272426530749370,[],null,[]],["slime",0,false,[[231787554714055,2]],2,0,null,[["idle",5,false,1,0,false,823211409996530,[["images/shared-0-sheet5.png",5475,65,20,50,28,1,0.5,1,[],[],0],["images/shared-0-sheet5.png",5475,1,20,50,28,1,0.5,1,[],[],0]]],["walk",5,false,1,0,false,928122506120978,[["images/shared-0-sheet5.png",5475,1,50,51,26,1,0.5,1,[],[],0]]],["death",5,false,1,0,false,671771778254023,[["images/shared-0-sheet6.png",716,0,0,59,12,1,0.5,1,[],[],0]]]],[["Platform",2,537793510154977],["Flash",4,728604995282593]],false,false,846270407662579,[],null],["goRight",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,231851783452708,[["images/shared-0-sheet2.png",3353,1,1,64,64,1,0,0,[],[0.015625,0,1,0,1,1,0.015625,1],0]]]],[],false,false,568766883950811,[],null],["goLeft",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,595706740096919,[["images/shared-0-sheet2.png",3353,1,1,64,64,1,0,0,[],[],0]]]],[],false,false,596625580505189,[],null],["Health",6,false,[],0,0,null,null,[],false,false,797726157054067,[],null],["dirt_solid",0,false,[],1,0,null,[["Animation 1",0,false,1,0,false,318219084947321,[["images/dirt_solid-sheet1.png",1682,1,1,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet1.png",1682,1,35,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet1.png",1682,1,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,69,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,35,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,1,69,32,32,1,0,1,[],[1,-1,1,0,1,0,0,-1,0,-1],0],["images/dirt_solid-sheet0.png",3093,69,35,32,32,1,1,0,[],[-1,1,-1,0,-1,0,0,1,0,1],0],["images/dirt_solid-sheet0.png",3093,35,35,32,32,1,1,1,[],[-1,-1,0,-1,0,-1,-1,0,-1,0],0],["images/dirt_solid-sheet0.png",3093,1,35,32,32,1,0,0,[],[1,1,0,1,0,1,1,0,1,0],0],["images/dirt_solid-sheet0.png",3093,69,1,32,32,1,1,1,[],[0,0,-1,0,-1,-1,0,-1],0],["images/dirt_solid-sheet0.png",3093,35,1,32,32,1,0,1,[],[0,0,0,-1,1,-1,1,0],0],["images/dirt_solid-sheet0.png",3093,1,1,32,32,1,1,0,[],[0,0,0,1,-1,1,-1,0],0]]]],[["Solid",1,395394270773179]],false,false,889467623423282,[],null],["hide_border",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,887337392694274,[["images/shared-0-sheet5.png",5475,69,84,32,32,1,0,0,[],[],0]]]],[],false,false,745442128657038,[],null],["wall",0,false,[],1,0,null,[["Animation 1",5,false,1,0,false,515446095473779,[["images/shared-0-sheet0.png",437130,1025,1793,250,250,1,0,0,[],[],0]]]],[["Solid",1,137774677204747]],false,false,764046765822387,[],null],["customerTalk",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,689833582883704,[["images/shared-0-sheet0.png",437130,1,1793,250,250,1,0,0,[],[],0]]]],[],false,false,651258953412671,[],null],["customer",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,318346644094732,[["images/shared-0-sheet3.png",4480,69,1,31,61,1,0.8064516129032258,0.4098360655737705,[],[],0]]],["damien",5,false,1,0,false,864896291331029,[["images/shared-0-sheet1.png",5575,209,193,37,59,1,0.21621621621621623,0.7627118644067796,[],[0.7837837837837838,0.23728813559322037,-0.21621621621621623,0.23728813559322037,-0.21621621621621623,-0.7627118644067796,0.7837837837837838,-0.7627118644067796],0]]]],[],false,false,938724820172740,[],null],["coffeeBox",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,155089747339165,[["images/shared-0-sheet0.png",437130,1793,1793,250,250,1,0,0,[],[],0]]]],[],false,false,415529547620951,[],null],["Door",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,829255006615582,[["images/shared-0-sheet0.png",437130,1537,1793,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,730158052670379,[],null],["coffee",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,790154490795292,[["images/shared-0-sheet0.png",437130,1281,1793,250,250,1,0,0,[],[],0]]]],[],false,false,322234948744815,[],null],["Dan",0,false,[],0,0,null,[["Animation 1",5,true,1,0,false,838342867454239,[["images/shared-0-sheet3.png",4480,1,67,44,42,1,1.1363636363636365,-0.21428571428571427,[],[-1.1363636363636365,0.21428571428571427,-0.13636363636363646,0.21428571428571427,-0.13636363636363646,1.1904761904761905,-1.1363636363636365,1.1904761904761905],0],["images/shared-0-sheet4.png",1011,0,0,44,42,1,1.1363636363636365,-0.21428571428571427,[],[-1.1363636363636365,0.21428571428571427,-0.13636363636363646,0.21428571428571427,-0.13636363636363646,1.1904761904761905,-1.1363636363636365,1.1904761904761905],0]]],["damien",5,true,1,0,false,259458938862309,[["images/shared-0-sheet2.png",3353,67,1,55,42,1,0.9090909090909091,-0.21428571428571427,[],[-0.9090909090909091,0.21428571428571427,0.09090909090909094,0.21428571428571427,0.09090909090909094,1.1904761904761905,-0.9090909090909091,1.1904761904761905],0],["images/shared-0-sheet2.png",3353,67,65,55,42,1,0.9090909090909091,-0.21428571428571427,[],[-0.9090909090909091,0.21428571428571427,0.09090909090909094,0.21428571428571427,0.09090909090909094,1.1904761904761905,-0.9090909090909091,1.1904761904761905],0]]]],[],false,false,347979258043186,[],null],["SpeechBubble",0,false,[[232893458468439,0]],0,0,null,[["Animation 1",5,false,1,0,false,240504385153527,[["images/shared-0-sheet5.png",5475,1,1,85,17,1,0.49411764705882355,2.0588235294117645,[],[],0]]]],[],false,false,656344087070065,[],null],["Instructions",6,false,[],0,0,null,null,[],false,false,744865934690306,[],null],["Spotlight_UH_Moonlight_UH",0,false,[[164908682946555,2]],1,0,null,[["right",2,true,1,0,false,885582826869046,[["images/shared-0-sheet0.png",437130,1025,1281,500,250,1,0.5,0.5,[],[-0.20599999999999996,-0.2919999999999999,0.08599999999999974,-0.308,0.1459999999999999,0.3799999999999999,-0.19000000000000006,0.3959999999999999],0],["images/shared-0-sheet0.png",437130,1025,1025,500,250,1,0.5,0.5,[],[-0.18599999999999994,-0.28400000000000003,0.08599999999999974,-0.308,0.1459999999999999,0.3799999999999999,-0.19000000000000006,0.3959999999999999],0]]]],[["8Direction",7,505345707908517]],false,false,516571604846174,[],null],["goUp",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,361788086717913,[["images/shared-0-sheet2.png",3353,1,1,64,64,1,0,0,[],[0,0.984375,0,0,1,0,1,0.984375],0]]]],[],false,false,461633476526284,[],null],["goDown",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,639196612976041,[["images/shared-0-sheet2.png",3353,1,1,64,64,1,0,0,[],[1,0.015625,1,1,0,1,0,0.015625],0]]]],[],false,false,329869061889910,[],null],["Spike",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,423481480759285,[["images/shared-0-sheet0.png",437130,1375,1,625,324,1,0.5008,1.0030864197530864,[],[-0.38720000000000004,-1.0030864197530864,0.4191999999999989,-1,0.4992,-0.0030864197530864335,-0.5008,-0.0030864197530864335],0],["images/shared-0-sheet0.png",437130,257,1537,136,308,1,0,1.0064935064935066,[],[0.41176470588235276,-0.9902597402597403,0.5441176470588241,-0.9935064935064936,1,-0.009740259740259827,0,-0.009740259740259827],0]]]],[],false,false,540780363996174,[],null],["DeathPit",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,708728606791960,[["images/shared-0-sheet0.png",437130,513,1793,250,250,1,0,0,[],[],0]]]],[],false,false,315841444242680,[],null],["dirt_hiding",0,false,[],0,0,null,[["Animation 1",0,false,1,0,false,269780962791827,[["images/dirt_solid-sheet1.png",1682,1,1,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet1.png",1682,1,35,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet1.png",1682,1,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,69,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,1,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,69,35,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,35,35,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,1,35,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,69,1,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,35,69,32,32,1,0,0,[],[],0],["images/dirt_solid-sheet0.png",3093,1,1,32,32,1,1,0,[],[0,1,-1,1,-1,0,0,0],0],["images/dirt_solid-sheet0.png",3093,35,1,32,32,1,0,0,[],[],0],["images/dirt_hiding-sheet0.png",155,0,0,32,32,1,1,0,[],[0,1,-1,1,-1,0,0,0],0]]]],[],false,false,870490256580066,[],null],["ghosts",0,false,[[946188418596717,0],[998784216122778,2]],1,0,null,[["Animation 1",2,true,1,0,false,220866457381492,[["images/shared-0-sheet5.png",5475,88,50,32,32,1,0.5,0.5,[],[-0.41666666666666663,-0.4375,0.11458333333333326,-0.4322916666666667,0.44270833333333326,0.39583333333333326,-0.28125,0.4010416666666664],0],["images/shared-0-sheet5.png",5475,54,50,32,32,1,0.5,0.5,[],[-0.41666666666666663,-0.4375,0.11458333333333326,-0.4322916666666667,0.44270833333333326,0.39583333333333326,-0.28125,0.4010416666666664],0]]]],[["Platform",2,895483543067776]],false,false,132863732547923,[],null],["BG",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,706076322204718,[["images/shared-0-sheet0.png",437130,1,1,640,359,1,0.5015625,0.5041782729805014,[],[-0.5,-0.5041782729805014,0.4984375,-0.5041782729805014,0.4984375,0.49582172701949856,-0.5,0.49582172701949856],0]]]],[],false,false,169499091117062,[],null],["NameInput",8,false,[],0,0,null,null,[],false,false,554744665353536,[],null],["StartScreenGUI",6,false,[],0,0,null,null,[],false,false,953115274294747,[],null],["star",0,false,[],0,0,null,[["Animation 1",5,true,1,0,false,572256929423392,[["images/shared-0-sheet0.png",437130,769,1537,250,250,1,0.5,0.5,[],[],0],["images/shared-0-sheet0.png",437130,1,1537,250,250,1,0.5,0.5,[],[],0],["images/shared-0-sheet0.png",437130,1793,1281,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,740783737577078,[],null],["startButtonPretty",0,false,[[274160828612668,0]],0,0,null,[["idle",5,false,1,0,false,704112567713377,[["images/shared-0-sheet1.png",5575,1,193,132,48,1,0.5,0.5,[],[],0]]],["hover",5,false,1,0,false,856057269852902,[["images/shared-0-sheet1.png",5575,1,129,134,50,1,0.5,0.5,[],[],0]]]],[],false,false,656674386823058,[],null],["Go",6,false,[],0,0,null,null,[],false,false,420783261682816,[],null],["Player",0,false,[[792175876504681,0],[870376803632097,0],[230421598071170,0],[669723670606363,0],[931526294539019,2],[668130283995055,0],[183464092364182,0],[268703028338842,0]],1,0,null,[["idle",5,false,1,0,false,882652812388586,[["images/player-sheet0.png",175656,513,1537,140,377,1,0.5,0.9921671018276762,[],[-0.5,-0.9921671018276762,0.5,-0.9921671018276762,0.5,0.005180378278424547,-0.5,0.005180378278424547],0]]],["idleCoffee",5,false,1,0,false,369117789670252,[["images/player-sheet0.png",175656,257,1537,183,377,1,0.5,0.9921671018276762,[],[-0.5,-0.9921671018276762,0.5,-0.9921671018276762,0.5,0.005180378278424547,-0.5,0.005180378278424547],0]]],["walkCoffee",8,true,1,0,false,690562343419907,[["images/player-sheet0.png",175656,1,1537,240,383,1,0.5,0.9921671018276762,[],[-0.5,-0.9921671018276762,0.5,-0.9921671018276762,0.5,0.005221932114882533,-0.5,0.005221932114882533],0],["images/player-sheet0.png",175656,1609,1537,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1207,1537,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,805,1537,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,403,1025,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1,1025,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1609,1025,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1207,1025,400,400,1,0.5,0.9921671018276762,[],[],0]]],["walk",8,true,1,0,false,326541993983607,[["images/player-sheet0.png",175656,805,1025,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,403,513,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1,513,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1609,513,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1207,513,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,805,513,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1537,1,400,400,1,0.5,0.9921671018276762,[],[],0],["images/player-sheet0.png",175656,1025,1,400,400,1,0.5,0.9921671018276762,[],[],0]]]],[["Platform",2,622558115988693]],false,false,382547775007658,[],null],["Dialogue",6,false,[[631341072225321,1],[231725670274048,0]],0,0,null,null,[],false,false,601609357170663,[],null],["Mouse",9,false,[],0,0,null,null,[],false,false,190756697195840,[],null,[]],["Bed",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,388577436170305,[["images/shared-0-sheet1.png",5575,129,1,100,100,1,0.5,0.5,[],[],0]]]],[],false,false,608195525257939,[],null],["Shop1_BG",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,818063546241642,[["images/shared-0-sheet0.png",437130,1,647,552,283,1,0.5,0.5,[],[],0]]],["shop2",5,false,1,0,false,641077247181629,[["images/shared-0-sheet0.png",437130,1109,612,552,283,1,0.5,0.5,[],[],0]]],["shop3",5,false,1,0,false,244072363663126,[["images/shared-0-sheet0.png",437130,643,286,730,283,1,0.5,0.5,[],[],0]]]],[],false,false,830296107971829,[],null],["shop1_FG",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,348473653682887,[["images/shared-0-sheet0.png",437130,555,571,552,283,1,0.5,0.5,[],[],0]]],["shop2",5,false,1,0,false,167206920796114,[["images/shared-0-sheet0.png",437130,1,362,552,283,1,0.5,0.5,[],[],0]]],["shop3",5,false,1,0,false,336366476273225,[["images/shared-0-sheet0.png",437130,643,1,730,283,1,0.5,0.5,[],[],0]]]],[],false,false,431704742515435,[],null],["Lights",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,403579698740303,[["images/shared-0-sheet0.png",437130,1375,327,552,283,1,0.5,0.5,[],[],0]]]],[],false,false,597993267205150,[],null],["Text",6,false,[],0,0,null,null,[],false,false,407542109771467,[],null],["cloud",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,520326493422504,[["images/shared-0-sheet1.png",5575,137,103,96,64,1,1,1,[],[0,-1,0,0,-1,0,-1,-1],0]]]],[],false,false,400536662148383,[],null],["tree",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,999289943477712,[["images/shared-0-sheet3.png",4480,1,1,32,64,1,0,0,[],[],0]]]],[],false,false,712282965924108,[],null],["bush",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,238451897092714,[["images/shared-0-sheet1.png",5575,137,169,70,70,1,0,0,[],[],0]]]],[],false,false,787886068259664,[],null],["wind",0,false,[],0,0,null,[["Animation 1",5,true,1,0,false,139037063191772,[["images/shared-0-sheet0.png",437130,1537,1537,500,250,1,0.5,0.5,[],[],0],["images/shared-0-sheet0.png",437130,1025,1537,500,250,1,0.5,0.5,[],[],0],["images/shared-0-sheet0.png",437130,513,1281,500,250,1,0.5,0.5,[],[],0],["images/shared-0-sheet0.png",437130,1,1281,500,250,1,0.5,0.5,[],[],0]]]],[],false,false,153258934363460,[],null],["MugsyHeadShot",0,false,[],0,0,null,[["talk",5,true,1,0,false,221215380298823,[["images/shared-0-sheet2.png",3353,1,67,45,42,1,1.1111111111111112,-0.21428571428571427,[],[-1.1111111111111112,0.21428571428571427,-0.11111111111111116,0.21428571428571427,-0.11111111111111116,1.1904761904761905,-1.1111111111111112,1.1904761904761905],0],["images/shared-0-sheet3.png",4480,69,65,45,42,1,1.1111111111111112,-0.21428571428571427,[],[-1.1111111111111112,0.21428571428571427,-0.11111111111111116,0.21428571428571427,-0.11111111111111116,1.1904761904761905,-1.1111111111111112,1.1904761904761905],0]]]],[],false,false,244441808396999,[],null],["FadeBlack",0,false,[],1,0,null,[["Animation 1",5,false,1,0,false,875993440196656,[["images/shared-0-sheet0.png",437130,1793,1025,250,250,1,0.5,0.5,[],[],0]]]],[["Fade",10,592591358681644]],true,false,258122469434032,[],null],["DeathParticles",11,false,[],0,0,["images/shared-0-sheet1.png",5575,0,1,1,125,115],null,[],true,false,716731583158980,[],null],["Audio",12,false,[],0,0,null,null,[],false,false,574825926017928,[],null,[0,0,false,0,1,1,600,600,10000,1]],["shopSoundTrigger",0,false,[],0,0,null,[["Animation 1",5,false,1,0,false,869868550075250,[["images/shared-0-sheet0.png",437130,769,1793,250,250,1,0.5,0.5,[],[],0]]]],[],false,false,977508167714526,[],null],["Controls",6,false,[],0,0,null,null,[],false,false,161023313053775,[],null]],[],[["MainMenu",1708,960,false,"ShopEventSheet",545856511230642,[["Layer 0",0,983534878557152,true,[94,94,94],false,1,1,1,false,false,1,0,0,[[[428,242,0,857.3654260629644,480.92841868219426,0,0,[1,1,1,1],0.5015625,0.5041782729805014,0,0,[]],26,1165,[],[],[true,"Animation 1",0,true]],[[411,382,0,150,22,0,0,[1,1,1,1],0,0,0,0,[]],27,1285,[],[],["","","",true,true,false,false,0,true,""]],[[387,349,0,200,30,0,0,[1,1,1,1],0,0,0,0,[]],28,1286,[],[],["who are you?",true,"Copperplate",15,0,false,false,[0.2823529411764706,0.37254901960784315,0.5490196078431373],1,1,0,true,0]],[[639,118,0,82.94576541331088,82.94576541331088,0,0,[1,1,1,1],0.5,0.5,0,0,[]],29,1287,[],[],[true,"Animation 1",0,true]],[[487,436,0,132,48,0,0,[1,1,1,1],0.5,0.5,0,0,[]],30,1288,[0],[],[true,"idle",0,true]],[[386,420,0,200,30,0,0,[1,1,1,1],0,0,0,0,[]],31,1289,[],[],["enter",true,"Futura",12,0,false,false,[0.9725490196078431,0.9647058823529412,1],1,1,0,true,0]],[[34,392,0,324.7039166229951,68.57747060999128,0,0,[1,1,1,1],0,0,0,0,[]],49,1089,[],[],["Movement: up, down, left, right\nAir dash: space\nSpace to interact with objects and customers",true,"Optima",12,0,false,false,[0.8509803921568627,0.5725490196078431,0.7372549019607844],0,0,0,true,0]],[[574.4990911752263,416.60060681805226,0,269.0805869062635,54.22306294115731,0,0,[1,1,1,1],0,0,0,0,[]],49,1091,[],[],["A game by: Serafina Cordero, Mackenzie Fox and Eric Laputka\nDMD 2500 - Ken Thompson - May 10th, 2019",true,"Optima",10,0,false,false,[0.8509803921568627,0.5725490196078431,0.7372549019607844],0,0,0,true,0]]],[],0]],[],[]],["Testworld",2048,480,false,"PlatformerEventSheet",441370156476261,[["Collision",0,497362029787747,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[96,416,0,32,64,0,0,[1,1,1,1],0.5,1,0,0,[]],1,6,["idle","right",0],[[270,1300,1300,600,1300,1000,false,0,true,true],[true]],[false,"Animation 1",0,true]],[[96,416,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,14,[],[[]],[true,"idle",0,true]],[[0,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,16,[],[[true,""]],[true,"Animation 1",3,true]],[[32,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,17,[],[[true,""]],[true,"Animation 1",0,true]],[[64,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,18,[],[[true,""]],[true,"Animation 1",0,true]],[[96,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,116,[],[[true,""]],[true,"Animation 1",0,true]],[[0,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,117,[],[[true,""]],[true,"Animation 1",0,true]],[[32,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,118,[],[[true,""]],[true,"Animation 1",3,true]],[[64,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,119,[],[[true,""]],[true,"Animation 1",3,true]],[[96,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,120,[],[[true,""]],[true,"Animation 1",3,true]],[[128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,121,[],[[true,""]],[true,"Animation 1",0,true]],[[192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,122,[],[[true,""]],[true,"Animation 1",0,true]],[[224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,123,[],[[true,""]],[true,"Animation 1",0,true]],[[256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,124,[],[[true,""]],[true,"Animation 1",0,true]],[[160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,125,[],[[true,""]],[true,"Animation 1",0,true]],[[288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,126,[],[[true,""]],[true,"Animation 1",0,true]],[[352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,127,[],[[true,""]],[true,"Animation 1",0,true]],[[384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,128,[],[[true,""]],[true,"Animation 1",0,true]],[[320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,129,[],[[true,""]],[true,"Animation 1",0,true]],[[416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,131,[],[[true,""]],[true,"Animation 1",4,true]],[[128,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,135,[],[[true,""]],[true,"Animation 1",3,true]],[[160,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,136,[],[[true,""]],[true,"Animation 1",3,true]],[[192,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,137,[],[[true,""]],[true,"Animation 1",3,true]],[[224,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,138,[],[[true,""]],[true,"Animation 1",3,true]],[[288,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,139,[],[[true,""]],[true,"Animation 1",3,true]],[[352,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,140,[],[[true,""]],[true,"Animation 1",3,true]],[[320,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,141,[],[[true,""]],[true,"Animation 1",3,true]],[[256,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,142,[],[[true,""]],[true,"Animation 1",3,true]],[[448,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,143,[],[[true,""]],[true,"Animation 1",3,true]],[[416,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,145,[],[[true,""]],[true,"Animation 1",3,true]],[[384,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,146,[],[[true,""]],[true,"Animation 1",3,true]],[[544,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,158,[],[[true,""]],[true,"Animation 1",0,true]],[[576,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,159,[],[[true,""]],[true,"Animation 1",0,true]],[[608,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,160,[],[[true,""]],[true,"Animation 1",0,true]],[[512,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,161,[],[[true,""]],[true,"Animation 1",0,true]],[[640,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,162,[],[[true,""]],[true,"Animation 1",0,true]],[[704,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,163,[],[[true,""]],[true,"Animation 1",0,true]],[[672,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,164,[],[[true,""]],[true,"Animation 1",0,true]],[[768,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,165,[],[[true,""]],[true,"Animation 1",0,true]],[[800,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,166,[],[[true,""]],[true,"Animation 1",0,true]],[[832,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,167,[],[[true,""]],[true,"Animation 1",0,true]],[[736,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,168,[],[[true,""]],[true,"Animation 1",0,true]],[[864,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,169,[],[[true,""]],[true,"Animation 1",0,true]],[[928,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,170,[],[[true,""]],[true,"Animation 1",0,true]],[[896,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,171,[],[[true,""]],[true,"Animation 1",0,true]],[[608,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,192,[],[[true,""]],[true,"Animation 1",3,true]],[[544,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,193,[],[[true,""]],[true,"Animation 1",3,true]],[[576,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,194,[],[[true,""]],[true,"Animation 1",3,true]],[[512,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,195,[],[[true,""]],[true,"Animation 1",3,true]],[[480,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,196,[],[[true,""]],[true,"Animation 1",3,true]],[[800,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,197,[],[[true,""]],[true,"Animation 1",3,true]],[[736,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,198,[],[[true,""]],[true,"Animation 1",3,true]],[[768,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,199,[],[[true,""]],[true,"Animation 1",3,true]],[[704,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,200,[],[[true,""]],[true,"Animation 1",3,true]],[[672,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,201,[],[[true,""]],[true,"Animation 1",3,true]],[[928,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,211,[],[[true,""]],[true,"Animation 1",3,true]],[[864,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,212,[],[[true,""]],[true,"Animation 1",3,true]],[[896,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,213,[],[[true,""]],[true,"Animation 1",3,true]],[[832,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,214,[],[[true,""]],[true,"Animation 1",3,true]],[[640,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,219,[],[[true,""]],[true,"Animation 1",3,true]],[[896,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,2,[],[[true,""]],[true,"Animation 1",9,true]],[[928,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,3,[],[[true,""]],[true,"Animation 1",9,true]],[[672,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,4,[],[[true,""]],[true,"Animation 1",9,true]],[[608,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,5,[],[[true,""]],[true,"Animation 1",9,true]],[[640,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,7,[],[[true,""]],[true,"Animation 1",9,true]],[[768,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,8,[],[[true,""]],[true,"Animation 1",9,true]],[[704,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,9,[],[[true,""]],[true,"Animation 1",9,true]],[[736,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,10,[],[[true,""]],[true,"Animation 1",9,true]],[[864,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,11,[],[[true,""]],[true,"Animation 1",9,true]],[[800,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,12,[],[[true,""]],[true,"Animation 1",9,true]],[[832,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,13,[],[[true,""]],[true,"Animation 1",9,true]],[[576,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,19,[],[[true,""]],[true,"Animation 1",9,true]],[[512,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,20,[],[[true,""]],[true,"Animation 1",9,true]],[[544,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,21,[],[[true,""]],[true,"Animation 1",9,true]],[[480,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,22,[],[[true,""]],[true,"Animation 1",9,true]],[[416,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,23,[],[[true,""]],[true,"Animation 1",9,true]],[[448,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,24,[],[[true,""]],[true,"Animation 1",9,true]],[[384,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,25,[],[[true,""]],[true,"Animation 1",9,true]],[[320,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,26,[],[[true,""]],[true,"Animation 1",9,true]],[[352,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,27,[],[[true,""]],[true,"Animation 1",9,true]],[[288,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,28,[],[[true,""]],[true,"Animation 1",9,true]],[[224,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,29,[],[[true,""]],[true,"Animation 1",9,true]],[[256,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,30,[],[[true,""]],[true,"Animation 1",9,true]],[[192,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,31,[],[[true,""]],[true,"Animation 1",9,true]],[[128,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,32,[],[[true,""]],[true,"Animation 1",9,true]],[[160,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,33,[],[[true,""]],[true,"Animation 1",9,true]],[[96,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,34,[],[[true,""]],[true,"Animation 1",9,true]],[[32,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,35,[],[[true,""]],[true,"Animation 1",9,true]],[[64,160,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,36,[],[[true,""]],[true,"Animation 1",9,true]],[[96,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,37,[],[[true,""]],[true,"Animation 1",3,true]],[[32,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,39,[],[[true,""]],[true,"Animation 1",3,true]],[[64,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,40,[],[[true,""]],[true,"Animation 1",3,true]],[[0,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,41,[],[[true,""]],[true,"Animation 1",3,true]],[[96,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,42,[],[[true,""]],[true,"Animation 1",3,true]],[[32,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,43,[],[[true,""]],[true,"Animation 1",3,true]],[[64,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,44,[],[[true,""]],[true,"Animation 1",3,true]],[[0,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,45,[],[[true,""]],[true,"Animation 1",3,true]],[[96,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,46,[],[[true,""]],[true,"Animation 1",3,true]],[[32,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,47,[],[[true,""]],[true,"Animation 1",3,true]],[[64,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,48,[],[[true,""]],[true,"Animation 1",3,true]],[[0,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,49,[],[[true,""]],[true,"Animation 1",3,true]],[[96,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,50,[],[[true,""]],[true,"Animation 1",3,true]],[[32,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,51,[],[[true,""]],[true,"Animation 1",3,true]],[[64,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,52,[],[[true,""]],[true,"Animation 1",3,true]],[[0,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,53,[],[[true,""]],[true,"Animation 1",3,true]],[[224,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,54,[],[[true,""]],[true,"Animation 1",3,true]],[[160,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,55,[],[[true,""]],[true,"Animation 1",3,true]],[[192,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,56,[],[[true,""]],[true,"Animation 1",3,true]],[[128,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,57,[],[[true,""]],[true,"Animation 1",3,true]],[[224,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,58,[],[[true,""]],[true,"Animation 1",3,true]],[[160,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,59,[],[[true,""]],[true,"Animation 1",3,true]],[[192,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,60,[],[[true,""]],[true,"Animation 1",3,true]],[[128,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,61,[],[[true,""]],[true,"Animation 1",3,true]],[[224,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,62,[],[[true,""]],[true,"Animation 1",3,true]],[[160,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,63,[],[[true,""]],[true,"Animation 1",3,true]],[[192,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,64,[],[[true,""]],[true,"Animation 1",3,true]],[[128,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,65,[],[[true,""]],[true,"Animation 1",3,true]],[[224,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,66,[],[[true,""]],[true,"Animation 1",3,true]],[[160,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,67,[],[[true,""]],[true,"Animation 1",3,true]],[[192,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,68,[],[[true,""]],[true,"Animation 1",3,true]],[[128,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,69,[],[[true,""]],[true,"Animation 1",3,true]],[[352,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,70,[],[[true,""]],[true,"Animation 1",3,true]],[[288,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,71,[],[[true,""]],[true,"Animation 1",3,true]],[[320,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,72,[],[[true,""]],[true,"Animation 1",3,true]],[[256,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,73,[],[[true,""]],[true,"Animation 1",3,true]],[[352,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,74,[],[[true,""]],[true,"Animation 1",3,true]],[[288,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,75,[],[[true,""]],[true,"Animation 1",3,true]],[[320,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,76,[],[[true,""]],[true,"Animation 1",3,true]],[[256,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,77,[],[[true,""]],[true,"Animation 1",3,true]],[[352,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,78,[],[[true,""]],[true,"Animation 1",3,true]],[[288,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,79,[],[[true,""]],[true,"Animation 1",3,true]],[[320,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,80,[],[[true,""]],[true,"Animation 1",3,true]],[[256,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,81,[],[[true,""]],[true,"Animation 1",3,true]],[[352,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,82,[],[[true,""]],[true,"Animation 1",3,true]],[[288,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,83,[],[[true,""]],[true,"Animation 1",3,true]],[[320,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,84,[],[[true,""]],[true,"Animation 1",3,true]],[[256,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,85,[],[[true,""]],[true,"Animation 1",3,true]],[[480,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,86,[],[[true,""]],[true,"Animation 1",3,true]],[[416,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,87,[],[[true,""]],[true,"Animation 1",3,true]],[[448,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,88,[],[[true,""]],[true,"Animation 1",3,true]],[[384,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,89,[],[[true,""]],[true,"Animation 1",3,true]],[[480,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,90,[],[[true,""]],[true,"Animation 1",3,true]],[[416,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,91,[],[[true,""]],[true,"Animation 1",3,true]],[[448,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,92,[],[[true,""]],[true,"Animation 1",3,true]],[[384,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,93,[],[[true,""]],[true,"Animation 1",3,true]],[[480,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,94,[],[[true,""]],[true,"Animation 1",3,true]],[[416,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,95,[],[[true,""]],[true,"Animation 1",3,true]],[[448,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,96,[],[[true,""]],[true,"Animation 1",3,true]],[[384,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,97,[],[[true,""]],[true,"Animation 1",3,true]],[[480,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,98,[],[[true,""]],[true,"Animation 1",3,true]],[[416,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,99,[],[[true,""]],[true,"Animation 1",3,true]],[[448,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,100,[],[[true,""]],[true,"Animation 1",3,true]],[[384,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,101,[],[[true,""]],[true,"Animation 1",3,true]],[[608,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,102,[],[[true,""]],[true,"Animation 1",3,true]],[[544,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,103,[],[[true,""]],[true,"Animation 1",3,true]],[[576,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,104,[],[[true,""]],[true,"Animation 1",3,true]],[[512,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,105,[],[[true,""]],[true,"Animation 1",3,true]],[[608,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,106,[],[[true,""]],[true,"Animation 1",3,true]],[[544,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,107,[],[[true,""]],[true,"Animation 1",3,true]],[[576,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,108,[],[[true,""]],[true,"Animation 1",3,true]],[[512,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,109,[],[[true,""]],[true,"Animation 1",3,true]],[[608,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,110,[],[[true,""]],[true,"Animation 1",3,true]],[[544,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,111,[],[[true,""]],[true,"Animation 1",3,true]],[[576,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,112,[],[[true,""]],[true,"Animation 1",3,true]],[[512,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,113,[],[[true,""]],[true,"Animation 1",3,true]],[[608,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,114,[],[[true,""]],[true,"Animation 1",3,true]],[[544,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,115,[],[[true,""]],[true,"Animation 1",3,true]],[[576,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,223,[],[[true,""]],[true,"Animation 1",3,true]],[[512,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,224,[],[[true,""]],[true,"Animation 1",3,true]],[[736,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,225,[],[[true,""]],[true,"Animation 1",3,true]],[[672,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,226,[],[[true,""]],[true,"Animation 1",3,true]],[[704,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,227,[],[[true,""]],[true,"Animation 1",3,true]],[[640,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,228,[],[[true,""]],[true,"Animation 1",3,true]],[[736,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,229,[],[[true,""]],[true,"Animation 1",3,true]],[[672,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,230,[],[[true,""]],[true,"Animation 1",3,true]],[[704,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,231,[],[[true,""]],[true,"Animation 1",3,true]],[[640,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,232,[],[[true,""]],[true,"Animation 1",3,true]],[[736,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,233,[],[[true,""]],[true,"Animation 1",3,true]],[[672,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,234,[],[[true,""]],[true,"Animation 1",3,true]],[[704,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,235,[],[[true,""]],[true,"Animation 1",3,true]],[[640,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,236,[],[[true,""]],[true,"Animation 1",3,true]],[[736,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,237,[],[[true,""]],[true,"Animation 1",3,true]],[[672,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,238,[],[[true,""]],[true,"Animation 1",3,true]],[[704,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,239,[],[[true,""]],[true,"Animation 1",3,true]],[[640,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,240,[],[[true,""]],[true,"Animation 1",3,true]],[[864,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,241,[],[[true,""]],[true,"Animation 1",3,true]],[[800,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,242,[],[[true,""]],[true,"Animation 1",3,true]],[[832,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,243,[],[[true,""]],[true,"Animation 1",3,true]],[[768,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,244,[],[[true,""]],[true,"Animation 1",3,true]],[[864,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,245,[],[[true,""]],[true,"Animation 1",3,true]],[[800,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,246,[],[[true,""]],[true,"Animation 1",3,true]],[[832,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,247,[],[[true,""]],[true,"Animation 1",3,true]],[[768,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,248,[],[[true,""]],[true,"Animation 1",3,true]],[[864,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,249,[],[[true,""]],[true,"Animation 1",3,true]],[[800,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,250,[],[[true,""]],[true,"Animation 1",3,true]],[[832,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,251,[],[[true,""]],[true,"Animation 1",3,true]],[[768,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,252,[],[[true,""]],[true,"Animation 1",3,true]],[[864,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,253,[],[[true,""]],[true,"Animation 1",3,true]],[[800,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,254,[],[[true,""]],[true,"Animation 1",3,true]],[[832,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,255,[],[[true,""]],[true,"Animation 1",3,true]],[[768,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,256,[],[[true,""]],[true,"Animation 1",3,true]],[[896,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,259,[],[[true,""]],[true,"Animation 1",3,true]],[[928,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,260,[],[[true,""]],[true,"Animation 1",3,true]],[[896,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,263,[],[[true,""]],[true,"Animation 1",3,true]],[[928,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,264,[],[[true,""]],[true,"Animation 1",3,true]],[[896,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,267,[],[[true,""]],[true,"Animation 1",3,true]],[[928,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,268,[],[[true,""]],[true,"Animation 1",3,true]],[[896,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,271,[],[[true,""]],[true,"Animation 1",3,true]],[[928,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,272,[],[[true,""]],[true,"Animation 1",3,true]],[[992,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,281,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,282,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,283,[],[[true,""]],[true,"Animation 1",3,true]],[[960,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,284,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,286,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,270,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,273,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,275,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,277,[],[[true,""]],[true,"Animation 1",0,true]],[[1248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,278,[],[[true,""]],[true,"Animation 1",0,true]],[[1216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,279,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,287,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,288,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,289,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,290,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,291,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,292,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,293,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,294,[],[[true,""]],[true,"Animation 1",9,true]],[[992,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,298,[],[[true,""]],[true,"Animation 1",3,true]],[[960,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,299,[],[[true,""]],[true,"Animation 1",3,true]],[[992,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,300,[],[[true,""]],[true,"Animation 1",3,true]],[[960,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,301,[],[[true,""]],[true,"Animation 1",3,true]],[[992,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,302,[],[[true,""]],[true,"Animation 1",3,true]],[[960,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,303,[],[[true,""]],[true,"Animation 1",3,true]],[[992,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,304,[],[[true,""]],[true,"Animation 1",3,true]],[[960,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,305,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,306,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,307,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,308,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,309,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,310,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,311,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,312,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,313,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,314,[],[[true,""]],[true,"Animation 1",9,true]],[[1152,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,315,[],[[true,""]],[true,"Animation 1",9,true]],[[1184,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,316,[],[[true,""]],[true,"Animation 1",9,true]],[[1120,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,317,[],[[true,""]],[true,"Animation 1",9,true]],[[1120,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,318,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,319,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,320,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,321,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,322,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,323,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,324,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,325,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,326,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,327,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,328,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,329,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,330,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,331,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,332,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,333,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,334,[],[[true,""]],[true,"Animation 1",9,true]],[[1280,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,335,[],[[true,""]],[true,"Animation 1",9,true]],[[1312,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,336,[],[[true,""]],[true,"Animation 1",9,true]],[[1248,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,337,[],[[true,""]],[true,"Animation 1",9,true]],[[1248,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,338,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,339,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,340,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,341,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,342,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,343,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,344,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,345,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,346,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,347,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,348,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,349,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,350,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,351,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,352,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,353,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,354,[],[[true,""]],[true,"Animation 1",9,true]],[[1408,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,355,[],[[true,""]],[true,"Animation 1",9,true]],[[1440,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,356,[],[[true,""]],[true,"Animation 1",9,true]],[[1376,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,357,[],[[true,""]],[true,"Animation 1",9,true]],[[1376,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,358,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,359,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,360,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,361,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,362,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,363,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,364,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,365,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,366,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,367,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,368,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,369,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,370,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,371,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,372,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,373,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,374,[],[[true,""]],[true,"Animation 1",9,true]],[[1536,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,375,[],[[true,""]],[true,"Animation 1",9,true]],[[1568,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,376,[],[[true,""]],[true,"Animation 1",9,true]],[[1504,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,377,[],[[true,""]],[true,"Animation 1",9,true]],[[1504,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,378,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,379,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,380,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,381,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,382,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,383,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,384,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,385,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,386,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,387,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,388,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,389,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,390,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,391,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,392,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,393,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,394,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,395,[],[[true,""]],[true,"Animation 1",0,true]],[[1344,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,396,[],[[true,""]],[true,"Animation 1",0,true]],[[1376,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,397,[],[[true,""]],[true,"Animation 1",0,true]],[[1408,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,398,[],[[true,""]],[true,"Animation 1",0,true]],[[1472,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,399,[],[[true,""]],[true,"Animation 1",0,true]],[[1440,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,400,[],[[true,""]],[true,"Animation 1",0,true]],[[1312,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,401,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,402,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,403,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,404,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,405,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,406,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,407,[],[[true,""]],[true,"Animation 1",0,true]],[[1504,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,408,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,409,[],[[true,""]],[true,"Animation 1",0,true]],[[1568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,410,[],[[true,""]],[true,"Animation 1",0,true]],[[1600,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,411,[],[[true,""]],[true,"Animation 1",0,true]],[[1632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,412,[],[[true,""]],[true,"Animation 1",0,true]],[[1696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,413,[],[[true,""]],[true,"Animation 1",0,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,414,[],[[true,""]],[true,"Animation 1",0,true]],[[1536,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,415,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,416,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,417,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,418,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,419,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,420,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,421,[],[[true,""]],[true,"Animation 1",0,true]],[[1728,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,422,[],[[true,""]],[true,"Animation 1",9,true]],[[1664,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,423,[],[[true,""]],[true,"Animation 1",9,true]],[[1696,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,424,[],[[true,""]],[true,"Animation 1",9,true]],[[1632,288,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,425,[],[[true,""]],[true,"Animation 1",9,true]],[[1632,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,426,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,427,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,428,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,429,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,430,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,431,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,432,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,433,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,434,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,435,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,436,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,437,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,438,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,439,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,440,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,441,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,442,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,443,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,444,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,445,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,446,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,447,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,448,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,449,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,450,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,451,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,452,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,453,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,454,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,455,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,456,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,457,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,458,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,459,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,460,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,461,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,462,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,463,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,464,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,465,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,466,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,467,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,468,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,469,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,470,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,471,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,472,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,473,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,474,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,475,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,476,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,477,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,478,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,479,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,480,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,481,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,482,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,483,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,484,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,485,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,486,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,487,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,488,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,489,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,490,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,491,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,492,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,493,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,494,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,495,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,496,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,497,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,498,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,499,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,500,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,501,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,502,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,503,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,504,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,505,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,506,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,507,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,508,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,509,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,510,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,511,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,512,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,513,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,514,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,515,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,516,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,517,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,518,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,519,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,520,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,521,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,0,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,522,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,32,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,523,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,96,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,524,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,525,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,288,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,526,[],[[true,""]],[true,"Animation 1",5,true]],[[992,256,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,527,[],[[true,""]],[true,"Animation 1",5,true]],[[960,224,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,528,[],[[true,""]],[true,"Animation 1",5,true]],[[928,192,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,529,[],[[true,""]],[true,"Animation 1",5,true]],[[1024,256,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,1,[],[[true,""]],[true,"Animation 1",10,true]],[[992,224,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,295,[],[[true,""]],[true,"Animation 1",10,true]],[[960,192,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,296,[],[[true,""]],[true,"Animation 1",10,true]],[[928,160,0,32,32,0,0,[1,1,1,1],0,1,0,0,[]],8,297,[],[[true,""]],[true,"Animation 1",10,true]],[[992,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,530,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,531,[],[[true,""]],[true,"Animation 1",3,true]],[[960,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,532,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,533,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,534,[],[[true,""]],[true,"Animation 1",3,true]],[[992,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,535,[],[[true,""]],[true,"Animation 1",3,true]],[[416,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,38,[],[],[true,"Animation 1",0,true]],[[448,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,130,[],[],[true,"Animation 1",0,true]],[[992,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,132,[],[],[true,"Animation 1",0,true]],[[1024,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],9,133,[],[],[true,"Animation 1",0,true]],[[128,416,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,182,[],[[]],[true,"idle",0,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,183,[],[[true,""]],[true,"Animation 1",0,true]],[[160,416,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,184,[],[[]],[true,"idle",0,true]],[[1760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,185,[],[[true,""]],[true,"Animation 1",0,true]],[[224,416,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,186,[],[[]],[true,"idle",0,true]],[[1824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,221,[],[[true,""]],[true,"Animation 1",0,true]],[[192,416,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,540,[],[[]],[true,"idle",0,true]],[[1792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,541,[],[[true,""]],[true,"Animation 1",0,true]],[[256,416,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,542,[],[[]],[true,"idle",0,true]],[[1856,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,543,[],[[true,""]],[true,"Animation 1",0,true]],[[256,384,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,544,[],[[]],[true,"idle",0,true]],[[1856,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,545,[],[[true,""]],[true,"Animation 1",0,true]],[[256,352,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,546,[],[[]],[true,"idle",0,true]],[[1856,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,547,[],[[true,""]],[true,"Animation 1",0,true]],[[256,320,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,548,[],[[]],[true,"idle",0,true]],[[1856,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,549,[],[[true,""]],[true,"Animation 1",0,true]],[[256,288,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,550,[],[[]],[true,"idle",0,true]],[[1856,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,551,[],[[true,""]],[true,"Animation 1",0,true]],[[256,256,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,552,[],[[]],[true,"idle",0,true]],[[1856,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,553,[],[[true,""]],[true,"Animation 1",0,true]],[[256,224,0,100,100,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,554,[],[[]],[true,"idle",0,true]],[[1856,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,555,[],[[true,""]],[true,"Animation 1",0,true]],[[1952,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,556,[],[[true,""]],[true,"Animation 1",0,true]],[[1984,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,557,[],[[true,""]],[true,"Animation 1",0,true]],[[2016,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,558,[],[[true,""]],[true,"Animation 1",0,true]],[[608,224,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,577,[],[],[true,"Animation 1",0,true]],[[896,224,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,578,[],[],[true,"Animation 1",0,true]],[[899,260,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,579,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[608,320,0,64,32,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,580,[],[],[true,"Animation 1",0,true]],[[1888,416,0,160,64,0,0,[1,1,1,1],0,0,0,0,[]],23,581,[],[],[true,"Animation 1",0,true]],[[1887,182,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,582,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[1856,192,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,583,[],[],[true,"Animation 1",0,true]],[[1856,-32,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],21,584,[],[],[true,"Animation 1",0,true]]],[],0]],[],[]],["ShopScene",1120,960,false,"ShopEventSheet",428496195191086,[["Layer 0",0,180603769883998,true,[255,255,255],false,1,1,1,false,false,1,0,0,[[[560,256,0,1120,576,0,0,[1,1,1,1],0.5,0.5,0,0,[]],36,177,[],[],[true,"Animation 1",0,true]],[[54,256,0,64,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],14,566,[],[],[false,"Animation 1",0,true]],[[927,224,0,96,96,0,0,[1,1,1,1],0,0,0,0,[]],13,565,[],[],[false,"Animation 1",0,true]],[[589,210,0,109,96,0,0,[1,1,1,1],0,0,0,0,[]],11,560,[],[],[false,"Animation 1",0,true]],[[646,251,0,63.83397831667485,106.79791730479002,0,0,[1,1,1,1],0.8064516129032258,0.4098360655737705,0,0,[]],12,561,[],[],[true,"Animation 1",0,true]],[[-74,0,0,96,608,0,0,[1,1,1,1],0,0,0,0,[]],10,562,[],[[true,""]],[false,"Animation 1",0,true]],[[0,320,0,1184,288,0,0,[1,1,1,1],0,0,0,0,[]],10,563,[],[[true,""]],[false,"Animation 1",0,true]],[[1038,0,0,128,608,0,0,[1,1,1,1],0,0,0,0,[]],10,564,[],[[true,""]],[false,"Animation 1",0,true]],[[73,320,0,37.93194365473557,99.48930046446749,0,0,[1,1,1,1],0.5,0.9921671018276762,0,0,[]],32,567,[0,0,0,0,"right",0,0,0],[[330,1500,1500,0,1500,1000,false,0,true,true]],[true,"idle",0,true]]],[],0],["Foreground",1,183802891418485,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[561.0158023711176,254.60606960512104,0,1117.3468828153157,572.8426953564027,0,0,[1,1,1,1],0.5,0.5,0,0,[]],37,537,[],[],[true,"Animation 1",0,true]],[[559.2150123384358,256.68631973148064,0,1116.4300246768717,572.3726394629613,0,0,[1,1,1,1],0.5,0.5,0,0,[]],38,538,[],[],[true,"Animation 1",0,true]],[[960.2963097821414,251.67178606003523,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],15,568,[],[],[true,"Animation 1",0,true]]],[],0],["GUI",2,331711995119717,true,[94,94,94],true,0,0,1,false,false,1,0,0,[[[484.1031390008157,607.2912140575913,0,696.3306384540319,119.18373254225862,0,0,[1,1,1,1],0.49411764705882355,2.0588235294117645,0,0,[]],17,570,[0],[],[false,"Animation 1",0,true]],[[188,375,0,640,64,0,0,[1,1,1,1],0,0,0,0,[]],33,571,[0,0],[],["Jamie: \"Can I have some coffee?\"",true,"Optima",15,0,false,false,[0.5411764705882353,0.2627450980392157,0.40784313725490196],0,1,0,false,0]],[[196,296,0,162.505979025535,155.11934361528338,0,0,[1,1,1,1],1.1363636363636365,-0.21428571428571427,0,0,[]],16,572,[],[],[false,"Animation 1",0,true]],[[190,435,0,640,32,0,0,[1,1,1,1],0,0,0,0,[]],18,573,[],[],["Use the arrow keys to move. Press space to talk to a customer. Press Enter to continue.",true,"Optima",12,0,false,false,[0.7686274509803922,0.40784313725490196,0.5333333333333333],0,0,0,true,0]],[[200,296,0,171.01691645648893,159.61578869272302,0,0,[1,1,1,1],1.1111111111111112,-0.21428571428571427,0,0,[]],44,1410,[],[],[false,"talk",0,true]]],[],0],["FadeScreen",3,622165481247004,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[548.5,299,0,1303,834,0,0,[1,1,1,1],0.5,0.5,0,0,[]],45,1411,[],[[0,0,1,false,true]],[true,"Animation 1",0,true]]],[],0]],[],[]],["Level 1",5150,960,false,"PlatformerEventSheet",719602835953255,[["Background",0,753863469070091,true,[148,142,192],false,1,1,1,false,false,1,0,0,[[[736,128,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1311,[],[],[true,"Animation 1",0,true]],[[2336,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1312,[],[],[true,"Animation 1",0,true]],[[512,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1313,[],[],[true,"Animation 1",0,true]],[[928,192,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1314,[],[],[true,"Animation 1",0,true]],[[1600,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1315,[],[],[true,"Animation 1",0,true]],[[3072,160,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1316,[],[],[true,"Animation 1",0,true]],[[3264,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1317,[],[],[true,"Animation 1",0,true]],[[3584,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1318,[],[],[true,"Animation 1",0,true]],[[4224,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1319,[],[],[true,"Animation 1",0,true]],[[1792,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1320,[],[],[true,"Animation 1",0,true]],[[4128,128,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1321,[],[],[true,"Animation 1",0,true]],[[4832,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1322,[],[],[true,"Animation 1",0,true]],[[4992,160,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1323,[],[],[true,"Animation 1",0,true]],[[2208,96,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1405,[],[],[true,"Animation 1",0,true]],[[1120,160,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1406,[],[],[true,"Animation 1",0,true]],[[3360,224,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1407,[],[],[true,"Animation 1",0,true]],[[3872,96,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1408,[],[],[true,"Animation 1",0,true]],[[4896,256,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1409,[],[],[true,"Animation 1",0,true]]],[],0],["Collision",1,145458714839329,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[0,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,574,[],[[true,""]],[true,"Animation 1",0,true]],[[0,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,575,[],[[true,""]],[true,"Animation 1",3,true]],[[64,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,576,[],[[true,""]],[true,"Animation 1",0,true]],[[64,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,585,[],[[true,""]],[true,"Animation 1",3,true]],[[32,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,586,[],[[true,""]],[true,"Animation 1",0,true]],[[32,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,587,[],[[true,""]],[true,"Animation 1",3,true]],[[160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,588,[],[[true,""]],[true,"Animation 1",0,true]],[[160,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,589,[],[[true,""]],[true,"Animation 1",3,true]],[[96,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,590,[],[[true,""]],[true,"Animation 1",0,true]],[[96,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,591,[],[[true,""]],[true,"Animation 1",3,true]],[[128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,592,[],[[true,""]],[true,"Animation 1",0,true]],[[128,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,593,[],[[true,""]],[true,"Animation 1",3,true]],[[192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,594,[],[[true,""]],[true,"Animation 1",0,true]],[[192,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,595,[],[[true,""]],[true,"Animation 1",3,true]],[[256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,596,[],[[true,""]],[true,"Animation 1",0,true]],[[256,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,597,[],[[true,""]],[true,"Animation 1",3,true]],[[224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,598,[],[[true,""]],[true,"Animation 1",0,true]],[[224,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,599,[],[[true,""]],[true,"Animation 1",3,true]],[[352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,600,[],[[true,""]],[true,"Animation 1",0,true]],[[352,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,601,[],[[true,""]],[true,"Animation 1",3,true]],[[288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,602,[],[[true,""]],[true,"Animation 1",0,true]],[[288,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,603,[],[[true,""]],[true,"Animation 1",3,true]],[[320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,604,[],[[true,""]],[true,"Animation 1",0,true]],[[320,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,605,[],[[true,""]],[true,"Animation 1",3,true]],[[384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,606,[],[[true,""]],[true,"Animation 1",0,true]],[[384,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,607,[],[[true,""]],[true,"Animation 1",3,true]],[[448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,608,[],[[true,""]],[true,"Animation 1",0,true]],[[448,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,609,[],[[true,""]],[true,"Animation 1",3,true]],[[416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,610,[],[[true,""]],[true,"Animation 1",0,true]],[[416,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,611,[],[[true,""]],[true,"Animation 1",3,true]],[[544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,612,[],[[true,""]],[true,"Animation 1",0,true]],[[544,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,613,[],[[true,""]],[true,"Animation 1",3,true]],[[480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,614,[],[[true,""]],[true,"Animation 1",0,true]],[[480,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,615,[],[[true,""]],[true,"Animation 1",3,true]],[[512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,616,[],[[true,""]],[true,"Animation 1",0,true]],[[512,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,617,[],[[true,""]],[true,"Animation 1",3,true]],[[576,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,618,[],[[true,""]],[true,"Animation 1",0,true]],[[576,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,619,[],[[true,""]],[true,"Animation 1",3,true]],[[640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,620,[],[[true,""]],[true,"Animation 1",0,true]],[[640,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,621,[],[[true,""]],[true,"Animation 1",3,true]],[[608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,622,[],[[true,""]],[true,"Animation 1",0,true]],[[608,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,623,[],[[true,""]],[true,"Animation 1",3,true]],[[736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,624,[],[[true,""]],[true,"Animation 1",0,true]],[[736,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,625,[],[[true,""]],[true,"Animation 1",3,true]],[[672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,626,[],[[true,""]],[true,"Animation 1",0,true]],[[672,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,627,[],[[true,""]],[true,"Animation 1",3,true]],[[704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,628,[],[[true,""]],[true,"Animation 1",0,true]],[[704,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,629,[],[[true,""]],[true,"Animation 1",3,true]],[[768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,630,[],[[true,""]],[true,"Animation 1",0,true]],[[768,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,631,[],[[true,""]],[true,"Animation 1",3,true]],[[832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,632,[],[[true,""]],[true,"Animation 1",0,true]],[[832,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,633,[],[[true,""]],[true,"Animation 1",3,true]],[[800,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,634,[],[[true,""]],[true,"Animation 1",0,true]],[[800,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,635,[],[[true,""]],[true,"Animation 1",3,true]],[[928,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,636,[],[[true,""]],[true,"Animation 1",0,true]],[[928,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,637,[],[[true,""]],[true,"Animation 1",3,true]],[[864,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,638,[],[[true,""]],[true,"Animation 1",0,true]],[[864,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,639,[],[[true,""]],[true,"Animation 1",3,true]],[[896,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,640,[],[[true,""]],[true,"Animation 1",0,true]],[[896,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,641,[],[[true,""]],[true,"Animation 1",3,true]],[[960,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,642,[],[[true,""]],[true,"Animation 1",0,true]],[[960,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,643,[],[[true,""]],[true,"Animation 1",3,true]],[[1024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,644,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,645,[],[[true,""]],[true,"Animation 1",3,true]],[[992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,646,[],[[true,""]],[true,"Animation 1",0,true]],[[992,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,647,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,648,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,649,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,650,[],[[true,""]],[true,"Animation 1",0,true]],[[1056,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,651,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,653,[],[[true,""]],[true,"Animation 1",3,true]],[[1152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,654,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,655,[],[[true,""]],[true,"Animation 1",3,true]],[[1216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,656,[],[[true,""]],[true,"Animation 1",0,true]],[[1216,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,657,[],[[true,""]],[true,"Animation 1",3,true]],[[1184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,658,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,659,[],[[true,""]],[true,"Animation 1",3,true]],[[1312,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,660,[],[[true,""]],[true,"Animation 1",0,true]],[[1312,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,661,[],[[true,""]],[true,"Animation 1",3,true]],[[1248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,662,[],[[true,""]],[true,"Animation 1",0,true]],[[1248,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,663,[],[[true,""]],[true,"Animation 1",3,true]],[[1280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,664,[],[[true,""]],[true,"Animation 1",0,true]],[[1280,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,665,[],[[true,""]],[true,"Animation 1",3,true]],[[1344,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,666,[],[[true,""]],[true,"Animation 1",0,true]],[[1344,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,667,[],[[true,""]],[true,"Animation 1",3,true]],[[1408,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,668,[],[[true,""]],[true,"Animation 1",0,true]],[[1408,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,669,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,670,[],[[true,""]],[true,"Animation 1",0,true]],[[1376,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,671,[],[[true,""]],[true,"Animation 1",3,true]],[[1504,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,672,[],[[true,""]],[true,"Animation 1",0,true]],[[1504,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,673,[],[[true,""]],[true,"Animation 1",3,true]],[[1440,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,674,[],[[true,""]],[true,"Animation 1",0,true]],[[1440,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,675,[],[[true,""]],[true,"Animation 1",3,true]],[[1472,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,676,[],[[true,""]],[true,"Animation 1",0,true]],[[1472,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,677,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,678,[],[[true,""]],[true,"Animation 1",0,true]],[[1536,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,679,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,680,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,681,[],[[true,""]],[true,"Animation 1",0,true]],[[1568,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,682,[],[[true,""]],[true,"Animation 1",3,true]],[[1696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,683,[],[[true,""]],[true,"Animation 1",0,true]],[[1696,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,684,[],[[true,""]],[true,"Animation 1",3,true]],[[1632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,685,[],[[true,""]],[true,"Animation 1",0,true]],[[1632,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,686,[],[[true,""]],[true,"Animation 1",3,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,687,[],[[true,""]],[true,"Animation 1",0,true]],[[1664,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,688,[],[[true,""]],[true,"Animation 1",3,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,689,[],[[true,""]],[true,"Animation 1",0,true]],[[1728,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,690,[],[[true,""]],[true,"Animation 1",3,true]],[[1792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,691,[],[[true,""]],[true,"Animation 1",0,true]],[[1792,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,692,[],[[true,""]],[true,"Animation 1",3,true]],[[1760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,693,[],[[true,""]],[true,"Animation 1",0,true]],[[1760,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,694,[],[[true,""]],[true,"Animation 1",3,true]],[[1888,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,695,[],[[true,""]],[true,"Animation 1",0,true]],[[1888,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,696,[],[[true,""]],[true,"Animation 1",3,true]],[[1824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,697,[],[[true,""]],[true,"Animation 1",0,true]],[[1824,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,698,[],[[true,""]],[true,"Animation 1",3,true]],[[1856,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,699,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,700,[],[[true,""]],[true,"Animation 1",3,true]],[[1920,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,701,[],[[true,""]],[true,"Animation 1",0,true]],[[1920,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,702,[],[[true,""]],[true,"Animation 1",3,true]],[[1984,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,703,[],[[true,""]],[true,"Animation 1",0,true]],[[1984,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,704,[],[[true,""]],[true,"Animation 1",3,true]],[[1952,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,705,[],[[true,""]],[true,"Animation 1",0,true]],[[1952,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,706,[],[[true,""]],[true,"Animation 1",3,true]],[[2080,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,707,[],[[true,""]],[true,"Animation 1",0,true]],[[2080,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,708,[],[[true,""]],[true,"Animation 1",3,true]],[[2016,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,709,[],[[true,""]],[true,"Animation 1",0,true]],[[2016,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,710,[],[[true,""]],[true,"Animation 1",3,true]],[[2048,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,711,[],[[true,""]],[true,"Animation 1",0,true]],[[2048,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,712,[],[[true,""]],[true,"Animation 1",3,true]],[[2112,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,713,[],[[true,""]],[true,"Animation 1",0,true]],[[2112,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,714,[],[[true,""]],[true,"Animation 1",3,true]],[[2176,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,715,[],[[true,""]],[true,"Animation 1",0,true]],[[2176,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,716,[],[[true,""]],[true,"Animation 1",3,true]],[[2144,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,717,[],[[true,""]],[true,"Animation 1",0,true]],[[2144,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,718,[],[[true,""]],[true,"Animation 1",3,true]],[[2272,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,719,[],[[true,""]],[true,"Animation 1",0,true]],[[2272,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,720,[],[[true,""]],[true,"Animation 1",3,true]],[[2208,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,721,[],[[true,""]],[true,"Animation 1",0,true]],[[2208,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,722,[],[[true,""]],[true,"Animation 1",3,true]],[[2240,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,723,[],[[true,""]],[true,"Animation 1",0,true]],[[2240,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,724,[],[[true,""]],[true,"Animation 1",3,true]],[[2304,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,725,[],[[true,""]],[true,"Animation 1",0,true]],[[2304,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,726,[],[[true,""]],[true,"Animation 1",3,true]],[[2368,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,727,[],[[true,""]],[true,"Animation 1",0,true]],[[2368,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,728,[],[[true,""]],[true,"Animation 1",3,true]],[[2336,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,729,[],[[true,""]],[true,"Animation 1",0,true]],[[2336,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,730,[],[[true,""]],[true,"Animation 1",3,true]],[[2464,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,731,[],[[true,""]],[true,"Animation 1",0,true]],[[2464,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,732,[],[[true,""]],[true,"Animation 1",3,true]],[[2400,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,733,[],[[true,""]],[true,"Animation 1",0,true]],[[2400,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,734,[],[[true,""]],[true,"Animation 1",3,true]],[[2432,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,735,[],[[true,""]],[true,"Animation 1",0,true]],[[2432,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,736,[],[[true,""]],[true,"Animation 1",3,true]],[[2848,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,737,[],[[true,""]],[true,"Animation 1",0,true]],[[2848,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,738,[],[[true,""]],[true,"Animation 1",3,true]],[[2816,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,739,[],[[true,""]],[true,"Animation 1",0,true]],[[2816,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,740,[],[[true,""]],[true,"Animation 1",3,true]],[[2880,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,741,[],[[true,""]],[true,"Animation 1",0,true]],[[2880,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,742,[],[[true,""]],[true,"Animation 1",3,true]],[[2944,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,743,[],[[true,""]],[true,"Animation 1",0,true]],[[2944,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,744,[],[[true,""]],[true,"Animation 1",3,true]],[[2912,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,745,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,746,[],[[true,""]],[true,"Animation 1",3,true]],[[2976,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,747,[],[[true,""]],[true,"Animation 1",0,true]],[[2976,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,748,[],[[true,""]],[true,"Animation 1",3,true]],[[3328,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,749,[],[[true,""]],[true,"Animation 1",0,true]],[[3328,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,750,[],[[true,""]],[true,"Animation 1",3,true]],[[3424,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,751,[],[[true,""]],[true,"Animation 1",0,true]],[[3424,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,752,[],[[true,""]],[true,"Animation 1",3,true]],[[3360,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,753,[],[[true,""]],[true,"Animation 1",0,true]],[[3360,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,754,[],[[true,""]],[true,"Animation 1",3,true]],[[3392,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,755,[],[[true,""]],[true,"Animation 1",0,true]],[[3392,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,756,[],[[true,""]],[true,"Animation 1",3,true]],[[3456,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,757,[],[[true,""]],[true,"Animation 1",0,true]],[[3456,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,758,[],[[true,""]],[true,"Animation 1",3,true]],[[1088,384,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],8,759,[],[[true,""]],[true,"Animation 1",3,true]],[[1120,320,0,-32,64,0,0,[1,1,1,1],0,0,0,0,[]],8,760,[],[[true,""]],[true,"Animation 1",3,true]],[[1600,224,0,32,256,0,0,[1,1,1,1],0,0,0,0,[]],8,761,[],[[true,""]],[true,"Animation 1",3,true]],[[1376,0,0,32,256,0,0,[1,1,1,1],0,0,0,0,[]],8,762,[],[[true,""]],[true,"Animation 1",3,true]],[[1984,0,0,32,256,0,0,[1,1,1,1],0,0,0,0,[]],8,763,[],[[true,""]],[true,"Animation 1",3,true]],[[3008,448,0,320,32,0,0,[1,1,1,1],0,0,0,0,[]],24,764,[],[],[true,"Animation 1",3,true]],[[3296,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,765,[],[],[true,"Animation 1",0,true]],[[3264,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,766,[],[],[true,"Animation 1",0,true]],[[3040,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,767,[],[],[true,"Animation 1",0,true]],[[3232,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,768,[],[],[true,"Animation 1",0,true]],[[3168,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,769,[],[],[true,"Animation 1",0,true]],[[3200,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,770,[],[],[true,"Animation 1",0,true]],[[3136,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,771,[],[],[true,"Animation 1",0,true]],[[3104,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,772,[],[],[true,"Animation 1",0,true]],[[3072,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,773,[],[],[true,"Animation 1",0,true]],[[3008,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,774,[],[],[true,"Animation 1",0,true]],[[2496,256,0,320,160,0,0,[1,1,1,1],0,0,0,0,[]],24,775,[],[],[true,"Animation 1",3,true]],[[3040,480,0,256,128,0,0,[1,1,1,1],0,0,0,0,[]],24,776,[],[],[true,"Animation 1",3,true]],[[2624,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,777,[],[[true,""]],[true,"Animation 1",3,true]],[[2592,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,778,[],[[true,""]],[true,"Animation 1",3,true]],[[2656,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,779,[],[[true,""]],[true,"Animation 1",3,true]],[[2720,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,780,[],[[true,""]],[true,"Animation 1",3,true]],[[2688,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,781,[],[[true,""]],[true,"Animation 1",3,true]],[[2560,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,782,[],[[true,""]],[true,"Animation 1",3,true]],[[2496,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,783,[],[[true,""]],[true,"Animation 1",3,true]],[[2528,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,784,[],[[true,""]],[true,"Animation 1",3,true]],[[2752,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,785,[],[[true,""]],[true,"Animation 1",3,true]],[[2784,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,786,[],[[true,""]],[true,"Animation 1",3,true]],[[3168,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,787,[],[[true,""]],[true,"Animation 1",3,true]],[[3136,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,788,[],[[true,""]],[true,"Animation 1",3,true]],[[3200,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,789,[],[[true,""]],[true,"Animation 1",3,true]],[[3264,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,790,[],[[true,""]],[true,"Animation 1",3,true]],[[3232,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,791,[],[[true,""]],[true,"Animation 1",3,true]],[[3104,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,792,[],[[true,""]],[true,"Animation 1",3,true]],[[3040,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,793,[],[[true,""]],[true,"Animation 1",3,true]],[[3072,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,794,[],[[true,""]],[true,"Animation 1",3,true]],[[3296,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,795,[],[[true,""]],[true,"Animation 1",3,true]],[[3008,608,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,796,[],[[true,""]],[true,"Animation 1",3,true]],[[2656,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,797,[],[[true,""]],[true,"Animation 1",3,true]],[[2624,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,798,[],[[true,""]],[true,"Animation 1",3,true]],[[2688,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,799,[],[[true,""]],[true,"Animation 1",3,true]],[[2752,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,800,[],[[true,""]],[true,"Animation 1",3,true]],[[2720,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,801,[],[[true,""]],[true,"Animation 1",3,true]],[[2592,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,802,[],[[true,""]],[true,"Animation 1",3,true]],[[2528,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,803,[],[[true,""]],[true,"Animation 1",3,true]],[[2560,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,804,[],[[true,""]],[true,"Animation 1",3,true]],[[2784,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,805,[],[[true,""]],[true,"Animation 1",3,true]],[[2496,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,806,[],[[true,""]],[true,"Animation 1",3,true]],[[3008,480,0,32,128,0,0,[1,1,1,1],0,0,0,0,[]],8,807,[],[[true,""]],[true,"Animation 1",3,true]],[[3296,480,0,32,128,0,0,[1,1,1,1],0,0,0,0,[]],8,808,[],[[true,""]],[true,"Animation 1",3,true]],[[3488,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,809,[],[[true,""]],[true,"Animation 1",0,true]],[[3488,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,810,[],[[true,""]],[true,"Animation 1",3,true]],[[3552,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,811,[],[[true,""]],[true,"Animation 1",0,true]],[[3552,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,812,[],[[true,""]],[true,"Animation 1",3,true]],[[3520,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,813,[],[[true,""]],[true,"Animation 1",0,true]],[[3520,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,814,[],[[true,""]],[true,"Animation 1",3,true]],[[3648,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,815,[],[[true,""]],[true,"Animation 1",0,true]],[[3648,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,816,[],[[true,""]],[true,"Animation 1",3,true]],[[3584,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,817,[],[[true,""]],[true,"Animation 1",0,true]],[[3584,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,818,[],[[true,""]],[true,"Animation 1",3,true]],[[3616,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,819,[],[[true,""]],[true,"Animation 1",0,true]],[[3616,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,820,[],[[true,""]],[true,"Animation 1",3,true]],[[3680,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,821,[],[[true,""]],[true,"Animation 1",0,true]],[[3680,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,822,[],[[true,""]],[true,"Animation 1",3,true]],[[3744,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,823,[],[[true,""]],[true,"Animation 1",0,true]],[[3744,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,824,[],[[true,""]],[true,"Animation 1",3,true]],[[3712,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,825,[],[[true,""]],[true,"Animation 1",0,true]],[[3712,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,826,[],[[true,""]],[true,"Animation 1",3,true]],[[3840,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,827,[],[[true,""]],[true,"Animation 1",0,true]],[[3840,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,828,[],[[true,""]],[true,"Animation 1",3,true]],[[3776,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,829,[],[[true,""]],[true,"Animation 1",0,true]],[[3776,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,830,[],[[true,""]],[true,"Animation 1",3,true]],[[3808,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,831,[],[[true,""]],[true,"Animation 1",0,true]],[[3808,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,832,[],[[true,""]],[true,"Animation 1",3,true]],[[3872,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,833,[],[[true,""]],[true,"Animation 1",0,true]],[[3872,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,834,[],[[true,""]],[true,"Animation 1",3,true]],[[3936,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,835,[],[[true,""]],[true,"Animation 1",0,true]],[[3936,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,836,[],[[true,""]],[true,"Animation 1",3,true]],[[3904,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,837,[],[[true,""]],[true,"Animation 1",0,true]],[[3904,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,838,[],[[true,""]],[true,"Animation 1",3,true]],[[3968,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,839,[],[[true,""]],[true,"Animation 1",3,true]],[[4000,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,840,[],[[true,""]],[true,"Animation 1",3,true]],[[4128,480,0,1024,256,0,0,[1,1,1,1],0,0,0,0,[]],8,842,[],[[true,""]],[true,"Animation 1",3,true]],[[4192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,844,[],[[true,""]],[true,"Animation 1",0,true]],[[4192,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,845,[],[[true,""]],[true,"Animation 1",3,true]],[[4128,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,846,[],[[true,""]],[true,"Animation 1",3,true]],[[4160,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,847,[],[[true,""]],[true,"Animation 1",3,true]],[[4224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,848,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,849,[],[[true,""]],[true,"Animation 1",3,true]],[[4288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,850,[],[[true,""]],[true,"Animation 1",0,true]],[[4288,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,851,[],[[true,""]],[true,"Animation 1",3,true]],[[4256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,852,[],[[true,""]],[true,"Animation 1",0,true]],[[4256,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,853,[],[[true,""]],[true,"Animation 1",3,true]],[[4384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,854,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,855,[],[[true,""]],[true,"Animation 1",3,true]],[[4320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,856,[],[[true,""]],[true,"Animation 1",0,true]],[[4320,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,857,[],[[true,""]],[true,"Animation 1",3,true]],[[4352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,858,[],[[true,""]],[true,"Animation 1",0,true]],[[4352,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,859,[],[[true,""]],[true,"Animation 1",3,true]],[[4416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,860,[],[[true,""]],[true,"Animation 1",0,true]],[[4416,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,861,[],[[true,""]],[true,"Animation 1",3,true]],[[4480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,862,[],[[true,""]],[true,"Animation 1",0,true]],[[4480,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,863,[],[[true,""]],[true,"Animation 1",3,true]],[[4448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,864,[],[[true,""]],[true,"Animation 1",0,true]],[[4448,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,865,[],[[true,""]],[true,"Animation 1",3,true]],[[4512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,866,[],[[true,""]],[true,"Animation 1",0,true]],[[4512,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,867,[],[[true,""]],[true,"Animation 1",3,true]],[[4544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,868,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,869,[],[[true,""]],[true,"Animation 1",3,true]],[[4576,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,870,[],[[true,""]],[true,"Animation 1",3,true]],[[4640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,871,[],[[true,""]],[true,"Animation 1",0,true]],[[4640,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,872,[],[[true,""]],[true,"Animation 1",3,true]],[[4608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,873,[],[[true,""]],[true,"Animation 1",0,true]],[[4608,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,874,[],[[true,""]],[true,"Animation 1",3,true]],[[4736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,875,[],[[true,""]],[true,"Animation 1",0,true]],[[4736,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,876,[],[[true,""]],[true,"Animation 1",3,true]],[[4672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,877,[],[[true,""]],[true,"Animation 1",0,true]],[[4672,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,878,[],[[true,""]],[true,"Animation 1",3,true]],[[4704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,879,[],[[true,""]],[true,"Animation 1",0,true]],[[4704,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,880,[],[[true,""]],[true,"Animation 1",3,true]],[[4768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,881,[],[[true,""]],[true,"Animation 1",0,true]],[[4768,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,882,[],[[true,""]],[true,"Animation 1",3,true]],[[4832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,883,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,884,[],[[true,""]],[true,"Animation 1",3,true]],[[4800,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,885,[],[[true,""]],[true,"Animation 1",0,true]],[[4800,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,886,[],[[true,""]],[true,"Animation 1",3,true]],[[4928,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,887,[],[[true,""]],[true,"Animation 1",0,true]],[[4928,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,888,[],[[true,""]],[true,"Animation 1",3,true]],[[4864,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,889,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,890,[],[[true,""]],[true,"Animation 1",3,true]],[[4896,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,891,[],[[true,""]],[true,"Animation 1",0,true]],[[4896,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,892,[],[[true,""]],[true,"Animation 1",3,true]],[[4960,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,893,[],[[true,""]],[true,"Animation 1",0,true]],[[4960,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,894,[],[[true,""]],[true,"Animation 1",3,true]],[[5024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,895,[],[[true,""]],[true,"Animation 1",0,true]],[[5024,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,896,[],[[true,""]],[true,"Animation 1",3,true]],[[4992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,897,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,898,[],[[true,""]],[true,"Animation 1",3,true]],[[5056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,899,[],[[true,""]],[true,"Animation 1",0,true]],[[5056,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,900,[],[[true,""]],[true,"Animation 1",3,true]],[[5088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,901,[],[[true,""]],[true,"Animation 1",0,true]],[[5088,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,902,[],[[true,""]],[true,"Animation 1",3,true]],[[3968,416,0,64,32,0,0,[1,1,1,1],0,0,0,0,[]],8,903,[],[[true,""]],[true,"Animation 1",3,true]],[[3968,256,0,224,160,0,0,[1,1,1,1],0,0,0,0,[]],24,904,[],[],[true,"Animation 1",3,true]],[[4576,256,0,32,192,0,0,[1,1,1,1],0,0,0,0,[]],8,905,[],[[true,""]],[true,"Animation 1",3,true]],[[4416,128,0,32,192,0,0,[1,1,1,1],0,0,0,0,[]],8,906,[],[[true,""]],[true,"Animation 1",3,true]],[[4576,0,0,32,160,0,0,[1,1,1,1],0,0,0,0,[]],8,907,[],[[true,""]],[true,"Animation 1",3,true]],[[4736,128,0,32,320,0,0,[1,1,1,1],0,0,0,0,[]],8,908,[],[[true,""]],[true,"Animation 1",3,true]],[[63.5,416,0,31,90,0,0,[1,1,1,1],0.5,1,0,0,[]],1,1281,["idle","right",0],[[400,1300,1300,600,1300,1000,false,0,true,true],[true]],[false,"Animation 1",0,true]],[[5088,384,0,128,96,0,0,[1,1,1,1],0.5,0.5,0,0,[]],35,1291,[],[],[true,"Animation 1",0,true]],[[3488,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1293,[],[],[true,"Animation 1",0,true]],[[2240,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1294,[],[],[true,"Animation 1",0,true]],[[3488,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,1295,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[32,224,0,192,64,0,0,[1,1,1,1],0,0,0,0,[]],39,1222,[],[],["Press Space Bar In Mid Air To Air Dash",true,"Arial",12,0,false,false,[0,0,0],0,0,0,true,0]],[[-32,32,0,32,416,0,0,[1,1,1,1],0,0,0,0,[]],8,1308,[],[[true,""]],[true,"Animation 1",3,true]],[[5152,0,0,32,480,0,0,[1,1,1,1],0,0,0,0,[]],8,1309,[],[[true,""]],[true,"Animation 1",3,true]],[[63.0794594532899,415.1200337841694,0,147.99662158306182,147.99662158306182,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,1282,[],[[]],[true,"idle",0,true]],[[0,480,0,3008,256,0,0,[1,1,1,1],0,0,0,0,[]],8,262,[],[[true,""]],[true,"Animation 1",3,true]],[[5120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1450,[],[[true,""]],[true,"Animation 1",0,true]],[[5120,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1455,[],[[true,""]],[true,"Animation 1",3,true]],[[4000,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1456,[],[[true,""]],[true,"Animation 1",0,true]],[[3968,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1482,[],[[true,""]],[true,"Animation 1",0,true]],[[4096,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1483,[],[[true,""]],[true,"Animation 1",0,true]],[[4032,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1484,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1485,[],[[true,""]],[true,"Animation 1",0,true]],[[4128,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1486,[],[[true,""]],[true,"Animation 1",0,true]],[[4160,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1487,[],[[true,""]],[true,"Animation 1",0,true]],[[4128,416,0,64,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1488,[],[[true,""]],[true,"Animation 1",3,true]],[[4032,416,0,96,320,0,0,[1,1,1,1],0,0,0,0,[]],24,841,[],[],[true,"Animation 1",3,true]],[[3008,640,0,1024,96,0,0,[1,1,1,1],0,0,0,0,[]],8,1459,[],[[true,""]],[true,"Animation 1",3,true]],[[3328,480,0,704,160,0,0,[1,1,1,1],0,0,0,0,[]],8,1460,[],[[true,""]],[true,"Animation 1",3,true]]],[],0],["FadeBlack",2,313965451885493,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[480,352,0,1303,834,0,0,[1,1,1,1],0.5,0.5,0,0,[]],45,1412,[],[[0,0,1,false,true]],[true,"Animation 1",0,true]]],[],0]],[],[]],["Level 2",5308,960,false,"PlatformerEventSheet",190837890810617,[["Background",0,792651016580401,true,[148,142,192],false,1,1,1,false,false,1,0,0,[[[1408,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1324,[],[],[true,"Animation 1",0,true]],[[416,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1325,[],[],[true,"Animation 1",0,true]],[[704,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1326,[],[],[true,"Animation 1",0,true]],[[1728,160,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1327,[],[],[true,"Animation 1",0,true]],[[1088,128,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1328,[],[],[true,"Animation 1",0,true]],[[2624,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1329,[],[],[true,"Animation 1",0,true]],[[2432,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1330,[],[],[true,"Animation 1",0,true]],[[2752,192,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1331,[],[],[true,"Animation 1",0,true]],[[4352,192,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1332,[],[],[true,"Animation 1",0,true]],[[4000,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1333,[],[],[true,"Animation 1",0,true]],[[2208,-32,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1334,[],[],[true,"Animation 1",0,true]],[[4896,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1335,[],[],[true,"Animation 1",0,true]],[[4384,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1336,[],[],[true,"Animation 1",0,true]],[[3136,32,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1337,[],[],[true,"Animation 1",0,true]],[[352,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,1352,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[320,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,1353,[],[],[true,"Animation 1",0,true]],[[320,96,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],21,1354,[],[],[true,"Animation 1",0,true]]],[],0],["Collision",1,928164719861626,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[0,448,0,832,32,0,0,[1,1,1,1],0,0,0,0,[]],8,909,[],[[true,""]],[true,"Animation 1",3,true]],[[1056,448,0,256,96,0,0,[1,1,1,1],0,0,0,0,[]],8,910,[],[[true,""]],[true,"Animation 1",3,true]],[[1568,448,0,256,64,0,0,[1,1,1,1],0,0,0,0,[]],8,911,[],[[true,""]],[true,"Animation 1",3,true]],[[2048,448,0,192,32,0,0,[1,1,1,1],0,0,0,0,[]],8,912,[],[[true,""]],[true,"Animation 1",3,true]],[[2240,448,0,224,32,0,0,[1,1,1,1],0,0,0,0,[]],8,913,[],[[true,""]],[true,"Animation 1",3,true]],[[2464,448,0,224,32,0,0,[1,1,1,1],0,0,0,0,[]],8,914,[],[[true,""]],[true,"Animation 1",3,true]],[[2688,448,0,64,32,0,0,[1,1,1,1],0,0,0,0,[]],8,915,[],[[true,""]],[true,"Animation 1",3,true]],[[2944,448,0,1088,512,0,0,[1,1,1,1],0,0,0,0,[]],8,922,[],[[true,""]],[true,"Animation 1",3,true]],[[2752,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,923,[],[[true,""]],[true,"Animation 1",2,true]],[[2720,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,924,[],[[true,""]],[true,"Animation 1",0,true]],[[2688,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,925,[],[[true,""]],[true,"Animation 1",0,true]],[[2656,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,926,[],[[true,""]],[true,"Animation 1",0,true]],[[2624,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,927,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,928,[],[[true,""]],[true,"Animation 1",0,true]],[[2560,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,929,[],[[true,""]],[true,"Animation 1",0,true]],[[2528,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,930,[],[[true,""]],[true,"Animation 1",0,true]],[[2496,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,931,[],[[true,""]],[true,"Animation 1",0,true]],[[2464,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,932,[],[[true,""]],[true,"Animation 1",0,true]],[[2432,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,933,[],[[true,""]],[true,"Animation 1",0,true]],[[2400,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,934,[],[[true,""]],[true,"Animation 1",0,true]],[[2368,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,935,[],[[true,""]],[true,"Animation 1",0,true]],[[2336,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,936,[],[[true,""]],[true,"Animation 1",0,true]],[[2304,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,937,[],[[true,""]],[true,"Animation 1",0,true]],[[2272,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,938,[],[[true,""]],[true,"Animation 1",0,true]],[[2240,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,939,[],[[true,""]],[true,"Animation 1",0,true]],[[2208,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,940,[],[[true,""]],[true,"Animation 1",0,true]],[[2176,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,941,[],[[true,""]],[true,"Animation 1",0,true]],[[2144,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,942,[],[[true,""]],[true,"Animation 1",0,true]],[[2112,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,943,[],[[true,""]],[true,"Animation 1",0,true]],[[2080,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,944,[],[[true,""]],[true,"Animation 1",0,true]],[[2048,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,945,[],[[true,""]],[true,"Animation 1",0,true]],[[2016,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,946,[],[[true,""]],[true,"Animation 1",1,true]],[[1824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,947,[],[[true,""]],[true,"Animation 1",2,true]],[[1792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,948,[],[[true,""]],[true,"Animation 1",0,true]],[[1760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,949,[],[[true,""]],[true,"Animation 1",0,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,950,[],[[true,""]],[true,"Animation 1",0,true]],[[1696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,951,[],[[true,""]],[true,"Animation 1",0,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,952,[],[[true,""]],[true,"Animation 1",0,true]],[[1632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,953,[],[[true,""]],[true,"Animation 1",0,true]],[[1600,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,954,[],[[true,""]],[true,"Animation 1",0,true]],[[1248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,955,[],[[true,""]],[true,"Animation 1",0,true]],[[1216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,956,[],[[true,""]],[true,"Animation 1",0,true]],[[1184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,957,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,958,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,959,[],[[true,""]],[true,"Animation 1",0,true]],[[1120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,960,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,961,[],[[true,""]],[true,"Animation 1",0,true]],[[1056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,962,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,963,[],[[true,""]],[true,"Animation 1",1,true]],[[224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,964,[],[[true,""]],[true,"Animation 1",0,true]],[[192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,965,[],[[true,""]],[true,"Animation 1",0,true]],[[160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,966,[],[[true,""]],[true,"Animation 1",0,true]],[[128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,967,[],[[true,""]],[true,"Animation 1",0,true]],[[96,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,968,[],[[true,""]],[true,"Animation 1",0,true]],[[64,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,969,[],[[true,""]],[true,"Animation 1",0,true]],[[32,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,970,[],[[true,""]],[true,"Animation 1",0,true]],[[0,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,971,[],[[true,""]],[true,"Animation 1",0,true]],[[480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,972,[],[[true,""]],[true,"Animation 1",0,true]],[[448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,973,[],[[true,""]],[true,"Animation 1",0,true]],[[416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,974,[],[[true,""]],[true,"Animation 1",0,true]],[[384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,975,[],[[true,""]],[true,"Animation 1",0,true]],[[352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,976,[],[[true,""]],[true,"Animation 1",0,true]],[[320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,977,[],[[true,""]],[true,"Animation 1",0,true]],[[288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,978,[],[[true,""]],[true,"Animation 1",0,true]],[[256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,979,[],[[true,""]],[true,"Animation 1",0,true]],[[736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,980,[],[[true,""]],[true,"Animation 1",0,true]],[[704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,981,[],[[true,""]],[true,"Animation 1",0,true]],[[672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,982,[],[[true,""]],[true,"Animation 1",0,true]],[[640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,983,[],[[true,""]],[true,"Animation 1",0,true]],[[608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,984,[],[[true,""]],[true,"Animation 1",0,true]],[[576,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,985,[],[[true,""]],[true,"Animation 1",0,true]],[[544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,986,[],[[true,""]],[true,"Animation 1",0,true]],[[512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,987,[],[[true,""]],[true,"Animation 1",0,true]],[[800,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,988,[],[[true,""]],[true,"Animation 1",0,true]],[[832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,989,[],[[true,""]],[true,"Animation 1",2,true]],[[768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,990,[],[[true,""]],[true,"Animation 1",0,true]],[[3008,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,992,[],[[true,""]],[true,"Animation 1",1,true]],[[2976,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,993,[],[[true,""]],[true,"Animation 1",1,true]],[[2944,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,994,[],[[true,""]],[true,"Animation 1",1,true]],[[2912,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,995,[],[[true,""]],[true,"Animation 1",1,true]],[[3136,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,997,[],[[true,""]],[true,"Animation 1",1,true]],[[3808,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,998,[],[[true,""]],[true,"Animation 1",2,true]],[[3840,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,999,[],[[true,""]],[true,"Animation 1",2,true]],[[4032,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1002,[],[[true,""]],[true,"Animation 1",2,true]],[[4000,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1003,[],[[true,""]],[true,"Animation 1",2,true]],[[3968,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1004,[],[[true,""]],[true,"Animation 1",2,true]],[[3936,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1005,[],[[true,""]],[true,"Animation 1",2,true]],[[3808,416,0,192,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1006,[],[[true,""]],[true,"Animation 1",3,true]],[[3808,384,0,160,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1008,[],[[true,""]],[true,"Animation 1",3,true]],[[3040,352,0,128,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1009,[],[[true,""]],[true,"Animation 1",3,true]],[[3008,384,0,160,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1010,[],[[true,""]],[true,"Animation 1",3,true]],[[2976,416,0,192,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1011,[],[[true,""]],[true,"Animation 1",3,true]],[[3296,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1013,[],[[true,""]],[true,"Animation 1",0,true]],[[3328,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1014,[],[[true,""]],[true,"Animation 1",0,true]],[[3360,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1015,[],[[true,""]],[true,"Animation 1",0,true]],[[3392,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1016,[],[[true,""]],[true,"Animation 1",0,true]],[[3424,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1017,[],[[true,""]],[true,"Animation 1",0,true]],[[3456,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1018,[],[[true,""]],[true,"Animation 1",0,true]],[[3488,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1019,[],[[true,""]],[true,"Animation 1",0,true]],[[3520,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1020,[],[[true,""]],[true,"Animation 1",0,true]],[[3552,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1021,[],[[true,""]],[true,"Animation 1",0,true]],[[3584,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1022,[],[[true,""]],[true,"Animation 1",0,true]],[[3616,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1023,[],[[true,""]],[true,"Animation 1",0,true]],[[3648,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1024,[],[[true,""]],[true,"Animation 1",0,true]],[[3744,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1027,[],[],[true,"Animation 1",0,true]],[[3712,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1028,[],[],[true,"Animation 1",0,true]],[[3680,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1029,[],[],[true,"Animation 1",0,true]],[[3264,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1030,[],[],[true,"Animation 1",0,true]],[[3232,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1031,[],[],[true,"Animation 1",0,true]],[[3200,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1032,[],[],[true,"Animation 1",0,true]],[[4256,448,0,1056,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1040,[],[[true,""]],[true,"Animation 1",3,true]],[[4480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1041,[],[[true,""]],[true,"Animation 1",0,true]],[[4448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1042,[],[[true,""]],[true,"Animation 1",0,true]],[[4416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1043,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1044,[],[[true,""]],[true,"Animation 1",0,true]],[[4352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1045,[],[[true,""]],[true,"Animation 1",0,true]],[[4320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1046,[],[[true,""]],[true,"Animation 1",0,true]],[[4320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1047,[],[[true,""]],[true,"Animation 1",0,true]],[[4288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1048,[],[[true,""]],[true,"Animation 1",0,true]],[[4256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1049,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1050,[],[[true,""]],[true,"Animation 1",1,true]],[[4768,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1051,[],[[true,""]],[true,"Animation 1",0,true]],[[4736,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1052,[],[[true,""]],[true,"Animation 1",0,true]],[[4704,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1053,[],[[true,""]],[true,"Animation 1",0,true]],[[4672,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1054,[],[[true,""]],[true,"Animation 1",0,true]],[[4640,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1055,[],[[true,""]],[true,"Animation 1",0,true]],[[4608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1056,[],[[true,""]],[true,"Animation 1",0,true]],[[4608,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1057,[],[[true,""]],[true,"Animation 1",0,true]],[[4576,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1058,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1059,[],[[true,""]],[true,"Animation 1",0,true]],[[4512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1060,[],[[true,""]],[true,"Animation 1",0,true]],[[5056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1061,[],[[true,""]],[true,"Animation 1",0,true]],[[5024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1062,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1063,[],[[true,""]],[true,"Animation 1",0,true]],[[4960,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1064,[],[[true,""]],[true,"Animation 1",0,true]],[[4928,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1065,[],[[true,""]],[true,"Animation 1",0,true]],[[4896,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1066,[],[[true,""]],[true,"Animation 1",0,true]],[[4896,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1067,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1068,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1069,[],[[true,""]],[true,"Animation 1",0,true]],[[5280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1070,[],[[true,""]],[true,"Animation 1",0,true]],[[5248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1071,[],[[true,""]],[true,"Animation 1",0,true]],[[5216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1072,[],[[true,""]],[true,"Animation 1",0,true]],[[5184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1073,[],[[true,""]],[true,"Animation 1",0,true]],[[5184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1074,[],[[true,""]],[true,"Animation 1",0,true]],[[5152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1075,[],[[true,""]],[true,"Animation 1",0,true]],[[5120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1076,[],[[true,""]],[true,"Animation 1",0,true]],[[5088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1077,[],[[true,""]],[true,"Animation 1",0,true]],[[4800,160,0,32,288,0,0,[1,1,1,1],0,0,0,0,[]],8,1078,[],[[true,""]],[true,"Animation 1",3,true]],[[4640,0,0,32,224,0,0,[1,1,1,1],0,0,0,0,[]],8,1079,[],[[true,""]],[true,"Animation 1",3,true]],[[3104,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1081,[],[[true,""]],[true,"Animation 1",1,true]],[[1568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1084,[],[],[true,"Animation 1",0,true]],[[1280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1085,[],[],[true,"Animation 1",0,true]],[[1312,192,0,256,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1086,[],[[true,""]],[true,"Animation 1",3,true]],[[135.5,416,0,35,88,0,0,[1,1,1,1],0.5,1,0,0,[]],1,1033,["idle","right",0],[[400,1300,1300,600,1300,1000,false,0,true,true],[true]],[false,"Animation 1",0,true]],[[135.19944826930157,415.5500344831687,0,144.99655168313487,144.99655168313487,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,1283,[],[[]],[true,"idle",0,true]],[[5248,384,0,128,96,0,0,[1,1,1,1],0.5,0.5,0,0,[]],35,1292,[],[],[true,"Animation 1",0,true]],[[3776,384,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1296,[],[],[true,"Animation 1",0,true]],[[3264,384,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1083,[],[],[true,"Animation 1",0,true]],[[3744,416,0,96,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,1082,["right"],[[250,500,1000,2,3,false,true]],[true,"right",0,true]],[[3040,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1000,[],[[true,""]],[true,"Animation 1",1,true]],[[3072,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1001,[],[[true,""]],[true,"Animation 1",0,true]],[[3872,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1297,[],[[true,""]],[true,"Animation 1",0,true]],[[3904,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1298,[],[[true,""]],[true,"Animation 1",2,true]],[[3808,352,0,128,32,0,0,[1,1,1,1],0,0,0,0,[]],8,991,[],[[true,""]],[true,"Animation 1",3,true]],[[3776,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1007,[],[],[true,"Animation 1",0,true]],[[3168,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1037,[],[],[true,"Animation 1",0,true]],[[3808,320,0,64,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1299,[],[[true,""]],[true,"Animation 1",3,true]],[[3808,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1300,[],[[true,""]],[true,"Animation 1",3,true]],[[3136,288,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],8,1301,[],[[true,""]],[true,"Animation 1",3,true]],[[3104,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1302,[],[[true,""]],[true,"Animation 1",3,true]],[[1536,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1279,[],[],[true,"Animation 1",0,true]],[[1280,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1307,[],[],[true,"Animation 1",0,true]],[[1536,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,134,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[4128,448,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,144,[],[],[true,"Animation 1",0,true]],[[4160,448,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,147,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[4128,32,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],21,148,[],[],[true,"Animation 1",0,true]],[[1856,576,0,3456,64,0,0,[1,1,1,1],0,0,0,0,[]],23,151,[],[],[false,"Animation 1",0,true]],[[864,544,0,160,64,0,0,[1,1,1,1],0,0,0,0,[]],23,152,[],[],[false,"Animation 1",0,true]],[[2320.0256,416.0987654320988,0,95.99999999999999,64,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,173,[],[],[true,"Animation 1",0,true]],[[2704.0256,416.0987654320988,0,95.99999999999999,64,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,174,[],[],[true,"Animation 1",0,true]],[[2176,160,0,32,160,0,0,[1,1,1,1],0,0,0,0,[]],8,280,[],[[true,""]],[true,"Animation 1",3,true]],[[2208,160,0,224,64,0,0,[1,1,1,1],0,0,0,0,[]],8,285,[],[[true,""]],[true,"Animation 1",3,true]],[[2432,160,0,32,160,0,0,[1,1,1,1],0,0,0,0,[]],8,536,[],[[true,""]],[true,"Animation 1",3,true]],[[4672,224,0,32,32,0,3.141592653589793,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,175,[],[],[true,"Animation 1",1,true]],[[4800,160,0,32,32,0,0,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,176,[],[],[true,"Animation 1",1,true]],[[1312,512,0,512,32,0,0,[1,1,1,1],0,0,0,0,[]],8,539,[],[[true,""]],[true,"Animation 1",3,true]],[[4704,0,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],21,919,[],[],[true,"Animation 1",0,true]],[[4702,401,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],20,920,[],[],[true,"Animation 1",0,true]],[[4768,381,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,921,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[-32,32,0,32,416,0,0,[1,1,1,1],0,0,0,0,[]],8,1231,[],[[true,""]],[true,"Animation 1",3,true]],[[5312,64,0,32,384,0,0,[1,1,1,1],0,0,0,0,[]],8,1270,[],[[true,""]],[true,"Animation 1",3,true]],[[4224,480,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1384,[],[[true,""]],[true,"Animation 1",0,true]],[[2784,448,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1385,[],[[true,""]],[true,"Animation 1",0,true]],[[2016,480,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1386,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,448,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1387,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,480,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1388,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,512,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1389,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,480,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1390,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,512,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1391,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,544,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1392,[],[[true,""]],[true,"Animation 1",0,true]],[[864,448,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1393,[],[[true,""]],[true,"Animation 1",0,true]],[[5056,128,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1399,[],[],[true,"Animation 1",0,true]],[[4064,192,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1400,[],[],[true,"Animation 1",0,true]],[[3424,96,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1401,[],[],[true,"Animation 1",0,true]],[[2656,288,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1402,[],[],[true,"Animation 1",0,true]],[[1920,128,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1403,[],[],[true,"Animation 1",0,true]],[[448,128,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1404,[],[],[true,"Animation 1",0,true]],[[3360,256,0,95.99999999999999,32,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,1452,[],[],[true,"Animation 1",0,true]],[[3456,256,0,95.99999999999999,32,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,1462,[],[],[true,"Animation 1",0,true]],[[3552,256,0,95.99999999999999,32,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,1463,[],[],[true,"Animation 1",0,true]],[[3648,256,0,95.99999999999999,32,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,1464,[],[],[true,"Animation 1",0,true]],[[1472,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1465,[],[[true,""]],[true,"Animation 1",0,true]],[[1440,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1466,[],[[true,""]],[true,"Animation 1",0,true]],[[1408,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1467,[],[[true,""]],[true,"Animation 1",0,true]],[[1376,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1468,[],[[true,""]],[true,"Animation 1",0,true]],[[1344,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1469,[],[[true,""]],[true,"Animation 1",0,true]],[[1504,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1471,[],[],[true,"Animation 1",0,true]],[[1312,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1470,[],[[true,""]],[true,"Animation 1",1,true]],[[1536,192,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1472,[],[[true,""]],[true,"Animation 1",2,true]],[[1312,224,0,256,288,0,0,[1,1,1,1],0,0,0,0,[]],24,1034,[],[],[true,"Animation 1",3,true]],[[2368,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1473,[],[[true,""]],[true,"Animation 1",0,true]],[[2336,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1474,[],[[true,""]],[true,"Animation 1",0,true]],[[2304,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1475,[],[[true,""]],[true,"Animation 1",0,true]],[[2272,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1476,[],[[true,""]],[true,"Animation 1",0,true]],[[2240,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1477,[],[[true,""]],[true,"Animation 1",0,true]],[[2208,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1478,[],[[true,""]],[true,"Animation 1",0,true]],[[2176,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1479,[],[[true,""]],[true,"Animation 1",1,true]],[[2432,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1480,[],[[true,""]],[true,"Animation 1",2,true]],[[2400,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1481,[],[[true,""]],[true,"Animation 1",0,true]],[[3680,288,0,128,160,0,0,[1,1,1,1],0,0,0,0,[]],24,1012,[],[],[true,"Animation 1",3,true]],[[3168,288,0,128,160,0,0,[1,1,1,1],0,0,0,0,[]],24,1025,[],[],[true,"Animation 1",3,true]],[[3296,288,0,384,160,0,0,[1,1,1,1],0,0,0,0,[]],24,1026,[],[],[true,"Animation 1",3,true]],[[0,480,0,832,640,0,0,[1,1,1,1],0,0,0,0,[]],8,178,[],[[true,""]],[true,"Animation 1",3,true]],[[864,480,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,843,[],[[true,""]],[true,"Animation 1",0,true]],[[864,512,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1489,[],[[true,""]],[true,"Animation 1",0,true]],[[864,544,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1490,[],[[true,""]],[true,"Animation 1",0,true]],[[864,576,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1491,[],[[true,""]],[true,"Animation 1",0,true]],[[864,608,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1492,[],[[true,""]],[true,"Animation 1",0,true]],[[864,640,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1493,[],[[true,""]],[true,"Animation 1",0,true]],[[864,672,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1494,[],[[true,""]],[true,"Animation 1",0,true]],[[864,704,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1495,[],[[true,""]],[true,"Animation 1",0,true]],[[864,736,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1496,[],[[true,""]],[true,"Animation 1",0,true]],[[864,768,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1497,[],[[true,""]],[true,"Animation 1",0,true]],[[864,800,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1498,[],[[true,""]],[true,"Animation 1",0,true]],[[864,832,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1499,[],[[true,""]],[true,"Animation 1",0,true]],[[864,864,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1500,[],[[true,""]],[true,"Animation 1",0,true]],[[864,896,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1501,[],[[true,""]],[true,"Animation 1",0,true]],[[864,928,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1502,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,576,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1503,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,608,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1504,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,640,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1505,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,672,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1506,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,704,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1507,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,736,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1508,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,768,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1509,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,800,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1510,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,832,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1511,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,864,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1512,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,896,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1513,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,928,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1514,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,960,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1515,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,992,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1516,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,1024,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1517,[],[[true,""]],[true,"Animation 1",0,true]],[[1056,544,0,768,416,0,0,[1,1,1,1],0,0,0,0,[]],8,1518,[],[[true,""]],[true,"Animation 1",3,true]],[[1856,544,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1519,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,576,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1520,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,608,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1521,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,640,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1522,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,672,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1523,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,704,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1524,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,736,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1525,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,768,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1526,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,800,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1527,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,832,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1528,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,864,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1529,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,896,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1530,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,928,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1531,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,480,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,149,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,512,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,150,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,544,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1532,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,576,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1533,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,608,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1534,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,640,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1535,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,672,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1536,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,704,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1537,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,736,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1538,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,768,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1539,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,800,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1540,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,832,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1541,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,864,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1542,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,896,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1543,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,928,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1544,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,448,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1546,[],[[true,""]],[true,"Animation 1",1,true]],[[2912,512,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1547,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,544,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1548,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,576,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1549,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,608,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1550,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,640,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1551,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,672,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1552,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,704,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1553,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,736,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1554,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,768,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1555,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,800,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1556,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,832,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1557,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,864,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1558,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,896,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1559,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,928,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1560,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,960,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1561,[],[[true,""]],[true,"Animation 1",0,true]],[[4256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1545,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1562,[],[[true,""]],[true,"Animation 1",1,true]],[[4224,480,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1563,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,512,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1564,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,544,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1565,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,576,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1566,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,608,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1567,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,640,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1568,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,672,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1569,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,704,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1570,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,736,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1571,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,768,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1572,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,800,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1573,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,832,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1574,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,864,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1575,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,896,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1576,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,928,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1577,[],[[true,""]],[true,"Animation 1",0,true]],[[4224,960,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1578,[],[[true,""]],[true,"Animation 1",0,true]],[[4256,480,0,1056,480,0,0,[1,1,1,1],0,0,0,0,[]],8,1579,[],[[true,""]],[true,"Animation 1",3,true]]],[],0],["FadeBlack",2,946376928471592,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[576,384,0,1303,834,0,0,[1,1,1,1],0.5,0.5,0,0,[]],45,1413,[],[[0,0,1,false,true]],[true,"Animation 1",0,true]]],[],0]],[],[]],["Level 3",7000,960,false,"PlatformerEventSheet",457232417591475,[["Background",0,803677104755607,true,[148,142,192],false,1,1,1,false,false,1,0,0,[[[256,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1338,[],[],[true,"Animation 1",0,true]],[[1536,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1340,[],[],[true,"Animation 1",0,true]],[[5056,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1339,[],[],[true,"Animation 1",0,true]],[[3392,192,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1341,[],[],[true,"Animation 1",0,true]],[[1231,98,0,96,224,0,0,[1,1,1,1],0,0,0,0,[]],41,1342,[],[],[true,"Animation 1",0,true]],[[3904,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1343,[],[],[true,"Animation 1",0,true]],[[4736,-32,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1344,[],[],[true,"Animation 1",0,true]],[[1920,128,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1345,[],[],[true,"Animation 1",0,true]],[[1728,160,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1346,[],[],[true,"Animation 1",0,true]],[[3424,128,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1347,[],[],[true,"Animation 1",0,true]],[[3968,96,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1348,[],[],[true,"Animation 1",0,true]],[[3744,192,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1349,[],[],[true,"Animation 1",0,true]],[[4352,192,0,96,64,0,0,[1,1,1,1],1,1,0,0,[]],40,1350,[],[],[true,"Animation 1",0,true]],[[2496,224,0,192,192,0,0,[1,1,1,1],0,0,0,0,[]],42,1351,[],[],[true,"Animation 1",0,true]],[[1472,160,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1394,[],[],[true,"Animation 1",0,true]],[[544,96,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1395,[],[],[true,"Animation 1",0,true]],[[2816,160,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1396,[],[],[true,"Animation 1",0,true]],[[4000,192,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1397,[],[],[true,"Animation 1",0,true]],[[5120,96,0,256,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],43,1398,[],[],[true,"Animation 1",0,true]]],[],0],["EndShop",1,247941250400293,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[6048,352,0,1481.1594202898552,576,0,0,[1,1,1,1],0.5,0.5,0,0,[]],36,1441,[],[],[true,"shop3",0,true]],[[5312,416,0,1508,288,0,0,[1,1,1,1],0,0,0,0,[]],10,1453,[],[[true,""]],[false,"Animation 1",0,true]],[[6688,-32,0,128,608,0,0,[1,1,1,1],0,0,0,0,[]],10,1454,[],[[true,""]],[false,"Animation 1",0,true]]],[],0],["Collision",2,843374760426635,true,[255,255,255],true,1,1,1,false,false,1,0,0,[[[0,448,0,1920,518,0,0,[1,1,1,1],0,0,0,0,[]],8,1090,[],[[true,""]],[true,"Animation 1",3,true]],[[864,416,0,576,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1092,[],[[true,""]],[true,"Animation 1",3,true]],[[864,384,0,512,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1093,[],[[true,""]],[true,"Animation 1",3,true]],[[864,352,0,448,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1094,[],[[true,""]],[true,"Animation 1",3,true]],[[864,320,0,384,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1095,[],[[true,""]],[true,"Animation 1",3,true]],[[736,288,0,448,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1096,[],[[true,""]],[true,"Animation 1",3,true]],[[768,256,0,352,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1097,[],[[true,""]],[true,"Animation 1",3,true]],[[800,224,0,288,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1098,[],[[true,""]],[true,"Animation 1",3,true]],[[832,192,0,224,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1099,[],[[true,""]],[true,"Animation 1",3,true]],[[0,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1100,[],[[true,""]],[true,"Animation 1",0,true]],[[32,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1101,[],[[true,""]],[true,"Animation 1",0,true]],[[64,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1102,[],[[true,""]],[true,"Animation 1",0,true]],[[96,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1103,[],[[true,""]],[true,"Animation 1",0,true]],[[128,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1104,[],[[true,""]],[true,"Animation 1",0,true]],[[160,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1105,[],[[true,""]],[true,"Animation 1",0,true]],[[192,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1106,[],[[true,""]],[true,"Animation 1",0,true]],[[224,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1107,[],[[true,""]],[true,"Animation 1",0,true]],[[256,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1108,[],[[true,""]],[true,"Animation 1",0,true]],[[288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1109,[],[[true,""]],[true,"Animation 1",0,true]],[[320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1110,[],[[true,""]],[true,"Animation 1",0,true]],[[352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1111,[],[[true,""]],[true,"Animation 1",0,true]],[[384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1112,[],[[true,""]],[true,"Animation 1",0,true]],[[416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1113,[],[[true,""]],[true,"Animation 1",0,true]],[[1440,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1114,[],[[true,""]],[true,"Animation 1",0,true]],[[1472,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1115,[],[[true,""]],[true,"Animation 1",0,true]],[[1504,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1116,[],[[true,""]],[true,"Animation 1",0,true]],[[1536,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1117,[],[[true,""]],[true,"Animation 1",0,true]],[[1568,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1118,[],[[true,""]],[true,"Animation 1",0,true]],[[1600,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1119,[],[[true,""]],[true,"Animation 1",0,true]],[[1632,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1120,[],[[true,""]],[true,"Animation 1",0,true]],[[1664,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1121,[],[[true,""]],[true,"Animation 1",0,true]],[[1696,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1122,[],[[true,""]],[true,"Animation 1",0,true]],[[1728,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1123,[],[[true,""]],[true,"Animation 1",0,true]],[[1760,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1124,[],[[true,""]],[true,"Animation 1",0,true]],[[1792,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1125,[],[[true,""]],[true,"Animation 1",0,true]],[[1824,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1126,[],[[true,""]],[true,"Animation 1",0,true]],[[1856,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1127,[],[[true,""]],[true,"Animation 1",0,true]],[[1888,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1128,[],[[true,""]],[true,"Animation 1",0,true]],[[1920,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1129,[],[[true,""]],[true,"Animation 1",2,true]],[[1344,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1130,[],[[true,""]],[true,"Animation 1",2,true]],[[1312,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1131,[],[[true,""]],[true,"Animation 1",0,true]],[[1280,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1132,[],[[true,""]],[true,"Animation 1",2,true]],[[1248,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1133,[],[[true,""]],[true,"Animation 1",0,true]],[[1376,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1134,[],[[true,""]],[true,"Animation 1",0,true]],[[1408,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1135,[],[[true,""]],[true,"Animation 1",2,true]],[[512,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1136,[],[[true,""]],[true,"Animation 1",1,true]],[[544,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1137,[],[[true,""]],[true,"Animation 1",0,true]],[[448,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1138,[],[[true,""]],[true,"Animation 1",1,true]],[[480,384,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1139,[],[[true,""]],[true,"Animation 1",0,true]],[[576,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1140,[],[[true,""]],[true,"Animation 1",1,true]],[[736,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1142,[],[[true,""]],[true,"Animation 1",0,true]],[[800,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1143,[],[[true,""]],[true,"Animation 1",1,true]],[[768,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1144,[],[[true,""]],[true,"Animation 1",1,true]],[[832,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1145,[],[[true,""]],[true,"Animation 1",0,true]],[[864,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1146,[],[[true,""]],[true,"Animation 1",0,true]],[[896,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1147,[],[[true,""]],[true,"Animation 1",0,true]],[[928,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1148,[],[[true,""]],[true,"Animation 1",0,true]],[[960,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1149,[],[[true,""]],[true,"Animation 1",0,true]],[[992,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1150,[],[[true,""]],[true,"Animation 1",0,true]],[[1024,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1151,[],[[true,""]],[true,"Animation 1",0,true]],[[1056,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1152,[],[[true,""]],[true,"Animation 1",2,true]],[[1088,224,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1153,[],[[true,""]],[true,"Animation 1",2,true]],[[1120,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1154,[],[[true,""]],[true,"Animation 1",0,true]],[[1152,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1155,[],[[true,""]],[true,"Animation 1",2,true]],[[1184,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1156,[],[[true,""]],[true,"Animation 1",0,true]],[[1216,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1157,[],[[true,""]],[true,"Animation 1",2,true]],[[672,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1158,[],[],[true,"Animation 1",0,true]],[[512,384,0,96,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1159,[],[[true,""]],[true,"Animation 1",3,true]],[[576,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1160,[],[[true,""]],[true,"Animation 1",3,true]],[[640,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1161,[],[],[true,"Animation 1",1,true]],[[704,288,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1162,[],[],[true,"Animation 1",3,true]],[[704,256,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1166,[],[],[true,"Animation 1",1,true]],[[3136,448,0,992,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1167,[],[[true,""]],[true,"Animation 1",3,true]],[[2336,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1168,[],[[true,""]],[true,"Animation 1",1,true]],[[2368,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1169,[],[[true,""]],[true,"Animation 1",0,true]],[[2400,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1170,[],[[true,""]],[true,"Animation 1",0,true]],[[2432,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1171,[],[[true,""]],[true,"Animation 1",0,true]],[[2464,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1172,[],[[true,""]],[true,"Animation 1",0,true]],[[2496,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1173,[],[[true,""]],[true,"Animation 1",0,true]],[[2528,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1174,[],[[true,""]],[true,"Animation 1",0,true]],[[2560,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1175,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1176,[],[[true,""]],[true,"Animation 1",0,true]],[[2624,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1177,[],[[true,""]],[true,"Animation 1",0,true]],[[2656,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1178,[],[[true,""]],[true,"Animation 1",0,true]],[[2688,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1179,[],[[true,""]],[true,"Animation 1",0,true]],[[2720,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1180,[],[[true,""]],[true,"Animation 1",0,true]],[[2752,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1181,[],[[true,""]],[true,"Animation 1",0,true]],[[2177,333,0,96,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1182,[],[[true,""]],[true,"Animation 1",3,true]],[[2016,290,0,32,126,0,0,[1,1,1,1],0,0,0,0,[]],8,1183,[],[[true,""]],[true,"Animation 1",3,true]],[[2112,0,0,32,160,0,0,[1,1,1,1],0,0,0,0,[]],8,1184,[],[[true,""]],[true,"Animation 1",3,true]],[[2784,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1186,[],[[true,""]],[true,"Animation 1",0,true]],[[2816,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1187,[],[[true,""]],[true,"Animation 1",0,true]],[[2880,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1188,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1189,[],[[true,""]],[true,"Animation 1",0,true]],[[2944,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1190,[],[[true,""]],[true,"Animation 1",0,true]],[[3200,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1191,[],[[true,""]],[true,"Animation 1",0,true]],[[3232,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1192,[],[[true,""]],[true,"Animation 1",0,true]],[[3264,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1193,[],[[true,""]],[true,"Animation 1",0,true]],[[3296,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1194,[],[[true,""]],[true,"Animation 1",0,true]],[[3328,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1195,[],[[true,""]],[true,"Animation 1",0,true]],[[3360,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1196,[],[[true,""]],[true,"Animation 1",0,true]],[[3392,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1197,[],[[true,""]],[true,"Animation 1",0,true]],[[3424,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1198,[],[[true,""]],[true,"Animation 1",0,true]],[[3456,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1199,[],[[true,""]],[true,"Animation 1",0,true]],[[3488,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1200,[],[[true,""]],[true,"Animation 1",0,true]],[[3520,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1201,[],[[true,""]],[true,"Animation 1",0,true]],[[3552,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1202,[],[[true,""]],[true,"Animation 1",0,true]],[[3584,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1203,[],[[true,""]],[true,"Animation 1",0,true]],[[3616,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1204,[],[[true,""]],[true,"Animation 1",0,true]],[[3648,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1205,[],[[true,""]],[true,"Animation 1",0,true]],[[3680,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1206,[],[[true,""]],[true,"Animation 1",0,true]],[[3712,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1207,[],[[true,""]],[true,"Animation 1",0,true]],[[3808,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1208,[],[[true,""]],[true,"Animation 1",0,true]],[[3840,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1209,[],[[true,""]],[true,"Animation 1",0,true]],[[3872,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1210,[],[[true,""]],[true,"Animation 1",0,true]],[[3904,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1211,[],[[true,""]],[true,"Animation 1",0,true]],[[3936,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1212,[],[[true,""]],[true,"Animation 1",0,true]],[[3968,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1213,[],[[true,""]],[true,"Animation 1",0,true]],[[4000,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1214,[],[[true,""]],[true,"Animation 1",0,true]],[[4032,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1215,[],[[true,""]],[true,"Animation 1",0,true]],[[4064,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1216,[],[[true,""]],[true,"Animation 1",0,true]],[[4096,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1217,[],[[true,""]],[true,"Animation 1",0,true]],[[2848,288,0,128,160,0,0,[1,1,1,1],0,0,0,0,[]],8,1224,[],[[true,""]],[true,"Animation 1",3,true]],[[3136,320,0,64,128,0,0,[1,1,1,1],0,0,0,0,[]],8,1225,[],[[true,""]],[true,"Animation 1",3,true]],[[2368,448,0,608,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1226,[],[[true,""]],[true,"Animation 1",3,true]],[[3744,416,0,64,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1227,[],[[true,""]],[true,"Animation 1",3,true]],[[4288,512,0,2752,448,0,0,[1,1,1,1],0,0,0,0,[]],8,1232,[],[[true,""]],[true,"Animation 1",3,true]],[[4288,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1233,[],[[true,""]],[true,"Animation 1",0,true]],[[4320,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1234,[],[[true,""]],[true,"Animation 1",0,true]],[[4352,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1235,[],[[true,""]],[true,"Animation 1",0,true]],[[4384,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1236,[],[[true,""]],[true,"Animation 1",0,true]],[[4416,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1237,[],[[true,""]],[true,"Animation 1",0,true]],[[4448,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1238,[],[[true,""]],[true,"Animation 1",0,true]],[[4480,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1239,[],[[true,""]],[true,"Animation 1",0,true]],[[4512,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1240,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1241,[],[[true,""]],[true,"Animation 1",0,true]],[[5024,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1242,[],[[true,""]],[true,"Animation 1",0,true]],[[5056,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1243,[],[[true,""]],[true,"Animation 1",0,true]],[[5088,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1244,[],[[true,""]],[true,"Animation 1",0,true]],[[5120,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1245,[],[[true,""]],[true,"Animation 1",0,true]],[[5152,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1246,[],[[true,""]],[true,"Animation 1",0,true]],[[5184,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1247,[],[[true,""]],[true,"Animation 1",0,true]],[[5216,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1248,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,416,0,32,96,0,0,[1,1,1,1],0,0,0,0,[]],8,1249,[],[[true,""]],[true,"Animation 1",3,true]],[[4960,160,0,32,32,0,0,[1,1,1,1],1,0,0,0,[]],8,1250,[],[[true,""]],[true,"Animation 1",6,true]],[[4960,448,0,32,64,0,0,[1,1,1,1],0,0,0,0,[]],8,1251,[],[[true,""]],[true,"Animation 1",3,true]],[[4544,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1252,[],[[true,""]],[true,"Animation 1",8,true]],[[4576,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1253,[],[[true,""]],[true,"Animation 1",0,true]],[[4608,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1254,[],[[true,""]],[true,"Animation 1",0,true]],[[4640,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1255,[],[[true,""]],[true,"Animation 1",0,true]],[[4672,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1256,[],[[true,""]],[true,"Animation 1",0,true]],[[4704,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1257,[],[[true,""]],[true,"Animation 1",0,true]],[[4736,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1258,[],[[true,""]],[true,"Animation 1",0,true]],[[4768,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1259,[],[[true,""]],[true,"Animation 1",0,true]],[[4800,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1260,[],[[true,""]],[true,"Animation 1",0,true]],[[4832,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1261,[],[[true,""]],[true,"Animation 1",0,true]],[[4864,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1262,[],[[true,""]],[true,"Animation 1",0,true]],[[4896,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1263,[],[[true,""]],[true,"Animation 1",0,true]],[[4928,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1264,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,192,0,448,128,0,0,[1,1,1,1],0,0,0,0,[]],24,1265,[],[],[true,"Animation 1",3,true]],[[4544,320,0,448,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1266,[],[],[true,"Animation 1",3,true]],[[4576,416,0,384,96,0,0,[1,1,1,1],0,0,0,0,[]],24,1269,[],[],[true,"Animation 1",3,true]],[[5248,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1271,[],[[true,""]],[true,"Animation 1",0,true]],[[199,417,0,32,87,0,0,[1,1,1,1],0.5,1,0,0,[]],1,1280,["idle","right",0],[[400,1300,1300,600,1300,1000,false,0,true,true],[true]],[false,"Animation 1",0,true]],[[198.95986062675468,415.5650087108278,0,143.49912891721678,143.49912891721678,0,0,[1,1,1,1],0.16,0.99,0,0,[]],2,1284,[],[[]],[true,"idle",0,true]],[[608,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1141,[],[],[true,"Animation 1",0,true]],[[448,416,0,160,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1304,[],[[true,""]],[true,"Animation 1",3,true]],[[854.8788908070195,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1305,[],[],[true,"Animation 1",0,true]],[[549.6853152385188,354.13390326555304,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1272,[],[],[true,"Animation 1",0,true]],[[1856,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1273,[],[],[true,"Animation 1",0,true]],[[1408,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1274,[],[],[true,"Animation 1",0,true]],[[3238.4452090945106,352.92074415635864,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1275,[],[],[true,"Animation 1",0,true]],[[3584,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1276,[],[],[true,"Animation 1",0,true]],[[4544,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],5,1277,[],[],[true,"Animation 1",0,true]],[[4928,352,0,64,64,0,0,[1,1,1,1],0,0,0,0,[]],6,1306,[],[],[true,"Animation 1",0,true]],[[4992,160,0,32,32,0,0,[1,1,1,1],1,0,0,0,[]],8,1278,[],[[true,""]],[true,"Animation 1",6,true]],[[864,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,153,["right"],[[250,1000,1000,2,3,false,true]],[true,"right",0,true]],[[1472,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,154,["right"],[[300,1000,1000,2,3,false,true]],[true,"right",0,true]],[[3584,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,155,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[4928,384,0,128,64,0,0,[1,1,1,1],0.5,0.5,0,0,[]],19,156,["right"],[[500,1000,1000,2,3,false,true]],[true,"right",0,true]],[[3776,353,0,53,52,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,157,[],[],[true,"Animation 1",0,true]],[[2926.0224,288.00308641975306,0,92,33,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,172,[],[],[true,"Animation 1",0,true]],[[3278.9744,416.0987654320988,0,30.9632,60.839506172839506,0,0,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,179,[],[],[true,"Animation 1",1,true]],[[3648,416,0,30.9632,60.839506172839506,0,0,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,180,[],[],[true,"Animation 1",1,true]],[[2656,256,0,32,32,0,0,[1,1,1,1],1,1,0,0,[]],8,187,[],[[true,""]],[true,"Animation 1",9,true]],[[2656,192,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,188,[],[[true,""]],[true,"Animation 1",0,true]],[[2624,160,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,189,[],[[true,""]],[true,"Animation 1",3,true]],[[2624,128,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,190,[],[[true,""]],[true,"Animation 1",3,true]],[[2656,96,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,191,[],[[true,""]],[true,"Animation 1",0,true]],[[2624,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,202,[],[[true,""]],[true,"Animation 1",0,true]],[[2656,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,203,[],[[true,""]],[true,"Animation 1",0,true]],[[2720,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,204,[],[[true,""]],[true,"Animation 1",0,true]],[[2720,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,205,[],[[true,""]],[true,"Animation 1",0,true]],[[2688,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,206,[],[[true,""]],[true,"Animation 1",0,true]],[[2752,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,207,[],[[true,""]],[true,"Animation 1",0,true]],[[2784,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,208,[],[[true,""]],[true,"Animation 1",0,true]],[[2816,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,209,[],[[true,""]],[true,"Animation 1",0,true]],[[2880,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,210,[],[[true,""]],[true,"Animation 1",0,true]],[[2880,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,215,[],[[true,""]],[true,"Animation 1",0,true]],[[2848,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,216,[],[[true,""]],[true,"Animation 1",0,true]],[[2912,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,217,[],[[true,""]],[true,"Animation 1",0,true]],[[2944,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,218,[],[[true,""]],[true,"Animation 1",0,true]],[[2976,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,220,[],[[true,""]],[true,"Animation 1",0,true]],[[3040,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,222,[],[[true,""]],[true,"Animation 1",0,true]],[[3040,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,257,[],[[true,""]],[true,"Animation 1",0,true]],[[3008,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,258,[],[[true,""]],[true,"Animation 1",0,true]],[[3072,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,261,[],[[true,""]],[true,"Animation 1",0,true]],[[2975,478,0,160,64,0,0,[1,1,1,1],0,0,0,0,[]],23,181,[],[],[false,"Animation 1",0,true]],[[2144,160.09014907734408,0,32,18.11704208901017,0,3.141592653589793,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,265,[],[],[true,"Animation 1",1,true]],[[2245.716512080996,332.249668744991,0,22.5696,14.913580246913579,0,0,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,266,[],[],[true,"Animation 1",1,true]],[[1952,480,0,384,64,0,0,[1,1,1,1],0,0,0,0,[]],23,274,[],[],[false,"Animation 1",0,true]],[[2336,84,0,32,128,0,0,[1,1,1,1],0,0,0,0,[]],8,269,[],[[true,""]],[true,"Animation 1",3,true]],[[2364.249668744991,211.1833554170006,0,24.9632,24.419753086419753,0,3.141592653589793,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,276,[],[],[true,"Animation 1",1,true]],[[481.992,386.98765432098764,0,54,28,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,559,[],[],[true,"Animation 1",0,true]],[[608,320,0,54,28,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,569,[],[],[true,"Animation 1",0,true]],[[1088,224,0,27.9264,30.419753086419753,0,0,[1,1,1,1],0,1.0064935064935066,0,0,[]],22,652,[],[],[true,"Animation 1",1,true]],[[1215.4943999999998,293.99074074074076,0,57,29,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,1080,[],[],[true,"Animation 1",0,true]],[[1344,356,0,57,29,0,0,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,1087,[],[],[true,"Animation 1",0,true]],[[2976,382.6,0,189,32,0,1.5707963267948966,[1,1,1,1],0.5008,1.0030864197530864,0,0,[]],22,916,[],[],[true,"Animation 1",0,true]],[[4992,448,0,320,64,0,0,[1,1,1,1],0,0,0,0,[]],8,917,[],[[true,""]],[true,"Animation 1",3,true]],[[4288,448,0,256,64,0,0,[1,1,1,1],0,0,0,0,[]],8,918,[],[[true,""]],[true,"Animation 1",3,true]],[[4544,224,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1223,[],[[true,""]],[true,"Animation 1",0,true]],[[4544,256,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1228,[],[[true,""]],[true,"Animation 1",0,true]],[[4128,480,0,160,64,0,0,[1,1,1,1],0,0,0,0,[]],23,1035,[],[],[false,"Animation 1",0,true]],[[-32,32,0,32,416,0,0,[1,1,1,1],0,0,0,0,[]],8,1221,[],[[true,""]],[true,"Animation 1",0,true]],[[4992,192,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1358,[],[[true,""]],[true,"Animation 1",0,true]],[[3744,416,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1359,[],[[true,""]],[true,"Animation 1",0,true]],[[3744,352,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1360,[],[[true,""]],[true,"Animation 1",1,true]],[[3808,352,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1361,[],[[true,""]],[true,"Animation 1",1,true]],[[3808,384,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1362,[],[[true,""]],[true,"Animation 1",0,true]],[[3136,384,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1363,[],[[true,""]],[true,"Animation 1",0,true]],[[3136,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1364,[],[[true,""]],[true,"Animation 1",1,true]],[[2656,256,0,32,32,0,3.141592653589793,[1,1,1,1],0,0,0,0,[]],8,1365,[],[[true,""]],[true,"Animation 1",1,true]],[[3200,352,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1366,[],[[true,""]],[true,"Animation 1",0,true]],[[3200,384,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1367,[],[[true,""]],[true,"Animation 1",0,true]],[[3136,416,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1368,[],[[true,""]],[true,"Animation 1",0,true]],[[3136,448,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1369,[],[[true,""]],[true,"Animation 1",0,true]],[[3136,480,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1370,[],[[true,""]],[true,"Animation 1",1,true]],[[2592,256,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1371,[],[[true,""]],[true,"Animation 1",1,true]],[[2656,160,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1372,[],[[true,""]],[true,"Animation 1",0,true]],[[2656,128,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1373,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,224,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1374,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,192,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1375,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,160,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1376,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,128,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1377,[],[[true,""]],[true,"Animation 1",0,true]],[[2592,64,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1378,[],[[true,""]],[true,"Animation 1",1,true]],[[2336,480,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1379,[],[[true,""]],[true,"Animation 1",0,true]],[[3168,320,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1380,[],[[true,""]],[true,"Animation 1",2,true]],[[1952,448,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1381,[],[[true,""]],[true,"Animation 1",0,true]],[[800,224,0,32,32,0,4.71238898038469,[1,1,1,1],0,0,0,0,[]],8,1382,[],[[true,""]],[true,"Animation 1",0,true]],[[1088,192,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,1383,[],[[true,""]],[true,"Animation 1",0,true]],[[640,320,0,288.06226530936976,128,0,0,[1,1,1,1],0,0,0,0,[]],24,1163,[],[],[true,"Animation 1",3,true]],[[575.9688673453152,352,0,64.03113265468482,96,0,0,[1,1,1,1],0,0,0,0,[]],24,1303,[],[],[true,"Animation 1",3,true]],[[4544,352,0,448,32,0,0,[1,1,1,1],0,0,0,0,[]],24,1267,[],[],[true,"Animation 1",3,true]],[[4544,384,0,448,64,0,0,[1,1,1,1],0,0,0,0,[]],24,1268,[],[],[true,"Animation 1",3,true]]],[],0],["Foreground",3,535736347217942,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[6048,352,0,1477.6507689405444,572.8426953564027,0,0,[1,1,1,1],0.5,0.5,0,0,[]],37,1451,[],[],[true,"shop3",0,true]],[[116.33073894544296,758.0026550686681,0,100,100,0,0,[1,1,1,1],0,0.5,0,0,[]],46,1457,[],[],[50,360,1,-1,200,32,100,3,0,0,10,10,10,-150,10,0,800,0,0,1]],[[5304,-46,0,64,320,0,0,[1,1,1,1],0,0,0,0,[]],10,1461,[],[[true,""]],[false,"Animation 1",0,true]],[[5280,416,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],8,1581,[],[[true,""]],[true,"Animation 1",0,true]],[[5344,301,0,64,288,0,0,[1,1,1,1],0.5,0.5,0,0,[]],48,1449,[],[],[false,"Animation 1",0,true]],[[4992,224,0,32,32,0,1.5707963267948966,[1,1,1,1],0,0,0,0,[]],8,996,[],[[true,""]],[true,"Animation 1",0,true]],[[6784,-224,0,256,928,0,0,[1,1,1,1],0,0,0,0,[]],8,1036,[],[[true,""]],[true,"Animation 1",3,true]],[[5312,-224,0,1504,288,0,0,[1,1,1,1],0,0,0,0,[]],8,1038,[],[[true,""]],[true,"Animation 1",3,true]],[[6496,384,0,128,96,0,0,[1,1,1,1],0.5,0.5,0,0,[]],35,1039,[],[],[true,"Animation 1",0,true]]],[],0],["FadeBlack",4,434257153995426,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[608,384,0,1303,834,0,0,[1,1,1,1],0.5,0.5,0,0,[]],45,1414,[],[[0,0,1,false,true]],[true,"Animation 1",0,true]]],[],0]],[],[]],["ShopScene2",1120,960,false,"ShopEventSheet2",871566655067038,[["Layer 0",0,539990296510443,true,[255,255,255],false,1,1,1,false,false,1,0,0,[[[560,256,0,1120,576,0,0,[1,1,1,1],0.5,0.5,0,0,[]],36,1431,[],[],[true,"shop2",0,true]],[[54,256,0,64,128,0,0,[1,1,1,1],0.5,0.5,0,0,[]],14,1432,[],[],[false,"Animation 1",0,true]],[[927,224,0,96,96,0,0,[1,1,1,1],0,0,0,0,[]],13,1433,[],[],[false,"Animation 1",0,true]],[[341,218,0,109,96,0,0,[1,1,1,1],0,0,0,0,[]],11,1434,[],[],[false,"Animation 1",0,true]],[[-74,0,0,96,608,0,0,[1,1,1,1],0,0,0,0,[]],10,1436,[],[[true,""]],[false,"Animation 1",0,true]],[[0,320,0,1184,288,0,0,[1,1,1,1],0,0,0,0,[]],10,1437,[],[[true,""]],[false,"Animation 1",0,true]],[[1038,0,0,128,608,0,0,[1,1,1,1],0,0,0,0,[]],10,1438,[],[[true,""]],[false,"Animation 1",0,true]],[[382,293,0,76.18894186183772,103.29634624561658,0,0,[1,1,1,1],0.21621621621621623,0.7627118644067796,0,0,[]],12,1435,[],[],[true,"damien",0,true]],[[91,313,0,37.93194365473557,99.48930046446749,0,0,[1,1,1,1],0.5,0.9921671018276762,0,0,[]],32,1439,[0,0,0,0,"right",0,0,0],[[330,1500,1500,0,1500,1000,false,0,true,true]],[true,"idle",0,true]]],[],0],["Foreground",1,940139365707315,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[561.0158023711176,254.60606960512104,0,1117.3468828153157,572.8426953564027,0,0,[1,1,1,1],0.5,0.5,0,0,[]],37,1440,[],[],[true,"shop2",0,true]],[[960.2963097821414,251.67178606003523,0,32,32,0,0,[1,1,1,1],0,0,0,0,[]],15,1442,[],[],[true,"Animation 1",0,true]]],[],0],["GUI",2,552645483189737,true,[94,94,94],true,0,0,1,false,false,1,0,0,[[[484.1031390008157,607.2912140575913,0,696.3306384540319,119.18373254225862,0,0,[1,1,1,1],0.49411764705882355,2.0588235294117645,0,0,[]],17,1443,[0],[],[false,"Animation 1",0,true]],[[188,375,0,640,64,0,0,[1,1,1,1],0,0,0,0,[]],33,1444,[0,0],[],["Jamie: \"Can I have some coffee?\"",true,"Optima",15,0,false,false,[0.5411764705882353,0.2627450980392157,0.40784313725490196],0,1,0,false,0]],[[196,296,0,203.13247378191875,155.11934361528338,0,0,[1,1,1,1],0.9090909090909091,-0.21428571428571427,0,0,[]],16,1445,[],[],[false,"damien",0,true]],[[190,435,0,640,32,0,0,[1,1,1,1],0,0,0,0,[]],18,1446,[],[],["Use the arrow keys to move. Press space to talk to a customer. Press Enter to continue.",true,"Optima",12,0,false,false,[0.7686274509803922,0.40784313725490196,0.5333333333333333],0,0,0,true,0]],[[200,296,0,171.01691645648893,159.61578869272302,0,0,[1,1,1,1],1.1111111111111112,-0.21428571428571427,0,0,[]],44,1447,[],[],[false,"talk",0,true]]],[],0],["FadeScreen",3,814646044805159,true,[94,94,94],true,1,1,1,false,false,1,0,0,[[[548.5,299,0,1303,834,0,0,[1,1,1,1],0.5,0.5,0,0,[]],45,1448,[],[[0,0,1,false,true]],[true,"Animation 1",0,true]]],[],0]],[],[]]],[["PlatformerEventSheet",[[1,"MarioHealth",0,1,false,false,583827643094561,false],[1,"Airdash",0,0,false,false,504862777282220,false],[1,"lastwall",1,"",false,false,311842048532982,false],[1,"GameTime",0,100,false,false,911123034694105,false],[3,[true,"Player"],false,null,956307774058384,1,[[-1,13,null,0,false,false,false,0,false,[[1,[0]]]]],[],[[0,0,false,null,837572436949034,2,[[1,14,"Platform",0,false,false,false,439337218461760,null],[1,15,"Platform",0,false,false,false,684943167235843,null]],[[1,16,null,145343892402096,null,[[10,0],[7,[1]]]]]],[0,0,false,null,257474645564359,3,[[1,14,"Platform",0,false,true,false,674703270067126,null],[1,15,"Platform",0,false,false,false,332766266076122,null]],[[1,16,null,261716145576663,null,[[10,0],[7,[2]]]]]],[0,0,false,null,655117447405163,4,[[1,17,null,0,false,false,false,334108994819523,null,[[10,0],[8,0],[7,[1]]]]],[[2,18,null,837415267802229,null,[[1,[1]],[3,1]]]]],[0,0,false,null,898860079772284,5,[[1,17,null,0,false,false,false,800228674931909,null,[[10,0],[8,0],[7,[2]]]]],[[2,18,null,296018219082863,null,[[1,[2]],[3,1]]]]],[0,0,false,null,443525632563000,6,[[1,17,null,0,false,false,false,944047937487233,null,[[10,1],[8,0],[7,[3]]]]],[[2,19,null,603305731514585,null,[[3,1]]]]],[0,0,false,null,561577020355567,7,[[1,17,null,0,false,false,false,239623424904545,null,[[10,1],[8,0],[7,[4]]]]],[[2,19,null,610103546873022,null,[[3,0]]]]],[0,0,false,null,474676022489235,8,[[1,20,"Platform",0,false,false,false,462516488810406,null]],[[1,16,null,211797991922624,null,[[10,0],[7,[5]]]]]],[0,0,false,null,393373754453926,9,[[1,17,null,0,false,false,false,112920127005149,null,[[10,0],[8,0],[7,[5]]]]],[[2,18,null,746652710623364,null,[[1,[5]],[3,1]]]]],[0,0,false,null,641166103207640,10,[[1,21,null,0,false,false,true,296550350834369,null,[[4,19]]]],[[-1,22,null,853620455961981,null,[[11,"MarioHealth"],[7,[6]]]]]],[0,0,false,null,484789589821366,11,[[1,21,null,0,false,false,true,545440646610640,null,[[4,22]]]],[[-1,22,null,718038583735427,null,[[11,"MarioHealth"],[7,[6]]]]]],[0,0,false,null,436820029676219,12,[[1,21,null,0,false,false,true,638256656631985,null,[[4,23]]]],[[-1,23,null,898617635853712,null,[[11,"MarioHealth"],[7,[7]]]]]],[0,0,false,null,993328876174031,13,[[1,21,null,0,false,false,true,860238842563994,null,[[4,24]]]],[[24,24,null,866400705273864,null,[[0,[8]]]]]]]],[3,[true,"System"],false,null,279111244652787,14,[[-1,13,null,0,false,false,false,0,false,[[1,[9]]]]],[],[[0,0,false,null,623900885945409,15,[[-1,25,null,1,false,false,false,713111643323766,null]],[[-1,23,null,129893261527494,null,[[11,"MarioHealth"],[7,[6]]]]]],[0,0,false,null,402352227488187,16,[[-1,26,null,0,false,false,false,250124826936199,null]],[[2,27,null,621141838869796,null,[[0,[10,[1,1,28,false]]],[0,[10,[1,1,29,false]]]]]]],[0,0,false,null,871355437454656,17,[[3,30,null,1,false,false,false,133849461119237,null,[[9,39]]]],[[1,16,null,818122748476744,null,[[10,1],[7,[3]]]]]],[0,0,false,null,324913884317281,18,[[3,30,null,1,false,false,false,740594754279329,null,[[9,37]]]],[[1,16,null,153350282864064,null,[[10,1],[7,[4]]]]]],[0,0,false,null,875260179040047,19,[[-1,25,null,1,false,false,false,651253933166067,null]],[[-1,23,null,923132425876893,null,[[11,"GameTime"],[7,[11]]]]]],[0,0,false,null,198441826523517,20,[[-1,26,null,0,false,false,false,550791781763456,null]],[[-1,22,null,912031867617132,null,[[11,"GameTime"],[7,[12,[4,31]]]]]]],[0,0,false,null,843825080440130,21,[[-1,32,null,0,false,false,false,358566329098574,null,[[11,"GameTime"],[8,3],[7,[7]]]]],[[-1,23,null,678390457452161,null,[[11,"MarioHealth"],[7,[7]]]]]],[0,0,false,null,770634185936607,22,[[-1,32,null,0,false,false,false,413158756481633,null,[[11,"MarioHealth"],[8,0],[7,[7]]]]],[[1,33,null,279024612835533,null,[[10,2],[3,1]]]],[[0,0,false,null,145629179440214,23,[[1,34,null,0,false,false,false,576790403137890,null,[[10,2]]]],[[2,35,null,739158939434247,null,[[3,0]]],[1,36,"Platform",338697627333228,null,[[3,1]]],[-1,37,null,334338667321270,null,[[0,[6]]]],[-1,38,null,489520097184190,null]]]]],[0,0,false,null,730418159529636,24,[[1,34,null,0,false,false,false,756548866902044,null,[[10,2]]],[-1,39,null,0,false,false,false,199640337464519,null]],[[-1,40,null,137361763548088,null,[[4,46],[5,[7]],[0,[10,[1,1,28,false]]],[0,[10,[1,1,29,false]]]]]]]]],[3,[true,"Wall Jump"],false,null,503669530617073,25,[[-1,13,null,0,false,false,false,0,false,[[1,[13]]]]],[],[[0,0,false,null,207388010428578,26,[[1,15,"Platform",0,false,true,false,617918491045469,null],[1,41,"Platform",0,false,false,false,868407567626974,null,[[3,1]]]],[[1,42,"Platform",584586911828563,null,[[0,[14]]]],[2,18,null,342233122968300,null,[[1,[15]],[3,1]]],[2,19,null,657108769668302,null,[[3,0]]]],[[0,0,false,null,610124773004102,27,[[3,30,null,1,false,false,false,466338865763193,null,[[9,38]]],[-1,32,null,0,false,true,false,534203910058670,null,[[11,"lastwall"],[8,0],[7,[3]]]]],[[1,43,"Platform",168264633732208,null,[[0,[16]]]],[1,44,"Platform",799481912435547,null,[[0,[16]]]],[-1,23,null,493851055916341,null,[[11,"lastwall"],[7,[3]]]]]]]],[0,0,false,null,134688083658633,28,[[1,15,"Platform",0,false,true,false,179320227708850,null],[1,41,"Platform",0,false,false,false,962187319311159,null,[[3,0]]]],[[1,42,"Platform",266334362081322,null,[[0,[14]]]],[2,18,null,493674625636059,null,[[1,[15]],[3,1]]],[2,19,null,509989827053677,null,[[3,1]]]],[[0,0,false,null,395051306197888,29,[[3,30,null,1,false,false,false,953056983055517,null,[[9,38]]],[-1,32,null,0,false,true,false,140846288167266,null,[[11,"lastwall"],[8,0],[7,[4]]]]],[[1,43,"Platform",395619424235693,null,[[0,[17]]]],[1,44,"Platform",715708005979327,null,[[0,[16]]]],[-1,23,null,317098738345994,null,[[11,"lastwall"],[7,[4]]]]]]]],[0,0,false,null,840876766689630,30,[[1,41,"Platform",0,false,true,false,507629554351963,null,[[3,0]]],[1,41,"Platform",0,false,true,false,986127116526352,null,[[3,1]]]],[[1,42,"Platform",883597945625947,null,[[0,[18]]]]]],[0,0,false,null,636377635290404,31,[[1,15,"Platform",0,false,false,false,824737127964543,null]],[[-1,23,null,914206625107097,null,[[11,"lastwall"],[7,[19]]]]]]]],[3,[true,"Air Dash"],false,null,451410985329861,32,[[-1,13,null,0,false,false,false,0,false,[[1,[20]]]]],[],[[0,0,false,null,784987389057179,33,[[3,30,null,1,false,false,false,720358072490211,null,[[9,32]]],[1,15,"Platform",0,false,true,false,676961277866059,null],[1,41,"Platform",0,false,true,false,300593455868504,null,[[3,0]]],[1,41,"Platform",0,false,true,false,822122764308286,null,[[3,1]]],[1,17,null,0,false,false,false,344792419688961,null,[[10,1],[8,0],[7,[3]]]],[-1,32,null,0,false,false,false,163209144273678,null,[[11,"Airdash"],[8,0],[7,[7]]]]],[[-1,45,null,556900089754845,null,[[11,"Airdash"],[7,[6]]]],[1,43,"Platform",185518270327217,null,[[0,[21]]]],[1,46,"Platform",151310858478777,null,[[0,[21]]]],[-1,37,null,865490799158878,null,[[0,[22]]]],[1,46,"Platform",428194422093947,null,[[0,[23]]]],[47,47,null,471067037458857,null,[[2,["airdash",false]],[3,0],[0,[24]],[1,[25]]]]]],[0,0,false,null,831960260917523,34,[[3,30,null,1,false,false,false,368265511712113,null,[[9,32]]],[1,15,"Platform",0,false,true,false,407747775440092,null],[1,41,"Platform",0,false,true,false,939661007824984,null,[[3,0]]],[1,41,"Platform",0,false,true,false,731596672643094,null,[[3,1]]],[1,17,null,0,false,false,false,515684426625410,null,[[10,1],[8,0],[7,[4]]]],[-1,32,null,0,false,false,false,340415150979421,null,[[11,"Airdash"],[8,0],[7,[7]]]]],[[-1,45,null,270317266366186,null,[[11,"Airdash"],[7,[6]]]],[1,43,"Platform",857078285152959,null,[[0,[26]]]],[1,46,"Platform",903683134754702,null,[[0,[21]]]],[-1,37,null,983880763371445,null,[[0,[22]]]],[1,46,"Platform",558365584974701,null,[[0,[23]]]],[47,47,null,105758315810890,null,[[2,["airdash",false]],[3,0],[0,[24]],[1,[25]]]]]],[0,0,false,null,147573601088732,35,[[1,15,"Platform",0,false,false,false,858636998905341,null]],[[-1,23,null,496047992998647,null,[[11,"Airdash"],[7,[7]]]]]]]],[3,[true,"Spotlight_UH_Moonlight_UH"],false,null,268519172087560,36,[[-1,13,null,0,false,false,false,0,false,[[1,[27]]]]],[],[[0,0,false,null,536308480741283,37,[[19,21,null,0,false,false,true,305651315887965,null,[[4,5]]]],[[19,16,null,714680809933858,null,[[10,0],[7,[3]]]]]],[0,0,false,null,994038922516053,38,[[19,21,null,0,false,false,true,393519403506262,null,[[4,6]]]],[[19,16,null,237977221286963,null,[[10,0],[7,[4]]]]]],[0,0,false,null,260712381615839,39,[[19,21,null,0,false,false,true,218862084838552,null,[[4,20]]]],[[19,16,null,292508966506975,null,[[10,0],[7,[28]]]]]],[0,0,false,null,393115108712374,40,[[19,21,null,0,false,false,true,185786695989181,null,[[4,21]]]],[[19,16,null,830866299449458,null,[[10,0],[7,[29]]]]]],[0,0,false,null,947104876334087,41,[[19,17,null,0,false,false,false,872289792182402,null,[[10,0],[8,0],[7,[3]]]]],[[19,48,"8Direction",219911734058846,null,[[3,1]]],[19,49,null,260591775931133,null,[[0,[30]]]],[19,50,null,184965373774076,null,[[3,0]]]]],[0,0,false,null,366563566775403,42,[[19,17,null,0,false,false,false,728383142106599,null,[[10,0],[8,0],[7,[4]]]]],[[19,48,"8Direction",188519711209778,null,[[3,0]]],[19,49,null,633604519497966,null,[[0,[7]]]],[19,50,null,813175625841446,null,[[3,1]]]]],[0,0,false,null,181319095507869,43,[[19,17,null,0,false,false,false,534303347687761,null,[[10,0],[8,0],[7,[28]]]]],[[19,48,"8Direction",714610087325062,null,[[3,2]]],[19,49,null,128809362292558,null,[[0,[7]]]]]],[0,0,false,null,555759412420534,44,[[19,17,null,0,false,false,false,380294816667465,null,[[10,0],[8,0],[7,[29]]]]],[[19,48,"8Direction",445324529847599,null,[[3,3]]],[19,49,null,784748841185131,null,[[0,[7]]]]]]]],[3,[true,"Layout Changing"],false,null,806431936939758,45,[[-1,13,null,0,false,false,false,0,false,[[1,[31]]]]],[],[[0,0,false,null,428435279609866,46,[[3,30,null,1,false,false,false,875019438568435,null,[[9,32]]],[1,51,null,0,false,false,false,669563591513670,null,[[4,35]]],[-1,52,null,0,false,false,false,872035190931323,null,[[7,[12,[4,53]]],[8,0],[7,[32]]]]],[[-1,54,null,939577099951798,null,[[6,"ShopScene2"]]]]],[0,0,false,null,371911760373503,47,[[3,30,null,1,false,false,false,425286683714184,null,[[9,32]]],[1,51,null,0,false,false,false,724603027773776,null,[[4,35]]],[-1,52,null,0,false,false,false,925458474579905,null,[[7,[12,[4,53]]],[8,0],[7,[33]]]]],[[-1,54,null,891280119470924,null,[[6,"Level 3"]]]]],[0,0,false,null,369049987966347,48,[[3,30,null,1,false,false,false,982594354166207,null,[[9,32]]],[1,51,null,0,false,false,false,753493871943669,null,[[4,35]]],[-1,52,null,0,false,false,false,427121321995719,null,[[7,[12,[4,53]]],[8,0],[7,[34]]]]],[[-1,54,null,762369961058777,null,[[6,"MainMenu"]]]]]]],[3,[true,"Ghost2"],false,null,706552231297319,49,[[-1,13,null,0,false,false,false,0,false,[[1,[35]]]]],[],[[0,0,false,null,735749717334891,50,[[25,21,null,0,false,false,true,549351879862659,null,[[4,5]]]],[[25,16,null,640986766745333,null,[[10,1],[7,[3]]]]]],[0,0,false,null,800494549517788,51,[[25,21,null,0,false,false,true,366199246415275,null,[[4,6]]]],[[25,16,null,851746636975995,null,[[10,1],[7,[4]]]]]]]],[3,[true,"Music and Sounds"],false,null,979580232070904,52,[[-1,13,null,0,false,false,false,0,false,[[1,[36]]]]],[],[[0,0,false,null,910769199307330,53,[[-1,25,null,1,false,false,false,338776541609962,null],[-1,52,null,0,false,false,false,100911015043210,null,[[7,[12,[4,53]]],[8,0],[7,[32]]]]],[[47,47,null,409332418006513,null,[[2,["platform1",true]],[3,1],[0,[7]],[1,[37]]]]]],[0,0,false,null,981894900416652,54,[[-1,55,null,1,false,false,false,629301207544876,null],[-1,52,null,0,false,false,false,638807809969603,null,[[7,[12,[4,53]]],[8,0],[7,[32]]]]],[[47,56,null,955758944727367,null,[[1,[37]]]]]],[0,0,false,null,762668384092262,55,[[-1,25,null,1,false,false,false,828315440165345,null],[-1,52,null,0,false,false,false,226442250723185,null,[[7,[12,[4,53]]],[8,0],[7,[33]]]]],[[47,47,null,388784571633292,null,[[2,["platform2",true]],[3,1],[0,[7]],[1,[38]]]]]],[0,0,false,null,922691402247990,56,[[-1,55,null,1,false,false,false,486593988279871,null],[-1,52,null,0,false,false,false,497045816137350,null,[[7,[12,[4,53]]],[8,0],[7,[33]]]]],[[47,56,null,876650060014180,null,[[1,[38]]]]]],[0,0,false,null,881459158066839,57,[[-1,25,null,1,false,false,false,173351744031067,null],[-1,52,null,0,false,false,false,477082403828113,null,[[7,[12,[4,53]]],[8,0],[7,[34]]]]],[[47,47,null,989391260301764,null,[[2,["platform3",true]],[3,1],[0,[7]],[1,[39]]]]]],[0,0,false,null,970677188710665,58,[[1,21,null,0,false,false,true,236861252152864,null,[[4,48]]]],[[47,56,null,725448877501037,null,[[1,[39]]]],[47,47,null,971328541265554,null,[[2,["coffee shop 3",true]],[3,0],[0,[7]],[1,[25]]]]]]]],[0,0,false,null,867911479812562,59,[[3,30,null,1,false,false,false,561884211351313,null,[[9,38]]],[1,15,"Platform",0,false,false,false,444269941572078,null]],[[47,47,null,336357294983292,null,[[2,["jump",false]],[3,0],[0,[7]],[1,[25]]]]]]]],["ShopEventSheet",[[1,"DialogueUp",2,false,false,false,781094884896355,false],[1,"YourName",1,"Mugsy",false,false,234456266157907,false],[3,[true,"Coffee"],false,null,419490347618880,1,[[-1,13,null,0,false,false,false,0,false,[[1,[40]]]]],[],[[0,0,false,null,400961549466910,2,[[32,51,null,0,false,false,false,506201666936273,null,[[4,13]]]],[[32,33,null,377456263855331,null,[[10,2],[3,1]]]]],[0,0,false,null,712107317738724,3,[[32,51,null,0,false,true,false,174846405595844,null,[[4,13]]]],[[32,33,null,807782574323063,null,[[10,2],[3,0]]]]],[0,0,false,null,207075623327369,4,[[3,30,null,1,false,false,false,900578476470105,null,[[9,32]]],[32,34,null,0,false,false,false,973468958149006,null,[[10,2]]],[32,34,null,0,false,true,false,646920902308629,null,[[10,1]]]],[[32,33,null,224112713084969,null,[[10,1],[3,1]]],[15,57,null,302249185087941,null]]],[0,0,false,null,736635035632265,5,[[32,34,null,0,false,true,false,385681834888356,null,[[10,5]]],[32,34,null,0,false,false,false,899011183234264,null,[[10,1]]]],[[32,18,null,452991379207091,null,[[1,[41]],[3,1]]]]],[0,0,false,null,856185759699312,6,[[32,34,null,0,false,false,false,475836251251254,null,[[10,5]]],[32,34,null,0,false,false,false,715055221595106,null,[[10,1]]]],[[32,18,null,714211038696453,null,[[1,[42]],[3,1]]]]],[0,0,false,null,350442051864693,7,[[32,34,null,0,false,false,false,712212908926260,null,[[10,5]]],[32,34,null,0,false,true,false,222662105815879,null,[[10,1]]]],[[32,18,null,479445533517662,null,[[1,[1]],[3,1]]]]],[0,0,false,null,489966722740610,8,[[32,34,null,0,false,true,false,368183562162572,null,[[10,1]]],[32,34,null,0,false,true,false,561094621531172,null,[[10,5]]]],[[32,18,null,218732857740022,null,[[1,[2]],[3,1]]]]],[0,0,false,null,622351081331645,9,[[3,30,null,1,false,false,false,141898952448270,null,[[9,32]]],[32,34,null,0,false,false,false,516017381950346,null,[[10,0]]],[32,34,null,0,false,false,false,411408360916474,null,[[10,1]]]],[[17,35,null,561898460943320,null,[[3,1]]],[33,58,null,127360668584761,null,[[7,[43]]]],[33,59,null,269178367693063,null,[[3,1]]],[16,35,null,690084555038882,null,[[3,1]]],[32,33,null,390741761717040,null,[[10,3],[3,1]]],[32,36,"Platform",171907569255322,null,[[3,1]]]]],[0,0,false,null,194623011626235,10,[[3,30,null,1,false,false,false,427860821176701,null,[[9,13]]],[32,34,null,0,false,false,false,244084035795780,null,[[10,3]]],[32,34,null,0,false,false,false,579891299758342,null,[[10,0]]]],[[17,35,null,401750080986830,null,[[3,0]]],[33,59,null,112905840513769,null,[[3,0]]],[16,35,null,615466722462076,null,[[3,0]]],[32,36,"Platform",700773278966951,null,[[3,0]]],[32,33,null,558117271715506,null,[[10,6],[3,1]]]]],[0,0,false,null,621062297977232,11,[[32,34,null,0,false,false,false,188267941274524,null,[[10,3]]]],[[32,33,null,209606196901932,null,[[10,1],[3,0]]]]],[0,0,false,null,728549575074977,12,[[3,30,null,1,false,false,false,175002527704536,null,[[9,13]]],[33,60,null,0,false,false,false,308296606219176,null,[[10,1]]]],[[44,35,null,659726420101863,null,[[3,0]]],[17,35,null,920324553464450,null,[[3,0]]],[33,59,null,730390043955434,null,[[3,0]]],[32,36,"Platform",370944072673885,null,[[3,0]]]]],[0,0,false,null,916456795791950,13,[[32,34,null,0,false,false,false,527505487450924,null,[[10,6]]],[32,34,null,0,false,true,false,522875263369123,null,[[10,0]]],[33,60,null,0,false,true,false,182476786578521,null,[[10,1]]]],[[32,36,"Platform",906243549575471,null,[[3,1]]],[44,35,null,383283512162521,null,[[3,1]]],[17,35,null,280897588920874,null,[[3,1]]],[33,59,null,673847175874885,null,[[3,1]]],[33,58,null,441624943504143,null,[[7,[44,[3,"YourName"]]]]],[33,61,null,698868844499950,null,[[10,1],[3,1]]]]]]],[3,[true,"Talking to Customers"],false,null,685829745337312,14,[[-1,13,null,0,false,false,false,0,false,[[1,[45]]]]],[],[[0,0,false,null,184255335319988,15,[[3,30,null,1,false,false,false,581178127802703,null,[[9,32]]],[32,34,null,0,false,false,false,443199240524767,null,[[10,0]]],[32,34,null,0,false,true,false,678446675291867,null,[[10,1]]],[32,34,null,0,false,true,false,275915215025016,null,[[10,3]]],[33,62,null,0,false,true,false,305034868570267,null]],[[33,63,null,415842310490342,null,[[10,0],[7,[7]]]],[32,33,null,642103487476082,null,[[10,3],[3,0]]],[17,35,null,166622748645744,null,[[3,1]]],[33,58,null,712125849689004,null,[[7,[46,[3,"YourName"]]]]],[33,59,null,508239020700354,null,[[3,1]]],[16,35,null,150377479691772,null,[[3,1]]],[33,64,null,732753103936562,null,[[10,0],[7,[6]]]],[32,36,"Platform",207022897749336,null,[[3,1]]]]],[0,0,false,null,456971034001906,16,[[32,51,null,0,false,false,false,220062743863597,null,[[4,11]]]],[[32,33,null,671475412802300,null,[[10,0],[3,1]]]]],[0,0,false,null,641061620488868,17,[[32,51,null,0,false,true,false,600041568225429,null,[[4,11]]]],[[32,33,null,615522664337768,null,[[10,0],[3,0]]]]],[0,0,false,null,286988837732383,18,[[3,30,null,1,false,false,false,638184115504951,null,[[9,13]]],[32,34,null,0,false,false,false,471658192599919,null,[[10,0]]],[33,62,null,0,false,false,false,289883686245034,null],[33,65,null,0,false,false,false,855635233087240,null,[[10,0],[8,0],[7,[6]]]]],[[33,58,null,443272717830894,null,[[7,[47]]]],[-1,37,null,168157342650111,null,[[0,[6]]]],[33,64,null,816796193972007,null,[[10,0],[7,[6]]]]]],[0,0,false,null,883899895231438,19,[[3,30,null,1,false,false,false,317483263791351,null,[[9,13]]],[33,65,null,0,false,false,false,776968601073300,null,[[10,0],[8,5],[7,[48]]]],[32,34,null,0,false,false,false,397822079928737,null,[[10,0]]],[33,62,null,0,false,false,false,142502755265658,null]],[[17,35,null,887071814027034,null,[[3,0]]],[33,59,null,723450167013748,null,[[3,0]]],[16,35,null,476311538778544,null,[[3,0]]],[32,36,"Platform",930906817587784,null,[[3,0]]]]]]],[3,[true,"Leaving the Room"],false,null,111342055521661,20,[[-1,13,null,0,false,false,false,0,false,[[1,[49]]]]],[],[[0,0,false,null,737416496018346,21,[[3,30,null,1,false,false,false,531840946203109,null,[[9,32]]],[32,34,null,0,false,false,false,322787997240208,null,[[10,3]]],[32,51,null,0,false,false,false,518492583608633,null,[[4,14]]]],[[45,66,"Fade",129617621113816,null,[[0,[48]]]],[45,67,"Fade",929797436436311,null],[47,47,null,335886626851926,null,[[2,["72197__shall555__sh-shop-door-bell-openclose",false]],[3,0],[0,[7]],[1,[25]]]],[-1,37,null,527401356741224,null,[[0,[48]]]],[-1,54,null,362914005183652,null,[[6,"Level 1"]]]]]]],[3,[true,"StartScreen"],false,null,825007192572976,22,[[-1,13,null,0,false,false,false,0,false,[[1,[50]]]]],[],[[0,0,false,null,415342218777709,23,[[27,68,null,1,false,false,false,670953926083903,null]],[[-1,23,null,552607278504142,null,[[11,"YourName"],[7,[10,[1,27,69,true]]]]],[30,33,null,795136410070264,null,[[10,0],[3,1]]]]],[0,0,false,null,582423765005565,24,[[27,70,null,0,false,false,false,220919739968084,null,[[1,[25]],[3,0]]]],[[30,33,null,194355656438218,null,[[10,0],[3,0]]]]],[0,0,false,null,480091682412836,25,[[34,71,null,0,false,false,false,418462025549368,null,[[4,30]]]],[[30,18,null,693452197577879,null,[[1,[51]],[3,1]]],[31,72,null,538926587701322,null,[[0,[52]]]],[31,73,null,314241157246821,null,[[0,[53]]]]]],[0,0,false,null,738875323672098,26,[[34,71,null,0,false,true,false,706696978126205,null,[[4,30]]]],[[30,18,null,899679990138727,null,[[1,[2]],[3,1]]],[31,72,null,766240814948058,null,[[0,[54]]]],[31,73,null,868430988895329,null,[[0,[55]]]]]],[0,0,false,null,274992003973554,27,[[34,74,null,1,false,false,false,210649769712272,null,[[3,0],[3,0],[4,30]]]],[[-1,54,null,888215148251161,null,[[6,"ShopScene"]]]]],[0,0,false,null,683589830465834,28,[[3,30,null,1,false,false,false,846571127197526,null,[[9,13]]],[-1,52,null,0,false,false,false,382463617648115,null,[[7,[12,[4,53]]],[8,0],[7,[50]]]]],[[-1,54,null,946632077880712,null,[[6,"ShopScene"]]]]]]],[0,0,false,null,936092055640657,29,[[-1,26,null,0,false,false,false,758031686676419,null]],[[-1,75,null,692496633727062,null,[[0,[10,[1,32,28,false]]]]]]],[0,0,false,null,554382797096294,30,[[3,30,null,1,false,false,false,414852512643419,null,[[9,39]]]],[[32,33,null,446127795613424,null,[[10,5],[3,1]]],[32,19,null,753563402784445,null,[[3,1]]]]],[0,0,false,null,490252848339419,31,[[3,30,null,1,false,false,false,723191789600424,null,[[9,37]]]],[[32,33,null,806010019704832,null,[[10,5],[3,1]]],[32,19,null,243139693311734,null,[[3,0]]]]],[0,0,false,null,619965387940383,32,[[3,76,null,1,false,false,false,854171958773432,null,[[9,39]]]],[[32,33,null,592571061761943,null,[[10,5],[3,0]]]]],[0,0,false,null,748266966558097,33,[[3,76,null,1,false,false,false,250941070719361,null,[[9,37]]]],[[32,33,null,700470731764282,null,[[10,5],[3,0]]]]],[0,0,false,null,773941232738117,34,[[-1,25,null,1,false,false,false,190079134508131,null],[-1,52,null,0,false,false,false,822954047486294,null,[[7,[12,[4,53]]],[8,0],[7,[56]]]]],[[47,47,null,173247181756809,null,[[2,["coffee shop",true]],[3,1],[0,[7]],[1,[57]]]]]],[0,0,false,null,175355019550369,35,[[-1,25,null,1,false,false,false,863576009286758,null],[-1,52,null,0,false,false,false,460623662231566,null,[[7,[12,[4,53]]],[8,0],[7,[58]]]]],[[47,47,null,480228170716681,null,[[2,["coffee shop",true]],[3,1],[0,[7]],[1,[57]]]]]],[0,0,false,null,601527864042636,36,[[-1,55,null,1,false,false,false,995806690974116,null]],[[47,56,null,265799785370805,null,[[1,[57]]]]]]]],["ShopEventSheet2",[[1,"DialogueUp2",2,false,false,false,984796838167537,false],[1,"YourName2",1,"Mugsy",false,false,282734034724179,false],[3,[true,"Coffee2"],false,null,142032194158820,1,[[-1,13,null,0,false,false,false,0,false,[[1,[59]]]]],[],[[0,0,false,null,461700134320730,2,[[32,51,null,0,false,false,false,662211415807532,null,[[4,13]]]],[[32,33,null,371326744726119,null,[[10,2],[3,1]]]]],[0,0,false,null,609368114759369,3,[[32,51,null,0,false,true,false,781862918163703,null,[[4,13]]]],[[32,33,null,172496603365934,null,[[10,2],[3,0]]]]],[0,0,false,null,899482764786561,4,[[3,30,null,1,false,false,false,788381551975961,null,[[9,32]]],[32,34,null,0,false,false,false,781872451640265,null,[[10,2]]],[32,34,null,0,false,true,false,184841842826524,null,[[10,1]]]],[[32,33,null,628076305449232,null,[[10,1],[3,1]]],[15,57,null,967600307395708,null]]],[0,0,false,null,369004586190928,5,[[32,34,null,0,false,true,false,472673152461247,null,[[10,5]]],[32,34,null,0,false,false,false,335353471454677,null,[[10,1]]]],[[32,18,null,879889467910233,null,[[1,[41]],[3,1]]]]],[0,0,false,null,832233434711129,6,[[32,34,null,0,false,false,false,496955019627063,null,[[10,5]]],[32,34,null,0,false,false,false,632067641314782,null,[[10,1]]]],[[32,18,null,886375070875597,null,[[1,[42]],[3,1]]]]],[0,0,false,null,137005750232340,7,[[32,34,null,0,false,false,false,573076211078422,null,[[10,5]]],[32,34,null,0,false,true,false,530085666708115,null,[[10,1]]]],[[32,18,null,382639171360077,null,[[1,[1]],[3,1]]]]],[0,0,false,null,853221563578891,8,[[32,34,null,0,false,true,false,758691372301510,null,[[10,1]]],[32,34,null,0,false,true,false,853614480491212,null,[[10,5]]]],[[32,18,null,987730965924936,null,[[1,[2]],[3,1]]]]],[0,0,false,null,311911172536607,9,[[3,30,null,1,false,false,false,652271739585855,null,[[9,32]]],[32,34,null,0,false,false,false,343259588186287,null,[[10,0]]],[32,34,null,0,false,false,false,844939964916933,null,[[10,1]]]],[[17,35,null,935998155430717,null,[[3,1]]],[33,58,null,489639586434149,null,[[7,[60]]]],[33,59,null,179179911379575,null,[[3,1]]],[16,35,null,364770315783957,null,[[3,1]]],[32,33,null,273438797353031,null,[[10,3],[3,1]]],[32,36,"Platform",103841191103515,null,[[3,1]]]]],[0,0,false,null,793475803718860,10,[[3,30,null,1,false,false,false,730947129476912,null,[[9,13]]],[32,34,null,0,false,false,false,209991451335044,null,[[10,3]]],[32,34,null,0,false,false,false,949383489976675,null,[[10,0]]]],[[17,35,null,948809058780261,null,[[3,0]]],[33,59,null,550875715580510,null,[[3,0]]],[16,35,null,513453780545029,null,[[3,0]]],[32,36,"Platform",838120169005701,null,[[3,0]]],[32,33,null,480017130611395,null,[[10,6],[3,1]]]]],[0,0,false,null,470387778933447,11,[[32,34,null,0,false,false,false,689962920046872,null,[[10,3]]]],[[32,33,null,538001045208331,null,[[10,1],[3,0]]]]],[0,0,false,null,388059589465588,12,[[3,30,null,1,false,false,false,280399273437439,null,[[9,13]]],[33,60,null,0,false,false,false,386019017551995,null,[[10,1]]]],[[44,35,null,206826775281400,null,[[3,0]]],[17,35,null,388651113330962,null,[[3,0]]],[33,59,null,377612055688432,null,[[3,0]]],[32,36,"Platform",393288878301784,null,[[3,0]]]]],[0,0,false,null,188393016566833,13,[[32,34,null,0,false,false,false,796781132970049,null,[[10,6]]],[32,34,null,0,false,true,false,800553217912206,null,[[10,0]]],[33,60,null,0,false,true,false,529922973103074,null,[[10,1]]]],[[32,36,"Platform",943883162217296,null,[[3,1]]],[44,35,null,636168425580369,null,[[3,1]]],[17,35,null,651117904733465,null,[[3,1]]],[33,59,null,641955577725815,null,[[3,1]]],[33,58,null,362499514830053,null,[[7,[61,[3,"YourName"]]]]],[33,61,null,903518608309880,null,[[10,1],[3,1]]]]]]],[3,[true,"Talking to Customers2"],false,null,905582248090670,14,[[-1,13,null,0,false,false,false,0,false,[[1,[62]]]]],[],[[0,0,false,null,249384717206116,15,[[3,30,null,1,false,false,false,458589458953067,null,[[9,32]]],[32,34,null,0,false,false,false,549333410373078,null,[[10,0]]],[32,34,null,0,false,true,false,604714106063612,null,[[10,1]]],[32,34,null,0,false,true,false,981187652262313,null,[[10,3]]],[33,62,null,0,false,true,false,435980135947272,null]],[[33,63,null,713845714820813,null,[[10,0],[7,[7]]]],[32,33,null,716301863384491,null,[[10,3],[3,0]]],[17,35,null,627104105535732,null,[[3,1]]],[33,58,null,856550952248403,null,[[7,[63,[3,"YourName"]]]]],[33,59,null,692702761979285,null,[[3,1]]],[16,35,null,630404342547255,null,[[3,1]]],[33,64,null,675157337274766,null,[[10,0],[7,[6]]]],[32,36,"Platform",363503578265722,null,[[3,1]]]]],[0,0,false,null,651710270032380,16,[[32,51,null,0,false,false,false,693174237903365,null,[[4,11]]]],[[32,33,null,869657102380924,null,[[10,0],[3,1]]]]],[0,0,false,null,677978682841283,17,[[32,51,null,0,false,true,false,852870911242857,null,[[4,11]]]],[[32,33,null,157310073239788,null,[[10,0],[3,0]]]]],[0,0,false,null,546166734162799,18,[[3,30,null,1,false,false,false,843814743451141,null,[[9,13]]],[32,34,null,0,false,false,false,693572922271558,null,[[10,0]]],[33,62,null,0,false,false,false,696744920463854,null],[33,65,null,0,false,false,false,575491478238699,null,[[10,0],[8,0],[7,[6]]]]],[[33,58,null,667309157100387,null,[[7,[64]]]],[-1,37,null,977018517274371,null,[[0,[6]]]],[33,64,null,518111766425349,null,[[10,0],[7,[6]]]]]],[0,0,false,null,493067279125026,19,[[3,30,null,1,false,false,false,873257282338957,null,[[9,13]]],[33,65,null,0,false,false,false,792823750728011,null,[[10,0],[8,5],[7,[48]]]],[32,34,null,0,false,false,false,675829140921911,null,[[10,0]]],[33,62,null,0,false,false,false,880194882570316,null]],[[17,35,null,923270494949706,null,[[3,0]]],[33,59,null,340121919682646,null,[[3,0]]],[16,35,null,524906391625466,null,[[3,0]]],[32,36,"Platform",686078796906734,null,[[3,0]]]]]]],[3,[true,"Leaving the Room2"],false,null,796759652063378,20,[[-1,13,null,0,false,false,false,0,false,[[1,[65]]]]],[],[[0,0,false,null,940156175084359,21,[[3,30,null,1,false,false,false,909077006690164,null,[[9,32]]],[32,34,null,0,false,false,false,676376294779060,null,[[10,3]]],[32,51,null,0,false,false,false,440574503429166,null,[[4,14]]]],[[45,66,"Fade",939381787467039,null,[[0,[48]]]],[45,67,"Fade",127563468740285,null],[47,47,null,716699340361521,null,[[2,["72197__shall555__sh-shop-door-bell-openclose",false]],[3,0],[0,[7]],[1,[25]]]],[-1,37,null,190840075757126,null,[[0,[48]]]],[-1,54,null,756435496353615,null,[[6,"Level 2"]]]]]]],[0,0,false,null,511670562754564,22,[[-1,26,null,0,false,false,false,394705075090885,null]],[[-1,75,null,906679113048834,null,[[0,[10,[1,32,28,false]]]]]]],[0,0,false,null,516261912360680,23,[[3,30,null,1,false,false,false,272820701188923,null,[[9,39]]]],[[32,33,null,100340497059298,null,[[10,5],[3,1]]],[32,19,null,599307853362171,null,[[3,1]]]]],[0,0,false,null,878106637927997,24,[[3,30,null,1,false,false,false,135845947999525,null,[[9,37]]]],[[32,33,null,276352443175372,null,[[10,5],[3,1]]],[32,19,null,961089810799623,null,[[3,0]]]]],[0,0,false,null,224589750101664,25,[[3,76,null,1,false,false,false,403262747431024,null,[[9,39]]]],[[32,33,null,785104120972588,null,[[10,5],[3,0]]]]],[0,0,false,null,997481593478875,26,[[3,76,null,1,false,false,false,743347886396184,null,[[9,37]]]],[[32,33,null,126153329916400,null,[[10,5],[3,0]]]]],[0,0,false,null,881806373646364,27,[[-1,25,null,1,false,false,false,451906619525245,null],[-1,52,null,0,false,false,false,715944012163765,null,[[7,[12,[4,53]]],[8,0],[7,[66]]]]],[[47,47,null,571670962076224,null,[[2,["coffe shop 2",true]],[3,1],[0,[7]],[1,[67]]]]]],[0,0,false,null,898745260227029,28,[[-1,55,null,1,false,false,false,598738362009931,null]],[[47,56,null,713370925944066,null,[[1,[67]]]]]]]]],[["jump",[["audio/mpeg",".mp3",3231]],false],["airdash",[["audio/webm; codecs=opus",".webm",4209]],false],["72197__shall555__sh-shop-door-bell-openclose",[["audio/webm; codecs=opus",".webm",93480]],false],["platform1",[["audio/webm; codecs=opus",".webm",415875]],true],["coffe shop 2",[["audio/webm; codecs=opus",".webm",467593]],true],["coffee shop 3",[["audio/webm; codecs=opus",".webm",433537]],true],["coffee shop",[["audio/webm; codecs=opus",".webm",410326]],true],["platform3",[["audio/webm; codecs=opus",".webm",528811]],true],["platform2",[["audio/webm; codecs=opus",".webm",463887]],true]],"media/",false,854,480,4,true,"nearest",true,"1.0.0.0",true,false,4,2,1582,false,true,1,true,false,[],"icons/",[],true,"peoanzvh9wt","fonts/",[],"high-performance"]} \ No newline at end of file diff --git a/DreamBeanFinal/icons/icon-128.png b/DreamBeanFinal/icons/icon-128.png new file mode 100644 index 0000000..34780f7 Binary files /dev/null and b/DreamBeanFinal/icons/icon-128.png differ diff --git a/DreamBeanFinal/icons/icon-16.png b/DreamBeanFinal/icons/icon-16.png new file mode 100644 index 0000000..d4e6a43 Binary files /dev/null and b/DreamBeanFinal/icons/icon-16.png differ diff --git a/DreamBeanFinal/icons/icon-256.png b/DreamBeanFinal/icons/icon-256.png new file mode 100644 index 0000000..a201353 Binary files /dev/null and b/DreamBeanFinal/icons/icon-256.png differ diff --git a/DreamBeanFinal/icons/icon-32.png b/DreamBeanFinal/icons/icon-32.png new file mode 100644 index 0000000..20d38d6 Binary files /dev/null and b/DreamBeanFinal/icons/icon-32.png differ diff --git a/DreamBeanFinal/icons/icon-512.png b/DreamBeanFinal/icons/icon-512.png new file mode 100644 index 0000000..9e2ad77 Binary files /dev/null and b/DreamBeanFinal/icons/icon-512.png differ diff --git a/DreamBeanFinal/icons/icon-64.png b/DreamBeanFinal/icons/icon-64.png new file mode 100644 index 0000000..06c8d53 Binary files /dev/null and b/DreamBeanFinal/icons/icon-64.png differ diff --git a/DreamBeanFinal/icons/loading-logo.png b/DreamBeanFinal/icons/loading-logo.png new file mode 100644 index 0000000..06c8d53 Binary files /dev/null and b/DreamBeanFinal/icons/loading-logo.png differ diff --git a/DreamBeanFinal/images/dirt_hiding-sheet0.png b/DreamBeanFinal/images/dirt_hiding-sheet0.png new file mode 100644 index 0000000..365fd4a Binary files /dev/null and b/DreamBeanFinal/images/dirt_hiding-sheet0.png differ diff --git a/DreamBeanFinal/images/dirt_solid-sheet0.png b/DreamBeanFinal/images/dirt_solid-sheet0.png new file mode 100644 index 0000000..661f656 Binary files /dev/null and b/DreamBeanFinal/images/dirt_solid-sheet0.png differ diff --git a/DreamBeanFinal/images/dirt_solid-sheet1.png b/DreamBeanFinal/images/dirt_solid-sheet1.png new file mode 100644 index 0000000..2b9be47 Binary files /dev/null and b/DreamBeanFinal/images/dirt_solid-sheet1.png differ diff --git a/DreamBeanFinal/images/mugsy-sheet0.png b/DreamBeanFinal/images/mugsy-sheet0.png new file mode 100644 index 0000000..a3d2b05 Binary files /dev/null and b/DreamBeanFinal/images/mugsy-sheet0.png differ diff --git a/DreamBeanFinal/images/mugsy-sheet1.png b/DreamBeanFinal/images/mugsy-sheet1.png new file mode 100644 index 0000000..1b45d7b Binary files /dev/null and b/DreamBeanFinal/images/mugsy-sheet1.png differ diff --git a/DreamBeanFinal/images/mugsy-sheet2.png b/DreamBeanFinal/images/mugsy-sheet2.png new file mode 100644 index 0000000..39098ea Binary files /dev/null and b/DreamBeanFinal/images/mugsy-sheet2.png differ diff --git a/DreamBeanFinal/images/mugsy-sheet3.png b/DreamBeanFinal/images/mugsy-sheet3.png new file mode 100644 index 0000000..e535158 Binary files /dev/null and b/DreamBeanFinal/images/mugsy-sheet3.png differ diff --git a/DreamBeanFinal/images/player-sheet0.png b/DreamBeanFinal/images/player-sheet0.png new file mode 100644 index 0000000..1037200 Binary files /dev/null and b/DreamBeanFinal/images/player-sheet0.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet0.png b/DreamBeanFinal/images/shared-0-sheet0.png new file mode 100644 index 0000000..c85d4ed Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet0.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet1.png b/DreamBeanFinal/images/shared-0-sheet1.png new file mode 100644 index 0000000..c35da80 Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet1.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet2.png b/DreamBeanFinal/images/shared-0-sheet2.png new file mode 100644 index 0000000..613f1c5 Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet2.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet3.png b/DreamBeanFinal/images/shared-0-sheet3.png new file mode 100644 index 0000000..979ce9e Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet3.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet4.png b/DreamBeanFinal/images/shared-0-sheet4.png new file mode 100644 index 0000000..8108ecb Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet4.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet5.png b/DreamBeanFinal/images/shared-0-sheet5.png new file mode 100644 index 0000000..50019f9 Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet5.png differ diff --git a/DreamBeanFinal/images/shared-0-sheet6.png b/DreamBeanFinal/images/shared-0-sheet6.png new file mode 100644 index 0000000..55e7f9b Binary files /dev/null and b/DreamBeanFinal/images/shared-0-sheet6.png differ diff --git a/DreamBeanFinal/index.html b/DreamBeanFinal/index.html new file mode 100644 index 0000000..e4259bd --- /dev/null +++ b/DreamBeanFinal/index.html @@ -0,0 +1,33 @@ + + + + +Dream Bean + + + + + + + + + + + + + +
+ + + + + + + + \ No newline at end of file diff --git a/DreamBeanFinal/media/72197__shall555__sh-shop-door-bell-openclose.webm b/DreamBeanFinal/media/72197__shall555__sh-shop-door-bell-openclose.webm new file mode 100644 index 0000000..a1d5751 Binary files /dev/null and b/DreamBeanFinal/media/72197__shall555__sh-shop-door-bell-openclose.webm differ diff --git a/DreamBeanFinal/media/airdash.webm b/DreamBeanFinal/media/airdash.webm new file mode 100644 index 0000000..fd18aba Binary files /dev/null and b/DreamBeanFinal/media/airdash.webm differ diff --git a/DreamBeanFinal/media/coffe shop 2.webm b/DreamBeanFinal/media/coffe shop 2.webm new file mode 100644 index 0000000..d8ec7c1 Binary files /dev/null and b/DreamBeanFinal/media/coffe shop 2.webm differ diff --git a/DreamBeanFinal/media/coffee shop 3.webm b/DreamBeanFinal/media/coffee shop 3.webm new file mode 100644 index 0000000..c53584f Binary files /dev/null and b/DreamBeanFinal/media/coffee shop 3.webm differ diff --git a/DreamBeanFinal/media/coffee shop.webm b/DreamBeanFinal/media/coffee shop.webm new file mode 100644 index 0000000..d35b309 Binary files /dev/null and b/DreamBeanFinal/media/coffee shop.webm differ diff --git a/DreamBeanFinal/media/jump.mp3 b/DreamBeanFinal/media/jump.mp3 new file mode 100644 index 0000000..963e571 Binary files /dev/null and b/DreamBeanFinal/media/jump.mp3 differ diff --git a/DreamBeanFinal/media/platform1.webm b/DreamBeanFinal/media/platform1.webm new file mode 100644 index 0000000..fd74f2e Binary files /dev/null and b/DreamBeanFinal/media/platform1.webm differ diff --git a/DreamBeanFinal/media/platform2.webm b/DreamBeanFinal/media/platform2.webm new file mode 100644 index 0000000..d866447 Binary files /dev/null and b/DreamBeanFinal/media/platform2.webm differ diff --git a/DreamBeanFinal/media/platform3.webm b/DreamBeanFinal/media/platform3.webm new file mode 100644 index 0000000..1bd78b1 Binary files /dev/null and b/DreamBeanFinal/media/platform3.webm differ diff --git a/DreamBeanFinal/offline.json b/DreamBeanFinal/offline.json new file mode 100644 index 0000000..8440032 --- /dev/null +++ b/DreamBeanFinal/offline.json @@ -0,0 +1 @@ +{"version":1557545569953,"fileList":["scripts/c3runtime.js","data.json","style.css","scripts/offlineClient.js","images/dirt_solid-sheet0.png","images/dirt_solid-sheet1.png","images/player-sheet0.png","images/shared-0-sheet0.png","images/shared-0-sheet1.png","images/dirt_hiding-sheet0.png","images/shared-0-sheet4.png","images/mugsy-sheet2.png","images/mugsy-sheet3.png","images/shared-0-sheet2.png","images/shared-0-sheet3.png","images/mugsy-sheet0.png","images/mugsy-sheet1.png","images/shared-0-sheet5.png","images/shared-0-sheet6.png","scripts/opus.wasm.js","scripts/opus.wasm.wasm","scripts/main.js","scripts/dispatchWorker.js","scripts/jobWorker.js","scripts/workerMain.js","scripts/supportCheck.js","media/jump.mp3","media/airdash.webm","media/72197__shall555__sh-shop-door-bell-openclose.webm","media/platform1.webm","media/coffe shop 2.webm","media/coffee shop 3.webm","media/coffee shop.webm","media/platform3.webm","media/platform2.webm","icons/icon-512.png","icons/icon-16.png","icons/icon-32.png","icons/icon-128.png","icons/icon-256.png","icons/icon-64.png","icons/loading-logo.png","scripts/register-sw.js"]} \ No newline at end of file diff --git a/DreamBeanFinal/scripts/c3runtime.js b/DreamBeanFinal/scripts/c3runtime.js new file mode 100644 index 0000000..29650d8 --- /dev/null +++ b/DreamBeanFinal/scripts/c3runtime.js @@ -0,0 +1,872 @@ +// Generated by Construct 3, the game and app creator :: https://www.construct.net +"use strict"; +// c3/3rdparty/glmatrix.js +(function(e,t){if('object'==typeof exports&&'object'==typeof module)module.exports=t();else if('function'==typeof define&&define.amd)define([],t);else{var r=t();for(var a in r)('object'==typeof exports?exports:e)[a]=r[a]}})(this,function(){var e=Math.acos,t=Math.round,r=Math.min,o=Math.floor,l=Math.ceil,n=Math.sqrt,s=Math.pow,d=Math.cos,u=Math.sin,i=Math.max,m=Math.abs,c=Math.PI;return function(e){function t(r){if(a[r])return a[r].exports;var o=a[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var a={};return t.m=e,t.c=a,t.d=function(e,a,r){t.o(e,a)||Object.defineProperty(e,a,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var a=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(a,'a',a),a},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=4)}([function(e,t){'use strict';Object.defineProperty(t,'__esModule',{value:!0}),t.setMatrixArrayType=function(e){t.ARRAY_TYPE=a=e},t.toRadian=function(e){return e*l},t.equals=function(e,t){return m(e-t)<=r*i(1,m(e),m(t))};var r=t.EPSILON=1e-6,a=t.ARRAY_TYPE='undefined'==typeof Float32Array?Array:Float32Array,o=t.RANDOM=Math.random,l=c/180},function(e,t,a){'use strict';function r(e,t,a){var r=t[0],o=t[1],l=t[2],s=t[3],n=t[4],d=t[5],u=t[6],i=t[7],c=t[8],m=a[0],f=a[1],P=a[2],p=a[3],E=a[4],y=a[5],A=a[6],O=a[7],R=a[8];return e[0]=m*r+f*s+P*u,e[1]=m*o+f*n+P*i,e[2]=m*l+f*d+P*c,e[3]=p*r+E*s+y*u,e[4]=p*o+E*n+y*i,e[5]=p*l+E*d+y*c,e[6]=A*r+O*s+R*u,e[7]=A*o+O*n+R*i,e[8]=A*l+O*d+R*c,e}function o(e,t,a){return e[0]=t[0]-a[0],e[1]=t[1]-a[1],e[2]=t[2]-a[2],e[3]=t[3]-a[3],e[4]=t[4]-a[4],e[5]=t[5]-a[5],e[6]=t[6]-a[6],e[7]=t[7]-a[7],e[8]=t[8]-a[8],e}Object.defineProperty(t,'__esModule',{value:!0}),t.sub=t.mul=void 0,t.create=function(){var e=new c.ARRAY_TYPE(9);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat4=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e},t.clone=function(e){var t=new c.ARRAY_TYPE(9);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t},t.copy=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},t.fromValues=function(e,t,a,r,o,l,s,n,d){var u=new c.ARRAY_TYPE(9);return u[0]=e,u[1]=t,u[2]=a,u[3]=r,u[4]=o,u[5]=l,u[6]=s,u[7]=n,u[8]=d,u},t.set=function(e,t,a,r,o,l,s,n,d,u){return e[0]=t,e[1]=a,e[2]=r,e[3]=o,e[4]=l,e[5]=s,e[6]=n,e[7]=d,e[8]=u,e},t.identity=function(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.transpose=function(e,t){if(e===t){var a=t[1],r=t[2],o=t[5];e[1]=t[3],e[2]=t[6],e[3]=a,e[5]=t[7],e[6]=r,e[7]=o}else e[0]=t[0],e[1]=t[3],e[2]=t[6],e[3]=t[1],e[4]=t[4],e[5]=t[7],e[6]=t[2],e[7]=t[5],e[8]=t[8];return e},t.invert=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8],c=i*s-n*u,m=-i*l+n*d,f=u*l-s*d,P=a*c+r*m+o*f;return P?(P=1/P,e[0]=c*P,e[1]=(-i*r+o*u)*P,e[2]=(n*r-o*s)*P,e[3]=m*P,e[4]=(i*a-o*d)*P,e[5]=(-n*a+o*l)*P,e[6]=f*P,e[7]=(-u*a+r*d)*P,e[8]=(s*a-r*l)*P,e):null},t.adjoint=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8];return e[0]=s*i-n*u,e[1]=o*u-r*i,e[2]=r*n-o*s,e[3]=n*d-l*i,e[4]=a*i-o*d,e[5]=o*l-a*n,e[6]=l*u-s*d,e[7]=r*d-a*u,e[8]=a*s-r*l,e},t.determinant=function(e){var t=e[0],a=e[1],r=e[2],o=e[3],l=e[4],s=e[5],n=e[6],d=e[7],u=e[8];return t*(u*l-s*d)+a*(-u*o+s*n)+r*(d*o-l*n)},t.multiply=r,t.translate=function(e,t,a){var r=t[0],o=t[1],l=t[2],s=t[3],n=t[4],d=t[5],u=t[6],i=t[7],c=t[8],m=a[0],f=a[1];return e[0]=r,e[1]=o,e[2]=l,e[3]=s,e[4]=n,e[5]=d,e[6]=m*r+f*s+u,e[7]=m*o+f*n+i,e[8]=m*l+f*d+c,e},t.rotate=function(e,t,a){var r=t[0],o=t[1],l=t[2],n=t[3],i=t[4],m=t[5],f=t[6],P=t[7],p=t[8],E=u(a),s=d(a);return e[0]=s*r+E*n,e[1]=s*o+E*i,e[2]=s*l+E*m,e[3]=s*n-E*r,e[4]=s*i-E*o,e[5]=s*m-E*l,e[6]=f,e[7]=P,e[8]=p,e},t.scale=function(e,t,a){var r=a[0],o=a[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=o*t[3],e[4]=o*t[4],e[5]=o*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e},t.fromTranslation=function(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=t[0],e[7]=t[1],e[8]=1,e},t.fromRotation=function(e,t){var a=u(t),r=d(t);return e[0]=r,e[1]=a,e[2]=0,e[3]=-a,e[4]=r,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromScaling=function(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=t[1],e[5]=0,e[6]=0,e[7]=0,e[8]=1,e},t.fromMat2d=function(e,t){return e[0]=t[0],e[1]=t[1],e[2]=0,e[3]=t[2],e[4]=t[3],e[5]=0,e[6]=t[4],e[7]=t[5],e[8]=1,e},t.fromQuat=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a+a,n=r+r,d=o+o,u=a*s,i=r*s,c=r*n,m=o*s,f=o*n,P=o*d,p=l*s,E=l*n,y=l*d;return e[0]=1-c-P,e[3]=i-y,e[6]=m+E,e[1]=i+y,e[4]=1-u-P,e[7]=f-p,e[2]=m-E,e[5]=f+p,e[8]=1-u-c,e},t.normalFromMat4=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=t[4],n=t[5],d=t[6],u=t[7],i=t[8],c=t[9],m=t[10],f=t[11],P=t[12],p=t[13],E=t[14],y=t[15],A=a*n-r*s,O=a*d-o*s,R=a*u-l*s,L=r*d-o*n,S=r*u-l*n,_=o*u-l*d,N=i*p-c*P,I=i*E-m*P,Y=i*y-f*P,q=c*E-m*p,g=c*y-f*p,M=m*y-f*E,v=A*M-O*g+R*q+L*Y-S*I+_*N;return v?(v=1/v,e[0]=(n*M-d*g+u*q)*v,e[1]=(d*Y-s*M-u*I)*v,e[2]=(s*g-n*Y+u*N)*v,e[3]=(o*g-r*M-l*q)*v,e[4]=(a*M-o*Y+l*I)*v,e[5]=(r*Y-a*g-l*N)*v,e[6]=(p*_-E*S+y*L)*v,e[7]=(E*R-P*_-y*O)*v,e[8]=(P*S-p*R+y*A)*v,e):null},t.projection=function(e,t,a){return e[0]=2/t,e[1]=0,e[2]=0,e[3]=0,e[4]=-2/a,e[5]=0,e[6]=-1,e[7]=1,e[8]=1,e},t.str=function(e){return'mat3('+e[0]+', '+e[1]+', '+e[2]+', '+e[3]+', '+e[4]+', '+e[5]+', '+e[6]+', '+e[7]+', '+e[8]+')'},t.frob=function(e){return n(s(e[0],2)+s(e[1],2)+s(e[2],2)+s(e[3],2)+s(e[4],2)+s(e[5],2)+s(e[6],2)+s(e[7],2)+s(e[8],2))},t.add=function(e,t,a){return e[0]=t[0]+a[0],e[1]=t[1]+a[1],e[2]=t[2]+a[2],e[3]=t[3]+a[3],e[4]=t[4]+a[4],e[5]=t[5]+a[5],e[6]=t[6]+a[6],e[7]=t[7]+a[7],e[8]=t[8]+a[8],e},t.subtract=o,t.multiplyScalar=function(e,t,a){return e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e[3]=t[3]*a,e[4]=t[4]*a,e[5]=t[5]*a,e[6]=t[6]*a,e[7]=t[7]*a,e[8]=t[8]*a,e},t.multiplyScalarAndAdd=function(e,t,a,r){return e[0]=t[0]+a[0]*r,e[1]=t[1]+a[1]*r,e[2]=t[2]+a[2]*r,e[3]=t[3]+a[3]*r,e[4]=t[4]+a[4]*r,e[5]=t[5]+a[5]*r,e[6]=t[6]+a[6]*r,e[7]=t[7]+a[7]*r,e[8]=t[8]+a[8]*r,e},t.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},t.equals=function(e,t){var a=e[0],r=e[1],o=e[2],l=e[3],s=e[4],n=e[5],d=e[6],u=e[7],f=e[8],P=t[0],p=t[1],E=t[2],y=t[3],A=t[4],O=t[5],R=t[6],L=t[7],S=t[8];return m(a-P)<=c.EPSILON*i(1,m(a),m(P))&&m(r-p)<=c.EPSILON*i(1,m(r),m(p))&&m(o-E)<=c.EPSILON*i(1,m(o),m(E))&&m(l-y)<=c.EPSILON*i(1,m(l),m(y))&&m(s-A)<=c.EPSILON*i(1,m(s),m(A))&&m(n-O)<=c.EPSILON*i(1,m(n),m(O))&&m(d-R)<=c.EPSILON*i(1,m(d),m(R))&&m(u-L)<=c.EPSILON*i(1,m(u),m(L))&&m(f-S)<=c.EPSILON*i(1,m(f),m(S))};var l=a(0),c=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(l);var f=t.mul=r,P=t.sub=o},function(a,s,f){'use strict';function P(){var e=new Y.ARRAY_TYPE(3);return e[0]=0,e[1]=0,e[2]=0,e}function p(e){var t=e[0],a=e[1],r=e[2];return n(t*t+a*a+r*r)}function E(e,t,a){var r=new Y.ARRAY_TYPE(3);return r[0]=e,r[1]=t,r[2]=a,r}function y(e,t,a){return e[0]=t[0]-a[0],e[1]=t[1]-a[1],e[2]=t[2]-a[2],e}function A(e,t,a){return e[0]=t[0]*a[0],e[1]=t[1]*a[1],e[2]=t[2]*a[2],e}function O(e,t,a){return e[0]=t[0]/a[0],e[1]=t[1]/a[1],e[2]=t[2]/a[2],e}function R(e,t){var a=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return n(a*a+r*r+o*o)}function L(e,t){var a=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return a*a+r*r+o*o}function S(e){var t=e[0],a=e[1],r=e[2];return t*t+a*a+r*r}function _(e,t){var a=t[0],r=t[1],o=t[2],l=a*a+r*r+o*o;return 0l?c:e(l)},s.str=function(e){return'vec3('+e[0]+', '+e[1]+', '+e[2]+')'},s.exactEquals=function(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]},s.equals=function(e,t){var a=e[0],r=e[1],o=e[2],l=t[0],s=t[1],n=t[2];return m(a-l)<=Y.EPSILON*i(1,m(a),m(l))&&m(r-s)<=Y.EPSILON*i(1,m(r),m(s))&&m(o-n)<=Y.EPSILON*i(1,m(o),m(n))};var I=f(0),Y=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t.default=e,t}(I),q=s.sub=y,g=s.mul=A,M=s.div=O,v=s.dist=R,h=s.sqrDist=L,T=s.len=p,b=s.sqrLen=S,x=s.forEach=function(){var e=P();return function(t,a,o,s,n,d){var u,i;for(a||(a=3),o||(o=0),i=s?r(s*a+o,t.length):t.length,u=o;ut[5]&t[0]>t[10]?(r=2*n(1+t[0]-t[5]-t[10]),e[3]=(t[6]-t[9])/r,e[0]=.25*r,e[1]=(t[1]+t[4])/r,e[2]=(t[8]+t[2])/r):t[5]>t[10]?(r=2*n(1+t[5]-t[0]-t[10]),e[3]=(t[8]-t[2])/r,e[0]=(t[1]+t[4])/r,e[1]=.25*r,e[2]=(t[6]+t[9])/r):(r=2*n(1+t[10]-t[0]-t[5]),e[3]=(t[1]-t[4])/r,e[0]=(t[8]+t[2])/r,e[1]=(t[6]+t[9])/r,e[2]=.25*r),e},t.fromRotationTranslationScale=function(e,t,a,r){var o=t[0],l=t[1],s=t[2],n=t[3],d=o+o,u=l+l,i=s+s,c=o*d,m=o*u,f=o*i,P=l*u,p=l*i,E=s*i,y=n*d,A=n*u,O=n*i,R=r[0],L=r[1],S=r[2];return e[0]=(1-(P+E))*R,e[1]=(m+O)*R,e[2]=(f-A)*R,e[3]=0,e[4]=(m-O)*L,e[5]=(1-(c+E))*L,e[6]=(p+y)*L,e[7]=0,e[8]=(f+A)*S,e[9]=(p-y)*S,e[10]=(1-(c+P))*S,e[11]=0,e[12]=a[0],e[13]=a[1],e[14]=a[2],e[15]=1,e},t.fromRotationTranslationScaleOrigin=function(e,t,a,r,l){var o=t[0],s=t[1],n=t[2],d=t[3],u=o+o,i=s+s,c=n+n,m=o*u,f=o*i,P=o*c,p=s*i,E=s*c,y=n*c,A=d*u,O=d*i,R=d*c,L=r[0],S=r[1],_=r[2],N=l[0],I=l[1],Y=l[2];return e[0]=(1-(p+y))*L,e[1]=(f+R)*L,e[2]=(P-O)*L,e[3]=0,e[4]=(f-R)*S,e[5]=(1-(m+y))*S,e[6]=(E+A)*S,e[7]=0,e[8]=(P+O)*_,e[9]=(E-A)*_,e[10]=(1-(m+p))*_,e[11]=0,e[12]=a[0]+N-(e[0]*N+e[4]*I+e[8]*Y),e[13]=a[1]+I-(e[1]*N+e[5]*I+e[9]*Y),e[14]=a[2]+Y-(e[2]*N+e[6]*I+e[10]*Y),e[15]=1,e},t.fromQuat=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a+a,n=r+r,d=o+o,u=a*s,i=r*s,c=r*n,m=o*s,f=o*n,P=o*d,p=l*s,E=l*n,y=l*d;return e[0]=1-c-P,e[1]=i+y,e[2]=m-E,e[3]=0,e[4]=i-y,e[5]=1-u-P,e[6]=f+p,e[7]=0,e[8]=m+E,e[9]=f-p,e[10]=1-u-c,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e},t.frustum=function(e,t,a,r,o,l,s){var n=1/(a-t),d=1/(o-r),u=1/(l-s);return e[0]=2*l*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=2*l*d,e[6]=0,e[7]=0,e[8]=(a+t)*n,e[9]=(o+r)*d,e[10]=(s+l)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*(s*l)*u,e[15]=0,e},t.perspective=function(e,t,a,r,o){var s=1/l(t/2),n=1/(r-o);return e[0]=s/a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=s,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(o+r)*n,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*o*r*n,e[15]=0,e},t.perspectiveFromFieldOfView=function(e,t,a,r){var o=l(t.upDegrees*c/180),s=l(t.downDegrees*c/180),n=l(t.leftDegrees*c/180),d=l(t.rightDegrees*c/180),u=2/(n+d),i=2/(o+s);return e[0]=u,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=i,e[6]=0,e[7]=0,e[8]=-(.5*((n-d)*u)),e[9]=.5*((o-s)*i),e[10]=r/(a-r),e[11]=-1,e[12]=0,e[13]=0,e[14]=r*a/(a-r),e[15]=0,e},t.ortho=function(e,t,a,r,o,l,s){var n=1/(t-a),d=1/(r-o),u=1/(l-s);return e[0]=-2*n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*d,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+a)*n,e[13]=(o+r)*d,e[14]=(s+l)*u,e[15]=1,e},t.lookAt=function(e,t,a,r){var o=void 0,l=void 0,s=void 0,d=void 0,u=void 0,i=void 0,c=void 0,f=void 0,p=void 0,E=void 0,y=t[0],A=t[1],O=t[2],R=r[0],L=r[1],S=r[2],_=a[0],N=a[1],I=a[2];return m(y-_)p&&(p=-p,i=-i,c=-c,m=-m,f=-f),1e-6<1-p?(P=e(p),E=u(P),y=u((1-l)*P)/E,A=u(l*P)/E):(y=1-l,A=l),r[0]=y*t+A*i,r[1]=y*s+A*c,r[2]=y*n+A*m,r[3]=y*d+A*f,r}function P(e,t){var a=t[0]+t[4]+t[8],r=void 0;if(0t[0]&&(o=1),t[8]>t[3*o+o]&&(o=2);var l=(o+1)%3,s=(o+2)%3;r=n(t[3*o+o]-t[3*l+l]-t[3*s+s]+1),e[o]=.5*r,r=.5/r,e[3]=(t[3*l+s]-t[3*s+l])*r,e[l]=(t[3*l+o]+t[3*o+l])*r,e[s]=(t[3*s+o]+t[3*o+s])*r}return e}Object.defineProperty(a,'__esModule',{value:!0}),a.setAxes=a.sqlerp=a.rotationTo=a.equals=a.exactEquals=a.normalize=a.sqrLen=a.squaredLength=a.len=a.length=a.lerp=a.dot=a.scale=a.mul=a.add=a.set=a.copy=a.fromValues=a.clone=void 0,a.create=l,a.identity=function(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e},a.setAxisAngle=s,a.getAxisAngle=function(t,a){var r=2*e(a[3]),o=u(r/2);return 0==o?(t[0]=1,t[1]=0,t[2]=0):(t[0]=a[0]/o,t[1]=a[1]/o,t[2]=a[2]/o),r},a.multiply=i,a.rotateX=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i+s*n,e[1]=o*i+l*n,e[2]=l*i-o*n,e[3]=s*i-r*n,e},a.rotateY=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i-l*n,e[1]=o*i+s*n,e[2]=l*i+r*n,e[3]=s*i-o*n,e},a.rotateZ=function(e,t,a){a*=.5;var r=t[0],o=t[1],l=t[2],s=t[3],n=u(a),i=d(a);return e[0]=r*i+o*n,e[1]=o*i-r*n,e[2]=l*i+s*n,e[3]=s*i-l*n,e},a.calculateW=function(e,t){var a=t[0],r=t[1],o=t[2];return e[0]=a,e[1]=r,e[2]=o,e[3]=n(m(1-a*a-r*r-o*o)),e},a.slerp=f,a.invert=function(e,t){var a=t[0],r=t[1],o=t[2],l=t[3],s=a*a+r*r+o*o+l*l,n=s?1/s:0;return e[0]=-a*n,e[1]=-r*n,e[2]=-o*n,e[3]=l*n,e},a.conjugate=function(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e},a.fromMat3=P,a.fromEuler=function(e,t,a,r){var o=.5*c/180;t*=o,a*=o,r*=o;var l=u(t),s=d(t),n=u(a),i=d(a),m=u(r),f=d(r);return e[0]=l*i*f-s*n*m,e[1]=s*n*f+l*i*m,e[2]=s*i*m-l*n*f,e[3]=s*i*f+l*n*m,e},a.str=function(e){return'quat('+e[0]+', '+e[1]+', '+e[2]+', '+e[3]+')'};var p=r(0),E=o(p),y=r(1),A=o(y),O=r(2),R=o(O),L=r(3),S=o(L),_=a.clone=S.clone,N=a.fromValues=S.fromValues,I=a.copy=S.copy,Y=a.set=S.set,q=a.add=S.add,g=a.mul=i,M=a.scale=S.scale,v=a.dot=S.dot,h=a.lerp=S.lerp,T=a.length=S.length,b=a.len=T,x=a.squaredLength=S.squaredLength,D=a.sqrLen=x,k=a.normalize=S.normalize,w=a.exactEquals=S.exactEquals,V=a.equals=S.equals,j=a.rotationTo=function(){var e=R.create(),t=R.fromValues(1,0,0),r=R.fromValues(0,1,0);return function(o,l,a){var n=R.dot(l,a);return-.999999>n?(R.cross(e,t,l),1e-6>R.len(e)&&R.cross(e,r,l),R.normalize(e,e),s(o,e,Math.PI),o):.999999=i&&0<=j&&1>=j}function e(d,a,b){return(a[0]-d[0])*(b[1]-d[1])-(b[0]-d[0])*(a[1]-d[1])}function a(d,a,b){return 0e(d,a,b)}function g(d,a,b){return 0>=e(d,a,b)}function h(d,a,b,c){var f=Math.sqrt;if(!c)return 0===e(d,a,b);var g=tmpPoint1,h=tmpPoint2;g[0]=a[0]-d[0],g[1]=a[1]-d[1],h[0]=b[0]-a[0],h[1]=b[1]-a[1];var i=g[0]*h[0]+g[1]*h[1],j=f(g[0]*g[0]+g[1]*g[1]),k=f(h[0]*h[0]+h[1]*h[1]),l=Math.acos(i/(j*k));return lb?b%c+c:b%c]}function m(a){a.length=0}function n(a,b,c,d){for(var e=c;eJ.length)return e;if(w++,w>s)return console.warn("quickDecomp: max level ("+s+") reached."),e;for(var v=0;vD&&(D+=c.length),d=x,Dd[c][0])&&(c=e);return!a(l(b,c-1),l(b,c),l(b,c+1))&&(j(b),!0)}}} + +// c3/lib/c3.js +"use strict";{let a=!1,b=!1,c="dev";self.C3=class{constructor(){throw TypeError("static class can't be instantiated")}static SetReady(){a=!0}static IsReady(){return a}static SetAppStarted(){b=!0}static HasAppStarted(){return b}static SetBuildMode(a){c=a}static GetBuildMode(){return c}static IsReleaseBuild(){return"final"===c}},C3.isDebug=!1,C3.isDebugDefend=!1,C3.hardwareConcurrency=navigator.hardwareConcurrency||2} + +// ../lib/queryParser.js +"use strict";C3.QueryParser=class{constructor(a){this._queryString=a,this._parameters=new Map,this._Parse()}_Parse(){let a=this._queryString;(a.startsWith("?")||a.startsWith("#"))&&(a=a.substr(1));const b=a.split("&");for(const a of b)this._ParseParameter(a)}_ParseParameter(a){if(a){if(!a.includes("="))return void this._parameters.set(a,null);const b=a.indexOf("="),c=decodeURIComponent(a.substring(0,b)),d=decodeURIComponent(a.substring(b+1));this._parameters.set(c,d)}}LogAll(){for(const a of this._parameters)console.log("[QueryParser] Parameter '"+a[0]+"' = "+(null===a[1]?"null":"'"+a[1]+"'"))}Has(a){return this._parameters.has(a)}Get(a){const b=this._parameters.get(a);return"undefined"==typeof b?null:b}ClearHash(){history.replaceState("",document.title,location.pathname+location.search)}Reparse(a){this._queryString=a,this._parameters.clear(),this._Parse()}},C3.QueryString=new C3.QueryParser(location.search),C3.LocationHashString=new C3.QueryParser(location.hash),"dev"!==C3.QueryString.Get("mode")&&C3.SetBuildMode("final"); + +// ../lib/detect/detect.js +"use strict";{function a(a,b,c){if(!0===b){c();o.set(a,!0)}else if(b&&b.length){c(b[0]);o.set(a,!0)}else;}const b=navigator.userAgent;let c={linux:/linux|openbsd|freebsd|netbsd/i.test(b),chromeOS:/CrOS/.test(b),windowsTizen:/trident|iemobile|msie|tizen/i.test(b),genericMS:/trident|iemobile|msie|edge\//i.test(b),opera:/OPR\//.test(b),blackberry:/bb10/i.test(b),edge:/edge\//i.test(b),trident:/trident/i.test(b),webkit:/webkit/i.test(b),safari:/safari\//i.test(b),chrome:/chrome\//i.test(b),chromium:/chromium\//i.test(b),crosswalk:/crosswalk|xwalk/i.test(b),nwjs:/nwjs/i.test(b),amazonwebapp:/amazonwebappplatform/i.test(b),webview:/wv\)/.test(b),android:/android/i.test(b),nokia:/nokiabrowser\/[0-9.]+/i.test(b)},d={windows:/windows\s+nt\s+\d+\.\d+/i.exec(b),OSX:/mac\s+os\s+x\s+[0-9_]+/i.exec(b),android:/android\s+[0-9.]+/i.exec(b),opera:/OPR\/[0-9.]+/.exec(b),tizen:/tizen\s+[0-9.]+/i.exec(b),iphone:/iphone\s+os\s+[0-9_]+/i.exec(b),ipad:/ipad[^)]*os\s+[0-9_]+/i.exec(b),winPhone:/windows\s+phone\s+[0-9.]+/i.exec(b),winPhoneOS:/windows\s+phone\s+os\s+[0-9.]+/i.exec(b),chrome:/chrome\/[0-9.]+/i.exec(b),chromium:/chromium\/[0-9.]+/i.exec(b),nwjs:/nwjs\/[0-9.]+/i.exec(b),firefox:/firefox\/[0-9.]+/i.exec(b),ie:/msie\s+[0-9.]+/i.exec(b),edge:/edge\/[0-9.]+/i.exec(b),edgeChromium:/edg\/[0-9.]+/i.exec(b),silk:/silk\/[0-9.]+/i.exec(b)},e="(unknown)",f="(unknown)",g="(unknown)",h="(unknown)",i="(unknown)",j="(unknown)",k="(unknown)",l="browser",m=!1,n=!1,o=new Map;a("isWindows",d.windows,(a)=>{e="Windows";const b=a.split(" ")[2];b&&("5.0"===b?f="2000":"5.1"===b?f="XP":"5.2"===b?f="XP":"6.0"===b?f="Vista":"6.1"===b?f="7":"6.2"===b?f="8":"6.3"===b?f="8.1":"10.0"===b?f="10":void 0)}),a("isOSX",d.OSX,(a)=>{e="Mac OS X";const b=a.split(" ")[3];b&&(f=b.replace("_","."))}),a("isLinux",c.linux,()=>{e="Linux"}),a("isChromeOS",c.chromeOS,()=>{e="Chrome OS"}),a("isAndroid",!c.windowsTizen&&d.android,(a)=>{e="Android";const b=a.split(" ")[1];b&&(f=b)}),a("isTizen",d.tizen,(a)=>{e="Tizen";const b=a.split(" ")[1];b&&(f=b)}),a("isIPhone",!c.windowsTizen&&d.iphone,(a)=>{e="iOS";const b=a.split(" ")[2];b&&(f=b.replace("_","."))}),a("isIPad",!c.windowsTizen&&d.ipad,(a)=>{e="iOS";const b=a.split(" ")[3];b&&(f=b.replace("_","."))}),a("isWindowsPhone",d.winPhone,(a)=>{e="Windows Phone";const b=a.split(" ")[2];b&&(f=b)}),a("isWindowsPhoneOS",d.winPhoneOS,(a)=>{e="Windows Phone";const b=a.split(" ")[3];b&&(f=b)}),a("isBlackberry",c.blackberry,()=>{e="Blackberry",f="10",h="stock",k="webkit"}),a("isChrome",!c.edge&&!c.opera&&d.chrome,(a)=>{h="Chrome",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isOpera",d.opera,(a)=>{h="Opera",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isChromium",d.chromium,(a)=>{h="Chromium",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isFirefox",d.firefox,(a)=>{h="Firefox",k="Gecko";const b=a.split("/")[1];b&&(i=b)}),a("isInternetExplorer",d.ie,(a)=>{h="Internet Explorer",k="Trident";const b=a.split(" ")[1];b&&(i=b)}),a("isTrident","Internet Explorer"!=h&&c.trident,()=>{k="Trident";const a=/rv:[0-9.]+/i.exec(b);if(a&&a.length){h="Internet Explorer";const b=a[0].split(":")[1];b&&(i=b)}}),a("isEdge",d.edge,(a)=>{h="Edge",k="Edge";const b=a.split("/")[1];b&&(i=b)}),a("isEdgeChromium",d.edgeChromium,(a)=>{h="Edge",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isSafari",c.safari&&!c.nokia&&!c.chrome&&!c.chromium&&!c.genericIE&&!c.blackberry,()=>{h="Safari",k="WebKit";const a=/version\/[0-9.]+/i.exec(b),c=/crios\/[0-9.]+/i.exec(b),d=/fxios\/[0-9.]+/i.exec(b);if(a&&a.length){const b=a[0].split("/")[1];b&&(i=b)}if(c&&c.length){h="Chrome for iOS";const a=c[0].split("/")[1];a&&(i=a)}if(d&&d.length){h="Firefox for iOS";const a=d[0].split("/")[1];a&&(i=a)}}),a("isSilk",d.silk,(a)=>{h="Silk";const b=a.split("/")[1];b&&(i=b)}),a("isCrosswalk",c.crosswalk,()=>l="crosswalk"),a("isCordova",self["device"]&&(self["device"]["cordova"]||self["device"]["phonegap"]),()=>l="cordova"),a("isNWJS",d.nwjs,(a)=>{l="nwjs",h="NW.js",k="Chromium";const b=a.split("/")[1];b&&(i=b)}),a("isAmazonWebApp",c.amazonwebapp,()=>l="webapp"),a("isHomeScreenWebApp","nwjs"!=l&&"undefined"!=typeof window&&(window.matchMedia&&window.matchMedia("(display-mode: standalone)").matches||navigator["standalone"]),()=>l="webapp"),a("isFalseSafari","Safari"==h&&("Android"==e||"Tizen"==e||"Blackberry"==e),()=>h="stock"),a("isAndroidWebview","Chrome"==h&&"browser"==l&&c.webview,()=>l="webview"),a("isFirefoxOS","Firefox"==h&&e=="(unknown)",()=>e="Firefox OS"),a("isAndroidFallback",e=="(unknown)"&&!c.windowsTizen&&c.android,()=>e="Android"),a("isTridentFallback",e=="(unknown)"&&c.trident,()=>k="Trident"),a("isWebkitFallback",e=="(unknown)"&&c.webkit,()=>k="WebKit"),a("is64Bit",((a)=>a.test(b)||a.test(navigator.platform)||"x64"===navigator.cpuClass)(/x86_64|x86-64|win64|x64;|x64\)|x64_|amd64|wow64|ia64|arm64|arch64|sparc64|ppc64|irix64/i),()=>g="64-bit"),a("is32Bit",((a)=>a.test(b)||a.test(navigator.platform)||"x86"===navigator.cpuClass)(/x86;|x86\)|i86|i386|i486|i586|i686|armv1|armv2|armv3|armv4|armv5|armv6|armv7/i),()=>g="32-bit"),a("is64BitFallback",g=="(unknown)"&&"Mac OS X"==e&&10.7<=parseFloat(f),()=>g="64-bit"),a("is32BitFallback",g=="(unknown)"&&"Windows"==e||"Android"==e&&5>parseFloat(f),()=>g="32-bit"),a("is32BitBrowser","32-bit"==g||/wow64/i.test(b),()=>j="32-bit"),a("is64BitBrowser",/win64/i.test(b),()=>j="64-bit"),a("isDesktop",(()=>"Windows"==e||"Mac OS X"==e||"Linux"==e||"Chrome OS"==e||"nwjs"==l)(),()=>m=!0),"Edge"==k&&"undefined"!=typeof Windows&&"undefined"!=typeof Windows["System"]&&(l="windows-store"),n="nwjs"==l||"windows-store"==l,C3.Platform={OS:e,OSVersion:f,OSArchitecture:g,Browser:h,BrowserVersion:i,BrowserVersionNumber:parseFloat(i),BrowserArchitecture:j,BrowserEngine:k,Context:l,IsDesktop:m,IsMobile:!m,IsDesktopApp:n,IsChromeWebStore:!!(self["chrome"]&&self["chrome"]["runtime"]&&self["chrome"]["runtime"]["id"]),IsAppleOS:"Mac OS X"==e||"iOS"==e}} + +// ../lib/storage/kvStorage.js +"use strict";{function a(a){return new Promise((b,c)=>{a.onsuccess=()=>b(a.result),a.onerror=()=>c(a.error)})}function b(a){return new Promise((b,c)=>{a.oncomplete=()=>b(),a.onerror=()=>c(a.error),a.onabort=()=>c(a.error)})}function c(a,b){return e(a,b)}function d(a,b){return e(a,b,!0)}async function e(a,b,c=!1,d=!0){const g=await f(a);try{const a=g.transaction([j],c?"readwrite":"readonly");return b(a)}catch(f){if(d&&"InvalidStateError"===f["name"])return k.delete(a),e(a,b,c,!1);throw f}}function f(a){h(a);let b=k.get(a);return b instanceof Promise||(b=g(a),k.set(a,b),b.catch(()=>k.delete(a))),b}async function g(b){h(b);const c=indexedDB.open(b,i);return c.addEventListener("upgradeneeded",(a)=>{try{const b=a.target.result;b.createObjectStore(j)}catch(a){console.error(`Failed to create objectstore for database ${b}`,a)}}),a(c)}function h(a){if("string"!=typeof a)throw new TypeError("expected string")}const i=2,j="keyvaluepairs",k=new Map;self.KVStorageContainer=class{constructor(a){h(a),this.name=a}async ready(){await f(this.name)}set(c,e){return h(c),d(this.name,async(d)=>{const f=d.objectStore("keyvaluepairs").put(e,c),g=a(f),h=b(d);await Promise.all([h,g])})}get(d){return h(d),c(this.name,async(c)=>{const e=c.objectStore("keyvaluepairs").get(d),f=a(e),g=b(c),[h,i]=await Promise.all([g,f]);return i})}delete(c){return h(c),d(this.name,async(d)=>{const e=d.objectStore("keyvaluepairs").delete(c),f=a(e),g=b(d);await Promise.all([g,f])})}clear(){return d(this.name,async(c)=>{const d=c.objectStore("keyvaluepairs").clear(),e=a(d),f=b(c);await Promise.all([f,e])})}keys(){return c(this.name,async(c)=>{const d=c.objectStore("keyvaluepairs").getAllKeys(),e=a(d),f=b(c),[g,h]=await Promise.all([f,e]);return h})}values(){return c(this.name,async(c)=>{const d=c.objectStore("keyvaluepairs").getAll(),e=a(d),f=b(c),[g,h]=await Promise.all([f,e]);return h})}entries(){return c(this.name,async(c)=>{const d=c.objectStore("keyvaluepairs").getAllKeys(),e=a(d),f=c.objectStore("keyvaluepairs").getAll(),g=a(f),h=b(c),[i,j,k]=await Promise.all([h,e,g]),m=Math.min(j.length,k.length),l=[];for(let a=0;a{const{port1:c,port2:d}=new MessageChannel;d.onmessage=(a)=>b(a.data),c.postMessage(a)}):Promise.resolve(a)}const d=[/no available storage method found/i,/an attempt was made to break through the security policy of the user agent/i,/the user denied permission to access the database/i,/a mutation operation was attempted on a database that did not allow mutations/i,/idbfactory\.open\(\) called in an invalid security context/i],e=new WeakMap;let f=!1;"undefined"==typeof indexedDB&&(f=!0,console.warn("Unable to use local storage because indexedDB is not defined"));class g{constructor(a){this._inst=a,e.set(this,new Map)}_MaybeSwitchToMemoryFallback(a){if(!f)for(const b of d)if(b.test(a.message)){console.error("Unable to use local storage, reverting to in-memory store: ",a,a.message),f=!0;break}}async _getItemFallback(a){const b=e.get(this).get(a),d=await c(b);return"undefined"==typeof d?null:d}async _setItemFallback(a,b){b=await c(b),e.get(this).set(a,b)}_removeItemFallback(a){e.get(this).delete(a)}_clearFallback(){e.get(this).clear()}_keysFallback(){return Array.from(e.get(this).keys())}IsUsingFallback(){return f}async getItem(a,c){if(b(c),f)return await this._getItemFallback(a);let d;try{d=await this._inst.get(a)}catch(b){return this._MaybeSwitchToMemoryFallback(b),f?await this._getItemFallback(a):(console.error(`Error reading '${a}' from storage, returning null: `,b),null)}return"undefined"==typeof d?null:d}async setItem(a,c,d){if(b(d),"undefined"==typeof c&&(c=null),f)return void(await this._setItemFallback(a,c));try{await this._inst.set(a,c)}catch(b){if(this._MaybeSwitchToMemoryFallback(b),f)await this._setItemFallback(a,c);else throw b}}async removeItem(a,c){if(b(c),f)return void this._removeItemFallback(a);try{await this._inst.delete(a)}catch(b){this._MaybeSwitchToMemoryFallback(b),f?this._removeItemFallback(a):console.error(`Error removing '${key}' from storage: `,b)}}async clear(a){if(b(a),f)return void this._clearFallback();try{await this._inst.clear()}catch(a){this._MaybeSwitchToMemoryFallback(a),f?this._clearFallback():console.error(`Error clearing storage: `,a)}}async keys(a){if(b(a),f)return this._keysFallback();let c=[];try{c=await this._inst.keys()}catch(a){if(this._MaybeSwitchToMemoryFallback(a),f)return this._keysFallback();console.error(`Error getting storage keys: `,a)}return c}ready(a){return b(a),f?Promise.resolve(!0):this._inst.ready()}createInstance(a){if("object"!=typeof a)throw new TypeError("invalid options object");const b=a["name"];if("string"!=typeof b)throw new TypeError("invalid store name");const c=new KVStorageContainer(b);return new g(c)}length(){a("localforage.length()")}key(){a("localforage.key()")}iterate(){a("localforage.iterate()")}setDriver(){a("localforage.setDriver()")}config(){a("localforage.config()")}defineDriver(){a("localforage.defineDriver()")}driver(){a("localforage.driver()")}supports(){a("localforage.supports()")}dropInstance(){a("localforage.dropInstance()")}}self.localforage=new g(new KVStorageContainer("localforage"))} + +// ../lib/misc/supports.js +"use strict";{if(C3.Supports={},C3.Supports.WebAnimations=(()=>{try{if("undefined"==typeof document)return!1;const a=document.createElement("div");if("undefined"==typeof a.animate)return!1;const b=a.animate([{opacity:"0"},{opacity:"1"}],1e3);return"undefined"!=typeof b.reverse}catch(a){return!1}})(),C3.Supports.DialogElement="undefined"!=typeof HTMLDialogElement,C3.Supports.RequestIdleCallback=!!self.requestIdleCallback,C3.Supports.ImageBitmap="Safari"!==C3.Platform.Browser&&"Firefox"!==C3.Platform.Browser&&!!self.createImageBitmap,C3.Supports.ImageBitmapOptions=!1,C3.Supports.ImageBitmap)try{self.createImageBitmap(new ImageData(32,32),{premultiplyAlpha:"none"}).then(()=>{C3.Supports.ImageBitmapOptions=!0}).catch(()=>{C3.Supports.ImageBitmapOptions=!1})}catch(a){C3.Supports.ImageBitmapOptions=!1}C3.Supports.ClipboardReadText=!!(navigator["clipboard"]&&navigator["clipboard"]["readText"]&&"Firefox"!==C3.Platform.Browser),C3.Supports.Proxies="undefined"!=typeof Proxy,C3.Supports.DownloadAttribute=(()=>{if("undefined"==typeof document)return!1;const b=document.createElement("a");return"undefined"!=typeof b.download})(),C3.Supports.CanvasToBlob=(()=>"undefined"!=typeof HTMLCanvasElement&&HTMLCanvasElement.prototype.toBlob)(),C3.Supports.CSSElement="undefined"!=typeof CSS&&CSS.supports("background","element(#test)"),C3.Supports.Fetch="function"==typeof fetch,C3.Supports.PersistentStorage=!!(self.isSecureContext&&"Opera"!==C3.Platform.Browser&&navigator["storage"]&&navigator["storage"]["persist"]),C3.Supports.StorageQuotaEstimate=!!(self.isSecureContext&&navigator["storage"]&&navigator["storage"]["estimate"]),C3.Supports.Fullscreen=(()=>{if("undefined"==typeof document)return!1;if("iOS"===C3.Platform.OS)return!1;const a=document.documentElement;return!!(a.requestFullscreen||a.msRequestFullscreen||a.mozRequestFullScreen||a.webkitRequestFullscreen)})();const a=[{name:"A",value:12},{name:"B",value:13},{name:"C",value:13},{name:"D",value:13},{name:"E",value:13},{name:"F",value:13},{name:"G",value:14},{name:"H",value:12},{name:"I",value:12},{name:"J",value:13},{name:"K",value:14}],b=Math.ceil(496/a.length),c=(b+"").length,d=[];for(const e of a)for(let a=0;a<=b;a++)d.push({name:e.name+(a+"")["padStart"](c,"0"),value:e.value});d.sort((c,a)=>a.value-c.value);const e=d.reduce((a,b)=>{const c=b.name.slice(0,1),d=a.slice(-1);return d===c?a:a+c},"");C3.Supports.ArraySortProbablyStable="GKBCDEFJAHI"===e} + +// ../lib/misc/polyfills.js +"use strict";{if(!String.prototype.trimStart){const a=/^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*/;String.prototype.trimStart=function(){return this.replace(a,"")}}if(!String.prototype.trimEnd){const a=/[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*$/;String.prototype.trimEnd=function(){return this.replace(a,"")}}if(Array.prototype.values||(Array.prototype.values=function*(){for(const a of this)yield a}),!Array.prototype.flat){function a(b,c){return b.reduce((b,d)=>0navigator["webkitTemporaryStorage"]["queryUsageAndQuota"]((b,c)=>a({"usage":b,"quota":c}),b))}),"undefined"==typeof HTMLCollection||HTMLCollection.prototype[Symbol.iterator]||(HTMLCollection.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});"undefined"==typeof NodeList||NodeList.prototype[Symbol.iterator]||(NodeList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});"undefined"==typeof DOMTokenList||DOMTokenList.prototype[Symbol.iterator]||(DOMTokenList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}});if("undefined"==typeof FileList||FileList.prototype[Symbol.iterator]||(FileList.prototype[Symbol.iterator]=function(){let a=0;return{next:()=>a>=this.length?{done:!0}:{value:this.item(a++),done:!1}}}),"undefined"==typeof TextEncoder&&(self.TextEncoder=class{constructor(){Object.defineProperty(this,"encoding",{"value":"utf-8","writable":!1})}encode(a){for(var b=a.length,c=-1,d=new Uint8Array(3*b),e=0,f=0,g=0;g!==b;){if(e=a.charCodeAt(g),g+=1,55296<=e&&56319>=e){if(g===b){d[c+=1]=239,d[c+=1]=191,d[c+=1]=189;break}if(f=a.charCodeAt(g),!(56320<=f&&57343>=f)){d[c+=1]=239,d[c+=1]=191,d[c+=1]=189;continue}else if(e=1024*(e-55296)+f-56320+65536,g+=1,65535>>18,d[c+=1]=128|63&e>>>12,d[c+=1]=128|63&e>>>6,d[c+=1]=128|63&e;continue}}127>=e?d[c+=1]=0|e:2047>=e?(d[c+=1]=192|e>>>6,d[c+=1]=128|63&e):(d[c+=1]=224|e>>>12,d[c+=1]=128|63&e>>>6,d[c+=1]=128|63&e)}return new Uint8Array(d.buffer.slice(0,c+1))}toString(){return"[object TextEncoder]"}},TextEncoder[Symbol.toStringTag]="TextEncoder"),"undefined"==typeof TextDecoder){function a(a){const b=a[Symbol.iterator]();return{next:()=>b.next(),[Symbol.iterator](){return this}}}function b(a){const b=a.next();if(b.done)throw new Error("unexpected end of input");if(0!=(128^192&b.value))throw new Error("invalid byte");return 63&b.value}const c=new Map;c.set("utf-8",(c,d)=>{let e;if(c.buffer)e=new Uint8Array(c.buffer,c.byteOffset,c.byteLength);else if(e instanceof ArrayBuffer)e=new Uint8Array(c);else throw new Error("Invalid parameter");const f=a(e),g=[];try{for(const a of f){let c;if(127>a)c=127&a;else if(223>a)c=(31&a)<<6|b(f);else if(239>a)c=(15&a)<<12|b(f)<<6|b(f);else if(247>a)c=(7&a)<<18|b(f)<<12|b(f)<<6|b(f);else throw new Error("Invalid character");g.push(String.fromCodePoint(c))}}catch(a){if(d)throw a;g.push("\uFFFD")}return g.join("")}),c.set("utf8",c.get("utf-8")),c.set("utf-16le",()=>{throw new Error("utf-16le decoder not implemented")}),self.TextDecoder=class{constructor(a="utf-8",b={}){const d=c.get(a);if(!d)throw new Error(`TextDecoder polyfill does not support "${a}"`);Object.defineProperty(this,"fatal",{"value":!0===b["fatal"],"writable":!1}),Object.defineProperty(this,"_decoder",{"value":d,"writable":!1}),Object.defineProperty(this,"encoding",{"value":a,"writable":!1})}decode(a){return this["_decoder"](a,this["fatal"])}toString(){return"[object TextDecoder]"}},TextDecoder[Symbol.toStringTag]="TextDecoder"}"undefined"==typeof self.isSecureContext&&(self.isSecureContext="https:"===location.protocol)} + +// c3/lib/misc/assert.js +"use strict";{function a(a){let b=C3.GetCallStack();console.error("Assertion failure: "+a+"\n\nStack trace:\n"+b)}self.assert=function(b,c){b||a(c)}} + +// ../lib/misc/typeChecks.js +"use strict";{C3.IsNumber=function(a){return"number"==typeof a},C3.IsFiniteNumber=function(a){return C3.IsNumber(a)&&isFinite(a)},C3.RequireNumber=function(a){if(!C3.IsNumber(a))throw new TypeError("expected number")},C3.RequireOptionalNumber=function(a){C3.IsNullOrUndefined(a)},C3.RequireNumberInRange=function(a,b,c){if(!C3.IsNumber(a)||isNaN(a)||b>a||cC3.getName(a))),b=[...a].join(",");console.warn(`An object derived from DefendedBase was not protected with debugDefend(). This will disable some checks. See the coding guidelines! Possible affected class names: ${b}`),f.clear(),g.clear()}}function d(a){let b=new Set;for(let c in a)b.add(c);return b}function e(a,b){let c=d(b),e=l.get(a);if(e){let b=[];for(let a of e.values())c.has(a)?c.delete(a):b.push(a);C3.appendArray(b,[...c]),b.length&&console.warn(`[Defence] '${C3.getName(a)}' constructor creates inconsistent properties: ${b.join(", ")}`)}else l.set(a,c)}C3.GetCallStack=function(){return new Error().stack},C3.Debugger=function(){debugger},C3.cast=function(a,b){return a&&a instanceof b?a:null},C3.getName=function(a){return"undefined"==typeof a?"undefined":null===a?"null":"boolean"==typeof a?"":C3.IsNumber(a)?"":C3.IsString(a)?"":C3.IsArray(a)?"":"symbol"==typeof a?"<"+a.toString()+">":C3.IsFunction(a)?a.name&&"Function"!==a.name?a.name:"":"object"==typeof a?a.constructor&&a.constructor.name&&"Object"!==a.constructor.name?a.constructor.name:"":""},C3.getType=function(a){return null===a?"null":Array.isArray(a)?"array":typeof a},C3.range=function*(c,a){if(!isFinite(Math.abs(c-a)))throw new Error("Invalid parameters");if(c>a)for(let b=c-1;b>=a;b--)yield b;else for(let b=c;b1/a}const b=2*Math.PI,c=Math.PI/180,d=180/Math.PI;C3.wrap=function(a,b,c){var d=Math.floor;if(a=d(a),b=d(b),c=d(c),aa?a:c},C3.clampAngle=function(c){return c%=b,0>c&&(c+=b),c},C3.toRadians=function(a){return a*c},C3.toDegrees=function(a){return a*d},C3.distanceTo=function(a,b,c,d){return Math.hypot(c-a,d-b)},C3.distanceSquared=function(a,b,c,d){const e=c-a,f=d-b;return e*e+f*f},C3.angleTo=function(a,b,c,d){return Math.atan2(d-b,c-a)},C3.angleDiff=function(a,b){var c=Math.cos,d=Math.sin;if(a===b)return 0;let e=d(a),f=c(a),g=d(b),h=c(b),i=e*g+f*h;return 1<=i?0:-1>=i?Math.PI:Math.acos(i)},C3.angleRotate=function(a,b,c){var d=Math.cos,e=Math.sin;let f=e(a),g=d(a),h=e(b),i=d(b);return Math.acos(f*h+g*i)>c?0=f*g-e*h},C3.angleLerp=function(c,a,b){let d=C3.angleDiff(c,a);return C3.angleClockwise(a,c)?C3.clampAngle(c+d*b):C3.clampAngle(c-d*b)},C3.lerp=function(c,a,b){return c+b*(a-c)},C3.unlerp=function(c,a,b){return c===a?0:(b-c)/(a-c)},C3.relerp=function(e,a,b,f,c){return C3.lerp(f,c,C3.unlerp(e,a,b))},C3.qarp=function(d,a,b,c){return C3.lerp(C3.lerp(d,a,c),C3.lerp(a,b,c),c)},C3.cubic=function(e,a,b,c,d){return C3.lerp(C3.qarp(e,a,b,d),C3.qarp(a,b,c,d),d)},C3.cosp=function(c,a,b){return(c+a+(c-a)*Math.cos(b*Math.PI))/2},C3.isPOT=function(a){return 0b;b<<=1)a|=a>>b;return a+1},C3.roundToNearestFraction=function(a,b){return Math.round(a*b)/b},C3.floorToNearestFraction=function(a,b){return Math.floor(a*b)/b},C3.round6dp=function(a){return Math.round(1e6*a)/1e6},C3.toFixed=function(a,b){let c=a.toFixed(b),d=c.length-1;for(;0<=d&&"0"===c.charAt(d);--d);return 0<=d&&"."===c.charAt(d)&&--d,0>d?c:c.substr(0,d+1)},C3.PackRGB=function(a,b,c){return C3.clamp(a,0,255)|C3.clamp(b,0,255)<<8|C3.clamp(c,0,255)<<16};const e=1024;C3.PackRGBAEx=function(a,b,c,d){var f=Math.floor;return a=C3.clamp(f(1024*a),-8192,8191),b=C3.clamp(f(1024*b),-8192,8191),c=C3.clamp(f(1024*c),-8192,8191),d=C3.clamp(f(1023*d),0,1023),0>a&&(a+=16384),0>b&&(b+=16384),0>c&&(c+=16384),-(16384*(16384*a)*e+16384*b*e+c*e+d)},C3.PackRGBEx=function(a,b,c){return C3.PackRGBAEx(a,b,c,1)},C3.GetRValue=function(a){if(0<=a)return(255&a)/255;else{let b=Math.floor(-a/274877906944);return 8191>8)/255;else{let b=Math.floor(-a%274877906944/16777216);return 8191>16)/255;else{let b=Math.floor(-a%16777216/e);return 8191c(b-e))return d.slice(0);if(e=a/d[1]*d[0],1>c(b-e))return[d[1],d[0]]}let e=C3.greatestCommonDivisor(a,b);return[a/e,b/e]},C3.segmentsIntersect=function(a,b,c,e,f,g,h,i){var j=Math.abs;let k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(ao)return!1;if(bq)return!1;let s=f-a+h-c,t=g-b+i-e,u=c-a,v=e-b,w=h-f,x=i-g,y=j(v*w-x*u);if(j(w*t-x*s)>y)return!1;return j(u*t-v*s)<=y},C3.segmentsIntersectPreCalc=function(a,b,c,e,f,g,h,i,j,k,l,m){var n=Math.abs;let o=0,p=0,q=0,r=0;if(jo)return!1;if(kq)return!1;let s=j-a+l-c,t=k-b+m-e,u=c-a,v=e-b,w=l-j,x=m-k,y=n(v*w-x*u);if(n(w*t-x*s)>y)return!1;return n(u*t-v*s)<=y},C3.segmentIntersectsQuad=function(a,b,c,d,e){let f=0,g=0,h=0,i=0;ab?"":a.substr(b)},C3.GetFileNamePart=function(a){let b=a.lastIndexOf(".");return 1>b?a:a.substr(0,b)},C3.NormalizeFileSeparator=function(a){return a.replace(/\\/g,"/")},C3.ParseFilePath=function(a){a=C3.NormalizeFileSeparator(a);let b=/^\w\:\//.exec(a);b?(b=b[0],a=a.slice(3),"/"!==a[0]&&(a="/"+a)):b="",a=a.replace(/\/{2,}/g,"/"),1{self.setTimeout(c,a,b)})},C3.swallowException=function(a){try{a()}catch(a){C3.isDebug&&console.warn("Swallowed exception: ",a)}},C3.noop=function(){},C3.equalsNoCase=function(c,d){return"string"==typeof c&&"string"==typeof d&&!(c.length!==d.length)&&(!(c!==d)||c.toLowerCase()===d.toLowerCase())},C3.stableSort=function(a,c){if(C3.Supports.ArraySortProbablyStable)return void a.sort(c);const b=a.map((a,b)=>[a,b]);b.sort((d,a)=>{const b=c(d[0],a[0]);return 0===b?d[1]-a[1]:b});for(let d=0,e=a.length;dd&&C3.extendArray(a,b,c)},C3.shallowAssignArray=function(a,b){C3.clearArray(a),C3.appendArray(a,b)},C3.appendArray=function(c,a){for(let b=0,d=a.length;bb||b>=a.length)){let c=a.length-1;for(let d=b;dc:!(5!=b)&&a>=c},C3.hasAnyOwnProperty=function(a){for(let b in a)if(a.hasOwnProperty(b))return!0;return!1},C3.PromiseAllWithProgress=function(a,b){return a.length?new Promise((c,d)=>{const e=[];let f=0,g=!1;for(let h=0,i=a.length;h{g||(e[h]=d,++f,f===a.length?c(e):b(f,a.length))}).catch((a)=>{g=!0,d(a)})}):Promise.resolve([])};let c=[];C3.AddLibraryMemoryCallback=function(a){c.push(a)},C3.GetEstimatedLibraryMemoryUsage=function(){let a=0;for(let b of c){let c=b();a+=c}return Math.floor(a)}} + +// c3/lib/misc/runtimeutil.js +"use strict";C3.IsAbsoluteURL=function(a){return /^(?:[a-z]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)},C3.IsRelativeURL=function(a){return!C3.IsAbsoluteURL(a)},C3.ThrowIfNotOk=function(a){if(!a.ok)throw new Error(`fetch '${a.url}' response returned ${a.status} ${a.statusText}`)},C3.FetchOk=function(a,b){return fetch(a,b).then((a)=>(C3.ThrowIfNotOk(a),a))},C3.FetchText=function(a){return C3.FetchOk(a).then((a)=>a.text())},C3.FetchJson=function(a){return C3.FetchOk(a).then((a)=>a.json())},C3.FetchBlob=function(a){return C3.FetchOk(a).then((a)=>a.blob())},C3.FetchArrayBuffer=function(a){return C3.FetchOk(a).then((a)=>a.arrayBuffer())},C3.FetchImage=function(a){return new Promise((b,c)=>{const d=new Image;d.onload=()=>b(d),d.onerror=(a)=>c(a),d.src=a})},C3.BlobToArrayBuffer=function(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=()=>b(d.result),d.onerror=()=>c(d.error),d.readAsArrayBuffer(a)})},C3.BlobToString=function(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=()=>b(d.result),d.onerror=()=>c(d.error),d.readAsText(a)})},C3.BlobToJson=function(a){return C3.BlobToString(a).then((a)=>JSON.parse(a))},C3.BlobToImage=async function(a,b){let c=URL.createObjectURL(a);try{const a=await C3.FetchImage(c);return URL.revokeObjectURL(c),c="",b&&"function"==typeof a["decode"]&&(await a["decode"]()),a}finally{c&&URL.revokeObjectURL(c)}},C3.CreateCanvas=function(a,b){if("undefined"!=typeof document&&"function"==typeof document.createElement){const c=document.createElement("canvas");return c.width=a,c.height=b,c}return new OffscreenCanvas(a,b)},C3.CanvasToBlob=function(a,b,c){return"number"!=typeof c&&(c=1),b=b||"image/png",c=C3.clamp(c,0,1),a.toBlob?new Promise((d)=>a.toBlob(d,b,c)):a["convertToBlob"]?a["convertToBlob"]({"type":b,"quality":c}):C3.Asyncify(()=>C3.CanvasToBlobSync(a,b,c))},C3.CanvasToBlobSync=function(a,b,c){return"number"!=typeof c&&(c=1),b=b||"image/png",c=C3.clamp(c,0,1),C3.DataURIToBinaryBlob(a.toDataURL(b,c))},C3.DataURIToBinaryBlob=function(a){const b=C3.ParseDataURI(a);return C3.BinaryStringToBlob(b.data,b.mime_type)},C3.ParseDataURI=function(a){if("data:"!==a.substr(0,5))throw new URIError("expected data: uri");let b=a.indexOf(",");if(0>b)throw new URIError("expected comma in data: uri");let c,d=a.substring(5,b),e=a.substring(b+1),f=d.split(";"),g=f[0]||"",h=f[1],i=f[2];return c="base64"===h||"base64"===i?atob(e):decodeURIComponent(e),{mime_type:g,data:c}},C3.BinaryStringToBlob=function(a,b){let c,d,e=a.length,f=e>>2,g=new Uint8Array(e),h=new Uint32Array(g.buffer,0,f);for(c=0,d=0;cC3.DrawableToBlob(a,b,c));if(C3.Supports.ImageBitmap)return createImageBitmap(a).then((a)=>C3.DrawableToBlob(a,b,c));else{const d=C3.CreateCanvas(a.width,a.height),e=d.getContext("2d");return e.putImageData(a,0,0),C3.CanvasToBlob(d,b,c)}},C3.CopySet=function(a,b){a.clear();for(const c of b)a.add(c)},C3.MapToObject=function(a){const b=Object.create(null);for(const[c,d]of a.entries())b[c]=d;return b},C3.ObjectToMap=function(a,b){b.clear();for(const[c,d]of Object.entries(a))b.set(c,d)},C3.ToSuperJSON=function a(b){if("object"==typeof b&&null!==b){if(b instanceof Set)return{"_c3type_":"set","data":[...b].map((b)=>a(b))};if(b instanceof Map)return{"_c3type_":"map","data":[...b].map((b)=>[b[0],a(b[1])])};else{const c=Object.create(null);for(const[d,e]of Object.entries(b))c[d]=a(e);return c}}return b},C3.FromSuperJSON=function a(b){if("object"==typeof b&null!==b){if("set"===b["_c3type_"])return new Set(b["data"].map((b)=>a(b)));if("map"===b["_c3type_"])return new Map(b["data"].map((b)=>[b[0],a(b[1])]));else{const c=Object.create(null);for(const[d,e]of Object.entries(b))c[d]=a(e);return c}}return b},C3.CSSToCamelCase=function(a){let b="",c=!1;for(const d of a)"-"===d?c=!0:c?(b+=d.toUpperCase(),c=!1):b+=d;return b},C3.IsIterator=function(a){return"object"==typeof a&&"function"==typeof a.next}; + +// ../lib/misc/color.js +"use strict";{function a(a){return 0===a.length?"00":1===a.length?"0"+a:a}function c(a,b,c){return 0>c&&(c+=1),1b.length)return!1;const c=parseInt(b[0].trim(),10)/255,d=parseInt(b[1].trim(),10)/255,e=parseInt(b[2].trim(),10)/255;return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),this.setA(1),!0}parseCommaSeparatedPercentageRgb(a){if("string"!=typeof a)return!1;a=a.replace(/^rgb\(|\)|%/,"");const b=a.split(",");if(3>b.length)return!1;const c=parseInt(b[0].trim(),10)/100,d=parseInt(b[1].trim(),10)/100,e=parseInt(b[2].trim(),10)/100;return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),this.setA(1),!0}parseCommaSeparatedRgba(a){if("string"!=typeof a)return!1;a=a.replace(/^rgba\(|\)|%/,"");const b=a.split(",");if(4>b.length)return!1;const c=parseInt(b[0].trim(),10)/255,d=parseInt(b[1].trim(),10)/255,e=parseInt(b[2].trim(),10)/255,f=parseFloat(b[3].trim());return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),isFinite(f)&&this.setA(f),!0}parseCommaSeparatedPercentageRgba(a){if("string"!=typeof a)return!1;a=a.replace(/^rgba\(|\)|%/,"");const b=a.split(",");if(4>b.length)return!1;const c=parseInt(b[0].trim(),10)/100,d=parseInt(b[1].trim(),10)/100,e=parseInt(b[2].trim(),10)/100,f=parseFloat(b[3].trim());return isFinite(c)&&this.setR(c),isFinite(d)&&this.setG(d),isFinite(e)&&this.setB(e),isFinite(f)&&this.setA(f),!0}parseString(a){if("string"!=typeof a)return!1;if(a=a.replace(/\s+/,""),a.includes(",")){if(a.startsWith("rgb("))return a.includes("%")?this.parseCommaSeparatedPercentageRgb(a):this.parseCommaSeparatedRgb(a);if(a.startsWith("rgba("))return a.includes("%")?this.parseCommaSeparatedPercentageRgba(a):this.parseCommaSeparatedRgba(a);if(a.startsWith("hsl(")||a.startsWith("hsla("))return this.parseHSLString(a);else{const b=a.split(",");return a.includes("%")?3===b.length?this.parseCommaSeparatedPercentageRgb(a):4===b.length&&this.parseCommaSeparatedPercentageRgba(a):3===b.length?this.parseCommaSeparatedRgb(a):4===b.length&&this.parseCommaSeparatedRgba(a)}}else return this.parseHexString(a)}toJSON(){return[this._r,this._g,this._b,this._a]}setFromHSLA(d,e,f,h){let a,i,g;if(d%=360,e=C3.clamp(e,0,100),f=C3.clamp(f,0,100),h=C3.clamp(h,0,1),d/=360,e/=100,f/=100,0===e)a=i=g=f;else{const b=.5>f?f*(1+e):f+e-f*e,h=2*f-b;a=c(h,b,d+1/3),i=c(h,b,d),g=c(h,b,d-1/3)}return this.setR(a),this.setG(i),this.setB(g),this.setA(h),this}parseHSLString(a){const c=a.replace(/ |hsl|hsla|\(|\)|;/gi,""),e=b.exec(c),f=d.exec(c);return e&&4===e.length?(this.setFromHSLA(+e[1],+e[2],+e[3],1),!0):!!(f&&5===f.length)&&(this.setFromHSLA(+e[1],+e[2],+e[3],+e[4]),!0)}toHSLAString(){var c=Math.round;const e=this._r,f=this._g,g=this._b,b=this._a,a=Math.max(e,f,g),i=Math.min(e,f,g);let j,h,k=(a+i)/2;if(a===i)j=h=0;else{const b=a-i;h=.5a.length||(this._r=a[0],this._g=a[1],this._b=a[2],this._a=4<=a.length?a[3]:1)}set r(a){this.setR(a)}get r(){return this.getR()}set g(a){this.setG(a)}get g(){return this.getG()}set b(a){this.setB(a)}get b(){return this.getB()}set a(b){this.setA(b)}get a(){return this.getA()}setAtIndex(a,b){switch(a){case 0:this.setR(b);break;case 1:this.setG(b);break;case 2:this.setB(b);break;case 3:this.setA(b);break;default:throw new RangeError("invalid color index");}}getAtIndex(a){switch(a){case 0:return this.getR();case 1:return this.getG();case 2:return this.getB();case 3:return this.getA();default:throw new RangeError("invalid color index");}}static Diff(a,b){var c=Math.min,d=Math.max;const e=new C3.Color;return e.setR(d(a._r,b._r)-c(a._r,b._r)),e.setG(d(a._g,b._g)-c(a._g,b._g)),e.setB(d(a._b,b._b)-c(a._b,b._b)),e.setA(d(a._a,b._a)-c(a._a,b._a)),e}},C3.Color.White=Object.freeze(C3.New(C3.Color,1,1,1,1)),C3.Color.Black=Object.freeze(C3.New(C3.Color,0,0,0,1)),C3.Color.TransparentBlack=Object.freeze(C3.New(C3.Color,0,0,0,0))} + +// ../lib/misc/vector2.js +"use strict";C3.Vector2=class{constructor(a,b){this._x=0,this._y=0,a instanceof C3.Vector2?this.copy(a):this.set(a||0,b||0)}set(a,b){this._x=+a,this._y=+b}copy(a){this._x=a._x,this._y=a._y}equals(a){return this._x===a._x&&this._y===a._y}setX(a){this._x=+a}getX(){return this._x}setY(a){this._y=+a}getY(){return this._y}toArray(){return[this._x,this._y]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._x,a[b]=this._y}offset(a,b){this._x+=+a,this._y+=+b}scale(a,b){this._x*=a,this._y*=b}round(){var a=Math.round;this._x=a(this._x),this._y=a(this._y)}floor(){var a=Math.floor;this._x=a(this._x),this._y=a(this._y)}ceil(){var a=Math.ceil;this._x=a(this._x),this._y=a(this._y)}angle(){return C3.angleTo(0,0,this._x,this._y)}lengthSquared(){return this._x*this._x+this._y*this._y}length(){return Math.sqrt(this.lengthSquared())}rotatePrecalc(a,b){const c=this._x*b-this._y*a;this._y=this._y*b+this._x*a,this._x=c}rotate(b){0===b||this.rotatePrecalc(Math.sin(b),Math.cos(b))}rotateAbout(b,a,c){0===b||a===this._x&&c===this._y||(this._x-=a,this._y-=c,this.rotatePrecalc(Math.sin(b),Math.cos(b)),this._x+=+a,this._y+=+c)}move(b,a){0===a||(this._x+=Math.cos(b)*a,this._y+=Math.sin(b)*a)}normalize(){const a=this.length();0!==a&&1!==a&&(this._x/=a,this._y/=a)}clamp(a,b){this._x=C3.clamp(this._x,a,b),this._y=C3.clamp(this._y,a,b)}}; + +// ../lib/misc/rect.js +"use strict";C3.Rect=class{constructor(a,b,c,d){this._left=0,this._top=0,this._right=0,this._bottom=0,a instanceof C3.Rect?this.copy(a):this.set(a||0,b||0,c||0,d||0)}set(a,b,c,d){this._left=+a,this._top=+b,this._right=+c,this._bottom=+d}setWH(a,b,c,d){a=+a,b=+b,this._left=a,this._top=b,this._right=a+ +c,this._bottom=b+ +d}copy(a){this._left=+a._left,this._top=+a._top,this._right=+a._right,this._bottom=+a._bottom}clone(){return new C3.Rect(this._left,this._top,this._right,this._bottom)}static Merge(a,b){var c=Math.max,d=Math.min;const e=new C3.Rect;return e.setLeft(d(a._left,b._left)),e.setTop(d(a._top,b._top)),e.setRight(c(a._right,b._right)),e.setBottom(c(a._bottom,b._bottom)),e}static FromObject(a){return new C3.Rect(a.left,a.top,a.right,a.bottom)}equals(a){return this._left===a._left&&this._top===a._top&&this._right===a._right&&this._bottom===a._bottom}setLeft(a){this._left=+a}getLeft(){return this._left}setTop(a){this._top=+a}getTop(){return this._top}setRight(a){this._right=+a}getRight(){return this._right}setBottom(a){this._bottom=+a}getBottom(){return this._bottom}toArray(){return[this._left,this._top,this._right,this._bottom]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._left,a[b++]=this._top,a[b++]=this._right,a[b]=this._bottom}writeAsQuadToTypedArray(a,b){a[b++]=this._left,a[b++]=this._top,a[b++]=this._right,a[b++]=this._top,a[b++]=this._right,a[b++]=this._bottom,a[b++]=this._left,a[b]=this._bottom}width(){return this._right-this._left}height(){return this._bottom-this._top}midX(){return(this._left+this._right)/2}midY(){return(this._top+this._bottom)/2}offset(a,b){this._left+=+a,this._top+=+b,this._right+=+a,this._bottom+=+b}offsetLeft(a){this._left+=+a}offsetTop(a){this._top+=+a}offsetRight(a){this._right+=+a}offsetBottom(a){this._bottom+=+a}toSquare(a){if("x"!==a)throw new Error("invalid axis, only 'x' supported");this._bottom=this._topd&&(this._right=+d),this._bottom>e&&(this._bottom=+e)}clampFlipped(a,c,d,e){this._leftc&&(this._top=+c),this._right>d&&(this._right=+d),this._bottomthis._right&&this.swapLeftRight(),this._top>this._bottom&&this.swapTopBottom()}intersectsRect(a){return!(a._rightthis._right||a._top>this._bottom)}intersectsRectOffset(a,b,c){return!(a._right+bthis._right||a._top+c>this._bottom)}containsPoint(a,b){return a>=this._left&&a<=this._right&&b>=this._top&&b<=this._bottom}containsRect(a){return a._left>=this._left&&a._top>=this._top&&a._right<=this._right&&a._bottom<=this._bottom}expandToContain(a){a._leftthis._right&&(this._right=+a._right),a._bottom>this._bottom&&(this._bottom=+a._bottom)}lerpInto(a){this._left=C3.lerp(a._left,a._right,this._left),this._top=C3.lerp(a._top,a._bottom,this._top),this._right=C3.lerp(a._left,a._right,this._right),this._bottom=C3.lerp(a._top,a._bottom,this._bottom)}}; + +// ../lib/misc/quad.js +"use strict";{function a(g,a,b,c){gc?a:c):(e=gb?a:b):bc?g:c):(e=ab?g:b)}let e=0,f=0;C3.Quad=class{constructor(a,b,c,d,e,f,g,h){this._tlx=0,this._tly=0,this._trx=0,this._try=0,this._brx=0,this._bry=0,this._blx=0,this._bly=0,a instanceof C3.Quad?this.copy(a):this.set(a||0,b||0,c||0,d||0,e||0,f||0,g||0,h||0)}set(a,b,c,d,e,f,g,h){this._tlx=+a,this._tly=+b,this._trx=+c,this._try=+d,this._brx=+e,this._bry=+f,this._blx=+g,this._bly=+h}setRect(a,b,c,d){this.set(a,b,c,b,c,d,a,d)}copy(a){this._tlx=a._tlx,this._tly=a._tly,this._trx=a._trx,this._try=a._try,this._brx=a._brx,this._bry=a._bry,this._blx=a._blx,this._bly=a._bly}equals(a){return this._tlx===a._tlx&&this._tly===a._tly&&this._trx===a._trx&&this._try===a._try&&this._brx===a._brx&&this._bry===a._bry&&this._blx===a._blx&&this._bly===a._bly}setTlx(a){this._tlx=+a}getTlx(){return this._tlx}setTly(a){this._tly=+a}getTly(){return this._tly}setTrx(a){this._trx=+a}getTrx(){return this._trx}setTry(a){this._try=+a}getTry(){return this._try}setBrx(a){this._brx=+a}getBrx(){return this._brx}setBry(a){this._bry=+a}getBry(){return this._bry}setBlx(a){this._blx=+a}getBlx(){return this._blx}setBly(a){this._bly=+a}getBly(){return this._bly}toArray(){return[this._tlx,this._tly,this._trx,this._try,this._brx,this._bry,this._blx,this._bly]}toTypedArray(){return new Float64Array(this.toArray())}writeToTypedArray(a,b){a[b++]=this._tlx,a[b++]=this._tly,a[b++]=this._trx,a[b++]=this._try,a[b++]=this._brx,a[b++]=this._bry,a[b++]=this._blx,a[b]=this._bly}writeToTypedArray3D(a,b,c){a[b++]=this._tlx,a[b++]=this._tly,a[b++]=c,a[b++]=this._trx,a[b++]=this._try,a[b++]=c,a[b++]=this._brx,a[b++]=this._bry,a[b++]=c,a[b++]=this._blx,a[b++]=this._bly,a[b]=c}offset(a,b){this._tlx+=+a,this._tly+=+b,this._trx+=+a,this._try+=+b,this._brx+=+a,this._bry+=+b,this._blx+=+a,this._bly+=+b}round(){var a=Math.round;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}floor(){var a=Math.floor;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}ceil(){var a=Math.ceil;this._tlx=a(this._tlx),this._tly=a(this._tly),this._trx=a(this._trx),this._try=a(this._try),this._brx=a(this._brx),this._bry=a(this._bry),this._blx=a(this._blx),this._bly=a(this._bly)}setFromRect(a){this._tlx=a._left,this._tly=a._top,this._trx=a._right,this._try=a._top,this._brx=a._right,this._bry=a._bottom,this._blx=a._left,this._bly=a._bottom}setFromRotatedRect(b,c){0===c?this.setFromRect(b):this.setFromRotatedRectPrecalc(b,Math.sin(c),Math.cos(c))}setFromRotatedRectPrecalc(a,b,c){const d=a._left*b,e=a._top*b,f=a._right*b,g=a._bottom*b,h=a._left*c,i=a._top*c,j=a._right*c,k=a._bottom*c;this._tlx=h-e,this._tly=i+d,this._trx=j-e,this._try=i+f,this._brx=j-g,this._bry=k+f,this._blx=h-g,this._bly=k+d}getBoundingBox(b){a(this._tlx,this._trx,this._brx,this._blx),b._left=e,b._right=f,a(this._tly,this._try,this._bry,this._bly),b._top=e,b._bottom=f}containsPoint(a,b){let c=this._trx-this._tlx,d=this._try-this._tly;const e=this._brx-this._tlx,f=this._bry-this._tly,g=a-this._tlx,h=b-this._tly;let i=c*c+d*d,j=c*e+d*f,k=c*g+d*h;const l=e*e+f*f,m=e*g+f*h;let n=1/(i*l-j*j),o=(l*k-j*m)*n,p=(i*m-j*k)*n;return!!(0<=o&&0o+p)||(c=this._blx-this._tlx,d=this._bly-this._tly,i=c*c+d*d,j=c*e+d*f,k=c*g+d*h,n=1/(i*l-j*j),o=(l*k-j*m)*n,p=(i*m-j*k)*n,0<=o&&0o+p)}midX(){return(this._tlx+this._trx+this._brx+this._blx)/4}midY(){return(this._tly+this._try+this._bry+this._bly)/4}intersectsSegment(a,b,c,d){return!!(this.containsPoint(a,b)||this.containsPoint(c,d))||C3.segmentIntersectsQuad(a,b,c,d,this)}intersectsQuad(a){let b=a.midX(),c=a.midY();if(this.containsPoint(b,c))return!0;if(b=this.midX(),c=this.midY(),a.containsPoint(b,c))return!0;const d=this._tlx,e=this._tly,f=this._trx,g=this._try,h=this._brx,i=this._bry,j=this._blx,k=this._bly;return C3.segmentIntersectsQuad(d,e,f,g,a)||C3.segmentIntersectsQuad(f,g,h,i,a)||C3.segmentIntersectsQuad(h,i,j,k,a)||C3.segmentIntersectsQuad(j,k,d,e,a)}mirror(){this._swap(0,2),this._swap(1,3),this._swap(6,4),this._swap(7,5)}flip(){this._swap(0,6),this._swap(1,7),this._swap(2,4),this._swap(3,5)}diag(){this._swap(2,6),this._swap(3,7)}_swap(a,b){const c=this._getAtIndex(a);this._setAtIndex(a,this._getAtIndex(b)),this._setAtIndex(b,c)}_getAtIndex(a){switch(a){case 0:return this._tlx;case 1:return this._tly;case 2:return this._trx;case 3:return this._try;case 4:return this._brx;case 5:return this._bry;case 6:return this._blx;case 7:return this._bly;default:throw new RangeError("invalid quad point index");}}_setAtIndex(a,b){switch(b=+b,a){case 0:this._tlx=b;break;case 1:this._tly=b;break;case 2:this._trx=b;break;case 3:this._try=b;break;case 4:this._brx=b;break;case 5:this._bry=b;break;case 6:this._blx=b;break;case 7:this._bly=b;break;default:throw new RangeError("invalid quad point index");}}}} + +// c3/lib/misc/collisionPoly.js +"use strict";{const a=[0,0,1,0,1,1,0,1],b=C3.New(C3.Quad);C3.CollisionPoly=class extends C3.DefendedBase{constructor(b){super(),b||(b=a);this._ptsArr=Float64Array.from(b),this._bbox=new C3.Rect,this._isBboxChanged=!0}Release(){}pointsArr(){return this._ptsArr}pointCount(){return this._ptsArr.length/2}setPoints(a){this._ptsArr.length===a.length?this._ptsArr.set(a):this._ptsArr=Float64Array.from(a),this._isBboxChanged=!0}copy(a){this.setPoints(a._ptsArr)}setBboxChanged(){this._isBboxChanged=!0}_updateBbox(){if(!this._isBboxChanged)return;const a=this._ptsArr;let b=a[0],c=a[1],d=b,e=c;for(let f=0,g=a.length;fd&&(d=g),he&&(e=h)}this._bbox.set(b,c,d,e),this._isBboxChanged=!1}setFromRect(a,b,c){let d=this._ptsArr;8!==d.length&&(d=new Float64Array(8),this._ptsArr=d),d[0]=a.getLeft()-b,d[1]=a.getTop()-c,d[2]=a.getRight()-b,d[3]=a.getTop()-c,d[4]=a.getRight()-b,d[5]=a.getBottom()-c,d[6]=a.getLeft()-b,d[7]=a.getBottom()-c,this._bbox.copy(a),(0!==b||0!==c)&&this._bbox.offset(-b,-c),this._isBboxChanged=!1}setFromQuad(a,c,d){b.copy(a),b.offset(c,d),this.setPoints(b.toArray()),this._isBboxChanged=!0}transform(b,c,d){let a=0,e=1;0!==d&&(a=Math.sin(d),e=Math.cos(d)),this.transformPrecalc(b,c,a,e)}transformPrecalc(a,b,c,d){const e=this._ptsArr;for(let f=0,g=e.length;f(a/=f/2)?b/2*a*a+e:-b/2*(--a*(a-2)-1)+e}static EaseInCubic(a,e,b,c){return b*(a/=c)*a*a+e}static EaseOutCubic(a,e,b,c){return b*((a=a/c-1)*a*a+1)+e}static EaseInOutCubic(a,e,b,c){return 1>(a/=c/2)?b/2*a*a*a+e:b/2*((a-=2)*a*a+2)+e}static EaseInQuart(a,e,b,c){return b*(a/=c)*a*a*a+e}static EaseOutQuart(a,e,b,f){return-b*((a=a/f-1)*a*a*a-1)+e}static EaseInOutQuart(a,e,b,f){return 1>(a/=f/2)?b/2*a*a*a*a+e:-b/2*((a-=2)*a*a*a-2)+e}static EaseInQuint(a,e,b,c){return b*(a/=c)*a*a*a*a+e}static EaseOutQuint(a,e,b,c){return b*((a=a/c-1)*a*a*a*a+1)+e}static EaseInOutQuint(a,e,b,c){return 1>(a/=c/2)?b/2*a*a*a*a*a+e:b/2*((a-=2)*a*a*a*a+2)+e}static EaseInSine(a,e,b,f){return-b*i(a/f*(j/2))+b+e}static EaseOutSine(a,e,b,c){return b*h(a/c*(j/2))+e}static EaseInOutSine(a,e,b,f){return-b/2*(i(j*a/f)-1)+e}static EaseInExpo(a,e,b,c){return 0===a?e:b*g(2,10*(a/c-1))+e}static EaseOutExpo(a,e,b,c){return a===c?e+b:b*(-g(2,-10*a/c)+1)+e}static EaseInOutExpo(a,e,b,c){return 0===a?e:a===c?e+b:1>(a/=c/2)?b/2*g(2,10*(a-1))+e:b/2*(-g(2,-10*--a)+2)+e}static EaseInCirc(e,f,b,g){return-b*(a(1-(e/=g)*e)-1)+f}static EaseOutCirc(e,f,b,c){return b*a(1-(e=e/c-1)*e)+f}static EaseInOutCirc(e,f,b,g){return 1>(e/=g/2)?-b/2*(a(1-e*e)-1)+f:b/2*(a(1-(e-=2)*e)+1)+f}static EaseInElastic(i,k,b,c){let d=1.70158,l=0,m=b;return 0===i?k:1===(i/=c)?k+b:(l||(l=.3*c),mi?-.5*(m*g(2,10*(i-=1))*h((i*c-d)*(2*j)/l))+k:.5*(m*g(2,-10*(i-=1))*h((i*c-d)*(2*j)/l))+b+k)}static EaseInBack(a,e,b,c,d){return void 0===d&&(d=1.70158),b*(a/=c)*a*((d+1)*a-d)+e}static EaseOutBack(a,e,b,c,d){return void 0===d&&(d=1.70158),b*((a=a/c-1)*a*((d+1)*a+d)+1)+e}static EaseInOutBack(a,e,b,c,d){return void 0===d&&(d=1.70158),1>(a/=c/2)?b/2*(a*a*(((d*=1.525)+1)*a-d))+e:b/2*((a-=2)*a*(((d*=1.525)+1)*a+d)+2)+e}static EaseInBounce(a,e,b,c){return b-l.EaseOutBounce(c-a,0,b,c)+e}static EaseOutBounce(a,e,b,c){return(a/=c)<1/2.75?b*(7.5625*a*a)+e:a<2/2.75?b*(7.5625*(a-=1.5/2.75)*a+.75)+e:a<2.5/2.75?b*(7.5625*(a-=2.25/2.75)*a+.9375)+e:b*(7.5625*(a-=2.625/2.75)*a+.984375)+e}static EaseInOutBounce(a,e,b,c){return ac(a)));for(let c,d=0,e=this._listeners.length;dc(a)));return Promise.all(b).then(()=>!a.defaultPrevented)}async _FireAndWaitAsync(a){const b=[];this._IncreaseFireDepth();for(let c=0,d=this._captureListeners.length;c(h.push({func:b,resolve:e,reject:f,stack:d}),k?void c(h.pop()):void(-1===i&&a(16))))},C3.Asyncify.SetHighThroughputMode=function(a){if(a)++j;else if(--j,0>j)throw new Error("already turned off high throughput mode")}} + +// ../lib/util/idleTimeout.js +"use strict";{function a(){e=-1}function b(){f=-1,g=-1;let a=Date.now();for(let b of h)if(b._CheckTimeout(a)){let a=b._GetDeadline();(-1===g||aa+c&&(self.clearTimeout(f),g=this._deadline,f=self.setTimeout(b,this._timeout+100))}_CheckTimeout(a){return!(a>=this._deadline)||(this._callback()?(this._deadline=a+this._timeout,!0):(this._isActive=!1,!1))}_GetDeadline(){return this._deadline}Cancel(){this._isActive&&(h.delete(this),this._isActive=!1,0===h.size&&-1!==f&&(self.clearTimeout(f),f=-1,g=-1))}Release(){this.Cancel(),this._callback=null}}} + +// ../lib/util/disposable.js +"use strict";C3.Disposable=class a{constructor(a){this._disposed=!1,this._disposeAction=a}Dispose(){this._disposed||(this._disposed=!0,this._disposeAction&&(this._disposeAction(),this._disposeAction=null))}IsDisposed(){return this._disposed}Release(){this.Dispose()}static Release(b){return new a(()=>b.Release())}static From(a,b,c,d,e){if("undefined"==typeof d||null===d)d=!1;else if("boolean"!=typeof d&&"object"!=typeof d)throw new TypeError("invalid event listener options");if(e&&(c=c.bind(e)),b.includes(" ")){b=b.split(" ");const e=new C3.CompositeDisposable;for(let f of b)a.addEventListener(f,c,d),e.Add(C3.New(C3.Disposable,()=>a.removeEventListener(f,c,d)));return e}return a.addEventListener(b,c,d),C3.New(C3.Disposable,()=>a.removeEventListener(b,c,d))}},C3.StubDisposable=class extends C3.Disposable{SetAction(a){this._disposeAction=a}},C3.CompositeDisposable=class extends C3.Disposable{constructor(...a){super(),this._disposables=new Set;for(let b of a)this.Add(b)}Add(...a){if(this._disposed)throw new Error("already disposed");for(let b of a)this._disposables.add(b)}Remove(a){if(this._disposed)throw new Error("already disposed");this._disposables.delete(a)}RemoveAll(){if(this._disposed)throw new Error("already disposed");if(this._disposables){for(let a of this._disposables)a.Dispose();this._disposables.clear()}}IsDisposed(){return this._disposed}Dispose(){if(this._disposed)throw new Error("already disposed");this._disposed=!0;for(let a of this._disposables)a.Dispose();this._disposables.clear(),this._disposables=null}Release(){this.Dispose()}}; + +// c3/lib/util/kahanSum.js +"use strict";C3.KahanSum=class extends C3.DefendedBase{constructor(){super(),this._c=0,this._y=0,this._t=0,this._sum=0}Add(a){a=+a,this._y=a-this._c,this._t=this._sum+this._y,this._c=this._t-this._sum-this._y,this._sum=this._t}Subtract(a){this._sum-=+a}Get(){return this._sum}Reset(){this._c=0,this._y=0,this._t=0,this._sum=0}Set(a){this._c=0,this._y=0,this._t=0,this._sum=+a}Release(){}}; + +// c3/lib/util/redblackset.js +"use strict";{const a={};a.RBnode=function(a){this.tree=a,this.right=this.tree.sentinel,this.left=this.tree.sentinel,this.parent=null,this.color=!1,this.key=null},a.RedBlackSet=function(b){this.size=0,this.sentinel=new a.RBnode(this),this.sentinel.color=!1,this.root=this.sentinel,this.root.parent=this.sentinel,this.compare=b||this.default_compare},a.RedBlackSet.prototype.default_compare=function(c,a){return cthis.compare(c.key,e.key)?e.left:e.right;c.parent=d,d==this.sentinel?this.root=c:0>this.compare(c.key,d.key)?d.left=c:d.right=c,c.left=this.sentinel,c.right=this.sentinel,c.color=!0,this.insertFixup(c),this.size++}else{var f=this.get_(b);f.key=b}},a.RedBlackSet.prototype.insertFixup=function(a){for(;a!=this.sentinel&&a!=this.root&&a.parent.color==!0;)if(a.parent==a.parent.parent.left){var b=a.parent.parent.right;b.color==!0?(a.parent.color=!1,b.color=!1,a.parent.parent.color=!0,a=a.parent.parent):(a==a.parent.right&&(a=a.parent,this.leftRotate(a)),a.parent.color=!1,a.parent.parent.color=!0,a.parent.parent!=this.sentinel&&this.rightRotate(a.parent.parent))}else{var b=a.parent.parent.left;b.color==!0?(a.parent.color=!1,b.color=!1,a.parent.parent.color=!0,a=a.parent.parent):(a==a.parent.left&&(a=a.parent,this.rightRotate(a)),a.parent.color=!1,a.parent.parent.color=!0,a.parent.parent!=this.sentinel&&this.leftRotate(a.parent.parent))}this.root.color=!1},a.RedBlackSet.prototype.delete_=function(a){var b,c;b=a.left==this.sentinel||a.right==this.sentinel?a:this.successor_(a),c=b.left==this.sentinel?b.right:b.left,c.parent=b.parent,b.parent==this.sentinel?this.root=c:b==b.parent.left?b.parent.left=c:b.parent.right=c,b!=a&&(a.key=b.key),b.color==!1&&this.deleteFixup(c),this.size--},a.RedBlackSet.prototype.deleteFixup=function(a){for(;a!=this.root&&a.color==!1;)if(a==a.parent.left){var b=a.parent.right;b.color==!0&&(b.color=!1,a.parent.color=!0,this.leftRotate(a.parent),b=a.parent.right),b.left.color==!1&&b.right.color==!1?(b.color=!0,a=a.parent):(b.right.color==!1&&(b.left.color=!1,b.color=!0,this.rightRotate(b),b=a.parent.right),b.color=a.parent.color,a.parent.color=!1,b.right.color=!1,this.leftRotate(a.parent),a=this.root)}else{var b=a.parent.left;b.color==!0&&(b.color=!1,a.parent.color=!0,this.rightRotate(a.parent),b=a.parent.left),b.right.color==!1&&b.left.color==!1?(b.color=!0,a=a.parent):(b.left.color==!1&&(b.right.color=!1,b.color=!0,this.leftRotate(b),b=a.parent.left),b.color=a.parent.color,a.parent.color=!1,b.left.color=!1,this.rightRotate(a.parent),a=this.root)}a.color=!1},a.RedBlackSet.prototype.remove=function(a){var b=this.get_(a);if(b!=this.sentinel){var c=b.key;return this.delete_(b),c}return null},a.RedBlackSet.prototype.removeSwapped=function(a,b){this.remove(b)},a.RedBlackSet.prototype.min=function(a){for(;a.left!=this.sentinel;)a=a.left;return a},a.RedBlackSet.prototype.max=function(a){for(;a.right!=this.sentinel;)a=a.right;return a},a.RedBlackSet.prototype.successor_=function(a){if(a.right!=this.sentinel)return this.min(a.right);for(var b=a.parent;b!=this.sentinel&&a==b.right;)a=b,b=b.parent;return b},a.RedBlackSet.prototype.predeccessor_=function(a){if(a.left!=this.sentinel)return this.max(a.left);for(var b=a.parent;b!=this.sentinel&&a==b.left;)a=b,b=b.parent;return b},a.RedBlackSet.prototype.successor=function(a){if(0this.compare(a,b.key)?b.left:b.right;return b},a.RedBlackSet.prototype.contains=function(a){return null!=this.get_(a).key},a.RedBlackSet.prototype.getValues=function(){var a=[];return this.forEach(function(b){a.push(b)}),a},a.RedBlackSet.prototype.insertAll=function(b){if("array"==a.typeOf(b))for(var c=0;cc)return!1;var d=0;if(this.isEmpty())return!0;for(var e=this.min(this.root);e!=this.sentinel;e=this.successor_(e))a.contains.call(b,b,e.key)&&d++;return d==this.getCount()},a.RedBlackSet.prototype.intersection=function(b){var c=new a.RedBlackSet(this.compare);if(this.isEmpty())return c;for(var d=this.min(this.root);d!=this.sentinel;d=this.successor_(d))b.contains.call(b,d.key,d.key,this)&&c.insert(d.key);return c},C3.RedBlackSet=class extends C3.DefendedBase{constructor(b){super();this._rbSet=new a.RedBlackSet(b)}Add(a){this._rbSet.insert(a)}Remove(a){this._rbSet.remove(a)}Has(a){return this._rbSet.contains(a)}Clear(){this._rbSet.clear()}toArray(){return this._rbSet.getValues()}GetSize(){return this._rbSet.getCount()}IsEmpty(){return this._rbSet.isEmpty()}ForEach(a){this._rbSet.forEach(a)}Front(){if(this.IsEmpty())throw new Error("empty set");const a=this._rbSet,b=a.min(a.root);return b.key}Shift(){if(this.IsEmpty())throw new Error("empty set");const a=this.Front();return this.Remove(a),a}*values(){if(!this.IsEmpty()){const a=this._rbSet;for(let b=a.min(a.root);b!=a.sentinel;b=a.successor_(b))yield b.key}}[Symbol.iterator](){return this.values()}}} + +// ../lib/util/promiseThrottle.js +"use strict";C3.PromiseThrottle=class{constructor(a=C3.hardwareConcurrency){this._maxParallel=a,this._queue=[],this._activeCount=0}Add(a){return new Promise((b,c)=>{this._queue.push({func:a,resolve:b,reject:c}),this._MaybeStartNext()})}_FindInQueue(a){for(let b=0,c=this._queue.length;b=this._maxParallel)return;this._activeCount++;const a=this._queue.shift();a.func().then((b)=>{a.resolve(b),this._activeCount--,this._MaybeStartNext()}).catch((b)=>{a.reject(b),this._activeCount--,this._MaybeStartNext()})}static async Batch(a,b){const c=[];let d=!1;const e=async()=>{for(let a;a=b.pop();){if(d)return;try{c.push((await a()))}catch(a){throw d=!0,a}}},f=[];for(;a--;)f.push(e());return await Promise.all(f),c}}; + +// ../lib/util/rateLimiter.js +"use strict";C3.RateLimiter=class{constructor(a,b,c){this._callback=a,this._interval=b,this._intervalOnBattery=c||2*b,this._timerId=-1,this._lastCallTime=-Infinity,this._timerCallFunc=()=>this._OnTimer(),this._ignoreReset=!1,this._canRunImmediate=!1,this._callbackArguments=null}SetCanRunImmediate(a){this._canRunImmediate=!!a}_GetInterval(){return"undefined"!=typeof C3.Battery&&C3.Battery.IsOnBatteryPower()?this._intervalOnBattery:this._interval}Call(...a){if(-1===this._timerId){this._callbackArguments=a;let b=C3.FastGetDateNow(),c=b-this._lastCallTime,d=this._GetInterval();c>=d&&this._canRunImmediate?(this._lastCallTime=b,this._RunCallback()):this._timerId=self.setTimeout(this._timerCallFunc,Math.max(d-c,4))}}_RunCallback(){this._ignoreReset=!0;const a=this._callbackArguments;this._callbackArguments=null,a?this._callback(...a):this._callback(),this._ignoreReset=!1}Reset(){this._ignoreReset||(this._CancelTimer(),this._callbackArguments=null,this._lastCallTime=C3.FastGetDateNow())}_OnTimer(){this._timerId=-1,this._lastCallTime=C3.FastGetDateNow(),this._RunCallback()}_CancelTimer(){-1!==this._timerId&&(self.clearTimeout(this._timerId),this._timerId=-1)}Release(){this._CancelTimer(),this._callback=null,this._callbackArguments=null,this._timerCallFunc=null}}; + +// ../lib/str/str.js +"use strict";{function a(a){return e.get(a)}C3.UTF8_BOM="\uFEFF";const b=new Set([..."0123456789"]);C3.IsNumericChar=function(a){return b.has(a)};const d=new Set([..." \t\n\r\xA0\x85\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u200B\u2028\u2029\u202F\u205F\u3000"]);C3.IsWhitespaceChar=function(a){return d.has(a)},C3.FilterWhitespace=function(a){return[...a].filter((a)=>!C3.IsWhitespaceChar(a)).join("")},C3.IsStringAllWhitespace=function(a){for(const b of a)if(!C3.IsWhitespaceChar(b))return!1;return!0},C3.IsUnprintableChar=function(a){return 1===a.length&&32>a.charCodeAt(0)},C3.FilterUnprintableChars=function(a){return[...a].filter((a)=>!C3.IsUnprintableChar(a)).join("")};const c=new Set([..."0123456789.+-e"]);C3.IsStringNumber=function(a){if(a=a.trim(),!a.length)return!1;let d=a.charAt(0);if("-"!==d&&!b.has(d))return!1;for(let b of a)if(!c.has(b))return!1;return!0},C3.RemoveTrailingDigits=function(a){let b=a.length;for(;0",">"],["\"","""],["'","'"]]);const f=/[&<>"']/g;C3.EscapeHTML=function(b){return b.replace(f,a)},C3.EscapeJS=function(a){let b=C3.ReplaceAll(a,"\\","\\\\");return b=C3.ReplaceAll(b,"\"","\\\""),b=C3.ReplaceAll(b,"\t","\\t"),b=C3.ReplaceAll(b,"\r",""),C3.ReplaceAll(b,"\n","\\n")},C3.EscapeXML=function(a){let b=C3.ReplaceAll(a,"&","&");return b=C3.ReplaceAll(b,"<","<"),b=C3.ReplaceAll(b,">",">"),C3.ReplaceAll(b,"\"",""")};const g=/[-[\]{}()*+?.,\\^$|#\s]/g;C3.EscapeRegex=function(a){return a.replace(g,"\\$&")},C3.FindAll=function(a,b,c=!1){if(!b)return[];c||(a=a.toLowerCase(),b=b.toLowerCase());const d=b.length;let e=0,f=0,g=[];for(;-1<(f=a.indexOf(b,e));)g.push(f),e=f+d;return g},C3.ReplaceAll=function(a,b,c){return a.replace(new RegExp(C3.EscapeRegex(b),"g"),()=>c)},C3.ReplaceAllCaseInsensitive=function(a,b,c){return a.replace(new RegExp(C3.EscapeRegex(b),"gi"),()=>c)},C3.SetElementContent=function(a,b){"string"==typeof b?a.textContent=b:b.isPlainText()?a.textContent=b.toString():(a.innerHTML=b.toHTML(),b instanceof C3.BBString&&b.attachLinkHandlers(a))},C3.StringLikeEquals=function(c,a){return c instanceof C3.HtmlString||c instanceof C3.BBString?c.equals(a):a instanceof C3.HtmlString||a instanceof C3.BBString?a.equals(c):c===a},C3.StringSubstitute=function(a,...b){let c=a;for(let d=0,e=b.length;dd?1:ba){let b=a/h;return b=10>b?c(10*b)/10:c(b),langSub(d+"kilobytes",b)}if(1073741824>a){let b=a/1048576;return b=10>b?c(10*b)/10:c(b),langSub(d+"megabytes",b)}if(1099511627776>a){let b=a/1073741824;return b=10>b?c(10*b)/10:c(b),langSub(d+"gigabytes",b)}else{let b=a/1099511627776;return b=10>b?c(10*b)/10:c(b),langSub(d+"terabytes",b)}};const i={approximate:!1,days:!0,hours:!0,minutes:!0,seconds:!0};C3.FormatTime=function(a,b){var c=Math.floor;b=Object.assign({},i,b),C3.Lang.PushContext("common.time");const d=[];if(b.days){const b=c(a/86400);0a?"-":"";a=Math.abs(a);let d=a.toString(),e=b-d.length;for(let d=0;da.toUpperCase())},C3.CompareVersionStrings=function(a,b){let c=a.split(".").map((a)=>a.trim()),d=b.split(".").map((a)=>a.trim());C3.resizeArray(c,4,"0"),C3.resizeArray(d,4,"0"),c=c.map((a)=>parseInt(a,10)),d=d.map((a)=>parseInt(a,10));for(let e=0;4>e;++e){const a=c[e]-d[e];if(0!=a)return 0>a?-1:1}return 0},C3.CreateGUID=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(a)=>{const b=Math.floor(16*Math.random()),c="x"===a?b:8|3&b;return c.toString(16)})},C3.StringHammingDistance=function(c,a){if(c.length!==a.length)throw new Error("strings must be same length");let b=0;for(let d=0,e=c.length;d":`<${a} class="${b}">`}}else if("a"===f&&!c){const a=parseInt(d.substring(1),10)-1;if(0>a||a>=e.length)throw new Error("invalid bbcode link substitution");const b=e[a];if("string"==typeof b)return``;if("function"==typeof b)return``;throw new TypeError("invalid bbcode link action")}else return"<"+c+f+">"}const b=new Map([["b","strong"],["i","em"],["s","s"],["u","u"],["sub","sub"],["sup","sup"],["small","small"],["mark","mark"],["a1","a"],["a2","a"],["a3","a"],["a4","a"],["a5","a"],["a6","a"],["a7","a"],["a8","a"],["a9","a"],["bad",["span","bbCodeBad"]],["good",["span","bbCodeGood"]],["info",["span","bbCodeInfo"]],["h1",["span","bbCodeH1"]],["h2",["span","bbCodeH2"]],["h3",["span","bbCodeH3"]],["h4",["span","bbCodeH4"]],["item",["span","bbCodeItem"]]]),c=/\[(\/?)([a-zA-Z0-9]+)\]/g,d=/\[(\/?)(.*?)\]/g;let e=null;const f=/\n/g;C3.BBString=class{constructor(a,b){if(this._bbstr=b&&b.noEscape?a:C3.EscapeHTML(a),this._htmlstr="",this._convertLineBreaks=!1,this._linkActions=[],b&&(this._convertLineBreaks=!!b.convertLineBreaks,b.links)){if(9")),this._htmlstr=b}return this._htmlstr}attachLinkHandlers(a){if(this._linkActions.length)for(let b=0,c=this._linkActions.length;bc)return;if(1===a.length){const d=a[0],f=d.text,g=d.styles;if(100>=f.length&&!f.includes("\n")){let{width:a,height:d}=b(f,g);if(a+=e,a<=c)return void this._AddLine([{text:f,styles:g,width:a,height:d}],a,d)}}let f;if("word"===d)f=this._TokeniseWords(a);else{f=[];for(const b of a)C3.appendArray(f,[...b.text].map((a)=>[{text:a,styles:b.styles}]))}this._WrapText(f,b,c,e)}_TokeniseWords(a){const b=[];let c=[],d=!1;for(const e of a){const a=e.text,f=e.styles;for(const e of a)if("\n"===e)0({text:a.text,styles:a.styles,width:a.width,height:a.height}))}_AddWordToLine(a,b){const c=a.length?a[a.length-1]:null;let d=0;c&&b[0].styles===c.styles&&(c.text+=b[0].text,c.width=-1,c.height=-1,d=1);for(let c=b.length;d=c))e=a,f=i,g=j;else if(0=this._width||0>=this._height)throw new Error("invalid texture data size");if(h.isSvg){const a=document.createElement("canvas");a.width=this._width,a.height=this._height;const b=a.getContext("2d");b.drawImage(f,0,0,this._width,this._height),f=a}const i=C3.isPOT(this._width)&&C3.isPOT(this._height),j=this._renderer.GetMaxTextureSize();if(this._width>j||this._height>j)throw new Error("texture data exceeds maximum texture size");const k=this._renderer.GetContext(),l=this._renderer.GetWebGLVersionNumber();this._texture=k.createTexture(),k.bindTexture(k.TEXTURE_2D,this._texture),k.pixelStorei(k["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],h.premultiplyAlpha);const m=a(this._pixelFormat,k);if(!this._renderer.SupportsNPOTTextures()&&!i&&this._isTiled){if(null===f)throw new Error("cannot pass null data when creating a NPOT tiled texture without NPOT support");if(f instanceof ArrayBuffer&&(f=new ImageData(new Uint8ClampedArray(f),this._width,this._height)),f instanceof ImageData){const a=document.createElement("canvas");a.width=this._width,a.height=this._height;const b=a.getContext("2d");b.putImageData(f,0,0),f=a}const a=document.createElement("canvas");a.width=C3.nextHighestPowerOfTwo(this._width),a.height=C3.nextHighestPowerOfTwo(this._height);const b=a.getContext("2d");b.imageSmoothingEnabled="nearest"!==this._sampling,b.drawImage(f,0,0,this._width,this._height,0,0,a.width,a.height),k.texImage2D(k.TEXTURE_2D,0,m.internalformat,m.format,m.type,a)}else if(2<=l){let a;a=this._isMipMapped?Math.floor(Math.log2(Math.max(this._width,this._height))+1):1,k.texStorage2D(k.TEXTURE_2D,a,m.sizedinternalformat,this._width,this._height),f instanceof ArrayBuffer?k.texSubImage2D(k.TEXTURE_2D,0,0,0,this._width,this._height,m.format,m.type,new Uint8Array(f)):null!==f&&k.texSubImage2D(k.TEXTURE_2D,0,0,0,m.format,m.type,f)}else f instanceof ArrayBuffer?k.texImage2D(k.TEXTURE_2D,0,m.internalformat,this._width,this._height,0,m.format,m.type,new Uint8Array(f)):null===f?k.texImage2D(k.TEXTURE_2D,0,m.internalformat,this._width,this._height,0,m.format,m.type,null):k.texImage2D(k.TEXTURE_2D,0,m.internalformat,m.format,m.type,f);null!==f&&this._SetTextureParameters(k),k.bindTexture(k.TEXTURE_2D,null),this._renderer._ResetLastTexture(),this._refCount=1,g.add(this)}_CreateDynamic(f,h,i){var j=Math.floor;if(i=Object.assign({},e,i),this._texture)throw new Error("already created texture");if(this._isTiled=!!i.isTiled,this._tileType=i.tileType,this._sampling=i.sampling,this._pixelFormat=i.pixelFormat,this._isMipMapped=!!i.mipMap,this._mipMapQuality=i.mipMapQuality,!c.has(this._sampling))throw new Error("invalid sampling");if(!b.has(this._pixelFormat))throw new Error("invalid pixel format");if(!d.has(this._mipMapQuality))throw new Error("invalid mipmap quality");this._isStatic=!1,this._width=j(f),this._height=j(h);const k=C3.isPOT(this._width)&&C3.isPOT(this._height),l=this._renderer.GetMaxTextureSize();if(0>=this._width||0>=this._height)throw new Error("invalid texture size");if(this._width>l||this._height>l)throw new Error("texture exceeds maximum texture size");if(!this._renderer.SupportsNPOTTextures()&&this._isTiled&&!k)throw new Error("non-power-of-two tiled textures not supported");const m=this._renderer.GetContext(),n=this._renderer.GetWebGLVersionNumber();this._texture=m.createTexture(),m.bindTexture(m.TEXTURE_2D,this._texture),m.pixelStorei(m["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],i.premultiplyAlpha);const o=a(this._pixelFormat,m),p=2<=n?o.sizedinternalformat:o.internalformat;m.texImage2D(m.TEXTURE_2D,0,p,this._width,this._height,0,o.format,o.type,null),this._SetTextureParameters(m),m.bindTexture(m.TEXTURE_2D,null),this._renderer._ResetLastTexture(),this._refCount=1,g.add(this)}_GetMipMapHint(a){if("default"===this._mipMapQuality)return this._isStatic?a.NICEST:a.FASTEST;if("low"===this._mipMapQuality)return a.FASTEST;if("high"===this._mipMapQuality)return a.NICEST;throw new Error("invalid mipmap quality")}_SetTextureParameters(a){const b=C3.isPOT(this._width)&&C3.isPOT(this._height);if(!this._isTiled)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);else if("repeat-x"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.REPEAT),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);else if("repeat-y"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.REPEAT);else if("repeat"===this._tileType)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.REPEAT),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.REPEAT);else throw new Error("invalid tile type");if("nearest"===this._sampling)a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.NEAREST),a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST),this._isMipMapped=!1;else if(a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MAG_FILTER,a.LINEAR),(b||this._renderer.SupportsNPOTTextures())&&this._isMipMapped){a.hint(a.GENERATE_MIPMAP_HINT,this._GetMipMapHint(a)),a.generateMipmap(a.TEXTURE_2D);const b="trilinear"===this._sampling&&!this._renderer.HasMajorPerformanceCaveat();a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,b?a.LINEAR_MIPMAP_LINEAR:a.LINEAR_MIPMAP_NEAREST)}else a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.LINEAR),this._isMipMapped=!1}_Update(b,c){if(("undefined"==typeof HTMLImageElement||!(b instanceof HTMLImageElement))&&("undefined"==typeof HTMLVideoElement||!(b instanceof HTMLVideoElement))&&("undefined"==typeof HTMLCanvasElement||!(b instanceof HTMLCanvasElement))&&("undefined"==typeof ImageBitmap||!(b instanceof ImageBitmap))&&("undefined"==typeof OffscreenCanvas||!(b instanceof OffscreenCanvas))&&!(b instanceof ImageData))throw new Error("invalid texture source");if(!this._texture||0>=this._refCount)throw new Error("texture not created");if(this._isStatic)throw new Error("cannot update static texture");c=Object.assign({},f,c);const d=b.width||b.videoWidth,e=b.height||b.videoHeight,g=this._renderer.GetWebGLVersionNumber(),h=this._renderer.GetContext();h.bindTexture(h.TEXTURE_2D,this._texture),h.pixelStorei(h["UNPACK_PREMULTIPLY_ALPHA_WEBGL"],c.premultiplyAlpha);const i=a(this._pixelFormat,h),j=2<=g?i.sizedinternalformat:i.internalformat;try{if(this._width===d&&this._height===e){const a=C3.isPOT(this._width)&&C3.isPOT(this._height);h.texSubImage2D(h.TEXTURE_2D,0,0,0,i.format,i.type,b),(a||this._renderer.SupportsNPOTTextures())&&this._isMipMapped&&(h.hint(h.GENERATE_MIPMAP_HINT,this._GetMipMapHint(h)),h.generateMipmap(h.TEXTURE_2D))}else{this._width=d,this._height=e;const a=C3.isPOT(this._width)&&C3.isPOT(this._height);if(!this._renderer.SupportsNPOTTextures()&&this._isTiled&&!a)throw new Error("non-power-of-two tiled textures not supported");h.texImage2D(h.TEXTURE_2D,0,j,i.format,i.type,b),(a||this._renderer.SupportsNPOTTextures())&&this._isMipMapped&&(h.hint(h.GENERATE_MIPMAP_HINT,this._GetMipMapHint(h)),h.generateMipmap(h.TEXTURE_2D))}}catch(a){console.error("Error updating WebGL texture: ",a)}h.bindTexture(h.TEXTURE_2D,null),this._renderer._ResetLastTexture()}_Delete(){if(0=this._refCount)throw new Error("no more references");this._refCount--}GetReferenceCount(){return this._refCount}GetWidth(){return this._width}GetHeight(){return this._height}IsStatic(){return this._isStatic}GetEstimatedMemoryUsage(){let a=this._width*this._height;switch(this._pixelFormat){case"rgba8":a*=4;break;case"rgb8":a*=3;break;case"rgba4":case"rgb5_a1":case"rgb565":a*=2;}return this._isMipMapped&&(a+=Math.floor(a/3)),a}static OnContextLost(){g.clear()}static allTextures(){return g.values()}}} + +// ../lib/gfx/renderTarget.js +"use strict";{const a=new Set(["nearest","bilinear","trilinear"]),b={sampling:"trilinear",alpha:!0,readback:!0,isDefaultSize:!0,multisampling:0},c=new Set;C3.Gfx.WebGLRenderTarget=class{constructor(a){this._renderer=a,this._frameBuffer=null,this._texture=null,this._renderBuffer=null,this._width=0,this._height=0,this._isDefaultSize=!0,this._sampling="trilinear",this._alpha=!0,this._readback=!0,this._multisampling=0}_Create(d,e,f){f=Object.assign({},b,f);const g=this._renderer.GetWebGLVersionNumber();if(this._texture||this._renderBuffer)throw new Error("already created render target");if(this._sampling=f.sampling,this._alpha=!!f.alpha,this._readback=!!f.readback,this._isDefaultSize=!!f.isDefaultSize,this._multisampling=f.multisampling,!a.has(this._sampling))throw new Error("invalid sampling");if(0g||this._readback))throw new Error("invalid use of multisampling");if(2>g&&(this._readback=!0),this._width=d,this._height=e,0>=this._width||0>=this._height)throw new Error("invalid render target size");const h=this._renderer.GetContext();if(this._frameBuffer=h.createFramebuffer(),h.bindFramebuffer(h.FRAMEBUFFER,this._frameBuffer),this._readback){this._texture=this._renderer.CreateDynamicTexture(this._width,this._height,{sampling:this._sampling,pixelFormat:this._alpha?"rgba8":"rgb8",mipMap:!1});const a=this._texture._GetTexture();h.framebufferTexture2D(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.TEXTURE_2D,a,0)}else{this._renderBuffer=h.createRenderbuffer(),h.bindRenderbuffer(h.RENDERBUFFER,this._renderBuffer);const a=this._alpha?h.RGBA8:h.RGB8;if(0a&&(this._multisampling=a)}else this._multisampling=0}0===this._multisampling?h.renderbufferStorage(h.RENDERBUFFER,a,this._width,this._height):h.renderbufferStorageMultisample(h.RENDERBUFFER,this._multisampling,a,this._width,this._height),h.framebufferRenderbuffer(h.FRAMEBUFFER,h.COLOR_ATTACHMENT0,h.RENDERBUFFER,this._renderBuffer),h.bindRenderbuffer(h.RENDERBUFFER,null)}h.bindFramebuffer(h.FRAMEBUFFER,null),c.add(this)}_Resize(a,b){if(this._width!==a||this._height!==b){this._width=a,this._height=b;const c=this._renderer.GetContext();c.bindFramebuffer(c.FRAMEBUFFER,this._frameBuffer),this._texture?this._texture._Update(new ImageData(this._width,this._height)):(c.bindRenderbuffer(c.RENDERBUFFER,this._renderBuffer),c.renderbufferStorage(c.RENDERBUFFER,this._alpha?c.RGBA8:c.RGB8,this._width,this._height),c.bindRenderbuffer(c.RENDERBUFFER,null)),c.bindFramebuffer(c.FRAMEBUFFER,null)}}_Delete(){if(!this._texture&&!this._renderBuffer)throw new Error("already deleted render target");c.delete(this);const a=this._renderer.GetContext();a.bindFramebuffer(a.FRAMEBUFFER,this._frameBuffer),this._texture?(a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.TEXTURE_2D,null,0),this._renderer.DeleteTexture(this._texture),this._texture=null):this._renderBuffer&&(a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0,a.RENDERBUFFER,null),a.deleteRenderbuffer(this._renderBuffer),this._renderBuffer=null),a.bindFramebuffer(a.FRAMEBUFFER,null),2<=this._renderer.GetWebGLVersionNumber()&&(a.bindFramebuffer(a.READ_FRAMEBUFFER,null),a.bindFramebuffer(a.DRAW_FRAMEBUFFER,null)),a.deleteFramebuffer(this._frameBuffer),this._renderer.GetBatchState().currentFramebuffer=null,this._frameBuffer=null}_GetFramebuffer(){return this._frameBuffer}GetWebGLRenderer(){return this._renderer}GetTexture(){return this._texture}IsLinearSampling(){return"nearest"!==this._sampling}HasAlpha(){return this._alpha}IsReadback(){return this._readback}GetWidth(){return this._width}GetHeight(){return this._height}IsDefaultSize(){return this._isDefaultSize}GetMultisampling(){return this._multisampling}GetOptions(){const a={sampling:this._sampling,alpha:this._alpha,readback:this._readback};return this._isDefaultSize||(a.width=this._width,a.height=this._height),a}IsCompatibleWithOptions(a){return a=Object.assign({},b,a),"nearest"!==a.sampling===this.IsLinearSampling()&&!!a.alpha===this.HasAlpha()&&!(2<=this._renderer.GetWebGLVersionNumber()&&!!a.readback!==this.IsReadback())&&("number"==typeof a.width||"number"==typeof a.height?!this.IsDefaultSize()&&this.GetWidth()===a.width&&this.GetHeight()===a.height:this.IsDefaultSize())}_GetWebGLTexture(){return this._texture?this._texture._GetTexture():null}GetEstimatedMemoryUsage(){return this._texture?this._texture.GetEstimatedMemoryUsage():this._width*this._height*(this._alpha?4:3)}static async DebugReadPixelsToBlob(a,b){const c=await a.ReadBackRenderTargetToImageData(b,!0);return await C3.ImageDataToBlob(c)}static OnContextLost(){c.clear()}static allRenderTargets(){return c.values()}static ResizeAll(a,b){for(const d of c)d.IsDefaultSize()&&d._Resize(a,b)}}} + +// ../lib/gfx/shaderProgram.js +"use strict";C3.Gfx.WebGLShaderProgram=class{static async Compile(a,b,c,d){const e=a.GetContext(),f=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(f,b),e.compileShader(f);const g=e.createShader(e.VERTEX_SHADER);e.shaderSource(g,c),e.compileShader(g);const h=e.createProgram();e.attachShader(h,f),e.attachShader(h,g),e.bindAttribLocation(h,0,"aPos"),e.bindAttribLocation(h,1,"aTex"),e.bindAttribLocation(h,2,"aPoints"),e.linkProgram(h);const i=a._GetParallelShaderCompileExtension();if(i?await a._WaitForObjectReady(()=>e.getProgramParameter(h,i["COMPLETION_STATUS_KHR"])):await C3.Wait(5),!e.getShaderParameter(f,e.COMPILE_STATUS)){const a=e.getShaderInfoLog(f);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error compiling fragment shader: "+a)}if(!e.getShaderParameter(g,e.COMPILE_STATUS)){const a=e.getShaderInfoLog(g);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error compiling vertex shader: "+a)}if(!e.getProgramParameter(h,e.LINK_STATUS)){const a=e.getProgramInfoLog(h);throw e.deleteShader(f),e.deleteShader(g),e.deleteProgram(h),new Error("Error linking shader program: "+a)}const j=C3.FilterUnprintableChars(e.getProgramInfoLog(h)||"").trim();return j&&!C3.IsStringAllWhitespace(j)&&console.info(`[WebGL] Shader program '${d}' compilation log: `,j),e.deleteShader(f),e.deleteShader(g),h}static async Create(a,b,c,d){const e=await C3.Gfx.WebGLShaderProgram.Compile(a,b.src,c,d);return new C3.Gfx.WebGLShaderProgram(a,e,b,d)}constructor(a,b,c,d){const e=a.GetContext(),f=a.GetBatchState();a.EndBatch(),e.useProgram(b),this._gl=e,this._renderer=a,this._name=d,this._shaderProgram=b,this._isDeviceTransform=""===d;const g=e.getAttribLocation(b,"aPos"),h=e.getAttribLocation(b,"aTex"),i=e.getAttribLocation(b,"aPoints");-1!==g&&(e.bindBuffer(e.ARRAY_BUFFER,a._vertexBuffer),e.vertexAttribPointer(g,a.GetNumVertexComponents(),e.FLOAT,!1,0,0),e.enableVertexAttribArray(g)),-1!==h&&(e.bindBuffer(e.ARRAY_BUFFER,a._texcoordBuffer),e.vertexAttribPointer(h,2,e.FLOAT,!1,0,0),e.enableVertexAttribArray(h)),-1!==i&&(e.bindBuffer(e.ARRAY_BUFFER,a._pointBuffer),e.vertexAttribPointer(i,4,e.FLOAT,!1,0,0),e.enableVertexAttribArray(i)),e.bindBuffer(e.ARRAY_BUFFER,null),this._uMatP=new C3.Gfx.WebGLShaderUniform(this,"matP","mat4"),this._uMatMV=new C3.Gfx.WebGLShaderUniform(this,"matMV","mat4"),this._uColor=new C3.Gfx.WebGLShaderUniform(this,"color","vec4"),this._uSamplerFront=new C3.Gfx.WebGLShaderUniform(this,"samplerFront","sampler"),this._uPointTexStart=new C3.Gfx.WebGLShaderUniform(this,"pointTexStart","vec2"),this._uPointTexEnd=new C3.Gfx.WebGLShaderUniform(this,"pointTexEnd","vec2"),this._uZElevation=new C3.Gfx.WebGLShaderUniform(this,"zElevation","float"),this._uTileSize=new C3.Gfx.WebGLShaderUniform(this,"tileSize","vec2"),this._uTileSpacing=new C3.Gfx.WebGLShaderUniform(this,"tileSpacing","vec2"),this._uColor2=new C3.Gfx.WebGLShaderUniform(this,"color2","vec4"),this._uOutlineThickness=new C3.Gfx.WebGLShaderUniform(this,"outlineThickness","float"),this._uSamplerBack=new C3.Gfx.WebGLShaderUniform(this,"samplerBack","sampler"),this._uDestStart=new C3.Gfx.WebGLShaderUniform(this,"destStart","vec2"),this._uDestEnd=new C3.Gfx.WebGLShaderUniform(this,"destEnd","vec2"),this._uSrcStart=new C3.Gfx.WebGLShaderUniform(this,"srcStart","vec2"),this._uSrcEnd=new C3.Gfx.WebGLShaderUniform(this,"srcEnd","vec2"),this._uSrcOriginStart=new C3.Gfx.WebGLShaderUniform(this,"srcOriginStart","vec2"),this._uSrcOriginEnd=new C3.Gfx.WebGLShaderUniform(this,"srcOriginEnd","vec2"),this._uPixelSize=new C3.Gfx.WebGLShaderUniform(this,"pixelSize","vec2"),this._uSeconds=new C3.Gfx.WebGLShaderUniform(this,"seconds","float"),this._uLayerScale=new C3.Gfx.WebGLShaderUniform(this,"layerScale","float"),this._uLayerAngle=new C3.Gfx.WebGLShaderUniform(this,"layerAngle","float"),this._uLayoutStart=new C3.Gfx.WebGLShaderUniform(this,"layoutStart","vec2"),this._uLayoutEnd=new C3.Gfx.WebGLShaderUniform(this,"layoutEnd","vec2"),this._hasAnyOptionalUniforms=!!(this._uPixelSize.IsUsed()||this._uSeconds.IsUsed()||this._uSamplerBack.IsUsed()||this._uDestStart.IsUsed()||this._uDestEnd.IsUsed()||this._uSrcStart.IsUsed()||this._uSrcEnd.IsUsed()||this._uSrcOriginStart.IsUsed()||this._uSrcOriginEnd.IsUsed()||this._uLayerScale.IsUsed()||this._uLayerAngle.IsUsed()||this._uLayoutStart.IsUsed()||this._uLayoutEnd.IsUsed()),this._extendBoxHorizontal=c.extendBoxHorizontal||0,this._extendBoxVertical=c.extendBoxVertical||0,this._crossSampling=!!c.crossSampling,this._mustPreDraw=!!c.mustPreDraw,this._preservesOpaqueness=!!c.preservesOpaqueness,this._animated=!!c.animated;const j=c.parameters||[];this._uCustomParameters=[],this._usesDest=this._uDestStart.IsUsed()||this._uDestEnd.IsUsed(),this._usesAnySrcRectOrPixelSize=this._uPixelSize.IsUsed()||this._uSrcStart.IsUsed()||this._uSrcEnd.IsUsed()||this._uSrcOriginStart.IsUsed()||this._uSrcOriginEnd.IsUsed(),this._needsPostDrawOrExtendBox=this._crossSampling||this._usesDest||0!==this._extendBoxHorizontal||0!==this._extendBoxVertical,this._hasCurrentMatP=!1,this._hasCurrentMatMV=!1,this._uColor.Init4f(1,1,1,1),this._uColor2.Init4f(1,1,1,1),this._uSamplerFront.Init1i(0),this._uSamplerBack.Init1i(1),this._uPointTexStart.Init2f(0,0),this._uPointTexEnd.Init2f(1,1),this._uZElevation.Init1f(0),this._uTileSize.Init2f(0,0),this._uTileSpacing.Init2f(0,0),this._uDestStart.Init2f(0,0),this._uDestEnd.Init2f(1,1),this._uSrcStart.Init2f(0,0),this._uSrcEnd.Init2f(0,0),this._uSrcOriginStart.Init2f(0,0),this._uSrcOriginEnd.Init2f(0,0),this._uPixelSize.Init2f(0,0),this._uLayerScale.Init1f(1),this._uLayerAngle.Init1f(0),this._uSeconds.Init1f(0),this._uLayoutStart.Init2f(0,0),this._uLayoutEnd.Init2f(0,0),this._uOutlineThickness.Init1f(1);for(const e of j){const a=e[0],b=e[2],c=new C3.Gfx.WebGLShaderUniform(this,a,b);"color"===b?c.Init3f(0,0,0):c.Init1f(0),this._uCustomParameters.push(c)}this._isDeviceTransform?this._UpdateDeviceTransformUniforms(f.currentMatP):(this.UpdateMatP(f.currentMatP,!0),this.UpdateMatMV(f.currentMV,!0));const k=f.currentShader;e.useProgram(k?k._shaderProgram:null)}Release(){this._gl.deleteProgram(this._shaderProgram),this._shaderProgram=null,this._renderer._RemoveShaderProgram(this),this._gl=null,this._renderer=null}GetName(){return this._name}GetWebGLContext(){return this._gl}GetShaderProgram(){return this._shaderProgram}UsesDest(){return this._usesDest}UsesCrossSampling(){return this._crossSampling}MustPreDraw(){return this._mustPreDraw}PreservesOpaqueness(){return this._preservesOpaqueness}ExtendsBox(){return 0!==this._extendBoxHorizontal||0!==this._extendBoxVertical}GetBoxExtendHorizontal(){return this._extendBoxHorizontal}GetBoxExtendVertical(){return this._extendBoxVertical}UsesAnySrcRectOrPixelSize(){return this._usesAnySrcRectOrPixelSize}NeedsPostDrawOrExtendsBox(){return this._needsPostDrawOrExtendBox}GetParameterCount(){return this._uCustomParameters.length}GetParameterType(a){return this._uCustomParameters[a].GetType()}AreCustomParametersAlreadySetInBatch(a){for(let b=0,c=a.length;b{const b=a.font.GetName();for(const c of i)(c.IsBBCodeEnabled()||C3.equalsNoCase(c.GetFontName(),b))&&c._SetTextChanged()}),C3.Gfx.WebGLText=class{constructor(a,b){b=Object.assign({},d,b),this._renderer=a,this._fontName="Arial",this._fontSize=16,this._lineHeight=0,this._isBold=!1,this._isItalic=!1,this._colorStr="black",this._isBBcodeEnabled=!1,this.onloadfont=null,this._alreadyLoadedFonts=new Set,this._horizontalAlign="left",this._verticalAlign="top",this._text="",this._bbString=null,this._wrappedText=C3.New(C3.WordWrap),this._wrapMode="word",this._textChanged=!1,this._isUpdating=!1,this._isAsync=!0,this._drawMaxCharCount=-1,this._drawCharCount=0,this._cssWidth=0,this._cssHeight=0,this._width=0,this._height=0,this._zoom=1,this._changed=!1,this._textCanvas=null,this._textContext=null,this._measureContext=null,this._lastCanvasWidth=-1,this._lastCanvasHeight=-1,this._lastTextCanvasFont="",this._lastMeasureCanvasFont="",this._lastTextCanvasFillStyle="",this._lastTextCanvasOpacity=1,this._lastTextCanvasLineWidth=1,this._measureTextCallback=(a,b)=>this._MeasureText(a,b),this._texture=null,this._textureWidth=0,this._textureHeight=0,this._rcTex=new C3.Rect,this._scaleFactor=1,this._needToRecreateTexture=!1,this._textureTimeout=new C3.IdleTimeout(()=>{this.ReleaseTexture(),this._SetTextCanvasSize(8,8)},b.timeout),this.ontextureupdate=null,this._wasReleased=!1,i.add(this)}Release(){this.onloadfont=null,this._alreadyLoadedFonts.clear(),this._bbString=null,this._textCanvas=null,this._textContext=null,this._measureContext=null,this._measureTextCallback=null,this._textureTimeout.Release(),this.ontextureupdate=null,this.ReleaseTexture(),this._wrappedText.Clear(),this._wrappedText=null,this._renderer=null,this._wasReleased=!0,i.delete(this)}_SetChanged(){this._changed=!0}_SetTextChanged(){this._SetChanged(),this._wrappedText.Clear(),this._textChanged=!0}SetIsAsync(b){this._isAsync=!!b}IsAsync(){return this._isAsync}SetBBCodeEnabled(a){a=!!a;this._isBBcodeEnabled===a||(this._isBBcodeEnabled=a,this._textContext&&(this._textContext.textBaseline=this._isBBcodeEnabled?"alphabetic":"top"),this._SetTextChanged())}IsBBCodeEnabled(){return this._isBBcodeEnabled}SetFontName(a){a||(a="serif");this._fontName===a||(this._fontName=a,this._SetTextChanged())}GetFontName(){return this._fontName}SetFontSize(a){.1>a&&(a=.1);this._fontSize===a||(this._fontSize=a,this._SetTextChanged())}SetLineHeight(a){this._lineHeight===a||(this._lineHeight=a,this._SetChanged())}SetBold(a){a=!!a;this._isBold===a||(this._isBold=a,this._SetTextChanged())}SetItalic(a){a=!!a;this._isItalic===a||(this._isItalic=a,this._SetTextChanged())}SetDrawMaxCharacterCount(a){a=Math.floor(a);this._drawMaxCharCount===a||(this._drawMaxCharCount=a,this._SetChanged())}GetDrawMaxCharacterCount(){return this._drawMaxCharCount}_GetStyleTag(a,b){for(let c=a.length-1;0<=c;--c){const d=a[c];if(d.tag===b)return d}return null}_HasStyleTag(a,b){return!!this._GetStyleTag(a,b)}_GetFontString(a,b){let c="";(this._isBold||this._HasStyleTag(b,"b"))&&(c+="bold"),(this._isItalic||this._HasStyleTag(b,"i"))&&(c+=" italic");const d=this._GetStyleTag(b,"size"),e=d?parseFloat(d.param):this._fontSize;c+=a?" "+e+"pt":" "+e*this._scaleFactor*this._zoom*self.devicePixelRatio+"pt";let f=this._fontName;const g=this._GetStyleTag(b,"font");return g&&g.param&&(f=g.param,this.onloadfont&&!this._alreadyLoadedFonts.has(f)&&(this.onloadfont(f),this._alreadyLoadedFonts.add(f))),f&&(c+=" \""+f+"\""),c}SetColor(a){a instanceof C3.Color&&(a=a.getCssRgb());this._colorStr===a||(this._colorStr=a,this._SetChanged())}SetColorRgb(a,c,d){e.setRgb(a,c,d),this.SetColor(e)}SetHorizontalAlignment(a){if(!f.has(a))throw new Error("invalid horizontal alignment");this._horizontalAlign===a||(this._horizontalAlign=a,this._SetChanged())}SetVerticalAlignment(a){if(!g.has(a))throw new Error("invalid vertical alignment");this._verticalAlign===a||(this._verticalAlign=a,this._SetChanged())}SetWordWrapMode(a){if(!h.has(a))throw new Error("invalid word wrap mode");this._wrapMode===a||(this._wrapMode=a,this._SetTextChanged())}SetText(a){this._text===a||(this._text=a,this._SetTextChanged())}SetSize(a,b,c){var d=Math.min;if("undefined"==typeof c&&(c=1),0>=a||0>=a)return;if(this._cssWidth===a&&this._cssHeight===b&&this._zoom===c)return;1===this._zoom!=(1===c)&&(this._needToRecreateTexture=!0);const e=this._cssWidth,f=this._zoom;this._cssWidth=a,this._cssHeight=b,this._zoom=c;const g=self.devicePixelRatio;this._width=this._cssWidth*this._zoom*g,this._height=this._cssHeight*this._zoom*g;const h=Math.max(this._width,this._height),i=d(this._renderer.GetMaxTextureSize(),2048);let j=1;h>i&&(j=i/h,this._width=d(this._width*j,i),this._height=d(this._height*j,i)),this._scaleFactor=j,0=this._width||0>=this._height||(this._changed=!1,this._isUpdating=!0,this._isAsync?C3.Asyncify(()=>this._DoUpdate()):this._DoUpdate())}_DoUpdate(){var a=Math.ceil;this._wasReleased||(this._SetTextCanvasSize(a(this._width),a(this._height)),this._MaybeWrapText(),this._DrawTextToCanvas(),this._UpdateTexture(),this._textureTimeout.Reset(),this._isUpdating=!1)}_SetTextCanvasSize(a,b){this._textCanvas||(this._textCanvas=C3.CreateCanvas(16,16));let c=!1;(this._lastCanvasWidth!==a||this._lastCanvasHeight!==b)&&(this._lastCanvasWidth=a,this._lastCanvasHeight=b,this._textCanvas.width=a,this._textCanvas.height=b,c=!0),this._textContext||(this._textContext=this._textCanvas.getContext("2d"),c=!0),c?(this._textContext.textBaseline=this._isBBcodeEnabled?"alphabetic":"top",this._textContext.font=this._lastTextCanvasFont,this._textContext.fillStyle=this._lastTextCanvasFillStyle,this._textContext.strokeStyle=this._lastTextCanvasFillStyle):this._textContext.clearRect(0,0,a,b)}_MaybeCreateMeasureContext(){this._measureContext||(this._measureContext=C3.CreateCanvas(16,16).getContext("2d"))}_SetMeasureFontString(a){this._lastMeasureCanvasFont===a||(this._lastMeasureCanvasFont=a,this._measureContext.font=a)}_MaybeWrapText(){this._textChanged&&(this._MaybeCreateMeasureContext(),this._isBBcodeEnabled&&(!this._bbString||this._bbString.toString()!==this._text)&&(this._bbString=new C3.BBString(this._text,{noEscape:!0})),this._wrappedText.WordWrap(this._isBBcodeEnabled?this._bbString.toFragmentList():this._text,this._measureTextCallback,this._cssWidth,this._wrapMode,0),this._textChanged=!1)}_MeasureText(a,b){this._SetMeasureFontString(this._GetFontString(!0,b));const d=this._GetStyleTag(b,"size"),e=d?parseFloat(d.param):this._fontSize;return{width:this._measureContext.measureText(a).width,height:c(e)}}_SetDrawFontString(a){this._lastTextCanvasFont===a||(this._lastTextCanvasFont=a,this._textContext.font=a)}_SetDrawCanvasColor(a){this._lastTextCanvasFillStyle===a||(this._lastTextCanvasFillStyle=a,this._textContext.fillStyle=a,this._textContext.strokeStyle=a)}_SetDrawCanvasOpacity(a){this._lastTextCanvasOpacity===a||(this._lastTextCanvasOpacity=a,this._textContext.globalAlpha=a)}_SetDrawCanvasLineWith(a){this._lastTextCanvasLineWidth===a||(this._lastTextCanvasLineWidth=a,this._textContext.lineWidth=a)}_DrawTextToCanvas(){var a=Math.max;this._drawCharCount=0;const b=this._scaleFactor*this._zoom*self.devicePixelRatio,d=c(this._fontSize)*b,e=(4+this._lineHeight)*b,f=d+e;let g=0;const h=this._wrappedText.GetLines();"center"===this._verticalAlign?g=a(this._height/2-h.length*f/2,0):"bottom"===this._verticalAlign&&(g=a(this._height-h.length*f-2,0));for(let a=0,c=h.length;athis._height-4*b)break;}else if(0=this._height-d)break;let f=0;"center"===this._horizontalAlign?f=(this._width-c.width*b)/2:"right"===this._horizontalAlign&&(f=this._width-c.width*b),this._DrawTextLine(c,f,g,b),this._isBBcodeEnabled||(g+=d),g+=e}}_DrawTextLine(a,b,c,d){for(const e of a.fragments)this._DrawTextFragment(e,b,c,d,a.height),b+=e.width*d}_DrawTextFragment(c,d,e,f,g){const h=this._textContext,i=g/16;let j=c.width*f;const k=c.height*f,l=c.height/16,m=(4+this._lineHeight)*f,n=c.styles;let o=c.text;if(-1!==this._drawMaxCharCount){if(this._drawCharCount>=this._drawMaxCharCount)return;this._drawCharCount+o.length>this._drawMaxCharCount&&(o=o.substr(0,this._drawMaxCharCount-this._drawCharCount),j=this._MeasureText(o,n).width*f),this._drawCharCount+=o.length}const p=this._GetStyleTag(n,"background"),q=this._HasStyleTag(n,"u"),r=this._HasStyleTag(n,"s");if((!C3.IsStringAllWhitespace(o)||p||q||r)&&!this._HasStyleTag(n,"hide")){const c=this._GetStyleTag(n,"offsetx");d+=c?parseFloat(c.param)*f:0;const g=this._GetStyleTag(n,"offsety");e+=g?parseFloat(g.param)*f:0,p&&(this._SetDrawCanvasColor(p.param),h.fillRect(d,e-k,j,k+m));const s=this._GetStyleTag(n,"color");this._SetDrawCanvasColor(s?s.param:this._colorStr);const t=this._GetStyleTag(n,"opacity");this._SetDrawCanvasOpacity(t?parseFloat(t.param)/100:1);const u=this._HasStyleTag(n,"stroke");if(u&&this._SetDrawCanvasLineWith(l*this._scaleFactor*this._zoom),q&&b(h,u,d,e+f*i,j,f*i),r&&b(h,u,d,e-k/4,j,f*l),this._SetDrawFontString(this._GetFontString(!1,n)),a(h,u,o,d,e,j),!u){this._SetDrawCanvasLineWith(l*this._scaleFactor*this._zoom);const b=this._GetStyleTag(n,"outline");b&&(this._SetDrawCanvasColor(b.param),a(h,!0,o,d,e,j))}}}_UpdateTexture(){var a=Math.ceil;this._renderer.IsContextLost()||(this._textureWidth=a(this._width),this._textureHeight=a(this._height),this._rcTex.set(0,0,this._width/this._textureWidth,this._height/this._textureHeight),this._needToRecreateTexture&&(this.ReleaseTexture(),this._needToRecreateTexture=!1),!this._texture&&(this._texture=this._renderer.CreateDynamicTexture(this._textureWidth,this._textureHeight,{mipMap:1===this._zoom,mipMapQuality:"high"})),this._renderer.UpdateTexture(this._textCanvas,this._texture),this.ontextureupdate&&this.ontextureupdate())}GetTexRect(){return this._rcTex}ReleaseTexture(){this._texture&&(!this._renderer.IsContextLost()&&this._renderer.DeleteTexture(this._texture),this._texture=null)}static OnContextLost(){for(const a of i)a.ReleaseTexture()}static GetAll(){return i.values()}}} + +// ../lib/gfx/query.js +"use strict";{class a{constructor(a){this._gl=a.GetContext(),this._version=a.GetWebGLVersionNumber(),this._timerExt=a._GetDisjointTimerQueryExtension(),this._query=null,this._isActive=!1,this._hasResult=!1,this._result=0,this._query=1===this._version?this._timerExt["createQueryEXT"]():this._gl["createQuery"]()}Release(){this._DeleteQueryObject(),this._gl=null,this._timerExt=null,this._hasResult=!1}_DeleteQueryObject(){this._query&&(1===this._version?this._timerExt["deleteQueryEXT"](this._query):this._gl["deleteQuery"](this._query),this._query=null)}BeginTimeElapsed(){if(this._isActive)throw new Error("query already active");1===this._version?this._timerExt["beginQueryEXT"](this._timerExt["TIME_ELAPSED_EXT"],this._query):this._gl["beginQuery"](this._timerExt["TIME_ELAPSED_EXT"],this._query),this._isActive=!0}EndTimeElapsed(){if(!this._isActive)throw new Error("query not active");1===this._version?this._timerExt["endQueryEXT"](this._timerExt["TIME_ELAPSED_EXT"]):this._gl["endQuery"](this._timerExt["TIME_ELAPSED_EXT"]),this._isActive=!1}CheckForResult(){if(!this._query||this._hasResult||this._isActive)return;let a=!1;a=1===this._version?this._timerExt["getQueryObjectEXT"](this._query,this._timerExt["QUERY_RESULT_AVAILABLE_EXT"]):this._gl["getQueryParameter"](this._query,this._gl["QUERY_RESULT_AVAILABLE"]);const b=this._gl.getParameter(this._timerExt["GPU_DISJOINT_EXT"]);a&&!b&&(this._result=1===this._version?this._timerExt["getQueryObjectEXT"](this._query,this._timerExt["QUERY_RESULT_EXT"]):this._gl["getQueryParameter"](this._query,this._gl["QUERY_RESULT"]),this._result/=1e9,this._hasResult=!0),(a||b)&&this._DeleteQueryObject()}HasResult(){return this._hasResult}GetResult(){if(!this._hasResult)throw new Error("no result available");return this._result}}C3.Gfx.WebGLTimeElapsedQuery=class{constructor(a){this._renderer=a,this._frameNumber=a.GetFrameNumber(),this._isActive=!1,this._parentQuery=null,this._isNested=!1,this._realQuery=null,this._queries=[]}Release(){for(const b of this._queries)b instanceof a&&b.Release();C3.clearArray(this._queries),this._parentQuery=null,this._realQuery=null,this._renderer=null}BeginTimeElapsed(){if(this._isActive)throw new Error("query already active");const a=this._renderer._GetTimeQueryStack();0a.HasResult())}GetResult(){return this._queries.reduce((b,a)=>b+a.GetResult(),0)}GetFrameNumber(){return this._frameNumber}}} + +// ../lib/gfx/queryResultBuffer.js +"use strict";C3.Gfx.WebGLQueryResultBuffer=class{constructor(a,b=1e3){this._renderer=a,this._maxQueries=b,this._buffer=[],this._renderer._AddQueryResultBuffer(this)}Release(){this.Clear(),this._renderer._RemoveQueryResultBuffer(this),this._renderer=null}Clear(){for(const a of this._buffer)a.Release();C3.clearArray(this._buffer)}AddTimeElapsedQuery(){const a=new C3.Gfx.WebGLTimeElapsedQuery(this._renderer);if(this._buffer.push(a),this._buffer.length>this._maxQueries){const a=this._buffer.shift();a.Release()}return a}CheckForResults(a){for(const b of this._buffer){if(b.GetFrameNumber()>=a)return;if(b.IsNested())return;b.CheckForResult()}}GetFrameRangeResultSum(a,b){if(b<=a)return NaN;let c=0;for(const d of this._buffer){if(d.GetFrameNumber()>=b)break;if(!(d.GetFrameNumber()"],[l.GetTextureFillFragmentShaderSource(),o,""],[l.GetPointFragmentShaderSource(),l.GetPointVertexShaderSource(),""],[l.GetColorFillFragmentShaderSource(),o,""],[l.GetLinearGradientFillFragmentShaderSource(),o,""],[l.GetHardEllipseFillFragmentShaderSource(),o,""],[l.GetHardEllipseOutlineFragmentShaderSource(),o,""],[l.GetSmoothEllipseFillFragmentShaderSource(),o,""],[l.GetSmoothEllipseOutlineFragmentShaderSource(),o,""],[l.GetSmoothLineFillFragmentShaderSource(),o,""],[l.GetTilemapFragmentShaderSource(),l.GetDefaultVertexShaderSource(this._is3d,!0),""]],d=await Promise.all(s.map((e)=>this.CreateShaderProgram({src:e[0]},e[1],e[2])));this._spTextureFill=d[0],this._spDeviceTransformTextureFill=d[1],this._spPoints=d[2],this._spColorFill=d[3],this._spLinearGradientFill=d[4],this._spHardEllipseFill=d[5],this._spHardEllipseOutline=d[6],this._spSmoothEllipseFill=d[7],this._spSmoothEllipseOutline=d[8],this._spSmoothLineFill=d[9],this._spTilemapFill=d[10],this._currentStateGroup=null,this.SetTextureFillMode()}FillIndexBufferData(){const e=this._indexData;for(let t=0,r=0;t<12000;)e[t++]=r,e[t++]=r+1,e[t++]=r+2,e[t++]=r,e[t++]=r+2,e[t++]=r+3,r+=4}Is3D(){return this._is3d}GetNumVertexComponents(){return this._is3d?3:2}SetBaseZ(e){this._baseZ=e}GetBaseZ(){return this._baseZ}SetCurrentZ(e){this._currentZ=e,this._currentStateGroup=null}GetCurrentZ(){return this._currentZ}async CreateShaderProgram(e,t,r){const a=await C3.Gfx.WebGLShaderProgram.Create(this,e,t,r);return this._shaderPrograms.push(a),this._shaderProgramsByName.set(a.GetName(),a),a}GetShaderProgramByName(e){return this._shaderProgramsByName.get(e)||null}GetTextureFillShaderProgram(){return this._spTextureFill}ResetLastProgram(){this._lastProgram=null}_RemoveShaderProgram(e){const t=this._shaderPrograms.indexOf(e);-1!==t&&this._shaderPrograms.splice(t,1),this._shaderProgramsByName.delete(e.GetName())}Project(e,t,r,a,i){const n=this._matMV,l=this._matP;for(let n=0,l=_.length;n=this._lastVertexPtr&&(this.EndBatch(),e=0),1===this._topOfBatch)this._batch[this._batchPtr-1]._indexCount+=6;else{const t=this.PushBatch();t.InitQuad(this._is3d?e:3*(e/2),6),this._topOfBatch=1}}_WriteQuadToVertexBuffer(e){e.writeToTypedArray3D(this._vertexData,this._vertexPtr,this._baseZ+this._currentZ),this._vertexPtr+=12}Quad(e){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),n.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad2(e,t,r,a,i,_,l,o){this._ExtendQuadBatch();const s=this._vertexData;let d=this._vertexPtr;const u=this._baseZ+this._currentZ;this._is3d?(s[d++]=e,s[d++]=t,s[d++]=u,s[d++]=r,s[d++]=a,s[d++]=u,s[d++]=i,s[d++]=_,s[d++]=u,s[d++]=l,s[d++]=o,s[d++]=u):(s[d++]=e,s[d++]=t,s[d++]=r,s[d++]=a,s[d++]=i,s[d++]=_,s[d++]=l,s[d++]=o),this._vertexPtr=d,n.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad3(e,t){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),t.writeAsQuadToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}Quad4(e,t){this._ExtendQuadBatch(),this._WriteQuadToVertexBuffer(e),t.writeToTypedArray(this._texcoordData,this._texPtr),this._texPtr+=8}FullscreenQuad(e,t){var r=Math.max,a=Math.min;if(mat4.copy(s,this._lastMV),vec3.copy(l,this._cam),vec3.copy(o,this._look),this._cam[0]=0,this._cam[1]=0,this._cam[2]=100*self.devicePixelRatio,this._look[0]=0,this._look[1]=0,this._look[2]=0,this.ResetModelView(),this.UpdateModelView(),this._isScissorViewport){const e=this._viewportScissorWidth/2,t=this._viewportScissorHeight/2;c.set(-e,t,-e+this._viewportScissorWidth,t-this._viewportScissorHeight),d.setFromRect(c),c.set(0,0,this._viewportScissorWidth/this._width,this._viewportScissorHeight/this._height),this.Quad3(d,c)}else if("crop"===e&&this._currentRenderTarget&&t){const e=this._width/2,i=this._height/2,n=t.GetWidth(),_=t.GetHeight(),l=this._currentRenderTarget.GetWidth(),o=this._currentRenderTarget.GetHeight(),s=a(l,n),u=a(o,_),p=r(_-o,0),f=r(o-_,0);c.set(-e,i-f,-e+s,i-u-f),d.setFromRect(c),c.set(0,p,s,u+p),c.divide(n,_),this.Quad3(d,c)}else{let[e,t]=this.GetRenderTargetSize(this._currentRenderTarget);const r=e/2,a=t/2;this.Rect2(-r,a,r,-a)}mat4.copy(this._matMV,s),vec3.copy(this._cam,l),vec3.copy(this._look,o),this.UpdateModelView()}ConvexPoly(e){const t=e.length/2;if(3>t)throw new Error("need at least 3 points");const r=t-2,a=e[0],n=e[1];for(let t=0;t=this._lineWidthStack.length)throw new Error("cannot pop last line width - check push/pop pairs");this._lineWidthStack.pop(),this._lineWidth=this._lineWidthStack[this._lineWidthStack.length-1]}SetLineCapButt(){this._lineCap=0,this._lineCapStack[this._lineCapStack.length-1]=0}SetLineCapSquare(){this._lineCap=1,this._lineCapStack[this._lineCapStack.length-1]=0}SetLineCapZag(){this._lineCap=2,this._lineCapStack[this._lineCapStack.length-1]=0}PushLineCap(e){if("butt"===e)this.PushLineCapButt();else if("square"===e)this.PushLineCapSquare();else if("zag"===e)this.PushLineCapZag();else throw new Error("invalid line cap")}PushLineCapButt(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(0),this._lineCap=0}PushLineCapSquare(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(1),this._lineCap=1}PushLineCapZag(){if(100<=this._lineCapStack.length)throw new Error("pushed too many line caps - check push/pop pairs");this._lineCapStack.push(2),this._lineCap=2}PopLineCap(){if(1>=this._lineCapStack.length)throw new Error("cannot pop last line cap - check push/pop pairs");this._lineCapStack.pop(),this._lineCap=this._lineCapStack[this._lineCapStack.length-1]}SetLineOffset(e){this._lineOffset=e,this._lineOffsetStack[this._lineOffsetStack.length-1]=e}GetLineOffset(){return this._lineOffset}PushLineOffset(e){if(100<=this._lineOffsetStack.length)throw new Error("pushed too many line offsets - check push/pop pairs");this._lineOffsetStack.push(e),this._lineOffset=e}PopLineOffset(){if(1>=this._lineOffsetStack.length)throw new Error("cannot pop last line offset - check push/pop pairs");this._lineOffsetStack.pop(),this._lineOffset=this._lineOffsetStack[this._lineOffsetStack.length-1]}SetPointTextureCoords(e){if(!this._lastPointTexCoords.equals(e)){this._lastPointTexCoords.copy(e);const t=this.PushBatch();t.InitSetPointTexCoords(e),this._topOfBatch=0}}Point(e,t,r,a){this._pointPtr>=7996&&this.EndBatch();let i=this._pointPtr;const n=this._baseZ+this._currentZ;if(2===this._topOfBatch&&this._lastPointZ===n)this._batch[this._batchPtr-1]._indexCount++;else{const e=this.PushBatch();e.InitPoints(i,n),this._topOfBatch=2,this._lastPointZ=n}const _=this._pointData;_[i++]=e,_[i++]=t,_[i++]=r,_[i++]=a,this._pointPtr=i}SetProgram(e){if(this._lastProgram!==e){const t=this.PushBatch();t.InitSetProgram(e),this._lastProgram=e,this._topOfBatch=0,this._currentStateGroup=null}}SetTextureFillMode(){this.SetProgram(this._spTextureFill)}SetDeviceTransformTextureFillMode(){this.SetProgram(this._spDeviceTransformTextureFill)}SetColorFillMode(){this.SetProgram(this._spColorFill)}SetLinearGradientFillMode(){this.SetProgram(this._spLinearGradientFill)}SetGradientColor(e){const t=this.PushBatch();t.InitSetGradientColor(e),this._topOfBatch=0}SetHardEllipseFillMode(){this.SetProgram(this._spHardEllipseFill)}SetHardEllipseOutlineMode(){this.SetProgram(this._spHardEllipseOutline)}SetSmoothEllipseFillMode(){this.SetProgram(this._spSmoothEllipseFill)}SetSmoothEllipseOutlineMode(){this.SetProgram(this._spSmoothEllipseOutline)}SetEllipseParams(e,t,r=1){const a=this.PushBatch();a.InitSetEllipseParams(e,t,r),this._topOfBatch=0}SetSmoothLineFillMode(){this.SetProgram(this._spSmoothLineFill)}SetTilemapFillMode(){this.SetProgram(this._spTilemapFill)}SetTilemapInfo(e,t,r,a,i,n,_){if(this._lastProgram!==this._spTilemapFill)throw new Error("must set tilemap fill mode first");const l=this.PushBatch();l.InitSetTilemapInfo(e,t,r,a,i,n,_),this._topOfBatch=0}SetProgramParameters(e,t,r,a,i,n,_,l,o,d,u){const c=this._lastProgram,s=c._hasAnyOptionalUniforms,p=!!u.length;if(s&&!c.AreOptionalUniformsAlreadySetInBatch(t,r,a,i,n,_,l,o,d)||p&&!c.AreCustomParametersAlreadySetInBatch(u)){const f=this.PushBatch();if(f.InitSetProgramParameters(),s){c.SetOptionalUniformsInBatch(t,r,a,i,n,_,l,o,d);const s=f._mat4param;s[0]=n,s[1]=_,t.writeToTypedArray(s,2),s[6]=l,s[7]=o,r.writeToTypedArray(s,12);const u=f._colorParam;i.writeToTypedArray(u,0);const p=u[1];u[1]=u[3],u[3]=p,a.writeToTypedArray(f._srcOriginRect,0),f._startIndex=d,f._texParam=c._uSamplerBack.IsUsed()?e?e.GetTexture():null:null}p&&(c.SetCustomParametersInBatch(u),C3.shallowAssignArray(f._shaderParams,u)),this._topOfBatch=0}}ClearRgba(e,t,r,i){const a=this.PushBatch();a.InitClearSurface2(e,t,r,i),this._topOfBatch=0}Clear(e){const t=this.PushBatch();t.InitClearSurface(e),this._topOfBatch=0}ClearRect(e,t,r,a){this.ClearRect4(e,t,r,a,0,0,0,0)}ClearRect2(e){this.ClearRect4(e.getLeft(),e.getTop(),e.width(),e.height(),0,0,0,0)}ClearRect3(e,t){this.ClearRect4(e.getLeft(),e.getTop(),e.width(),e.height(),t.getR(),t.getG(),t.getB(),t.getA())}ClearRect4(e,t,i,n,_,r,l,o){if(!(0>i||0>n)){const a=this.PushBatch();a.InitClearRect(e,t,i,n,_,r,l,o),this._topOfBatch=0}}Start(){}Finish(){this.EndBatch(),this._gl.flush(),this._frameNumber++}CheckForQueryResults(){for(const e of this._allQueryResultBuffers)e.CheckForResults(this._frameNumber)}IsContextLost(){return!this._gl||this._gl.isContextLost()||this._isInitialisingAfterContextRestored}OnContextLost(){C3.Gfx.WebGLRendererTexture.OnContextLost(),C3.Gfx.WebGLRenderTarget.OnContextLost(),C3.Gfx.WebGLText.OnContextLost();for(const e of this._allQueryResultBuffers)e.Clear();this._extensions=[],this._timerExt=null,this._parallelShaderCompileExt=null,this._unmaskedVendor="(unavailable)",this._unmaskedRenderer="(unavailable)",this._lastProgram=null,this._spTextureFill=null,this._spDeviceTransformTextureFill=null,this._spColorFill=null,this._spLinearGradientFill=null,this._spHardEllipseFill=null,this._spHardEllipseOutline=null,this._spSmoothEllipseFill=null,this._spSmoothEllipseOutline=null,this._spSmoothLineFill=null,this._spPoints=null,this._spTilemapFill=null;for(const e of this._stateGroups.values())e.OnContextLost();for(const e of this._shaderPrograms)e.Release();C3.clearArray(this._shaderPrograms),this._shaderProgramsByName.clear()}async OnContextRestored(){this._isInitialisingAfterContextRestored=!0,await this.InitState(),this._isInitialisingAfterContextRestored=!1;for(const e of this._stateGroups.values())e.OnContextRestored(this);this.SetSize(this._width,this._height,!0)}CreateStaticTexture(e,t){if(this.IsContextLost())throw new Error("context lost");this.EndBatch();const r=C3.New(C3.Gfx.WebGLRendererTexture,this);return r._CreateStatic(e,t),r}CreateStaticTextureAsync(e,t){return this.IsContextLost()?Promise.reject("context lost"):(t=Object.assign({},t),C3.Supports.ImageBitmapOptions&&(this.SupportsNPOTTextures()||!t.isTiled)?(t.premultiplyAlpha=!1,createImageBitmap(e,{"premultiplyAlpha":"premultiply"}).then((e)=>C3.Asyncify(()=>this.CreateStaticTexture(e,t)))):C3.Supports.ImageBitmap?createImageBitmap(e).then((e)=>C3.Asyncify(()=>this.CreateStaticTexture(e,t))):e instanceof Blob?C3.BlobToImage(e,!0).then((e)=>this.CreateStaticTextureAsync(e,t)):"undefined"!=typeof HTMLImageElement&&e instanceof HTMLImageElement&&"function"==typeof e["decode"]?e["decode"]().then(()=>C3.Asyncify(()=>this.CreateStaticTexture(e,t))):C3.Asyncify(()=>this.CreateStaticTexture(e,t)))}CreateDynamicTexture(e,t,r){this.EndBatch();const a=C3.New(C3.Gfx.WebGLRendererTexture,this);return a._CreateDynamic(e,t,r),a}UpdateTexture(e,t,r){this.EndBatch(),t._Update(e,r)}DeleteTexture(e){e&&(e.SubtractReference(),0=t||0>=r)throw new Error("invalid size");this.EndBatch();const i=C3.New(C3.Gfx.WebGLRenderTarget,this);return i._Create(t,r,Object.assign({isDefaultSize:a},e)),this._currentRenderTarget=null,this._batchState.currentFramebuffer=null,i}SetRenderTarget(e){if(e===this._currentRenderTarget)return;let t,r,a,i;e?(e.IsDefaultSize()&&e._Resize(this._width,this._height),a=e.GetWidth(),i=e.GetHeight(),t=a,r=i):(a=this._width,i=this._height,t=this.GetScissoredViewportWidth(),r=this.GetScissoredViewportHeight());const n=this._lastBackbufferWidth!==a||this._lastBackbufferHeight!==i;n&&this._UpdateViewportRenderer(t,r,a,i);const _=this.PushBatch();_.InitSetRenderTarget(e,n,this._matP),this._currentRenderTarget=e,this._topOfBatch=0}GetRenderTarget(){return this._currentRenderTarget}GetRenderTargetSize(e){return e?[e.GetWidth(),e.GetHeight()]:[this._width,this._height]}CopyRenderTarget(e,t="stretch"){if(2>this._version||this._currentRenderTarget&&0this._version)){const t=this.PushBatch();t.InitInvalidateFramebuffer(e._GetFramebuffer()),this._topOfBatch=0}}DeleteRenderTarget(e){this.SetRenderTarget(null),this.EndBatch();const t=e.GetTexture();t===this._lastTexture0&&(this._gl.bindTexture(this._gl.TEXTURE_2D,null),this._lastTexture0=null),t===this._lastTexture1&&(this._gl.activeTexture(this._gl.TEXTURE1),this._gl.bindTexture(this._gl.TEXTURE_2D,null),this._gl.activeTexture(this._gl.TEXTURE0),this._lastTexture1=null),e._Delete()}async ReadBackRenderTargetToImageData(e,t){this.EndBatch();const r=this._currentRenderTarget;let a,i,n;e?(a=e.GetWidth(),i=e.GetHeight(),n=e._GetFramebuffer()):(a=this.GetWidth(),i=this.GetHeight(),n=null);const _=this._gl;_.bindFramebuffer(_.FRAMEBUFFER,n);const l=()=>{_.bindFramebuffer(_.FRAMEBUFFER,null),this._currentRenderTarget=null,this._batchState.currentFramebuffer=null,this.SetRenderTarget(r)};let o;if(!t&&2<=this.GetWebGLVersionNumber()){_.bindFramebuffer(_.READ_FRAMEBUFFER,n);const e=_.createBuffer(),t=4*(a*i),r=_["PIXEL_PACK_BUFFER"];_.bindBuffer(r,e),_.bufferData(r,t,_["STREAM_READ"]),_.readPixels(0,0,a,i,_.RGBA,_.UNSIGNED_BYTE,0),_.bindFramebuffer(_.READ_FRAMEBUFFER,null),_.bindBuffer(r,null),l();const s=_["fenceSync"](_["SYNC_GPU_COMMANDS_COMPLETE"],0);await this._WaitForObjectReady(()=>_["getSyncParameter"](s,_["SYNC_STATUS"])===_["SIGNALED"]),_["deleteSync"](s),o=new ImageData(a,i),_.bindBuffer(r,e),_["getBufferSubData"](r,0,new Uint8Array(o.data.buffer),0,t),_.bindBuffer(r,null),_.deleteBuffer(e)}else o=new ImageData(a,i),_.readPixels(0,0,a,i,_.RGBA,_.UNSIGNED_BYTE,new Uint8Array(o.data.buffer)),l();return o}StartQuery(e){if(this.SupportsGPUProfiling()){const t=this.PushBatch();t.InitStartQuery(e),this._topOfBatch=0}}EndQuery(e){if(this.SupportsGPUProfiling()){const t=this.PushBatch();t.InitEndQuery(e),this._topOfBatch=0}}_WaitForObjectReady(e){const r=new Promise((t)=>p.add({resolve:t,checkFunc:e}));return-1===f&&(f=self.requestAnimationFrame(t)),r}GetEstimatedBackBufferMemoryUsage(){return this._width*this._height*(this._attribs["alpha"]?4:3)}GetEstimatedRenderBufferMemoryUsage(){let e=0;for(const r of C3.Gfx.WebGLRenderTarget.allRenderTargets())r.GetTexture()||(e+=r.GetEstimatedMemoryUsage());return e}GetEstimatedTextureMemoryUsage(){let e=0;for(const r of C3.Gfx.WebGLRendererTexture.allTextures())e+=r.GetEstimatedMemoryUsage();return e}GetEstimatedTotalMemoryUsage(){return this.GetEstimatedBackBufferMemoryUsage()+this.GetEstimatedRenderBufferMemoryUsage()+this.GetEstimatedTextureMemoryUsage()}GetWebGLVersionString(){return this._versionString}GetWebGLVersionNumber(){return this._version}SupportsNPOTTextures(){return 2<=this.GetWebGLVersionNumber()}GetMaxTextureSize(){return this._maxTextureSize}GetMinPointSize(){return this._minPointSize}GetMaxPointSize(){return this._maxPointSize}SupportsHighP(){return 0!==this._highpPrecision}GetHighPPrecision(){return this._highpPrecision}GetUnmaskedVendor(){return this._unmaskedVendor}GetUnmaskedRenderer(){return this._unmaskedRenderer}GetExtensions(){return this._extensions}HasMajorPerformanceCaveat(){return this._hasMajorPerformanceCaveat}SupportsGPUProfiling(){return!!this._timerExt}_GetDisjointTimerQueryExtension(){return this._timerExt}_GetParallelShaderCompileExtension(){return this._parallelShaderCompileExt}_AddQueryResultBuffer(e){this._allQueryResultBuffers.add(e)}_RemoveQueryResultBuffer(e){this._allQueryResultBuffers.delete(e)}_GetTimeQueryStack(){return this._timeQueryStack}GetFrameNumber(){return this._frameNumber}IncrementFrameNumber(){this._frameNumber++}GetContext(){return this._gl}GetNamedBlend(e){const t=this._gl;let r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;switch(e){case"normal":r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;break;case"additive":r=t.ONE,a=t.ONE;break;case"copy":r=t.ONE,a=t.ZERO;break;case"destination-over":r=t.ONE_MINUS_DST_ALPHA,a=t.ONE;break;case"source-in":r=t.DST_ALPHA,a=t.ZERO;break;case"destination-in":r=t.ZERO,a=t.SRC_ALPHA;break;case"source-out":r=t.ONE_MINUS_DST_ALPHA,a=t.ZERO;break;case"destination-out":r=t.ZERO,a=t.ONE_MINUS_SRC_ALPHA;break;case"source-atop":r=t.DST_ALPHA,a=t.ONE_MINUS_SRC_ALPHA;break;case"destination-atop":r=t.ONE_MINUS_DST_ALPHA,a=t.SRC_ALPHA;break;default:throw new Error("invalid blend name");}return{srcBlend:r,destBlend:a}}GetBlendByIndex(e){const t=this._gl;let r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;switch(e){case 0:r=t.ONE,a=t.ONE_MINUS_SRC_ALPHA;break;case 1:r=t.ONE,a=t.ONE;break;case 3:r=t.ONE,a=t.ZERO;break;case 4:r=t.ONE_MINUS_DST_ALPHA,a=t.ONE;break;case 5:r=t.DST_ALPHA,a=t.ZERO;break;case 6:r=t.ZERO,a=t.SRC_ALPHA;break;case 7:r=t.ONE_MINUS_DST_ALPHA,a=t.ZERO;break;case 8:r=t.ZERO,a=t.ONE_MINUS_SRC_ALPHA;break;case 9:r=t.DST_ALPHA,a=t.ONE_MINUS_SRC_ALPHA;break;case 10:r=t.ONE_MINUS_DST_ALPHA,a=t.SRC_ALPHA;break;default:throw new Error("invalid blend index");}return{srcBlend:r,destBlend:a}}CreateWebGLText(){return C3.New(C3.Gfx.WebGLText,this)}}} + +// c3/assets/assetManager.js +"use strict";{function a(a){if(!a)return"";const b=a.split(".");if(2>b.length)return"";const d=b[b.length-1].toLowerCase();return c.get(d)||""}const b=new Set(["local","remote"]),c=new Map([["mp4","video/mp4"],["webm","video/webm"],["m4a","audio/mp4"],["mp3","audio/mpeg"],["js","application/javascript"],["wasm","application/wasm"]]);C3.AssetManager=class extends C3.DefendedBase{constructor(a,c){if(super(),!b.has(c.defaultLoadPolicy))throw new Error("invalid load policy");if(this._runtime=a,this._localUrlBlobs=new Map,this._localBlobUrlCache=new Map,this._isCordova=!!c.isCordova,this._isWKWebView=!!c.isWKWebView,this._supportedAudioFormats=c.supportedAudioFormats||{},this._audioFiles=new Map,this._preloadSounds=!1,this._mediaSubfolder="",this._fontsSubfolder="",this._iconsSubfolder="",this._defaultLoadPolicy=c.defaultLoadPolicy,this._allAssets=[],this._assetsByUrl=new Map,this._webFonts=[],this._loadPromises=[],this._hasFinishedInitialLoad=!1,this._totalAssetSizeToLoad=0,this._assetSizeLoaded=0,this._lastLoadProgress=0,this._hasHadErrorLoading=!1,this._loadingRateLimiter=C3.New(C3.RateLimiter,()=>this._FireLoadingProgressEvent(),50),this._promiseThrottle=new C3.PromiseThrottle(Math.max(C3.hardwareConcurrency,8)),c.localUrlBlobs)for(const[a,b]of Object.entries(c.localUrlBlobs))this._localUrlBlobs.set(a,b)}Release(){this._localUrlBlobs.clear();for(const a of this._localBlobUrlCache.values())URL.revokeObjectURL(a);this._localBlobUrlCache.clear();for(const a of this._allAssets)a.Release();C3.clearArray(this._allAssets),this._assetsByUrl.clear(),C3.clearArray(this._loadPromises),this._runtime=null}GetRuntime(){return this._runtime}_SetMediaSubfolder(a){this._mediaSubfolder=a}GetMediaSubfolder(){return this._mediaSubfolder}_SetFontsSubfolder(a){this._fontsSubfolder=a}GetFontsSubfolder(){return this._fontsSubfolder}_SetIconsSubfolder(a){this._iconsSubfolder=a}GetIconsSubfolder(){return this._iconsSubfolder}FetchJson(a){return this.FetchBlob(a,this._defaultLoadPolicy).then((a)=>C3.BlobToJson(a))}FetchBlob(a,b){b=b||this._defaultLoadPolicy;const c=this._localUrlBlobs.get(a);return c?Promise.resolve(c):this._isCordova&&C3.IsRelativeURL(a)?this.CordovaFetchLocalFileAsBlob(a):"local"===b?this._promiseThrottle.Add(()=>C3.FetchBlob(a)):C3.FetchBlob(a)}_HasLocalURLBlob(a){return this._localUrlBlobs.has(a)}_CordovaFetchLocalFileAs(a,b){return this._runtime.PostComponentMessageToDOMAsync("runtime","cordova-fetch-local-file",{"filename":a,"as":b})}CordovaFetchLocalFileAsText(a){return this._CordovaFetchLocalFileAs(a,"text")}async CordovaFetchLocalFileAsBlob(b){const c=await this._CordovaFetchLocalFileAs(b,"buffer"),d=a(b);return new Blob([c],{"type":d})}async CordovaFetchLocalFileAsBlobURL(a){const b=await this.CordovaFetchLocalFileAsBlob(a);return URL.createObjectURL(b)}CordovaFetchLocalFileAsArrayBuffer(a){return this._CordovaFetchLocalFileAs(a,"buffer")}GetLocalUrlAsBlobUrl(a){const b=this._localUrlBlobs.get(a);if(!b)return a;let c=this._localBlobUrlCache.get(b);return c||(c=URL.createObjectURL(b),this._localBlobUrlCache.set(b,c)),c}GetMediaFileUrl(a){return this._runtime.IsPreview()||"playable-ad"===this._runtime.GetExportType()?this.GetLocalUrlAsBlobUrl(a.toLowerCase()):this._mediaSubfolder+a}GetProjectFileUrl(a){return this._runtime.IsPreview()?this.GetLocalUrlAsBlobUrl(a.toLowerCase()):a}LoadProjectFileUrl(a){return this._runtime.IsPreview()?Promise.resolve(this.GetLocalUrlAsBlobUrl(a.toLowerCase())):this._isCordova?this.CordovaFetchLocalFileAsBlobURL(a.toLowerCase()):Promise.resolve(a.toLowerCase())}LoadImage(a){if(a.loadPolicy&&!b.has(a.loadPolicy))throw new Error("invalid load policy");let c=this._assetsByUrl.get(a.url);return c?c:(c=C3.New(C3.ImageAsset,this,{url:a.url,size:a.size||0,loadPolicy:a.loadPolicy||this._defaultLoadPolicy}),this._allAssets.push(c),this._assetsByUrl.set(c.GetURL(),c),this._hasFinishedInitialLoad||(this._totalAssetSizeToLoad+=c.GetSize(),this._loadPromises.push(c.Load().then(()=>this._AddLoadedSize(c.GetSize())))),c)}async WaitForAllToLoad(){try{await Promise.all(this._loadPromises),this._lastLoadProgress=1}catch(a){console.error("Error loading: ",a),this._hasHadErrorLoading=!0,this._FireLoadingProgressEvent()}}SetInitialLoadFinished(){this._hasFinishedInitialLoad=!0}HasHadErrorLoading(){return this._hasHadErrorLoading}_AddLoadedSize(a){this._assetSizeLoaded+=a,this._loadingRateLimiter.Call()}_FireLoadingProgressEvent(){const a=C3.New(C3.Event,"loadingprogress");this._lastLoadProgress=C3.clamp(this._assetSizeLoaded/this._totalAssetSizeToLoad,0,1),a.progress=this._lastLoadProgress,this._runtime.Dispatcher().dispatchEvent(a)}GetLoadProgress(){return this._lastLoadProgress}_SetWebFonts(a){C3.shallowAssignArray(this._webFonts,a),this._webFonts.length&&this._loadPromises.push(this._LoadWebFonts())}_LoadWebFonts(){if("undefined"==typeof FontFace)return Promise.resolve();const a=[];for(const[b,c,d]of this._webFonts)this._totalAssetSizeToLoad+=d,a.push(this._LoadWebFont(b,c).then(()=>this._AddLoadedSize(d)));return Promise.all(a)}async _LoadWebFont(a,b){const c=await this.LoadProjectFileUrl(this._fontsSubfolder+b),d=new FontFace(a,`url('${c}')`);this._runtime.IsInWorker()?self.fonts.add(d):document.fonts.add(d);try{await d.load()}catch(b){console.warn(`[C3 runtime] Failed to load web font '${a}': `,b)}}IsAudioFormatSupported(a){return!!this._supportedAudioFormats[a]}_SetAudioFiles(a,b){this._preloadSounds=!!b;for(const[c,d,e]of a)this._audioFiles.set(c,{fileName:c,formats:d.map((a)=>({type:a[0],fileExtension:a[1],fullName:c+a[1],fileSize:a[2]})),isMusic:e})}GetPreferredAudioFile(a){const b=this._audioFiles.get(a.toLowerCase());if(!b)return null;let c=null;for(const d of b.formats)if(c||"audio/webm; codecs=opus"!==d.type||(c=d),this.IsAudioFormatSupported(d.type))return d;return c}GetProjectAudioFileUrl(a){const b=this.GetPreferredAudioFile(a);return b?{url:this.GetMediaFileUrl(b.fullName),type:b.type}:null}GetAudioToPreload(){if(this._preloadSounds){const a=[];for(const b of this._audioFiles.values()){if(b.isMusic)continue;const c=this.GetPreferredAudioFile(b.fileName);c&&a.push({originalUrl:b.fileName,url:this.GetMediaFileUrl(c.fullName),type:c.type,fileSize:c.fileSize})}return a}return[]}}} + +// c3/assets/asset.js +"use strict";C3.Asset=class extends C3.DefendedBase{constructor(a,b){super(),this._assetManager=a,this._runtime=a.GetRuntime(),this._url=b.url,this._size=b.size,this._loadPolicy=b.loadPolicy,this._blob=null,this._isLoaded=!1,this._loadPromise=null}Release(){this._loadPromise=null,this._assetManager=null,this._runtime=null,this._blob=null}GetURL(){return this._url}GetSize(){return this._size}Load(){return"local"===this._loadPolicy||this._blob?(this._isLoaded=!0,Promise.resolve()):this._loadPromise?this._loadPromise:(this._loadPromise=this._assetManager.FetchBlob(this._url,this._loadPolicy).then((a)=>{this._isLoaded=!0,this._loadPromise=null,this._blob=a}).catch((a)=>console.error("Error loading resource: ",a)),this._loadPromise)}IsLoaded(){return this._isLoaded}GetBlob(){return this._blob?Promise.resolve(this._blob):this._assetManager.FetchBlob(this._url,this._loadPolicy)}}; + +// c3/assets/imageAsset.js +"use strict";{const a=new C3.PromiseThrottle,b=new Set;C3.ImageAsset=class extends C3.Asset{constructor(a,c){super(a,c),this._texturePromise=null,this._webglTexture=null,this._refCount=0,this._imageWidth=-1,this._imageHeight=-1,b.add(this)}Release(){if(this.ReleaseTexture(),0!==this._refCount)throw new Error("released image asset which still has texture references");this._texturePromise=null,b.delete(this),super.Release()}static OnWebGLContextLost(){for(const a of b)a._texturePromise=null,a._webglTexture=null,a._refCount=0}LoadStaticTexture(b,c){return(this._refCount++,this._webglTexture)?Promise.resolve(this._webglTexture):this._texturePromise?this._texturePromise:(this._texturePromise=this.GetBlob().then((d)=>a.Add(()=>b.CreateStaticTextureAsync(d,c).then((a)=>(this._texturePromise=null,0===this._refCount)?(b.DeleteTexture(a),null):(this._webglTexture=a,this._imageWidth=a.GetWidth(),this._imageHeight=a.GetHeight(),this._webglTexture)))).catch((a)=>{throw console.error("Failed to load texture: ",a),a}),this._texturePromise)}ReleaseTexture(){if(0>=this._refCount)throw new Error("texture released too many times");if(this._refCount--,0===this._refCount&&this._webglTexture){const a=this._webglTexture.GetRenderer();a.DeleteTexture(this._webglTexture),this._webglTexture=null}}GetTexture(){return this._webglTexture}GetWidth(){return this._imageWidth}GetHeight(){return this._imageHeight}async LoadToDrawable(){const a=await this.GetBlob();return C3.Supports.ImageBitmapOptions?await createImageBitmap(a,{"premultiplyAlpha":"none"}):C3.Supports.ImageBitmap?await createImageBitmap(a):await C3.BlobToImage(a)}}} + +// c3/layouts/renderCell.js +"use strict";{function a(c,a){return c.GetWorldInfo()._GetLastCachedZIndex()-a.GetWorldInfo()._GetLastCachedZIndex()}C3.RenderCell=class extends C3.DefendedBase{constructor(a,b,c){super(),this._grid=a,this._x=b,this._y=c,this._instances=[],this._isSorted=!0,this._pendingRemoval=new Set,this._isAnyPendingRemoval=!1}Release(){C3.clearArray(this._instances),this._pendingRemoval.clear(),this._grid=null}Reset(){C3.clearArray(this._instances),this._isSorted=!0,this._pendingRemoval.clear(),this._isAnyPendingRemoval=!1}SetChanged(){this._isSorted=!1}IsEmpty(){return!this._instances.length||!(this._instances.length>this._pendingRemoval.size)&&(this._FlushPending(),!0)}Insert(a){return this._pendingRemoval.has(a)?(this._pendingRemoval.delete(a),void(0===this._pendingRemoval.size&&(this._isAnyPendingRemoval=!1))):void(this._instances.push(a),this._isSorted=1===this._instances.length)}Remove(a){this._pendingRemoval.add(a),this._isAnyPendingRemoval=!0,50<=this._pendingRemoval.size&&this._FlushPending()}_FlushPending(){return this._isAnyPendingRemoval?this._instances.length===this._pendingRemoval.size?void this.Reset():void(C3.arrayRemoveAllInSet(this._instances,this._pendingRemoval),this._pendingRemoval.clear(),this._isAnyPendingRemoval=!1):void 0}_EnsureSorted(){this._isSorted||(this._instances.sort(a),this._isSorted=!0)}Dump(a){this._FlushPending(),this._EnsureSorted(),this._instances.length&&a.push(this._instances)}}} + +// c3/layouts/renderGrid.js +"use strict";C3.RenderGrid=class extends C3.DefendedBase{constructor(a,b){super(),this._cellWidth=a,this._cellHeight=b,this._cells=C3.New(C3.PairMap)}Release(){this._cells.Release(),this._cells=null}GetCell(a,b,c){let d=this._cells.Get(a,b);return d?d:c?(d=C3.New(C3.RenderCell,this,a,b),this._cells.Set(a,b,d),d):null}XToCell(a){return Math.floor(a/this._cellWidth)}YToCell(a){return Math.floor(a/this._cellHeight)}Update(a,b,c){if(b)for(let d=b.getLeft(),e=b.getRight();d<=e;++d)for(let e=b.getTop(),f=b.getBottom();e<=f;++e){if(c&&c.containsPoint(d,e))continue;const b=this.GetCell(d,e,!1);b&&(b.Remove(a),b.IsEmpty()&&this._cells.Delete(d,e))}if(c)for(let d=c.getLeft(),e=c.getRight();d<=e;++d)for(let e=c.getTop(),f=c.getBottom();e<=f;++e)b&&b.containsPoint(d,e)||this.GetCell(d,e,!0).Insert(a)}QueryRange(a,b){let c=this.XToCell(a.getLeft());for(const d=this.YToCell(a.getTop()),e=this.XToCell(a.getRight()),f=this.YToCell(a.getBottom());c<=e;++c)for(let a=d;a<=f;++a){const d=this.GetCell(c,a,!1);d&&d.Dump(b)}}MarkRangeChanged(a){let b=a.getLeft();for(const c=a.getTop(),d=a.getRight(),e=a.getBottom();b<=d;++b)for(let a=c;a<=e;++a){const c=this.GetCell(b,a,!1);c&&c.SetChanged()}}}; + +// c3/layouts/layer.js +"use strict";{function a(c,a){return c.GetWorldInfo()._GetLastCachedZIndex()-a.GetWorldInfo()._GetLastCachedZIndex()}function b(c,a){return c.GetWorldInfo().GetZElevation()-a.GetWorldInfo().GetZElevation()}const c=new C3.Rect,d=new C3.Quad,e=[],f=new C3.Rect,g=new C3.Rect,h=vec3.fromValues(0,1,0);C3.Layer=class extends C3.DefendedBase{constructor(a,b,c){super(),this._layout=a,this._runtime=a.GetRuntime(),this._name=c[0],this._index=b,this._sid=c[2],this._isVisible=!!c[3],this._backgroundColor=C3.New(C3.Color),this._backgroundColor.setFromJSON(c[4].map((a)=>a/255)),this._isTransparent=!!c[5],this._parallaxX=c[6],this._parallaxY=c[7],this._color=C3.New(C3.Color,1,1,1,c[8]),this._premultipliedColor=C3.New(C3.Color),this._isForceOwnTexture=c[9],this._useRenderCells=c[10],this._scaleRate=c[11],this._blendMode=c[12],this._srcBlend=0,this._destBlend=0,this._curRenderTarget=null,this._scale=1,this._zElevation=c[16],this._angle=0,this._isAngleEnabled=!0,this._viewport=C3.New(C3.Rect),this._viewportZ0=C3.New(C3.Rect),this._startupInitialInstances=[],this._initialInstances=[],this._createdGlobalUids=[],this._instances=[],this._zIndicesUpToDate=!1,this._anyInstanceZElevated=!1,this._effectList=C3.New(C3.EffectList,this,c[15]),this._renderGrid=null,this._lastRenderList=[],this._isRenderListUpToDate=!1,this._lastRenderCells=C3.New(C3.Rect,0,0,-1,-1),this._curRenderCells=C3.New(C3.Rect,0,0,-1,-1),this._UpdatePremultipliedColor(),this._useRenderCells&&(this._renderGrid=C3.New(C3.RenderGrid,this._runtime.GetOriginalViewportWidth(),this._runtime.GetOriginalViewportHeight()));for(const d of c[14]){const a=this._runtime.GetObjectClassByIndex(d[1]);this._layout._AddInitialObjectClass(a),a.GetDefaultInstanceData()||(a.SetDefaultInstanceData(d),a._SetDefaultLayerIndex(this._index)),this._initialInstances.push(d)}C3.shallowAssignArray(this._startupInitialInstances,this._initialInstances)}static Create(a,b,c){return C3.New(C3.Layer,a,b,c)}Release(){this._layout=null,this._runtime=null}CreateInitialInstances(a){const b=this._layout.IsFirstVisit();let c=0;const d=this._initialInstances;for(let e=0,f=d.length;ec||(b&&this._useRenderCells&&a.GetWorldInfo()._RemoveFromRenderCells(),this._instances.splice(c,1),this.SetZIndicesChanged(),this._MaybeResetAnyInstanceZElevatedFlag())}_SetAnyInstanceZElevated(){this._anyInstanceZElevated=!0}_MaybeResetAnyInstanceZElevatedFlag(){0===this._instances.length&&(this._anyInstanceZElevated=!1)}_SortInstancesByLastCachedZIndex(b){if(b){const a=new Set;for(const b of this._instances){const c=b.GetWorldInfo()._GetLastCachedZIndex();0<=c&&a.add(c)}let b=-1;for(const c of this._instances){const d=c.GetWorldInfo();if(!(0<=d._GetLastCachedZIndex())){for(++b;a.has(b);)++b;d._SetZIndex(b)}}}this._instances.sort(a)}_Start(){this.SetBlendMode(this.GetBlendMode(),!0)}_End(){for(const a of this._instances)a.GetObjectClass().IsGlobal()||this._runtime.DestroyInstance(a);this._runtime.FlushPendingInstances(),C3.clearArray(this._instances),this._anyInstanceZElevated=!1,this.SetZIndicesChanged()}RecreateInitialObjects(a,b){const c=this._runtime.GetEventSheetManager(),d=this._runtime.GetAllObjectClasses(),e=a.IsFamily();for(const f of this._initialInstances){const g=f[0],h=g[0],i=g[1];if(!b.containsPoint(h,i))continue;const j=d[f[1]];if(j!==a)if(!e)continue;else if(!a.FamilyHasMember(j))continue;const k=this._runtime.CreateInstanceFromData(f,this,!1);if(c.BlockFlushingInstances(!0),k._TriggerOnCreated(),k.IsInContainer())for(const a of k.siblings())a._TriggerOnCreated();c.BlockFlushingInstances(!1)}}GetInstanceCount(){return this._instances.length}GetLayout(){return this._layout}GetName(){return this._name}GetIndex(){return this._index}GetSID(){return this._sid}GetRuntime(){return this._runtime}GetEffectList(){return this._effectList}UsesRenderCells(){return this._useRenderCells}GetRenderGrid(){return this._renderGrid}SetRenderListStale(){this._isRenderListUpToDate=!1}IsVisible(){return this._isVisible}SetVisible(a){a=!!a;this._isVisible===a||(this._isVisible=a,this._runtime.UpdateRender())}GetViewport(){return this._viewport}GetViewportForZ(a,b){const c=this._viewportZ0;if(0===a)b.copy(c);else{const d=this.Get2DScaleFactorToZ(a),e=c.midX(),f=c.midY(),g=.5*c.width()/d,h=.5*c.height()/d;b.set(e-g,f-h,e+g,f+h)}}GetOpacity(){return this._color.getA()}SetOpacity(a){a=C3.clamp(a,0,1);this._color.getA()===a||(this._color.setA(a),this._UpdatePremultipliedColor(),this._runtime.UpdateRender())}_UpdatePremultipliedColor(){this._premultipliedColor.copy(this._color),this._premultipliedColor.premultiply()}GetPremultipliedColor(){return this._premultipliedColor}HasDefaultColor(){return this._color.equalsRgba(1,1,1,1)}GetScaleRate(){return this._scaleRate}SetScaleRate(a){this._scaleRate===a||(this._scaleRate=a,this._runtime.UpdateRender())}GetParallaxX(){return this._parallaxX}GetParallaxY(){return this._parallaxY}SetParallax(a,b){if((this._parallaxX!==a||this._parallaxY!==b)&&(this._parallaxX=a,this._parallaxY=b,this._runtime.UpdateRender(),1!==this._parallaxX||1!==this._parallaxY))for(const a of this._instances)a.GetObjectClass()._SetAnyInstanceParallaxed(!0)}SetParallaxX(a){this.SetParallax(a,this.GetParallaxY())}SetParallaxY(a){this.SetParallax(this.GetParallaxX(),a)}SetZElevation(a){this._zElevation=+a}GetZElevation(){return this._zElevation}SetAngle(b){this._angle=C3.clampAngle(b)}GetAngle(){return this._isAngleEnabled?C3.clampAngle(this._layout.GetAngle()+this._angle):0}GetOwnAngle(){return this._angle}HasInstances(){return 0Number.EPSILON){this._UpdateZIndices();const b=this._useRenderCells&&0===this.GetZElevation()&&!this._anyInstanceZElevated;b?this._DrawInstances_RenderCells(a):this._DrawInstances(a,this._instances)}a.SetBaseZ(0),a.SetCurrentZ(0),a.SetCameraXYZ(0,0,100),a.SetLookXYZ(0,0,0),e&&this._DrawLayerOwnTextureToRenderTarget(a,f,b,c),g&&a.EndQuery(g),this._curRenderTarget=null}_DrawInstances(a,b){const c=this._viewport,d=this._curRenderTarget;let e=null;for(let f=0,g=b.length;fthis._width-b&&(a=this._width-b),athis._height-b&&(a=this._height-b),aa||(this._width=a)}GetHeight(){return this._height}SetHeight(a){!isFinite(a)||1>a||(this._height=a)}GetEventSheet(){return this._eventSheet}GetLayers(){return this._layers}GetLayerCount(){return this._layers.length}GetLayer(a){return"number"==typeof a?this.GetLayerByIndex(a):this.GetLayerByName(a.toString())}GetLayerByIndex(a){return a=C3.clamp(Math.floor(a),0,this._layers.length-1),this._layers[a]}GetLayerByName(a){return this._layersByName.get(a.toLowerCase())||null}GetLayerBySID(a){return this._layersBySid.get(a)||null}HasOpaqueBottomLayer(){for(const a of this._layers)if(a.ShouldDraw())return a._IsOpaque();return!1}IsFirstVisit(){return this._isFirstVisit}_GetInitialObjectClasses(){return[...this._initialObjectClasses]}_AddInitialObjectClass(a){if(a.IsInContainer())for(const b of a.GetContainer().GetObjectTypes())this._initialObjectClasses.add(b);else this._initialObjectClasses.add(a)}_GetTextureLoadedObjectTypes(){return[...this._textureLoadedTypes]}_Load(a,b){if(a===this||!b)return Promise.resolve();a&&(C3.CopySet(this._textureLoadedTypes,a._textureLoadedTypes),a._textureLoadedTypes.clear());const c=[];for(const d of this._initialObjectClasses)this._textureLoadedTypes.has(d)||(c.push(d.LoadTextures(b)),this._textureLoadedTypes.add(d));return Promise.all(c)}async MaybeLoadTexturesFor(a){if(a.IsFamily())throw new Error("cannot load textures for family");const b=this._runtime.GetWebGLRenderer();!b||b.IsContextLost()||this._textureLoadedTypes.has(a)||(this._textureLoadedTypes.add(a),await a.LoadTextures(b),a.OnDynamicTextureLoadComplete(),this._runtime.UpdateRender())}MaybeUnloadTexturesFor(a){if(a.IsFamily()||0d)b._AddSibling(f[d]);else{let d;d=c?this._runtime.CreateInstanceFromData(e,c.GetLayer(),!0,c.GetX(),c.GetY(),!0):this._runtime.CreateInstanceFromData(e,null,!0,0,0,!0),this._runtime.FlushPendingInstances(),e._UpdateIIDs(),b._AddSibling(d),a.push(d)}}}}_CreateInitialNonWorldInstances(){for(const a of this._initialNonWorld){const b=this._runtime.GetObjectClassByIndex(a[1]);b.IsInContainer()||this._runtime.CreateInstanceFromData(a,null,!0)}}_CreateGlobalNonWorlds(){const a=[],b=this._initialNonWorld;let c=0;for(let d=0,e=b.length;d=this._isEndingLayout)throw new Error("already unset");this._isEndingLayout--}}IsEndingLayout(){return 0=b||b>=this._totalTime)&&(this._complete=!0)}IsComplete(){return this._complete}IsReleased(){return this._released}SetMarkedForRemoval(a){this._markedForRemoval=a}IsMarkedForRemoval(){return this._markedForRemoval}InitialStateSet(){return this._initialStateSet}GetPropertyTrack(a){for(const b of this._tracks)for(const c of b.GetPropertyTracks())if(c.GetPropertyName()===a)return c}Trigger(a){const b=this._timelineManager.GetPluginInstance();this.GetRuntime().Trigger(a,b)}SetStartedTriggers(a){this._startedTriggers=a}SetFinishedTriggers(a){this._finishedTriggers=a}GetTime(){return this._playheadTime.Get()}SetTime(a){this._playheadTime.Set(a),0>this._playheadTime.Get()&&this._playheadTime.Set(0),this._playheadTime.Get()>=this._totalTime&&this._playheadTime.Set(this._totalTime),this.IsPlaying()||this.IsScheduled()||!this._initialStateSet?this.IsPlaying()||this.IsScheduled()||this._initialStateSet?this.IsPlaying()?this.Stop():this.IsScheduled()&&(this._timelineManager.DeScheduleTimeline(this),this.SetComplete(!1),this.SetInitialStateFromSetTime()):this.SetInitialStateFromSetTime():this.SetComplete(!1);let b=!1;for(const c of this._tracks){c.SetResumeState();const a=c.Interpolate(this._playheadTime.Get());!b&&a&&(b=!0)}b&&this.GetRuntime().UpdateRender()}SetResultMode(a){this._resultMode=a;for(const b of this._tracks)b.SetResultMode(a)}SetEase(a){this._ease=a;for(const b of this._tracks)b.SetEase(a)}SetPlaybackRate(a){return this._playbackRate=a}IsForwardPlayBack(){return 0=this._totalTime)return;}else if(0>=this._playheadTime.Get())return;this.Play(!0)}}Play(a=!1){this.IsReleased()||this.IsScheduled()||this.IsPlaying()||!this.IsComplete()&&!a||this._timelineManager.ScheduleTimeline(this)}Stop(a=!1){this.IsReleased()||(this.SetComplete(a),this._timelineManager.CompleteTimeline(this))}Reset(){if(this.IsReleased())return;if(!this.IsPlaying()&&this.IsScheduled())return this._timelineManager.DeScheduleTimeline(this);this.Stop(!0),this._playheadTime.Set(0);let a=!1;for(const b of this._tracks){const c=b.Interpolate(this._playheadTime.Get());!a&&c&&(a=!0)}a&&this.GetRuntime().UpdateRender()}SetInitialStateFromSetTime(){this.SetInitialState(!0)}SetInitialState(a){if(a){this._initialStateSet=!0;for(const a of this._tracks)a.SetInitialState()}else if(this.SetPlaying(!0),this.SetScheduled(!1),this.OnStarted(),this.IsComplete()){this._completedTick=-1,this._initialStateSet=!0,this.IsForwardPlayBack()?this._playheadTime.Set(0):this._playheadTime.Set(this._totalTime);for(const a of this._tracks)a.SetInitialState()}else for(const a of this._tracks)a.SetResumeState()}Tick(a,b){this._playheadTime.Add(a*b*this._playbackRate);let c;if(c=this.IsForwardPlayBack()?this._playheadTime.Get()>=this._totalTime:0>=this._playheadTime.Get(),c){this.IsForwardPlayBack()?this._playheadTime.Set(this._totalTime):this._playheadTime.Set(0);for(const a of this._tracks)a.SetEndState();return this.Stop(!0),this.OnCompleted(),!0}else{let a=!1;for(const b of this._tracks){const c=b.Interpolate(this._playheadTime.Get());!a&&c&&(a=!0)}return a}}}} + +// c3/timelines/track.js +"use strict";{const a=0;C3.Track=class extends C3.DefendedBase{constructor(b,c){super(),this._timeline=b,this._instanceUid=c[a][2],this._interpolationMode=c[1],this._resultMode=c[2],this._enabled=!!c[3],this._keyframes=[];for(const a of c[4]){const b=C3.Keyframe.Create(this,a);this._IsKeyFrameEnabled(b)&&this._keyframes.push(b)}this._propertyTracks=[];for(const a of c[5]){const b=C3.PropertyTrack.Create(this,a);b.GetEnable()&&this._propertyTracks.push(b)}this._instance=null,this._worldInfo=null,this._lastPositionSet=!1}static Create(a,b){return C3.New(C3.Track,a,b)}static CreateEmpty(b){const c=[];return c[a]=[],c[a][2]=-1,c[1]="default",c[2]="default",c[3]=1,c[4]=[],c[5]=[],this.Create(b,c)}Release(){this._timeline=null,this._instance=null,this._worldInfo=null;for(const a of this._keyframes)a.Release();C3.clearArray(this._keyframes),this._keyframes=null;for(const a of this._propertyTracks)a.Release();C3.clearArray(this._propertyTracks),this._propertyTracks=null}CleanCaches(){for(const a of this._propertyTracks)a.CleanCaches();this._instance=null,this._worldInfo=null}GetTimeline(){return this._timeline}GetRuntime(){return this._timeline.GetRuntime()}MaybeGetInstance(){this._instance||this.GetInstance()}IsInstanceValid(){return!!this._instance&&!this._instance.IsDestroyed()}SetInstanceUID(a){this._instanceUid=a}GetInstance(){return this._instance&&this.IsInstanceValid()?this._instance:(this._instance=this.GetRuntime().GetInstanceByUID(this._instanceUid),this._instance)}GetWorldInfo(){return this._worldInfo&&this.IsInstanceValid()?this._worldInfo:(this._worldInfo=this.GetInstance().GetWorldInfo(),this._worldInfo)}SetInterpolationMode(a){this._interpolationMode=a}GetInterpolationMode(){return this._interpolationMode}SetResultMode(a){this._resultMode=a;for(const b of this._propertyTracks)b.SetResultMode(a)}GetResultMode(){return this._resultMode}SetEase(a){for(const b of this._keyframes)b.SetEase(a);for(const b of this._propertyTracks)b.SetEase(a)}SetEnable(a){this._enabled=!!a}GetEnable(){return this._enabled}AddKeyframe(){const a=C3.Keyframe.CreateEmpty(this);return this._keyframes.push(a),a}GetKeyframes(){return this._keyframes}SortKeyframes(){this._keyframes.sort((c,a)=>c.GetTime()-a.GetTime())}AddPropertyTrack(a,b){const c=C3.PropertyTrack.CreateEmpty(this,a,b);return this._propertyTracks.push(c),c}GetPropertyTracks(){return this._propertyTracks}SetInitialState(){if(this.MaybeGetInstance(),!!this.IsInstanceValid()){this._lastPositionSet=!1;for(const a of this._propertyTracks)a.SetInitialState();this.GetTimeline().IsForwardPlayBack()?this.Interpolate(0):this.Interpolate(this.GetTimeline().GetTotalTime())}}SetResumeState(){if(this.MaybeGetInstance(),!!this.IsInstanceValid())for(const a of this._propertyTracks)a.SetResumeState()}SetEndState(){if((this.MaybeGetInstance(),!!this.IsInstanceValid())&&!this._lastPositionSet){this._lastPositionSet=!0;const a=this._timeline.GetTime(),b=this._timeline.GetTotalTime();a>=b?this.Interpolate(b):0>=a&&this.Interpolate(0)}}DeleteKeyframes(a){for(const b of this._keyframes){if(!a(b))continue;const c=this._keyframes.indexOf(b);-1!==c&&(b.Release(),this._keyframes.splice(c,1))}this.SortKeyframes()}DeletePropertyKeyframes(a){for(const b of this._propertyTracks)b.DeletePropertyKeyframes(a)}Interpolate(a){if(this.MaybeGetInstance(),!this.IsInstanceValid())return!1;let b=!1,c=!1;for(const d of this._propertyTracks){const e=d.Interpolate(a);b||0==(e&C3.Timeline.WORLD_INSTANCE_BOX_CHANGE)||(b=!0),c||0==(e&C3.Timeline.LAYOUT_RENDER_CHANGE)||(c=!0)}return b&&this.GetWorldInfo().SetBboxChanged(),c}SaveState(){for(const a of this._propertyTracks)a.SaveState()}CompareInitialStateWithCurrent(){if(this.MaybeGetInstance(),!!this.IsInstanceValid())for(const a of this._propertyTracks)a.CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){if(this.MaybeGetInstance(),!this.IsInstanceValid())return;let a=!1;for(const b of this._propertyTracks){const c=b.CompareSaveStateWithCurrent();!a&&c&&(a=!0)}if(a){const a=this.AddKeyframe();a.SetTime(this.GetTimeline().GetTime()),a.SetEase("noease"),a.SetEnable(!0)}}_IsKeyFrameEnabled(a){return!!this.GetEnable()&&!!a.GetEnable()}}} + +// c3/timelines/keyframe.js +"use strict";{const a=0;C3.Keyframe=class extends C3.DefendedBase{constructor(b,c){super(),this._track=b,this._time=c[a],this._ease=c[1],this._enable=!!c[2]}static Create(a,b){return C3.New(C3.Keyframe,a,b)}static CreateEmpty(b){const c=[];return c[a]=0,c[1]="linear",c[2]=1,this.Create(b,c)}Release(){this._track=null}GetRuntime(){return this._track.GetRuntime()}SetTime(a){this._time=a,this._track.SortKeyframes()}GetTime(){return this._time}SetEase(a){this._ease=a}GetEase(){return this._ease}SetEnable(a){this._enable=!!a}GetEnable(){return this._enable}}} + +// c3/timelines/propertyTrack.js +"use strict";{const a=0;C3.PropertyTrack=class extends C3.DefendedBase{constructor(b,c){super(),this._track=b,this._sourceAdapter=C3.PropertyTrack.CreateSourceAdapter(this,c[a]),this._property=c[1],this._type=c[2],this._min=c[3],this._max=c[4],this._interpolationMode=c[5],this._resultMode=c[6],this._enabled=!!c[7],this._propertyKeyframes=[];for(const a of c[8]){const b=C3.PropertyKeyframe.Create(this,a);this._IsPropertyKeyFrameEnabled(b)&&this._propertyKeyframes.push(b)}this._BuildPropertyKeyframeTimeMap()}static Create(a,b){return C3.New(C3.PropertyTrack,a,b)}static CreateEmpty(b,c,d){const e=[];if(e[a]=[],e[a][0]=c,d)for(let b=0;bc.GetTime()-a.GetTime())}_IsPropertyKeyFrameEnabled(a){if(!this.GetEnable())return!1;if(!a.GetEnable())return!1;const b=a.GetMasterKeyframe();if(!b)return!1;const c=this.GetTrack();return!!c._IsKeyFrameEnabled(b)}_GetKeyFrameAtTime(a){for(const b of this._propertyKeyframes)if(b.GetTime()===a)return b}_GetKeyFrameAtTimeFromCache(a){return this._propertyKeyframeTimeMap.get(a)}_GetFirstKeyframe(){return this._propertyKeyframes[0]}_GetLastKeyframe(){return this._propertyKeyframes[this._propertyKeyframes.length-1]}_GetFirstKeyFrameHigherThan(a){for(const b of this._propertyKeyframes)if(b.GetTime()>a)return b}_GetFirstKeyFrameHigherOrEqualThan(a){for(const b of this._propertyKeyframes)if(b.GetTime()>=a)return b}_GetFirstKeyFrameLowerOrEqualThan(a){for(let b=this._propertyKeyframes.length-1;0<=b;b--){const c=this._propertyKeyframes[b];if(c.GetTime()<=a)return c}}SetInitialState(){this._sourceAdapter.SetInitialState()}SetResumeState(){this._sourceAdapter.SetResumeState()}GetStartPropertyKeyframeForTime(a){let b=this._GetKeyFrameAtTimeFromCache(a);return b||(b=this._GetFirstKeyFrameLowerOrEqualThan(a)),b}GetEndPropertyKeyframeForTime(a){const b=this._GetKeyFrameAtTimeFromCache(a);return b?this._GetFirstKeyFrameHigherThan(a):this._GetFirstKeyFrameHigherOrEqualThan(a)}Interpolate(a){let b,c=this._GetKeyFrameAtTimeFromCache(a);return c?b=this._GetFirstKeyFrameHigherThan(a):(c=this._GetFirstKeyFrameLowerOrEqualThan(a),b=this._GetFirstKeyFrameHigherOrEqualThan(a)),this._sourceAdapter.Interpolate(a,c,b)}DeletePropertyKeyframes(a){for(const b of this._propertyKeyframes){if(!a(b))continue;const c=this._propertyKeyframes.indexOf(b);-1!==c&&(b.Release(),this._propertyKeyframes.splice(c,1))}this.SortPropertyKeyFrames()}SaveState(){this._sourceAdapter.SaveState()}CompareInitialStateWithCurrent(){const a=this._sourceAdapter.CompareInitialStateWithCurrent();if(a){const a=this._GetFirstKeyframe(),b=this._sourceAdapter.GetCurrentState();a.SetAbsoluteValue(b)}}CompareSaveStateWithCurrent(){const a=this._sourceAdapter.CompareSaveStateWithCurrent();return a&&this.AddPropertyKeyframeAtCurrentTime(),this._sourceAdapter.ClearSaveState(),a}AddPropertyKeyframeAtCurrentTime(){const a=this.GetTimeline().GetTime(),b=this.GetStartPropertyKeyframeForTime(a),c=this.AddPropertyKeyframe(),d=this.GetSourceAdapter();c.SetValue(d.GetValueAtTime()),c.SetAbsoluteValue(d.GetCurrentState()),c.SetType(b.GetType()),c.SetTime(a),c.SetEase(b.GetEase()),c.SetEnable(!0)}}} + +// c3/timelines/propertyKeyframe.js +"use strict";{const a=0;C3.PropertyKeyframe=class extends C3.DefendedBase{constructor(b,c){if(super(),this._propertyTrack=b,this._value=c[a][0],this._aValue=c[a][1],this._type=c[a][2],this._time=c[1],this._ease=c[2],this._enable=!!c[3],this._addons=[],this._addonIdToIndexMap=new Map,c[4])for(const a of c[4])this._addons.push(C3.PropertyKeyframeAddon.Create(a,this));this._masterKeyframe=null;for(let a of this._propertyTrack.GetTrack().GetKeyframes())if(a.GetTime()===this._time){this._masterKeyframe=a;break}}static Create(a,b){return C3.New(C3.PropertyKeyframe,a,b)}static CreateEmpty(b){const c=[];return c[a]=[],c[a][0]=0,c[a][1]=0,c[a][2]="",c[1]=0,c[2]="linear",c[3]=1,this.Create(b,c)}Release(){this._propertyTrack=null,this._masterKeyframe=null}GetRuntime(){return this._propertyTrack.GetRuntime()}SetTime(a){this._time=a,this._propertyTrack._BuildPropertyKeyframeTimeMap()}GetTime(){return this._time}SetValue(a){"color"===this._type&&C3.IsFiniteNumber(a)?(this._value[0]=C3.GetRValue(a),this._value[1]=C3.GetGValue(a),this._value[2]=C3.GetBValue(a)):this._value=a}GetValue(){return this._value}SetAbsoluteValue(a){"color"===this._type&&C3.IsFiniteNumber(a)?(this._aValue[0]=C3.GetRValue(a),this._aValue[1]=C3.GetGValue(a),this._aValue[2]=C3.GetBValue(a)):this._aValue=a}GetAbsoluteValue(){return this._aValue}GetValueWithResultMode(){const a=this._propertyTrack.GetResultMode();if("relative"===a)return this.GetValue();return"absolute"===a?this.GetAbsoluteValue():void 0}SetEase(a){this._ease=a}GetEase(){return this._ease}SetEnable(a){this._enable=!!a}GetEnable(){return this._enable}SetType(a){this._type=a}GetType(){return this._type}GetMasterKeyframe(){return this._masterKeyframe}GetAddOn(a){const b=this._addonIdToIndexMap.get(a);if(0>b||b>=this._addons.length)return null;if(b||0===b)return this._addons[b];for(let b=0;bthis._OnTick(),this._tick2Func=()=>this._OnTick2(),this._beforeLayoutChange=()=>this._OnBeforeChangeLayout(),this._layoutChange=()=>this._OnAfterChangeLayout()}Release(){const a=this._runtime.Dispatcher();a.removeEventListener("tick",this._tickFunc),this._tickFunc=null,a.removeEventListener("tick2",this._tick2Func),this._tick2Func=null,a.removeEventListener("beforelayoutchange",this._beforeLayoutChange),this._beforeLayoutChange=null,a.removeEventListener("layoutchange",this._layoutChange),this._layoutChange=null,this._runtime=null;for(const a of this._timelines)a.Stop(),a.Release();C3.clearArray(this._timelines),this._timelines=null,C3.clearArray(this._scheduledTimelines),this._scheduledTimelines=null,C3.clearArray(this._playingTimelines),this._playingTimelines=null,this._timelinesByName.clear(),this._timelinesByName=null}AddRuntimeListeners(){const a=this._runtime.Dispatcher();a.addEventListener("beforelayoutchange",this._beforeLayoutChange),a.addEventListener("layoutchange",this._layoutChange)}Create(a){this.Add(C3.Timeline.Create(a,this))}Add(a){this._timelines.push(a),this._timelinesByName.set(a.GetName(),a)}GetRuntime(){return this._runtime}SetPluginInstance(a){this._pluginInstance=a}GetPluginInstance(){return this._pluginInstance}GetTimelines(){return this._timelines}GetTimelineByIndex(a){const b=C3.clamp(Math.floor(a),0,this._timelines.length-1);return this._timelines[b]?this._timelines[b]:void 0}GetTimelineByName(a){return this._timelinesByName.has(a)?this._timelinesByName.get(a):void 0}ScheduleTimeline(a){a.SetPlaying(!1),a.SetScheduled(!0),a.SetMarkedForRemoval(!1),this._scheduledTimelines.push(a),this._MaybeAddRuntimeListeners()}DeScheduleTimeline(a){const b=this._scheduledTimelines.indexOf(a);a.SetPlaying(!1),a.SetScheduled(!1);-1===b||(this._scheduledTimelines.splice(b,1),this._MaybeRemoveRuntimeListeners())}CompleteTimeline(a){a.SetPlaying(!1),a.SetScheduled(!1),a.SetMarkedForRemoval(!0)}_OnTick(){if(this._changingLayout)return;let a=!1;for(this._isTickingTimelines=!0;this._scheduledTimelines.length;){const a=this._scheduledTimelines.pop();a.SetInitialState(),this._playingTimelines.push(a)}const b=this._runtime.GetDt(),c=this._runtime.GetTimeScale();for(const d of this._playingTimelines){if(d.IsMarkedForRemoval())continue;const e=d.Tick(b,c);!a&&e&&(a=!0)}this._isTickingTimelines=!1,a&&this.GetRuntime().UpdateRender()}_OnTick2(){for(const a of this._playingTimelines){if(!a.IsMarkedForRemoval())continue;const b=this._playingTimelines.indexOf(a);-1===b||this._playingTimelines.splice(b,1)}this._MaybeRemoveRuntimeListeners()}_MaybeAddRuntimeListeners(){if(!this._hasRuntimeListeners){const a=this._runtime.Dispatcher();a.addEventListener("tick",this._tickFunc),a.addEventListener("tick2",this._tick2Func),this._hasRuntimeListeners=!0}}_MaybeRemoveRuntimeListeners(){if(!this._playingTimelines.length&&!this._scheduledTimelines.length&&!this._isTickingTimelines){const a=this._runtime.Dispatcher();a.removeEventListener("tick",this._tickFunc),a.removeEventListener("tick2",this._tick2Func),this._hasRuntimeListeners=!1}}_OnBeforeChangeLayout(){for(this._changingLayout=!0;this._scheduledTimelines.length;)this.DeScheduleTimeline(this._scheduledTimelines.pop());for(;this._playingTimelines.length;)this.CompleteTimeline(this._playingTimelines.pop());this._MaybeRemoveRuntimeListeners();for(const a of this._timelines)a.CleanCaches()}_OnAfterChangeLayout(){this._changingLayout=!1}}; + +// c3/timelines/propertyKeyframeAddons/propertyKeyframeAddon.js +"use strict";{C3.PropertyKeyframeAddon=class{constructor(a){this._propertyKeyframe=a}GetId(){}static Create(a,b){switch(a[0]){case"cubic-bezier":return new C3.PropertyKeyframeCubicBezierAddon(a[1],b);}}}} + +// c3/timelines/propertyKeyframeAddons/propertyKeyframeCubicBezierAddon.js +"use strict";{C3.PropertyKeyframeCubicBezierAddon=class extends C3.PropertyKeyframeAddon{constructor(a,b){super(b),this._startAnchor=a[0],this._startEnable=!!a[1],this._endAnchor=a[2],this._endEnable=!!a[3]}GetId(){return"cubic-bezier"}GetStartAnchor(){return this._startAnchor}GetStartEnable(){return this._startEnable}GetEndAnchor(){return this._endAnchor}GetEndEnable(){return this._endEnable}}} + +// c3/timelines/propertySourceAdapters/propertySourceAdapter.js +"use strict";C3.PropertyTrack.PropertySourceAdapter=class{constructor(){}static GetValueAtTime(a){const b=a.GetTrack(),c=b.GetTimeline().GetTime(),d=a.GetStartPropertyKeyframeForTime(c),e=a.GetEndPropertyKeyframeForTime(c),f=C3.PropertyTrack.PropertySourceAdapter,g=f.GetInterpolateFunc(a);return g(c,d,e,a)}static GetValue(a,b,c){let d=a.GetResultMode();return"combo"===a.GetPropertyType()&&(d="absolute"),"relative"===d?b+c:"absolute"===d?c:void 0}static GetInterpolateFunc(a){const b=a.GetPropertyKeyframeType();return"numeric"===b?C3.PropertyTrack.NumericTypeAdapter.Interpolate:"angle"===b?C3.PropertyTrack.AngleTypeAdapter.Interpolate:"boolean"===b?C3.PropertyTrack.BooleanTypeAdapter.Interpolate:"color"===b?C3.PropertyTrack.ColorTypeAdapter.Interpolate:"text"===b?C3.PropertyTrack.TextTypeAdapter.Interpolate:void 0}static GetWillChangeFunc(a){const b=a.GetPropertyKeyframeType();return"numeric"===b?C3.PropertyTrack.NumericTypeAdapter.WillChange:"angle"===b?C3.PropertyTrack.AngleTypeAdapter.WillChange:"boolean"===b?C3.PropertyTrack.BooleanTypeAdapter.WillChange:"color"===b?C3.PropertyTrack.ColorTypeAdapter.WillChange:"text"===b?C3.PropertyTrack.TextTypeAdapter.WillChange:void 0}}; + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._sid=b[1],this._index=b[2],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetSdkBehaviourInstance(),c=this._index,d=this._propertyTrack;let e=this._propertyTrack.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetSdkBehaviourInstance(){const a=this._track.GetInstance(),b=a.GetBehaviorIndexBySID(this._sid),c=a.GetBehaviorInstances()[b];return c.GetSdkInstance()}}C3.PropertyTrack.BehaviorSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._name=b[1],this._index=b[2],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetEffectParameters(),c=this._index,d=this._propertyTrack;let e=this._propertyTrack.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){if(this._GetEffectParameters()){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetEffectParameters(){if(this._effectParams)return this._effectParams;const a=this._track.GetWorldInfo(),b=a.GetInstanceEffectList(),c=b.GetEffectList(),d=c.GetEffectTypeByName(this._name),e=d.GetIndex();return this._effectParams=b.IsEffectIndexActive(e)?b.GetEffectParametersForIndex(e):null,this._effectParams}}C3.PropertyTrack.EffectSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=a.GetTrack(),this._index=b[1],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._track.GetInstance(),c=this._index,d=this._propertyTrack;switch(d.GetPropertyType()){case"boolean":this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c);break;case"string":this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c);break;case"number":this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c);}return this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}C3.PropertyTrack.InstanceVariableSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapter.js +"use strict";{class a{constructor(a,b){this._propertyTrack=a,this._track=this._propertyTrack.GetTrack(),this._index=b[1],this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._GetSdkPluginInstance(),c=this._index,d=this._propertyTrack;let e=d.GetPropertyKeyframeType();return"numeric"===e&&"combo"===d.GetPropertyType()&&(e="combo"),"combo"===e||"boolean"===e||"text"===e?this._propertyAdapter=C3.New(a.NoInterpolationPropertyAdapter,d,b,c):"numeric"===e?this._propertyAdapter=C3.New(a.NumericPropertyAdapter,d,b,c):"color"===e?this._propertyAdapter=C3.New(a.ColorPropertyAdapter,d,b,c):void 0,this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter.GetInterpolateFunc(this._propertyTrack),e=d(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(e)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}_GetSdkPluginInstance(){return this._track.GetInstance().GetSdkInstance()}}C3.PropertyTrack.PluginSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapter.js +"use strict";{class a{constructor(a){this._propertyTrack=a,this._track=a.GetTrack(),this._propertyAdapter=null}Release(){this._propertyAdapter&&(this._propertyAdapter.Release(),this._propertyAdapter=null),this._propertyTrack=null,this._track=null}CleanCaches(){this._propertyAdapter&&this._propertyAdapter.CleanCaches()}GetPropertyAdapter(){if(this._propertyAdapter)return this._propertyAdapter;const b=this._propertyTrack.GetPropertyName();return this._propertyAdapter="offsetColor"===b?C3.New(a.ColorPropertyAdapter,this._propertyTrack):C3.New(a.NumericPropertyAdapter,this._propertyTrack),this._propertyAdapter}SetInitialState(){this.GetPropertyAdapter().SetInitialState()}SetResumeState(){this.GetPropertyAdapter().SetResumeState()}Interpolate(a,b,c){const d=C3.PropertyTrack.PropertySourceAdapter,e=d.GetInterpolateFunc(this._propertyTrack),f=e(a,b,c,this._propertyTrack);return this.GetPropertyAdapter().ChangeProperty(f)}SaveState(){this.GetPropertyAdapter().SetSaveState()}ClearSaveState(){this.GetPropertyAdapter().ClearSaveState()}GetCurrentState(){return this.GetPropertyAdapter().GetCurrentState()}CompareInitialStateWithCurrent(){return this.GetPropertyAdapter().CompareInitialStateWithCurrent()}CompareSaveStateWithCurrent(){return this.GetPropertyAdapter().CompareSaveStateWithCurrent()}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}C3.PropertyTrack.WorldInstanceSourceAdapter=a} + +// c3/timelines/propertySourceAdapters/propertyAdapter.js +"use strict";C3.PropertyTrack.PropertyAdapter=class{constructor(a){this._propertyTrack=a,this._worldInfo=a.GetTrack().GetWorldInfo(),this._property=a.GetPropertyName(),this._firstAbsoluteUpdate=!1,this._saveState=null}Release(){this._worldInfo=null,this._propertyTrack=null,this._saveState=null}CleanCaches(){this._worldInfo=null,this._saveState=null}GetWorldInfo(){return this._worldInfo?this._worldInfo:(this._worldInfo=this._propertyTrack.GetTrack().GetWorldInfo(),this._worldInfo)}SetFirstAbsoluteUpdate(a){this._firstAbsoluteUpdate=!!a}GetFirstAbsoluteUpdate(){return this._firstAbsoluteUpdate}SetInitialState(){}SetResumeState(){}SetSaveState(){}ClearSaveState(){this._saveState=null}GetCurrentState(){}CompareInitialStateWithCurrent(){}CompareSaveStateWithCurrent(){}ChangeProperty(){}_FirstKeyframeGetter(){const a=this._PickTimelinePlaybackMode(()=>this._propertyTrack._GetFirstKeyframe(),()=>this._propertyTrack._GetLastKeyframe());return a.GetAbsoluteValue()}_CurrentKeyframeGetter(){const a=this._propertyTrack.GetTimeline(),b=a.GetTime(),c=this._PickTimelinePlaybackMode(()=>this._propertyTrack._GetFirstKeyFrameLowerOrEqualThan(b),()=>this._propertyTrack._GetFirstKeyFrameHigherOrEqualThan(b));return c.GetAbsoluteValue()}_PickTimelinePlaybackMode(a,b){const c=this._propertyTrack.GetTimeline();return c.IsForwardPlayBack()?a():b()}_PickResultMode(a,b){const c=this._propertyTrack.GetResultMode();return"relative"===c?a():b()}_PickFirstAbsoluteUpdate(a,b){return this.GetFirstAbsoluteUpdate()?(this.SetFirstAbsoluteUpdate(!1),a()):b()}_GetAbsoluteInitialValue(){}}; + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=this._sdkBehaviourInstance,e=this._propertyIndex,f=c[a],h=c[1],g=c[2],b=this._lastValueR,i=this._lastValueG,j=this._lastValueB;this._PickFirstAbsoluteUpdate(()=>d.SetPropertyColorOffsetValueByIndex(e,-b,-i,-j),()=>d.SetPropertyColorOffsetValueByIndex(e,-b+f,-i+h,-j+g)),this._lastValueR=f,this._lastValueG=h,this._lastValueB=g}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_Getter(){const a=this._sdkBehaviourInstance,b=this._propertyIndex,c=a.GetPropertyValueByIndex(b);return this._GetColorFromArray(c)}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.BehaviorSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._propertyIndex,this._sdkBehaviourInstance,a,"behavior")&&this._sdkBehaviourInstance.SetPropertyValueByIndex(this._propertyIndex,a)}}C3.PropertyTrack.BehaviorSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/behaviorSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkBehaviourInstance=b,this._propertyIndex=c,this._lastValue=0}Release(){this._sdkBehaviourInstance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkBehaviourInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._sdkBehaviourInstance,d=this._propertyIndex;this._PickResultMode(()=>c.SetPropertyOffsetValueByIndex(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetPropertyOffsetValueByIndex(d,b),()=>c.SetPropertyOffsetValueByIndex(d,a-b))}),this._lastValue=a}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.BehaviorSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._effectParameters=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this._Getter()}GetCurrentState(){return this._effectParameters[this._parameterIndex].toArray().slice(0,3)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=c[a],e=c[1],f=c[2],b=this._lastValueR,g=this._lastValueG,h=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>this._Setter(-b,-g,-h),()=>this._Setter(-b+d,-g+e,-h+f)),this._lastValueR=d,this._lastValueG=e,this._lastValueB=f,C3.Timeline.LAYOUT_RENDER_CHANGE}_Setter(a,c,d){this._effectParameters[this._parameterIndex].addRgb(a,c,d)}_Getter(){return this._effectParameters[this._parameterIndex].clone()}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.EffectSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c}Release(){this._effectParameters=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._effectParameters[this._parameterIndex]}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._parameterIndex,this._effectParameters,a,"effect")&&(this._effectParameters[this._parameterIndex]=a)}}C3.PropertyTrack.EffectSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/effectSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._effectParameters=b,this._parameterIndex=c,this._lastValue=0}Release(){this._effectParameters=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._effectParameters[this._parameterIndex]}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue;return this._PickResultMode(()=>{this._effectParameters[this._parameterIndex]+=a-b},()=>{this._PickFirstAbsoluteUpdate(()=>{this._effectParameters[this._parameterIndex]+=b},()=>{this._effectParameters[this._parameterIndex]+=a-b})}),this._lastValue=a,C3.Timeline.LAYOUT_RENDER_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.EffectSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._instance=b,this._instanceVariableIndex=c}Release(){this._instance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._instance.GetInstanceVariableValue(this._instanceVariableIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);b(this._instanceVariableIndex,this._instance,a,"instance-variable")&&this._instance.SetInstanceVariableValue(this._instanceVariableIndex,a)}}C3.PropertyTrack.InstanceVariableSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/instanceVariableSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._instance=b,this._instanceVariableIndex=c,this._lastValue=0}Release(){this._instance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._instance.GetInstanceVariableValue(this._instanceVariableIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._instance,d=this._instanceVariableIndex;this._PickResultMode(()=>c.SetInstanceVariableOffset(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetInstanceVariableOffset(d,b),()=>c.SetInstanceVariableOffset(d,a-b))}),this._lastValue=a}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.InstanceVariableSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c,this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=this._sdkInstance,e=this._propertyIndex,f=c[a],h=c[1],g=c[2],b=this._lastValueR,i=this._lastValueG,j=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>d.SetPropertyColorOffsetValueByIndex(e,-b,-i,-j),()=>d.SetPropertyColorOffsetValueByIndex(e,-b+f,-i+h,-j+g)),this._lastValueR=f,this._lastValueG=h,this._lastValueB=g,C3.Timeline.LAYOUT_RENDER_CHANGE}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_Getter(){const a=this._sdkInstance,b=this._propertyIndex,c=a.GetPropertyValueByIndex(b);return this._GetColorFromArray(c)}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.PluginSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/noInterpolationPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){}SetResumeState(){}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=C3.PropertyTrack.PropertySourceAdapter.GetWillChangeFunc(this._propertyTrack);if(b(this._propertyIndex,this._sdkInstance,a,"plugin"))return this._sdkInstance.SetPropertyValueByIndex(this._propertyIndex,a),C3.Timeline.LAYOUT_RENDER_CHANGE}}C3.PropertyTrack.PluginSourceAdapter.NoInterpolationPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/pluginSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{class a extends C3.PropertyTrack.PropertyAdapter{constructor(a,b,c){super(a),this._sdkInstance=b,this._propertyIndex=c,this._lastValue=0}Release(){this._sdkInstance=null,super.Release()}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._sdkInstance.GetPropertyValueByIndex(this._propertyIndex)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this._sdkInstance,d=this._propertyIndex;return this._PickResultMode(()=>c.SetPropertyOffsetValueByIndex(d,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>c.SetPropertyOffsetValueByIndex(d,b),()=>c.SetPropertyOffsetValueByIndex(d,a-b))}),this._lastValue=a,C3.Timeline.LAYOUT_RENDER_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.PluginSourceAdapter.NumericPropertyAdapter=a} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapterProperties/colorPropertyAdapter.js +"use strict";{const a=0;class b extends C3.PropertyTrack.PropertyAdapter{constructor(a){super(a),this._lastValueR=0,this._lastValueG=0,this._lastValueB=0}Release(){super.Release()}SetInitialState(){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._FirstKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}SetResumeState(){if(!this._CompareColors(this._FirstKeyframeGetter(),this._CurrentKeyframeGetter())){this.SetFirstAbsoluteUpdate(!0);const a=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter());this._lastValueR=a.getR(),this._lastValueG=a.getG(),this._lastValueB=a.getB()}}SetSaveState(){this._saveState=this._Getter()}GetCurrentState(){return this._Getter().toArray().slice(0,3)}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return!this._CompareColors(a,this._Getter())}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&!this._CompareColors(this._saveState,this._Getter())}ChangeProperty(c){const d=c[a],e=c[1],f=c[2],b=this._lastValueR,g=this._lastValueG,h=this._lastValueB;return this._PickFirstAbsoluteUpdate(()=>this._Setter(-b,-g,-h),()=>this._Setter(-b+d,-g+e,-h+f)),this._lastValueR=d,this._lastValueG=e,this._lastValueB=f,C3.Timeline.LAYOUT_RENDER_CHANGE}_Getter(){return this.GetWorldInfo().GetUnpremultipliedColor().clone()}_Setter(a,c,d){this.GetWorldInfo().OffsetUnpremultipliedColorRGB(a,c,d)}_CompareColors(a,b){return a.equalsIgnoringAlpha(b)}_FirstKeyframeGetter(){const a=super._FirstKeyframeGetter();return this._GetColorFromArray(a)}_CurrentKeyframeGetter(){const a=super._CurrentKeyframeGetter();return this._GetColorFromArray(a)}_GetAbsoluteInitialValue(a){const b=this._GetColorFromArray(a);return C3.Color.Diff(b,this._Getter())}_GetColorFromArray(b){return C3.IsInstanceOf(b,C3.Color)?b:new C3.Color(b[a],b[1],b[2])}}C3.PropertyTrack.WorldInstanceSourceAdapter.ColorPropertyAdapter=b} + +// c3/timelines/propertySourceAdapters/worldInstanceSourceAdapterProperties/numericPropertyAdapter.js +"use strict";{const a=new Map,b=(b,c,d)=>a.set(b,{setter:c,getter:d});b("offsetX",(a,b)=>a.OffsetX(b),(a)=>a.GetX()),b("offsetY",(a,b)=>a.OffsetY(b),(a)=>a.GetY()),b("offsetWidth",(a,b)=>a.OffsetWidth(b),(a)=>a.GetWidth()),b("offsetHeight",(a,b)=>a.OffsetHeight(b),(a)=>a.GetHeight()),b("offsetAngle",(a,b)=>a.OffsetAngle(b),(a)=>a.GetAngle()),b("offsetOpacity",(a,b)=>a.OffsetOpacity(b),(a)=>a.GetOpacity()),b("offsetOriginX",(a,b)=>a.OffsetOriginX(b),(a)=>a.GetOriginX()),b("offsetOriginY",(a,b)=>a.OffsetOriginY(b),(a)=>a.GetOriginY());class c extends C3.PropertyTrack.PropertyAdapter{constructor(b){super(b);const c=b.GetPropertyName();this._getter=a.get(c).getter,this._setter=a.get(c).setter,this._lastValue=0}Release(){super.Release(),this._getter=null,this._setter=null}SetInitialState(){this._lastValue=this._PickResultMode(()=>this._PickTimelinePlaybackMode(()=>0,()=>C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)),()=>(this.SetFirstAbsoluteUpdate(!0),this._GetAbsoluteInitialValue(this._FirstKeyframeGetter())))}SetResumeState(){this._FirstKeyframeGetter()===this._CurrentKeyframeGetter()||this._PickResultMode(()=>{},()=>{this.SetFirstAbsoluteUpdate(!0),this._lastValue=this._GetAbsoluteInitialValue(this._CurrentKeyframeGetter())})}SetSaveState(){this._saveState=this.GetCurrentState()}GetCurrentState(){return this._getter(this.GetWorldInfo())}CompareInitialStateWithCurrent(){const a=this._FirstKeyframeGetter();return a!==this.GetCurrentState()}CompareSaveStateWithCurrent(){return!C3.IsNullOrUndefined(this._saveState)&&this._saveState!==this.GetCurrentState()}ChangeProperty(a){const b=this._lastValue,c=this.GetWorldInfo();return this._PickResultMode(()=>this._setter(c,a-b),()=>{this._PickFirstAbsoluteUpdate(()=>this._setter(c,b),()=>this._setter(c,a-b))}),this._lastValue=a,C3.Timeline.WORLD_INSTANCE_BOX_CHANGE}_GetAbsoluteInitialValue(a){return a-this.GetCurrentState()}}C3.PropertyTrack.WorldInstanceSourceAdapter.NumericPropertyAdapter=c} + +// c3/timelines/propertySourceAdapters/valueSourceAdapter.js +"use strict";C3.PropertyTrack.ValueSourceAdapter=class{constructor(a){this._propertyTrack=a,this._track=a.GetTrack(),this._value=0}Release(){this._propertyTrack=null,this._track=null}SetInitialState(){this._value=this._propertyTrack._GetFirstKeyframe().GetValueWithResultMode()}SetResumeState(){}GetValue(){return this._value}Interpolate(a,b,c){const d=C3.PropertyTrack.NumericTypeAdapter.Interpolate;this._value=d(a,b,c,this._propertyTrack)}SaveState(){}ClearSaveState(){}GetCurrentState(){return this._value}CompareInitialStateWithCurrent(){return!1}CompareSaveStateWithCurrent(){return!1}GetValueAtTime(){return C3.PropertyTrack.PropertySourceAdapter.GetValueAtTime(this._propertyTrack)}}; + +// c3/timelines/propertyTypeAdapters/numericTypeAdapter.js +"use strict";C3.PropertyTrack.NumericTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){var f=Math.floor;if(!c)return d._GetLastKeyframe().GetValueWithResultMode();let g=d.GetInterpolationMode();if("default"===g&&(g="continuous"),"combo"===d.GetPropertyType()&&(g="discrete"),"discrete"===g)return b.GetValueWithResultMode();if("continuous"===g||"step"===g){if("step"===g){const b=d.GetTimeline().GetStep();if(0!==b){const c=1/b;a=f(a*c)/c}}const h=b.GetTime(),i=c.GetTime(),j=b.GetValueWithResultMode(),k=c.GetValueWithResultMode();if(j===k)return j;const l=C3.normalize(a,h,i),m=b.GetEase();let e;const n=b.GetAddOn("cubic-bezier"),o=c.GetAddOn("cubic-bezier");if(n&&n.GetStartEnable()&&o&&o.GetEndEnable()){const a=i-h;e=Ease.GetEase(m)(a*l,0,1,a),e=Ease.GetEase("cubicbezier")(e,j,j+n.GetStartAnchor(),k+o.GetEndAnchor(),k)}else e=Ease.GetEase(m)((i-h)*l,j,k-j,i-h);return"integer"===d.GetPropertyType()?f(e):e}}}; + +// c3/timelines/propertyTypeAdapters/angleTypeAdapter.js +"use strict";C3.PropertyTrack.AngleTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){if(!c)return d._GetLastKeyframe().GetValueWithResultMode();let e=d.GetInterpolationMode();if("default"===e&&(e="continuous"),"combo"===d.GetPropertyType()&&(e="discrete"),"discrete"===e)return b.GetValueWithResultMode();if("continuous"===e||"step"===e){if("step"===e){const b=d.GetTimeline().GetStep();if(0!==b){const c=1/b;a=Math.floor(a*c)/c}}const f=b.GetTime(),g=c.GetTime(),h=b.GetValueWithResultMode(),i=c.GetValueWithResultMode();if(h===i)return h;let j=C3.normalize(a,f,g);const k=Ease.GetEase(b.GetEase());return C3.angleLerp(h,i,k(j,0,1,1))}}}; + +// c3/timelines/propertyTypeAdapters/booleanTypeAdapter.js +"use strict";C3.PropertyTrack.BooleanTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,!!e!=!!c}static Interpolate(a,b,c,d){return c?b.GetValueWithResultMode()?1:0:d._GetLastKeyframe().GetValueWithResultMode()?1:0}}; + +// c3/timelines/propertyTypeAdapters/colorTypeAdapter.js +"use strict";{const a=[0,0,0],b=[0,0,0];C3.PropertyTrack.ColorTypeAdapter=class{constructor(){}static WillChange(c,d,e,f){var g=Math.floor;let h;return"behavior"===f?h=d.GetPropertyValueByIndex(c):"effect"===f?h=d[c]:"instance-variable"===f?h=d.GetInstanceVariableValue(c):"plugin"===f?h=d.GetPropertyValueByIndex(c):void 0,Array.isArray(e)?(a[0]=e[0],a[1]=e[1],a[2]=e[2]):(TEMP_COLOR_ARRAY_3.parseCommaSeparatedRgb(e),a[0]=g(255*TEMP_COLOR_ARRAY_3.getR()),a[1]=g(255*TEMP_COLOR_ARRAY_3.getG()),a[2]=g(255*TEMP_COLOR_ARRAY_3.getB())),Array.isArray(h)?(b[0]=h[0],b[1]=h[1],b[2]=h[2]):(TEMP_COLOR_ARRAY_3.parseCommaSeparatedRgb(h),b[0]=g(255*TEMP_COLOR_ARRAY_3.getR()),b[1]=g(255*TEMP_COLOR_ARRAY_3.getG()),b[2]=g(255*TEMP_COLOR_ARRAY_3.getB())),a[0]!==b[0]||a[1]!==b[1]||a[2]!==b[2]}static Interpolate(b,c,f,d){if(!f){const b=d._GetLastKeyframe().GetValueWithResultMode();return a[0]=b[0],a[1]=b[1],a[2]=b[2],a}let g=d.GetInterpolationMode();if("default"===g&&(g="continuous"),"discrete"===g){const b=c.GetValueWithResultMode();return a[0]=b[0],a[1]=b[1],a[2]=b[2],a}if("continuous"===g||"step"===g){if("step"===g){const a=d.GetTimeline().GetStep();if(0!==a){const c=1/a;b=Math.floor(b*c)/c}}const h=c.GetTime(),i=f.GetTime(),j=c.GetValueWithResultMode(),k=f.GetValueWithResultMode(),l=C3.normalize(b,h,i),m=c.GetEase(),e=j[0],n=j[1],o=j[2],p=k[0],q=k[1],r=k[2],s=Ease.GetEase(m),t=i-h,u=t*l;return a[0]=e===p?e:s(u,e,p-e,t),a[1]=n===q?n:s(u,n,q-n,t),a[2]=o===r?o:s(u,o,r-o,t),a}}}} + +// c3/timelines/propertyTypeAdapters/textTypeAdapter.js +"use strict";C3.PropertyTrack.TextTypeAdapter=class{constructor(){}static WillChange(a,b,c,d){let e;return"behavior"===d?e=b.GetPropertyValueByIndex(a):"effect"===d?e=b[a]:"instance-variable"===d?e=b.GetInstanceVariableValue(a):"plugin"===d?e=b.GetPropertyValueByIndex(a):void 0,e!==c}static Interpolate(a,b,c,d){return c?b.GetValueWithResultMode():d._GetLastKeyframe().GetValueWithResultMode()}}; + +// c3/timelines/tweens/tween.js +"use strict";{C3.Tween=class a extends C3.Timeline{constructor(a,b){super(a,b),this._tags=[""],this._stringTags="",this._tagsChanged=!1,this._id="",this._destroyInstanceOnComplete=!1,this._initialValueMode="start-value",this.SetStep(0),this.SetInterpolationMode("default"),this.SetStartedTriggers(null),this.SetFinishedTriggers(null)}Release(){C3.clearArray(this._tags),this._tags=null,super.Release()}GetInstance(){const a=this.GetTracks();if(a&&a.length){const b=a[0];if(b){const a=b.GetInstance();return b.IsInstanceValid()?a:null}}}SetStartValue(a,b){for(const c of this._tracks)for(const d of c._propertyTracks){if(d.GetPropertyName()!==b)continue;const c=d._GetFirstKeyframe();c.SetValue(a),c.SetAbsoluteValue(a)}}SetEndValue(a,b){for(const c of this._tracks)for(const d of c._propertyTracks){if(d.GetPropertyName()!==b)continue;const c=d._GetLastKeyframe();c.SetValue(a),c.SetAbsoluteValue(a),(this.IsPlaying()||!this.IsComplete())&&d.AddPropertyKeyframeAtCurrentTime()}}HasTags(b){if(!this._tags)return!1;if(!this._tags.length)return!1;const c=a._GetTagArray(b);return!!c&&!!c.length&&c.every(a._HasTag,this)}SetId(a){this._id=a}GetId(){return this._id}SetTags(b){this._tags=a._GetTagArray(b),this._tagsChanged=!0}GetTags(){return this._tags}GetStringTags(){return this._tagsChanged&&(this._stringTags=this._tags.join(" ")),this._tagsChanged=!1,this._stringTags}SetInitialValueMode(a){this._initialValueMode=a}GetInitialValueMode(){return this._initialValueMode}SetDestroyInstanceOnComplete(a){this._destroyInstanceOnComplete=a}GetDestroyInstanceOnComplete(){return this._destroyInstanceOnComplete}OnStarted(){if(super.OnStarted(),!this.IsComplete())for(const a of this._tracks)a.CompareSaveStateWithCurrent()}SetTime(a){this._DeleteIntermediateKeyframes(),super.SetTime(a)}SetInitialState(a){if(!this.InitialStateSet()&&this.GetInitialValueMode()==="current-state")for(const a of this._tracks)a.CompareInitialStateWithCurrent();super.SetInitialState(a)}Stop(a=!1){if(super.Stop(a),!this.IsComplete())for(const a of this._tracks)a.SaveState()}Reset(){this._DeleteIntermediateKeyframes(),super.Reset()}_DeleteIntermediateKeyframes(){for(const a of this._tracks){const b=(a)=>{const b=a.GetTime(),c=this.GetTotalTime();return 0!==b&&b!==c};a.DeleteKeyframes(b),a.DeletePropertyKeyframes(b)}}Tick(){const a=this.GetInstance(),b=this.GetRuntime().GetDt(a);super.Tick(b,1)}static IsPlaying(a){return a.IsPlaying()}static _HasTag(a){const b=this.GetTags();return""===a?1===b.length&&""===b[0]:b.includes(a)}static _GetTagArray(a){return C3.IsArray(a)?a.slice(0):C3.IsString(a)?a.split(" "):void 0}static Build(a){const b=C3.Timeline.GetDefaultInitData(),c=a.runtime.GetTimelineManager(),d=C3.New(C3.Tween,b,c);C3.IsArray(a.propertyTracksConfig)||(a.propertyTracksConfig=[a.propertyTracksConfig]),d.SetId(a.id),d.SetTags(a.tags),d.SetInitialValueMode(a.initialValueMode),d.SetTotalTime(a.time),d.SetResultMode(a.propertyTracksConfig[0].resultMode),d.SetDestroyInstanceOnComplete(a.releaseOnComplete);const e=d.AddTrack();e.SetInstanceUID(a.instance.GetUID()),e.SetInterpolationMode("default"),e.SetResultMode(a.propertyTracksConfig[0].resultMode),e.SetEnable(!0);const f=e.AddKeyframe();f.SetTime(0),f.SetEase("noease"),f.SetEnable(!0);const g=e.AddKeyframe();g.SetTime(a.time),g.SetEase("noease"),g.SetEnable(!0);for(const b of a.propertyTracksConfig){const c=e.AddPropertyTrack(b.sourceId,b.sourceArgs);c.SetPropertyName(b.property),c.SetPropertyType(b.type),c.SetMin(NaN),c.SetMax(NaN),c.SetInterpolationMode("default"),c.SetResultMode(b.resultMode),c.SetEnable(!0);const d=c.AddPropertyKeyframe();d.SetValue(b.startValue),d.SetAbsoluteValue(b.startValue),d.SetType(b.valueType),d.SetTime(0),d.SetEase(b.ease),d.SetEnable(!0);const f=c.AddPropertyKeyframe();f.SetValue(b.endValue),f.SetAbsoluteValue(b.endValue),f.SetType(b.valueType),f.SetTime(a.time),f.SetEase(b.ease),f.SetEnable(!0)}return d}}} + +// c3/events/stacks/solStack.js +"use strict";C3.SolStack=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=a,this._stack=[],this._stack.push(C3.New(C3.Sol,this)),this._index=0,this._current=this._stack[0]}Release(){for(const a of this._stack)a.Release();C3.clearArray(this._stack),this._current=null,this._objectClass=null}GetObjectClass(){return this._objectClass}GetCurrentSol(){return this._current}Clear(){this.GetCurrentSol().Clear()}PushClean(){const a=this._stack,b=++this._index;if(b===a.length){const b=C3.New(C3.Sol,this);a.push(b),this._current=b}else{const c=a[b];c.Reset(),this._current=c}}PushCopy(){const a=this._stack,b=++this._index;b===a.length&&a.push(C3.New(C3.Sol,this));const c=a[b];c.Copy(a[b-1]),this._current=c}Pop(){this._current=this._stack[--this._index]}RemoveInstances(a){const b=this._stack;for(let c=0,d=b.length;cthis._InvokeFunctionFromJS(a,b)}Release(){this.ClearAllScheduledWaits(),this._eventStack.Release(),this._eventStack=null,this._localVarStack.Release(),this._localVarStack=null,C3.clearArray(this._queuedTriggers),C3.clearArray(this._queuedDebugTriggers),this._runtime=null,C3.clearArray(this._allSheets),this._sheetsByName.clear()}Create(a){const b=C3.New(C3.EventSheet,this,a);this._allSheets.push(b),this._sheetsByName.set(b.GetName().toLowerCase(),b)}_AddTriggerToPostInit(a){this._triggersToPostInit.push(a)}_PostInit(){for(const a of this._functionBlocksByName.values())a._PostInit(!1);for(const a of this._allSheets)a._PostInit();for(const a of this._allSheets)a._UpdateDeepIncludes();for(const a of this._triggersToPostInit)a._PostInit(!1);C3.clearArray(this._triggersToPostInit),this._localVarStack._SetInitialValues(this._localVarInitialValues)}GetRuntime(){return this._runtime}GetEventSheetByName(a){return this._sheetsByName.get(a.toLowerCase())||null}_RegisterGroup(a){this._allGroups.push(a),this._groupsByName.set(a.GetGroupName(),a)}_RegisterEventBlock(a){this._blocksBySid.set(a.GetSID(),a)}_RegisterCondition(a){this._cndsBySid.set(a.GetSID(),a)}_RegisterAction(a){this._actsBySid.set(a.GetSID(),a)}_RegisterFunctionBlock(a){this._functionBlocksByName.set(a.GetFunctionName().toLowerCase(),a)}_RegisterEventVariable(a){this._eventVarsBySid.set(a.GetSID(),a),a.IsGlobal()?this._allGlobalVars.push(a):this._allLocalVars.push(a)}_DeduplicateSolModifierList(c){2<=c.length&&c.sort(a);let d=this._allUniqueSolModifiers.get(c.length);d||(d=[],this._allUniqueSolModifiers.set(c.length,d));for(let a=0,e=d.length;ac=a);return this._queuedDebugTriggers.push([a,b,c]),d}*_RunQueuedDebugTriggersGen(){if(this._runtime.HitBreakpoint())throw new Error("should not be in breakpoint");for(const a=this._runtime.GetLayoutManager();this._queuedDebugTriggers.length;){const[b,c,d]=this._queuedDebugTriggers.shift(),e=yield*this._DebugTrigger(a,b,c);d(e)}}async RunQueuedDebugTriggersAsync(){for(const a of this._RunQueuedDebugTriggersGen())await this._runtime.DebugBreak(a)}_FastTrigger(a,b,c,d){let e=!1;const f=a.GetMainRunningLayout(),g=f.GetEventSheet();if(g){this._executingTriggerDepth++,this._runtime.PushCurrentLayout(f);const a=g.deepIncludes();for(let f=0,g=a.length;fa.ShouldRelease());for(const b of a)b.Release()}ClearAllScheduledWaits(){for(const a of this._scheduledWaits)a.Release();C3.clearArray(this._scheduledWaits)}RemoveInstancesFromScheduledWaits(a){for(const b of this._scheduledWaits)b.RemoveInstances(a)}_SaveToJson(){return{"groups":this._SaveGroupsToJson(),"cnds":this._SaveCndsToJson(),"acts":this._SaveActsToJson(),"vars":this._SaveVarsToJson(),"waits":this._SaveScheduledWaitsToJson()}}_LoadFromJson(a){this._LoadGroupsFromJson(a["groups"]),this._LoadCndsFromJson(a["cnds"]),this._LoadActsFromJson(a["acts"]),this._LoadVarsFromJson(a["vars"]),this._LoadScheduledWaitsFromJson(a["waits"])}_SaveGroupsToJson(){const a={};for(const b of this.GetAllGroups())a[b.GetSID().toString()]=b.IsGroupActive();return a}_LoadGroupsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetEventGroupBySID(a);d&&d.SetGroupActive(c)}}_SaveCndsToJson(){const a={};for(const[b,c]of this._cndsBySid){const d=c._SaveToJson();d&&(a[b.toString()]=d)}return a}_LoadCndsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetConditionBySID(a);d&&d._LoadFromJson(c)}}_SaveActsToJson(){const a={};for(const[b,c]of this._actsBySid){const d=c._SaveToJson();d&&(a[b.toString()]=d)}return a}_LoadActsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetActionBySID(a);d&&d._LoadFromJson(c)}}_SaveVarsToJson(){const a={};for(const[b,c]of this._eventVarsBySid)!c.IsConstant()&&(c.IsGlobal()||c.IsStatic())&&(a[b.toString()]=c.GetValue());return a}_LoadVarsFromJson(a){for(const[b,c]of Object.entries(a)){const a=parseInt(b,10),d=this.GetEventVariableBySID(a);d&&d.SetValue(c)}}_SaveScheduledWaitsToJson(){return this._scheduledWaits.map((a)=>a._SaveToJson())}_LoadScheduledWaitsFromJson(a){this.ClearAllScheduledWaits();for(const b of a){const a=C3.ScheduledWait._CreateFromJson(this,b);a&&this._scheduledWaits.push(a)}}_GetPerfRecords(){return[...this._runtime.GetLayoutManager().runningLayouts()].map((a)=>a.GetEventSheet()).filter((a)=>a).map((a)=>a._GetPerfRecord())}FindFirstFunctionBlockParent(a){for(;a;){const b=a.GetScopeParent();if(b instanceof C3.FunctionBlock)return b;a=a.GetParent()}return null}_InvokeFunctionFromJS(a,b){Array.isArray(b)||(b=[]);const c=this.GetFunctionBlockByName(a.toLowerCase());if(!c)return null;const d=c.GetFunctionParameters();if(b.lengtha.DebugCanRunFast()),a.canRunAllActionsFast=this._actions.every((b)=>b.DebugCanRunFast()),a.canRunAllSubEventsFast=this._subEvents.every((a)=>a.DebugCanRunFast()),a.canRunSelfFast=a.canRunAllConditionsFast&&a.canRunAllActionsFast&&a.canRunAllSubEventsFast}_UpdateCanRunFastRecursive(){let a=this;do a._UpdateCanRunFast(),a=a.GetParent();while(a)}_IdentifyTopLevelGroup(){if(!this.IsGroup())return;let a=this.GetParent();for(this._isTopLevelGroup=!0;a;){if(!a.IsGroup()){this._isTopLevelGroup=!1;break}a=a.GetParent()}}_IdentifySolModifiersIncludingParents(){const a=this._runtime.GetAllObjectClasses();if(this._solModifiers===a)this._solModifiersIncludingParents=a;else{this._solModifiersIncludingParents=C3.cloneArray(this._solModifiers);for(let a=this.GetParent();a;){for(const b of a._solModifiers)this._AddParentSolModifier(b);a=a.GetParent()}const a=this.GetEventSheetManager();this._solModifiers=a._DeduplicateSolModifierList(this._solModifiers),this._solModifiersIncludingParents=a._DeduplicateSolModifierList(this._solModifiersIncludingParents)}}_IdentifyTriggerParents(){if(this.HasAnyTriggeredCondition()){this._triggerParents=[];for(let a=this.GetParent();a;)this._triggerParents.push(a),a=a.GetParent();this._triggerParents.reverse()}}SetSolWriterAfterCnds(){this._isSolWriterAfterCnds=!0,this._parent&&this._parent.SetSolWriterAfterCnds()}IsSolWriterAfterCnds(){return this._isSolWriterAfterCnds}GetSolModifiers(){return this._solModifiers}GetSolModifiersIncludingParents(){return this._solModifiersIncludingParents}HasSolModifier(a){return this._solModifiers.includes(a)}GetTriggerParents(){return this._triggerParents}GetEventSheet(){return this._eventSheet}GetEventSheetManager(){return this._eventSheet.GetEventSheetManager()}GetRuntime(){return this._runtime}GetParent(){return this._parent}_SetScopeParent(a){this._scopeParent=a}GetScopeParent(){return this._scopeParent||this._parent}GetDisplayNumber(){return this._displayNumber}IsDebugBreakable(){return this._debugData&&this._debugData.isBreakable}IsDebugBreakpoint(){return this.IsDebugBreakable()&&this._debugData.isBreakpoint}_SetDebugBreakpoint(a){this._debugData.isBreakpoint=!!a,this._UpdateCanRunFastRecursive()}IsGroup(){return this._isGroup}IsTopLevelGroup(){return this._isTopLevelGroup}IsElseBlock(){return this._isElseBlock}HasElseBlock(){return this._hasElseBlock}GetGroupName(){return this._groupName}IsGroupActive(){return this._isGroupActive}ResetInitialActivation(){this.SetGroupActive(this._isInitiallyActive)}SetGroupActive(b){if(b=!!b,!this._isGroup)throw new Error("not a group");if(this._isGroupActive!==b){this._isGroupActive=b;for(const a of this._containedIncludes)a.UpdateActive();if(this._containedIncludes.length){const a=this._runtime.GetCurrentLayout(),b=a.GetEventSheet();b&&b._UpdateDeepIncludes()}}}GetSID(){return this._sid}IsOrBlock(){return this._isOrBlock}IsTrigger(){return this._conditions.length&&this._conditions[0].IsTrigger()}IsForFunctionBlock(){return this._scopeParent&&this._scopeParent instanceof C3.FunctionBlock}HasAnyTriggeredCondition(){return this.IsForFunctionBlock()||this._conditions.some((a)=>a.IsTrigger())}GetConditions(){return this._conditions}GetConditionCount(){return this._conditions.length}GetConditionAt(a){if(a=Math.floor(a),0>a||a>=this._conditions.length)throw new RangeError("invalid condition index");return this._conditions[a]}IsFirstConditionOfType(a){let b=a.GetIndex();if(0===b)return!0;for(;0<=b;--b)if(this._conditions[b].GetObjectClass()===a.GetObjectClass())return!1;return!0}GetActions(){return this._actions}GetActionCount(){return this._actions.length}GetActionAt(a){if(a=Math.floor(a),0>a||a>=this._actions.length)throw new RangeError("invalid action index");return this._actions[a]}_HasActionIndex(a){return a=Math.floor(a),0<=a&&aa.Get(0));a.GetLocalVarStack().Push(),this._scopeParent.SetFunctionParameters(c)}else this._scopeParent.EvaluateFunctionParameters(b)}RunAsFunctionCall(a,b){const c=0C3.EventVariable.Create(a,this,b)),this._eventBlock=C3.EventBlock.Create(a,b,c),this._eventBlock._SetScopeParent(this)}static Create(a,b,c){return C3.New(C3.FunctionBlock,a,b,c)}Release(){}_PostInit(){for(const a of this._functionParameters)a._PostInit();this._eventBlock._PostInit(!1)}_GetEventVariableNameInScope(a){for(const b of this._functionParameters)if(C3.equalsNoCase(a,b.GetName()))return b;return null}GetFunctionParameters(){return this._functionParameters}EvaluateFunctionParameters(a){const b=this._functionParameters;for(let c=0,d=b.length;ca.GetValue())}GetParent(){return this._parent}GetScopeParent(){return this._parent}GetFunctionName(){return this._functionName}GetReturnType(){return this._returnType}GetDefaultReturnValue(){switch(this._returnType){case 0:return null;case 2:return"";default:return 0;}}GetEventBlock(){return this._eventBlock}}; + +// c3/events/eventVariable.js +"use strict";{const a=[];C3.EventVariable=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetEventSheetManager();this._eventSheet=a,this._eventSheetManager=d,this._runtime=a.GetRuntime(),this._parent=b,this._localVarStack=d.GetLocalVarStack(),this._name=c[1],this._type=c[2],this._initialValue=c[3],this._isStatic=!!c[4],this._isConstant=!!c[5],this._isFunctionParameter=b instanceof C3.FunctionBlock,this._sid=c[6],this._hasSingleValue=!this._parent||this._isStatic||this._isConstant,this._value=this._initialValue,this._localIndex=-1,this.IsBoolean()&&(this._value=this._value?1:0),!this.IsLocal()||this.IsStatic()||this.IsConstant()||(this._localIndex=d._GetNextLocalVarIndex(this)),d._RegisterEventVariable(this)}static Create(a,b,c){return C3.New(C3.EventVariable,a,b,c)}Release(){}_PostInit(){}GetName(){return this._name}GetParent(){return this._parent}IsGlobal(){return!this.GetParent()}IsLocal(){return!this.IsGlobal()}IsFunctionParameter(){return this._isFunctionParameter}IsStatic(){return this._isStatic}IsConstant(){return this._isConstant}IsNumber(){return 0===this._type}IsString(){return 1===this._type}IsBoolean(){return 2===this._type}IsElseBlock(){return!1}GetSID(){return this._sid}GetInitialValue(){return this._initialValue}GetSolModifiers(){return a}Run(){!this.IsLocal()||this.IsStatic()||this.IsConstant()||this.SetValue(this.GetInitialValue())}DebugCanRunFast(){return!0}*DebugRun(a){this.Run(a)}SetValue(a){this.IsNumber()?"number"!=typeof a&&(a=parseFloat(a)):this.IsString()?"string"!=typeof a&&(a=a.toString()):this.IsBoolean()&&(a=a?1:0),this._hasSingleValue?this._value=a:this._localVarStack.GetCurrent()[this._localIndex]=a}GetValue(){return this._hasSingleValue?this._value:this._localVarStack.GetCurrent()[this._localIndex]}GetTypedValue(){let a=this.GetValue();return this.IsBoolean()&&(a=!!a),a}ResetToInitialValue(){this._value=this._initialValue}}} + +// c3/events/eventInclude.js +"use strict";{const a=[];C3.EventInclude=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetEventSheetManager();this._eventSheet=a,this._eventSheetManager=d,this._runtime=a.GetRuntime(),this._parent=b,this._includeSheet=null,this._includeSheetName=c[1],this._isActive=!0}static Create(a,b,c){return C3.New(C3.EventInclude,a,b,c)}Release(){}_PostInit(){this._includeSheet=this._eventSheetManager.GetEventSheetByName(this._includeSheetName);this._eventSheet._AddShallowInclude(this);for(let a=this.GetParent();a;)a instanceof C3.EventBlock&&a.IsGroup()&&a._AddContainedInclude(this),a=a.GetParent();this.UpdateActive(),this._runtime.IsDebug()&&this._eventSheet._GetPerfRecord().children.push(this._includeSheet._GetPerfRecord())}GetParent(){return this._parent}GetSolModifiers(){return a}GetIncludeSheet(){return this._includeSheet}Run(){const a=!!this.GetParent(),b=this._runtime.GetAllObjectClasses();a&&this._eventSheetManager.PushCleanSol(b),this._includeSheet.Run(),a&&this._eventSheetManager.PopSol(b)}*DebugRun(){const a=!!this.GetParent(),b=this._runtime.GetAllObjectClasses();a&&this._eventSheetManager.PushCleanSol(b),yield*this._includeSheet.DebugRun(),a&&this._eventSheetManager.PopSol(b)}DebugCanRunFast(){return!1}IsActive(){return this._isActive}UpdateActive(){for(let a=this.GetParent();a;){if(a instanceof C3.EventBlock&&a.IsGroup()&&!a.IsGroupActive())return void(this._isActive=!1);a=a.GetParent()}this._isActive=!0}}} + +// c3/events/expNode.js +"use strict";{function a(a,b){return a>=b?a%b:0>a?(a<=-b&&(a%=b),0>a&&(a+=b),a):a}C3.ExpNode=class extends C3.DefendedBase{constructor(a){super(),this._owner=a,this._runtime=a.GetRuntime()}_PostInit(){}static CreateNode(a,h){const i=h[0];return C3.New([f,d,e,g,b,c][i],a,h)}};class b extends C3.ExpNode{constructor(a,b){super(a),this._systemPlugin=this._runtime.GetSystemPlugin(),this._func=this._runtime.GetObjectReference(b[1]);(this._func===C3.Plugins.System.Exps.random||this._func===C3.Plugins.System.Exps.choose)&&this._owner.SetVariesPerInstance()}GetBoundMethod(){return this._systemPlugin._GetBoundACEMethod(this._func,this._systemPlugin)}}class c extends C3.ExpNode{constructor(a,b){super(a),this._functionBlock=null,this._functionName=b[1],this._owner.SetVariesPerInstance()}_PostInit(){const a=this._runtime.GetEventSheetManager();this._functionBlock=a.GetFunctionBlockByName(this._functionName);this._functionName=null;const b=this._owner.GetEventBlock(),c=this._functionBlock.GetEventBlock();this._combinedSolModifiers=[...new Set([...b.GetSolModifiersIncludingParents(),...c.GetSolModifiersIncludingParents()])],this._combinedSolModifiers=a._DeduplicateSolModifierList(this._combinedSolModifiers)}GetBoundMethod(){const a=this._functionBlock,b=a.GetEventBlock();return C3.EventBlock.prototype.RunAsExpressionFunctionCall.bind(b,this._combinedSolModifiers,a.GetReturnType(),a.GetDefaultReturnValue())}}class d extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._func=this._runtime.GetObjectReference(b[2]);this._returnsString=!!b[3],this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._owner._MaybeVaryFor(this._objectClass)}GetBoundMethod(){return this._objectClass.GetPlugin()._GetBoundACEMethod(this._func,this._objectClass.GetSingleGlobalInstance().GetSdkInstance())}ExpObject(...b){const c=this._objectClass,d=c.GetCurrentSol().GetExpressionInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(this._owner.GetSolIndex(),e);return this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(c),this._func.apply(d[f].GetSdkInstance(),b)}ExpObject_InstExpr(b,...c){const d=this._objectClass,e=d.GetInstances(),f=e.length;if(0===f)return this._returnsString?"":0;const g=a(b,f);return this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(d),this._func.apply(e[g].GetSdkInstance(),c)}}class e extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._varIndex=b[3],this._returnsString=!!b[2],this._owner._MaybeVaryFor(this._objectClass)}ExpInstVar(){const b=this._objectClass.GetCurrentSol().GetExpressionInstances(),c=b.length;if(0===c)return this._returnsString?"":0;const d=a(this._owner.GetSolIndex(),c);return b[d]._GetInstanceVariableValueUnchecked(this._varIndex)}ExpInstVar_Family(){const b=this._objectClass,c=b.GetCurrentSol().GetExpressionInstances(),d=c.length;if(0===d)return this._returnsString?"":0;const e=a(this._owner.GetSolIndex(),d),f=c[e],g=f.GetObjectClass().GetFamilyInstanceVariableOffset(b.GetFamilyIndex());return f._GetInstanceVariableValueUnchecked(this._varIndex+g)}ExpInstVar_InstExpr(b){const c=this._objectClass,d=c.GetInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(b,e),g=d[f];let h=0;return c.IsFamily()&&(h=g.GetObjectClass().GetFamilyInstanceVariableOffset(c.GetFamilyIndex())),g._GetInstanceVariableValueUnchecked(this._varIndex+h)}}class f extends C3.ExpNode{constructor(a,b){super(a),this._objectClass=this._runtime.GetObjectClassByIndex(b[1]),this._behaviorType=this._objectClass.GetBehaviorTypeByName(b[2]),this._behaviorIndex=this._objectClass.GetBehaviorIndexByName(b[2]),this._func=this._runtime.GetObjectReference(b[3]);this._returnsString=!!b[4],this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._owner._MaybeVaryFor(this._objectClass)}ExpBehavior(...b){const c=this._objectClass,d=c.GetCurrentSol().GetExpressionInstances(),e=d.length;if(0===e)return this._returnsString?"":0;const f=a(this._owner.GetSolIndex(),e);this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(c);const g=d[f];let h=0;return c.IsFamily()&&(h=g.GetObjectClass().GetFamilyBehaviorOffset(c.GetFamilyIndex())),this._func.apply(g.GetBehaviorInstances()[this._behaviorIndex+h].GetSdkInstance(),b)}ExpBehavior_InstExpr(b,...c){const d=this._objectClass,e=d.GetInstances(),f=e.length;if(0===f)return this._returnsString?"":0;const g=a(b,f);this._eventStack.GetCurrentStackFrame().SetExpressionObjectClass(d);const h=e[g];let i=0;return d.IsFamily()&&(i=h.GetObjectClass().GetFamilyBehaviorOffset(d.GetFamilyIndex())),this._func.apply(h.GetBehaviorInstances()[this._behaviorIndex+i].GetSdkInstance(),c)}}class g extends C3.ExpNode{constructor(a,b){super(a),this._eventVar=null,this._eventVarName=b[1]}_PostInit(){this._eventVar=this._runtime.GetEventSheetManager().GetEventVariableByName(this._eventVarName,this._owner.GetEventBlock());this._eventVarName=null}GetVar(){return this._eventVar}}} + +// c3/events/parameter.js +"use strict";{function a(a){const b=self.C3_ExpressionFuncs[a];if(!b)throw new Error("invalid expression number");return b}C3.Parameter=class extends C3.DefendedBase{constructor(a,b,c){super(),this._owner=a,this._index=c,this._type=b,this.Get=null,this._variesPerInstance=!1,this._isConstant=!1}static Create(a,o,p){const q=o[0];return C3.New([b,c,j,e,g,d,h,b,e,e,k,l,j,n,c,i,f,m][q],a,q,p,o)}_PostInit(){}SetVariesPerInstance(){this._variesPerInstance=!0}_MaybeVaryFor(a){!this._variesPerInstance&&a&&(a.GetPlugin().IsSingleGlobal()||(this._variesPerInstance=!0))}VariesPerInstance(){return this._variesPerInstance}GetIndex(){return this._index}GetRuntime(){return this._owner.GetRuntime()}GetEventBlock(){return this._owner.GetEventBlock()}IsConstant(){return this._isConstant}};class b extends C3.Parameter{constructor(b,c,d,e){super(b,c,d),this._solIndex=0;const f=e[1];this._expressionNumber=f[0],this._numberedNodes=[],this._expressionFunc=null;for(let a=1,g=f.length;aa||a>=this._numberedNodes.length)throw new RangeError("invalid numbered node");return this._numberedNodes[a]}_PostInit(){for(const a of this._numberedNodes)a._PostInit();const b=a(this._expressionNumber);this._expressionFunc=this._numberedNodes.length?b(this):b}GetSolIndex(){return this._solIndex}GetExpression(a){return this._solIndex=a,this._expressionFunc()}}class c extends b{constructor(a,b,c,d){super(a,b,c,d),this.Get=this.GetStringExpression,14===b&&(this.GetEventBlock().SetAllSolModifiers(),this._owner instanceof C3.Action&&this.GetEventBlock().SetSolWriterAfterCnds())}GetStringExpression(a){this._solIndex=a;const b=this._expressionFunc();return"string"==typeof b?b:""}_GetFastTriggerValue(){return a(this._expressionNumber)()}}class d extends b{constructor(a,b,c,d){super(a,b,c,d),this.Get=this.GetLayer,this._isConstant=!1}GetLayer(a){this._solIndex=a;const b=this._expressionFunc(),c=this.GetRuntime().GetCurrentLayout();return c.GetLayer(b)}}class e extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._combo=d[1],this.Get=this.GetCombo,this._isConstant=!0}GetCombo(){return this._combo}}class f extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._bool=d[1],this.Get=this.GetBoolean,this._isConstant=!0}GetBoolean(){return this._bool}}class g extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._objectClass=this.GetRuntime().GetObjectClassByIndex(d[1]);this.Get=this.GetObjectClass;const e=this.GetEventBlock();e._AddSolModifier(this._objectClass),this._owner instanceof C3.Action?e.SetSolWriterAfterCnds():e.GetParent()&&e.GetParent().SetSolWriterAfterCnds(),this._isConstant=!0}GetObjectClass(){return this._objectClass}}class h extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._layout=this.GetRuntime().GetLayoutManager().GetLayoutByName(d[1]),this.Get=this.GetLayout,this._isConstant=!0}GetLayout(){return this._layout}}class i extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._timeline=this.GetRuntime().GetTimelineManager().GetTimelineByName(d[1]),this.Get=this.GetTimeline,this._isConstant=!0}GetTimeline(){return this._timeline}}class j extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._fileInfo=d[1],this.Get=this.GetFile,this._isConstant=!0}GetFile(){return this._fileInfo}}class k extends C3.Parameter{constructor(a,b,c,d){super(a,b,c),this._instVarIndex=d[1];const e=this._owner.GetObjectClass();e&&e.IsFamily()?(this.Get=this.GetFamilyInstanceVariable,this.SetVariesPerInstance()):(this.Get=this.GetInstanceVariable,this._isConstant=!0)}GetInstanceVariable(){return this._instVarIndex}GetFamilyInstanceVariable(a){a=a||0;const b=this._owner.GetObjectClass(),c=b.GetCurrentSol(),d=c.GetInstances();let e=null;if(d.length)e=d[a%d.length].GetObjectClass();else if(c.HasAnyElseInstances()){const b=c.GetElseInstances();e=b[a%b.length].GetObjectClass()}else if(0[a[0].GetUID(),a[1].GetUID(),a[2]])),a[b]=d}return{"ex":a}}_LoadFromJson(a){const b=this._runtime,c=a["ex"];if(c){const a=this.GetSavedDataMap();a.clear();for(const[d,e]of Object.entries(c)){let c=e;"collmemory"===d&&(c=C3.New(C3.PairMap,e.map((a)=>[b.GetInstanceByUID(a[0]),b.GetInstanceByUID(a[1]),a[2]]).filter((a)=>a[0]&&a[1]))),a.set(d,c)}}else this._savedData&&(this._savedData.clear(),this._savedData=null)}}} + +// c3/events/action.js +"use strict";{function a(a,b){for(let c=0,d=a.length;ca.VariesPerInstance())?(this.Run=this._RunObject_AllParamsVary,this.DebugRun=this._DebugRunObject_AllParamsVary):this._anyParamVariesPerInstance?(this.Run=this._RunObject_SomeParamsVary,this.DebugRun=this._DebugRunObject_SomeParamsVary):this._parameters.every((a)=>a.IsConstant())?(a(this._parameters,this._results),this.Run=this._RunObject_ParamsConst,this.DebugRun=this._DebugRunObject_ParamsConst):(this.Run=this._RunObject_ParamsDontVary,this.DebugRun=this._DebugRunObject_ParamsDontVary):(this.Run=this._RunObject_ParamsConst,this.DebugRun=this._DebugRunObject_ParamsConst)}_SetSystemRunMethod(){const a=this._systemPlugin,b=this._systemPlugin;this._SetRunMethodForBoundFunc(a,b,this._RunSystem)}_SetSingleGlobalRunMethod(){const a=this._objectClass.GetPlugin(),b=this._objectClass.GetSingleGlobalInstance().GetSdkInstance();this._SetRunMethodForBoundFunc(a,b,this._RunSingleGlobal)}_SetCallFunctionRunMethod(){const a=this._eventBlock.GetEventSheetManager(),b=a.GetFunctionBlockByName(this._callFunctionName);this._callEventBlock=b.GetEventBlock(),this._combinedSolModifiers=[...new Set([...this._eventBlock.GetSolModifiersIncludingParents(),...this._callEventBlock.GetSolModifiersIncludingParents()])],this._combinedSolModifiers=a._DeduplicateSolModifierList(this._combinedSolModifiers),this.Run=C3.EventBlock.prototype.RunAsFunctionCall.bind(this._callEventBlock,this._combinedSolModifiers,this._parameters),this.DebugRun=this._DebugRunCallFunction}_SetRunMethodForBoundFunc(a,b,c){const d=this._func,e=this._parameters;if(0===e.length)this.Run=a._GetBoundACEMethod(d,b);else if(1===e.length){const c=e[0];if(c.IsConstant())this.Run=a._GetBoundACEMethod_1param(d,b,c.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0))}}}else if(2===e.length){const c=e[0],f=e[1];if(c.IsConstant()&&f.IsConstant())this.Run=a._GetBoundACEMethod_2params(d,b,c.Get(0),f.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0),f.Get(0))}}}else if(3===e.length){const c=e[0],f=e[1],g=e[2];if(c.IsConstant()&&f.IsConstant()&&g.IsConstant())this.Run=a._GetBoundACEMethod_3params(d,b,c.Get(0),f.Get(0),g.Get(0));else{const e=a._GetBoundACEMethod(d,b);this.Run=function(){return e(c.Get(0),f.Get(0),g.Get(0))}}}else this.Run=c}GetSID(){return this._sid}GetObjectClass(){return this._objectClass}GetEventBlock(){return this._eventBlock}GetRuntime(){return this._runtime}GetIndex(){return this._index}GetCombinedSolModifiers(){return this._combinedSolModifiers}IsBreakpoint(){return this._debugData.isBreakpoint}_SetBreakpoint(a){this._debugData.isBreakpoint=!!a,this._eventBlock._UpdateCanRunFastRecursive()}_DebugReturnsGenerator(){return this._debugData.canDebug}DebugCanRunFast(){return!this.IsBreakpoint()&&!this._runtime.DebugBreakNext()&&!this._DebugReturnsGenerator()}GetSavedDataMap(){return this._savedData||(this._savedData=new Map),this._savedData}GetUnsavedDataMap(){return this._unsavedData||(this._unsavedData=new Map),this._unsavedData}_RunSystem(){const b=this._results;return a(this._parameters,b),this._func.apply(this._systemPlugin,b)}*_DebugRunSystem(){if((this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this),this._DebugReturnsGenerator()){const b=this._results;a(this._parameters,b);const c=yield*this._func.apply(this._systemPlugin,b);return c}return this.Run()}*_DebugRunCallFunction(){(this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this);const a=yield*this._callEventBlock.DebugRunAsFunctionCall(this._combinedSolModifiers,this._parameters);return a}_RunSingleGlobal(){const b=this._results;return a(this._parameters,b),this._func.apply(this._objectClass.GetSingleGlobalInstance().GetSdkInstance(),b)}*_DebugRunSingleGlobal(){if((this.IsBreakpoint()||this._runtime.DebugBreakNext())&&(yield this),this._DebugReturnsGenerator()){const b=this._results;a(this._parameters,b);const c=yield*this._func.apply(this._objectClass.GetSingleGlobalInstance().GetSdkInstance(),b);return c}return this.Run()}_RunObject_ParamsConst(){const a=this._results,b=this._objectClass.GetCurrentSol().GetInstances();for(let c=0,d=b.length;cc.getRight()||0>c.getBottom()||c.getLeft()>b.GetWidth()||c.getTop()>b.GetHeight()}function e(a,b,c){const d=this.GetCurrentSol(),e=d.GetInstances();if(!e.length)return!1;let f=e[0],g=f.GetWorldInfo(),h=f,j=C3.distanceSquared(g.GetX(),g.GetY(),b,c);for(let d=1,i=e.length;dj)&&(j=i,h=f)}return d.PickOne(h),!0}function f(a){const b=this.GetWorldInfo();b.GetX()===a||(b.SetX(a),b.SetBboxChanged())}function g(a){const b=this.GetWorldInfo();b.GetY()===a||(b.SetY(a),b.SetBboxChanged())}function h(a,b){const c=this.GetWorldInfo();c.EqualsXY(a,b)||(c.SetXY(a,b),c.SetBboxChanged())}function i(a,b){if(a){const c=a.GetPairedInstance(this._inst);if(c){const[a,d]=c.GetImagePoint(b),e=this.GetWorldInfo();e.GetX()===a&&e.GetY()===d||(e.SetXY(a,d),e.SetBboxChanged())}}}function j(a){if(0!==a){const b=this.GetWorldInfo();b.OffsetXY(b.GetCosAngle()*a,b.GetSinAngle()*a),b.SetBboxChanged()}}function k(b,a){if(0!==a){const c=this.GetWorldInfo();b=C3.toRadians(b),c.OffsetXY(Math.cos(b)*a,Math.sin(b)*a),c.SetBboxChanged()}}function l(){return this.GetWorldInfo().GetX()}function m(){return this.GetWorldInfo().GetY()}function n(){return this._runtime.GetDt(this._inst)}function o(a,b){return C3.compare(this.GetWorldInfo().GetWidth(),a,b)}function p(a,b){return C3.compare(this.GetWorldInfo().GetHeight(),a,b)}function q(a){const b=this.GetWorldInfo();b.GetWidth()===a||(b.SetWidth(a),b.SetBboxChanged())}function r(a){const b=this.GetWorldInfo();b.GetHeight()===a||(b.SetHeight(a),b.SetBboxChanged())}function s(a,b){const c=this.GetWorldInfo();c.GetWidth()===a&&c.GetHeight()===b||(c.SetSize(a,b),c.SetBboxChanged())}function t(){return this.GetWorldInfo().GetWidth()}function u(){return this.GetWorldInfo().GetHeight()}function v(){return this.GetWorldInfo().GetBoundingBox().getLeft()}function w(){return this.GetWorldInfo().GetBoundingBox().getTop()}function x(){return this.GetWorldInfo().GetBoundingBox().getRight()}function y(){return this.GetWorldInfo().GetBoundingBox().getBottom()}function z(b,c){return C3.angleDiff(this.GetWorldInfo().GetAngle(),C3.toRadians(c))<=C3.toRadians(b)}function A(b){return C3.angleClockwise(this.GetWorldInfo().GetAngle(),C3.toRadians(b))}function B(c,a){const b=C3.toRadians(c),d=C3.toRadians(a),e=this.GetWorldInfo().GetAngle(),f=!C3.angleClockwise(d,b);return f?C3.angleClockwise(e,b)||!C3.angleClockwise(e,d):C3.angleClockwise(e,b)&&!C3.angleClockwise(e,d)}function C(b){const a=this.GetWorldInfo(),c=C3.clampAngle(C3.toRadians(b));isNaN(c)||a.GetAngle()===c||(a.SetAngle(c),a.SetBboxChanged())}function D(b){if(!(isNaN(b)||0===b)){const a=this.GetWorldInfo();a.SetAngle(a.GetAngle()+C3.toRadians(b)),a.SetBboxChanged()}}function E(b){if(!(isNaN(b)||0===b)){const a=this.GetWorldInfo();a.SetAngle(a.GetAngle()-C3.toRadians(b)),a.SetBboxChanged()}}function F(b,c){const d=this.GetWorldInfo(),e=d.GetAngle(),a=C3.angleRotate(e,C3.toRadians(c),C3.toRadians(b));isNaN(a)||e===a||(d.SetAngle(a),d.SetBboxChanged())}function G(b,c,d){const e=this.GetWorldInfo(),f=e.GetAngle(),a=c-e.GetX(),g=d-e.GetY(),h=Math.atan2(g,a),i=C3.angleRotate(f,h,C3.toRadians(b));isNaN(i)||f===i||(e.SetAngle(i),e.SetBboxChanged())}function H(b,c){const d=this.GetWorldInfo(),e=d.GetAngle(),a=b-d.GetX(),f=c-d.GetY(),g=Math.atan2(f,a);isNaN(g)||e===g||(d.SetAngle(g),d.SetBboxChanged())}function I(){return C3.toDegrees(this.GetWorldInfo().GetAngle())}function J(a,b){return C3.compare(C3.round6dp(100*this.GetWorldInfo().GetOpacity()),a,b)}function K(){return this.GetWorldInfo().IsVisible()}function L(a){const b=this.GetWorldInfo();a=2===a?!b.IsVisible():0!=a;b.IsVisible()===a||(b.SetVisible(a),this._runtime.UpdateRender())}function M(a){const b=C3.clamp(a/100,0,1),c=this.GetWorldInfo();c.GetOpacity()===b||(c.SetOpacity(b),this._runtime.UpdateRender())}function N(a){xa.setFromRgbValue(a);const b=this.GetWorldInfo();b.GetUnpremultipliedColor().equalsIgnoringAlpha(xa)||(b.SetUnpremultipliedColor(xa),this._runtime.UpdateRender())}function O(){return C3.round6dp(100*this.GetWorldInfo().GetOpacity())}function P(a){return!!a&&this.GetWorldInfo().GetLayer()===a}function Q(a){const b=this.GetCurrentSol(),c=b.GetInstances();if(!c.length)return!1;let d=c[0],e=d;for(let b=1,d=c.length;bi||h===i&&f.GetZIndex()>g.GetZIndex())&&(e=d):(hb||b>=f.length)){const g=d.GetShaderProgram().GetParameterType(b);if("color"===g){xa.setFromRgbValue(c);const a=f[b];if(xa.equalsIgnoringAlpha(a))return;a.copyRgb(xa)}else{if("percent"===g&&(c/=100),f[b]===c)return;f[b]=c}e.IsEffectIndexActive(a)&&this._runtime.UpdateRender()}}}function ca(a,b,c){return C3.compare(this.GetInstance().GetInstanceVariableValue(a),b,c)}function da(a){return!!this.GetInstance().GetInstanceVariableValue(a)}function ea(a,b){const c=this.GetCurrentSol(),d=c.GetInstances();if(!d.length)return!1;let e=d[0],f=e,g=e.GetInstanceVariableValue(b);for(let c=1,h=d.length;cg)&&(g=h,f=e)}return c.PickOne(f),!0}function fa(a){return this._runtime.GetCurrentCondition().IsInverted()?ha(this,a):ga(this,a)}function ga(a,b){const c=a.GetRuntime().GetInstanceByUID(b);if(!c)return!1;const d=a.GetCurrentSol();if(!d.IsSelectAll()&&!d._GetOwnInstances().includes(c))return!1;if(a.IsFamily()){if(c.GetObjectClass().BelongsToFamily(a))return d.PickOne(c),a.ApplySolToContainer(),!0;}else if(c.GetObjectClass()===a)return d.PickOne(c),a.ApplySolToContainer(),!0;return!1}function ha(a,b){const c=a.GetCurrentSol();if(c.IsSelectAll()){c._SetSelectAll(!1),c.ClearArrays();const d=a.GetInstances();for(let a=0,e=d.length;athis._eventSheetManager.GetRuntime().GetGameTime())return!1;return!0}_RestoreState(a){a._Restore(this._event,this._actIndex);for(const[b,c]of this._sols.entries()){const a=b.GetCurrentSol();c._Restore(a)}this._callingFunctionBlock&&this._callingFunctionBlock.SetFunctionParameters(this._functionParameters)}_Run(a){this._RestoreState(a),this._event._ResumeActionsAndSubEvents(a),this._eventSheetManager.ClearSol(this._solModifiers),this._shouldRelease=!0}async _DebugRun(a){this._RestoreState(a);for(const b of this._event._DebugResumeActionsAndSubEvents(a))await this._eventSheetManager.GetRuntime().DebugBreak(b);this._eventSheetManager.ClearSol(this._solModifiers),this._shouldRelease=!0}ShouldRelease(){return this._shouldRelease}RemoveInstances(a){for(const b of this._sols.values())b.RemoveInstances(a)}_SaveToJson(){const a={},b={"t":this._time,"st":this._signalTag,"s":this._isSignalled,"ev":this._event.GetSID(),"sm":this._solModifiers.map((a)=>a.GetSID()),"sols":a};this._event._HasActionIndex(this._actIndex)&&(b["act"]=this._event.GetActionAt(this._actIndex).GetSID());for(const[b,c]of this._sols)a[b.GetSID().toString()]=c._SaveToJson();return b}static _CreateFromJson(a,b){const c=a.GetRuntime(),d=a.GetEventBlockBySID(b["ev"]);if(!d)return null;let e=0;if(b.hasOwnProperty("act")){const c=a.GetActionBySID(b["act"]);if(!c)return null;e=c.GetIndex()}const f=C3.New(C3.ScheduledWait,a);f._time=b["t"],f._signalTag=b["st"],f._isSignalled=b["s"],f._event=d,f._actIndex=e;for(const d of b["sm"]){const a=c.GetObjectClassBySID(d);a&&f._solModifiers.push(a)}for(const[d,e]of Object.entries(b["sols"])){const b=parseInt(d,10),g=c.GetObjectClassBySID(b);if(!g)continue;const h=C3.New(C3.SolState,null);h._LoadFromJson(a,e),f._sols.set(g,h)}return f}}; + +// c3/events/solState.js +"use strict";C3.SolState=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=null,this._isSelectAll=!0,this._instances=[],a&&(this._objectClass=a.GetObjectClass(),this._isSelectAll=a.IsSelectAll(),C3.shallowAssignArray(this._instances,a._GetOwnInstances()))}Release(){this._objectClass=null,C3.clearArray(this._instances)}_Restore(a){a._SetSelectAll(this._isSelectAll),C3.shallowAssignArray(a._GetOwnInstances(),this._instances)}RemoveInstances(a){C3.arrayRemoveAllInSet(this._instances,a)}_SaveToJson(){return{"sa":this._isSelectAll,"insts":this._instances.map((a)=>a.GetUID())}}_LoadFromJson(a,b){const c=a.GetRuntime();this._isSelectAll=!!b["sa"],C3.clearArray(this._instances);for(const d of b["insts"]){const a=c.GetInstanceByUID(d);a&&this._instances.push(a)}}}; + +// c3/sdk/sdkPluginBase.js +"use strict";{function a(a,b){let c=a.get(b);return c||(c=new Map,a.set(b,c)),c}C3.SDKPluginBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._isSingleGlobal=!!a.isSingleGlobal,this._isWorldType=!!a.isWorld,this._isRotatable=!!a.isRotatable,this._mustPredraw=!!a.mustPredraw,this._hasEffects=!!a.hasEffects,this._singleGlobalObjectClass=null,this._boundACEMethodCache=new Map,this._boundACEMethodCache_1param=new Map,this._boundACEMethodCache_2params=new Map,this._boundACEMethodCache_3params=new Map}Release(){this._runtime=null}GetRuntime(){return this._runtime}OnCreate(){}IsSingleGlobal(){return this._isSingleGlobal}IsWorldType(){return this._isWorldType}IsRotatable(){return this._isRotatable}MustPreDraw(){return this._mustPredraw}HasEffects(){return this._hasEffects}_GetBoundACEMethod(a,b){if(!b)throw new Error("missing 'this' binding");let c=this._boundACEMethodCache.get(a);return c?c:(c=a.bind(b),this._boundACEMethodCache.set(a,c),c)}_GetBoundACEMethod_1param(b,c,d){if(!c)throw new Error("missing 'this' binding");const e=a(this._boundACEMethodCache_1param,b);let f=e.get(d);return f?f:(f=b.bind(c,d),e.set(d,f),f)}_GetBoundACEMethod_2params(b,c,d,e){if(!c)throw new Error("missing 'this' binding");const f=a(this._boundACEMethodCache_2params,b),g=a(f,d);let h=g.get(e);return h?h:(h=b.bind(c,d,e),g.set(e,h),h)}_GetBoundACEMethod_3params(b,c,d,e,f){if(!c)throw new Error("missing 'this' binding");const g=a(this._boundACEMethodCache_3params,b),h=a(g,d),i=a(h,e);let j=i.get(f);return j?j:(j=b.bind(c,d,e,f),i.set(f,j),j)}_SetSingleGlobalObjectClass(a){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");this._singleGlobalObjectClass=a}GetSingleGlobalObjectClass(){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");return this._singleGlobalObjectClass}GetSingleGlobalInstance(){if(!this.IsSingleGlobal())throw new Error("must be single-global plugin");return this._singleGlobalObjectClass.GetSingleGlobalInstance()}}} + +// c3/sdk/sdkDOMPluginBase.js +"use strict";C3.SDKDOMPluginBase=class extends C3.SDKPluginBase{constructor(a,b){super(a),this._domComponentId=b,this._nextElementId=0,this._instMap=new Map}Release(){super.Release()}_AddElement(a){const b=this._nextElementId++;return this._instMap.set(b,a),b}_RemoveElement(a){this._instMap.delete(a)}AddElementMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,(a)=>{const c=this._instMap.get(a["elementId"]);b(c,a)})}}; + +// c3/sdk/sdkTypeBase.js +"use strict";C3.SDKTypeBase=class extends C3.DefendedBase{constructor(a){super(),this._objectClass=a,this._runtime=a.GetRuntime(),this._plugin=a.GetPlugin()}Release(){this._objectClass=null,this._runtime=null,this._plugin=null}GetObjectClass(){return this._objectClass}GetRuntime(){return this._runtime}GetPlugin(){return this._plugin}GetImageInfo(){return this._objectClass.GetImageInfo()}FinishCondition(){}LoadTextures(){}ReleaseTextures(){}OnDynamicTextureLoadComplete(){}LoadTilePolyData(){}}; + +// c3/sdk/sdkInstanceBase.js +"use strict";C3.SDKInstanceBase=class extends C3.DefendedBase{constructor(a,b){super(),this._inst=a,this._domComponentId=b,this._runtime=a.GetRuntime(),this._objectClass=this._inst.GetObjectClass(),this._sdkType=this._objectClass.GetSdkType(),this._tickFunc=null,this._tick2Func=null,this._isTicking=!1,this._isTicking2=!1,this._disposables=null,this._wasReleased=!1}Release(){this._wasReleased=!0,this._StopTicking(),this._StopTicking2(),this._tickFunc=null,this._tick2Func=null,this._disposables&&(this._disposables.Release(),this._disposables=null),this._inst=null,this._runtime=null,this._objectClass=null,this._sdkType=null}WasReleased(){return this._wasReleased}GetInstance(){return this._inst}GetRuntime(){return this._runtime}GetObjectClass(){return this._objectClass}GetPlugin(){return this._sdkType.GetPlugin()}GetSdkType(){return this._sdkType}Trigger(a){return this._runtime.Trigger(a,this._inst)}DebugTrigger(a){return this._runtime.DebugTrigger(a,this._inst)}TriggerAsync(a){return this._runtime.TriggerAsync(a,this._inst)}FastTrigger(a,b){return this._runtime.FastTrigger(a,this._inst,b)}DebugFastTrigger(a,b){return this._runtime.DebugFastTrigger(a,this._inst,b)}ScheduleTriggers(a){return this._runtime.ScheduleTriggers(a)}AddDOMMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,b)}AddDOMMessageHandlers(a){for(const[b,c]of a)this.AddDOMMessageHandler(b,c)}PostToDOM(a,b){this._runtime.PostComponentMessageToDOM(this._domComponentId,a,b)}PostToDOMAsync(a,b){return this._runtime.PostComponentMessageToDOMAsync(this._domComponentId,a,b)}_PostToDOMMaybeSync(a,b){this._runtime.IsInWorker()?this.PostToDOM(a,b):window["c3_runtimeInterface"]["_OnMessageFromRuntime"]({"type":"event","component":this._domComponentId,"handler":a,"data":b,"responseId":null})}GetCurrentImageInfo(){return null}GetImagePoint(){const a=this._inst.GetWorldInfo();return[a.GetX(),a.GetY()]}Tick(){}Tick2(){}_StartTicking(){this._isTicking||(!this._tickFunc&&(this._tickFunc=()=>this.Tick()),this._runtime.Dispatcher().addEventListener("tick",this._tickFunc),this._isTicking=!0)}_StopTicking(){this._isTicking&&(this._runtime.Dispatcher().removeEventListener("tick",this._tickFunc),this._isTicking=!1)}IsTicking(){return this._isTicking}_StartTicking2(){this._isTicking2||(!this._tick2Func&&(this._tick2Func=()=>this.Tick2()),this._runtime.Dispatcher().addEventListener("tick2",this._tick2Func),this._isTicking2=!0)}_StopTicking2(){this._isTicking2&&(this._runtime.Dispatcher().removeEventListener("tick2",this._tick2Func),this._isTicking2=!1)}IsTicking2(){return this._isTicking2}GetDebuggerProperties(){return[]}SaveToJson(){return null}LoadFromJson(){}LoadTilemapData(){}TestPointOverlapTile(){}GetPropertyValueByIndex(){}SetPropertyValueByIndex(){}SetPropertyOffsetValueByIndex(){}SetPropertyColorOffsetValueByIndex(){}CallAction(a,...b){a.call(this,...b)}CallExpression(a,...b){return a.call(this,...b)}}; + +// c3/sdk/sdkWorldInstanceBase.js +"use strict";C3.SDKWorldInstanceBase=class extends C3.SDKInstanceBase{constructor(a,b){super(a,b),this._worldInfo=a.GetWorldInfo(),this._webglcontextlost_handler=null,this._webglcontextrestored_handler=null}Release(){if(this._webglcontextlost_handler){const a=this._runtime.Dispatcher();a.removeEventListener("webglcontextlost",this._webglcontextlost_handler),a.removeEventListener("webglcontextrestored",this._webglcontextrestored_handler),this._webglcontextlost_handler=null,this._webglcontextrestored_handler=null}this._worldInfo=null,super.Release()}HandleWebGLContextLoss(){if(!this._webglcontextlost_handler){this._webglcontextlost_handler=()=>this.OnWebGLContextLost(),this._webglcontextrestored_handler=()=>this.OnWebGLContextRestored();const a=this._runtime.Dispatcher();a.addEventListener("webglcontextlost",this._webglcontextlost_handler),a.addEventListener("webglcontextrestored",this._webglcontextrestored_handler)}}OnWebGLContextLost(){}OnWebGLContextRestored(){}GetWorldInfo(){return this._worldInfo}}; + +// c3/sdk/sdkDOMInstanceBase.js +"use strict";{const a=C3.New(C3.Rect);C3.SDKDOMInstanceBase=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a,b),this._elementId=this.GetPlugin()._AddElement(this),this._isElementShowing=!0,this._autoFontSize=!1,this._lastRect=C3.New(C3.Rect,0,0,-1,-1);const c=this._runtime.GetCanvasManager();this._lastWindowWidth=c.GetLastWidth(),this._lastWindowHeight=c.GetLastHeight(),this._isPendingUpdateState=!1,this._StartTicking()}Release(){this.GetPlugin()._RemoveElement(this._elementId),this.PostToDOMElement("destroy"),this._elementId=-1,super.Release()}PostToDOMElement(a,b){b||(b={}),b["elementId"]=this._elementId,this.PostToDOM(a,b)}PostToDOMElementAsync(a,b){return b||(b={}),b["elementId"]=this._elementId,this.PostToDOMAsync(a,b)}CreateElement(a){a||(a={});const b=this.GetWorldInfo().IsVisible();a["elementId"]=this._elementId,a["isVisible"]=b,Object.assign(a,this.GetElementState()),this._isElementShowing=!!a["isVisible"],this.PostToDOM("create",a),this._UpdatePosition(!0)}SetElementVisible(a){a=!!a;this._isElementShowing===a||(this._isElementShowing=a,this.PostToDOMElement("set-visible",{"isVisible":a}))}Tick(){this._UpdatePosition(!1)}_UpdatePosition(b){var c=Math.round;const d=this.GetWorldInfo(),e=d.GetLayer(),f=d.GetX(),g=d.GetY();let[h,i]=e.LayerToCanvasCss(f,g),[j,k]=e.LayerToCanvasCss(f+d.GetWidth(),g+d.GetHeight());const l=this._runtime.GetCanvasManager(),m=l.GetCssWidth(),n=l.GetCssHeight();if(!d.IsVisible()||!e.IsVisible()||0>=j||0>=k||h>=m||i>=n)return void this.SetElementVisible(!1);1>h&&(h=1),1>i&&(i=1),j>=m&&(j=m-1),k>=n&&(k=n-1),a.set(h,i,j,k);const o=l.GetLastWidth(),p=l.GetLastHeight();if(!b&&a.equals(this._lastRect)&&this._lastWindowWidth===o&&this._lastWindowHeight===p)return void this.SetElementVisible(!0);this._lastRect.copy(a),this._lastWindowWidth=o,this._lastWindowHeight=p,this.SetElementVisible(!0);let q=null;this._autoFontSize&&(q=e.GetDisplayScale()-.2),this.PostToDOMElement("update-position",{"left":c(this._lastRect.getLeft())+l.GetCanvasClientX(),"top":c(this._lastRect.getTop())+l.GetCanvasClientY(),"width":c(this._lastRect.width()),"height":c(this._lastRect.height()),"fontSize":q})}FocusElement(){this.PostToDOMElement("focus",{"focus":!0})}BlurElement(){this.PostToDOMElement("focus",{"focus":!1})}SetElementCSSStyle(a,b){this.PostToDOMElement("set-css-style",{"prop":C3.CSSToCamelCase(a),"val":b})}UpdateElementState(){this._isPendingUpdateState||(this._isPendingUpdateState=!0,Promise.resolve().then(()=>{this._isPendingUpdateState=!1,this.PostToDOMElement("update-state",this.GetElementState())}))}GetElementState(){}GetElementId(){return this._elementId}}} + +// c3/sdk/sdkBehaviorBase.js +"use strict";C3.SDKBehaviorBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._myObjectClasses=C3.New(C3.ArraySet),this._myInstances=C3.New(C3.ArraySet)}Release(){this._myInstances.Release(),this._myObjectClasses.Release(),this._runtime=null}GetRuntime(){return this._runtime}OnCreate(){}_AddObjectClass(a){this._myObjectClasses.Add(a)}GetObjectClasses(){return this._myObjectClasses.GetArray()}_AddInstance(a){this._myInstances.Add(a)}_RemoveInstance(a){this._myInstances.Delete(a)}GetInstances(){return this._myInstances.GetArray()}}; + +// c3/sdk/sdkBehaviorTypeBase.js +"use strict";C3.SDKBehaviorTypeBase=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.GetRuntime(),this._behaviorType=a,this._objectClass=a.GetObjectClass(),this._behavior=a.GetBehavior(),this._behavior._AddObjectClass(this._objectClass)}Release(){this._runtime=null,this._behaviorType=null,this._objectClass=null,this._behavior=null}GetBehaviorType(){return this._behaviorType}GetObjectClass(){return this._objectClass}GetRuntime(){return this._runtime}GetBehavior(){return this._behavior}}; + +// c3/sdk/sdkBehaviorInstanceBase.js +"use strict";C3.SDKBehaviorInstanceBase=class extends C3.DefendedBase{constructor(a,b){super(),this._behInst=a,this._domComponentId=b,this._inst=a.GetObjectInstance(),this._runtime=a.GetRuntime(),this._behaviorType=a.GetBehaviorType(),this._sdkType=this._behaviorType.GetSdkType(),this._isTicking=!1,this._isTicking2=!1,this._isPostTicking=!1,this._disposables=null}Release(){this._StopTicking(),this._StopTicking2(),this._StopPostTicking(),this._disposables&&(this._disposables.Release(),this._disposables=null),this._behInst=null,this._inst=null,this._runtime=null,this._behaviorType=null,this._sdkType=null}GetBehavior(){return this._behaviorType.GetBehavior()}GetBehaviorInstance(){return this._behInst}GetObjectInstance(){return this._inst}GetObjectClass(){return this._inst.GetObjectClass()}GetWorldInfo(){return this._inst.GetWorldInfo()}GetRuntime(){return this._runtime}GetBehaviorType(){return this._behaviorType}GetSdkType(){return this._sdkType}Trigger(a){return this._runtime.Trigger(a,this._inst)}DebugTrigger(a){return this._runtime.DebugTrigger(a,this._inst)}TriggerAsync(a){return this._runtime.TriggerAsync(a,this._inst)}PostCreate(){}Tick(){}Tick2(){}PostTick(){}_StartTicking(){this._isTicking||(this._runtime._AddBehInstToTick(this),this._isTicking=!0)}_StopTicking(){this._isTicking&&(this._runtime._RemoveBehInstToTick(this),this._isTicking=!1)}IsTicking(){return this._isTicking}_StartTicking2(){this._isTicking2||(this._runtime._AddBehInstToTick2(this),this._isTicking2=!0)}_StopTicking2(){this._isTicking2&&(this._runtime._RemoveBehInstToTick2(this),this._isTicking2=!1)}IsTicking2(){return this._isTicking2}_StartPostTicking(){this._isPostTicking||(this._runtime._AddBehInstToPostTick(this),this._isPostTicking=!0)}_StopPostTicking(){this._isPostTicking&&(this._runtime._RemoveBehInstToPostTick(this),this._isPostTicking=!1)}IsPostTicking(){return this._isPostTicking}GetDebuggerProperties(){return[]}AddDOMMessageHandler(a,b){this._runtime.AddDOMComponentMessageHandler(this._domComponentId,a,b)}OnSpriteFrameChanged(){}SaveToJson(){return null}LoadFromJson(){}GetPropertyValueByIndex(){}SetPropertyValueByIndex(){}SetPropertyOffsetValueByIndex(){}SetPropertyColorOffsetValueByIndex(){}CallAction(a,...b){a.call(this,...b)}CallExpression(a,...b){return a.call(this,...b)}}; + +// c3/objects/pluginManager.js +"use strict";C3.Plugins={},C3.Behaviors={},C3.PluginManager=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._allPlugins=[],this._pluginsByCtor=new Map,this._systemPlugin=null,this._allBehaviors=[],this._behaviorsByCtor=new Map,this._solidBehavior=null,this._jumpthruBehavior=null}CreatePlugin(a){const b=this._runtime.GetObjectReference(a[0]);if(!b)throw new Error("missing plugin");C3.AddCommonACEs(a,b);const c=C3.New(b,{runtime:this._runtime,isSingleGlobal:a[1],isWorld:a[2],isRotatable:a[5],hasEffects:a[8],mustPredraw:a[9]});c.OnCreate(),this._allPlugins.push(c),this._pluginsByCtor.set(b,c)}CreateSystemPlugin(){this._systemPlugin=C3.New(C3.Plugins.System,{runtime:this._runtime,isSingleGlobal:!0}),this._systemPlugin.OnCreate()}CreateBehavior(a){const b=this._runtime.GetObjectReference(a[1]);if(!b)throw new Error("missing behavior");const c=C3.New(b,{runtime:this._runtime});c.OnCreate(),this._allBehaviors.push(c),this._behaviorsByCtor.set(b,c),!this._solidBehavior&&C3.Behaviors.solid&&c instanceof C3.Behaviors.solid?this._solidBehavior=c:!this._jumpthruBehavior&&C3.Behaviors.jumpthru&&c instanceof C3.Behaviors.jumpthru&&(this._jumpthruBehavior=c)}GetPluginByConstructorFunction(a){return this._pluginsByCtor.get(a)||null}HasBehaviorByConstructorFunction(a){return this._behaviorsByCtor.has(a)}GetBehaviorByConstructorFunction(a){return this._behaviorsByCtor.get(a)||null}GetSystemPlugin(){return this._systemPlugin}GetSolidBehavior(){return this._solidBehavior}GetJumpthruBehavior(){return this._jumpthruBehavior}}; + +// c3/objects/imageInfo.js +"use strict";{const a=new Set;C3.ImageInfo=class extends C3.DefendedBase{constructor(){super(),this._url="",this._size=0,this._pixelFormat=0,this._offsetX=0,this._offsetY=0,this._width=0,this._height=0,this._hasMetaData=!1,this._imageAsset=null,this._textureState="",this._rcTex=C3.New(C3.Rect),a.add(this)}Release(){this.ReleaseTexture(),this._imageAsset=null,a.delete(this)}static OnWebGLContextLost(){for(const b of a)b._textureState="",b._rcTex.set(0,0,0,0)}LoadData(a){this._url=a[0],this._size=a[1],this._pixelFormat=a[2],this._offsetX=a[3],this._offsetY=a[4],this._width=a[5],this._height=a[6],this._hasMetaData=!0}LoadAnimationFrameData(a){this._url=a[0],this._size=a[1],this._offsetX=a[2],this._offsetY=a[3],this._width=a[4],this._height=a[5],this._pixelFormat=a[11],this._hasMetaData=!0}LoadDynamicAsset(a,b){if(this._imageAsset)throw new Error("already loaded asset");this._url=b;const c={};return C3.IsAbsoluteURL(b)&&(c.loadPolicy="remote"),this.LoadAsset(a,c),this._imageAsset.Load()}ReplaceWith(a){if(a===this)throw new Error("cannot replace with self");this.ReleaseTexture(),this._url=a._url,this._size=a._size,this._pixelFormat=a._pixelFormat,this._offsetX=a._offsetX,this._offsetY=a._offsetY,this._width=a._width,this._height=a._height,this._hasMetaData=a._hasMetaData,this._imageAsset=a._imageAsset,this._textureState=a._textureState,this._rcTex=a._rcTex}GetURL(){return this._url}GetSize(){return this._size}GetPixelFormat(){return this._pixelFormat}GetOffsetX(){return this._offsetX}GetOffsetY(){return this._offsetY}GetWidth(){return this._width}GetHeight(){return this._height}GetSheetWidth(){return this._imageAsset.GetWidth()}GetSheetHeight(){return this._imageAsset.GetHeight()}LoadAsset(a,b){if(this._imageAsset)throw new Error("already got asset");b=Object.assign({},b,{url:this.GetURL(),size:this.GetSize()}),this._imageAsset=a.LoadImage(b)}async LoadStaticTexture(a,b){if(!this._imageAsset)throw new Error("no asset");if(this._textureState)throw new Error("already loaded texture");this._textureState="loading";const c=await this._imageAsset.LoadStaticTexture(a,b);return c?(this._textureState="loaded",this._hasMetaData||(this._width=c.GetWidth(),this._height=c.GetHeight(),this._hasMetaData=!0),this._rcTex.set(this._offsetX,this._offsetY,this._offsetX+this._width,this._offsetY+this._height),this._rcTex.divide(c.GetWidth(),c.GetHeight()),c):(this._textureState="",null)}ReleaseTexture(){this._textureState&&(this._imageAsset&&this._imageAsset.ReleaseTexture(),this._textureState="",this._rcTex.set(0,0,0,0))}GetTexture(){return this._imageAsset?this._imageAsset.GetTexture():null}GetTexRect(){return this._rcTex}async ExtractImageToCanvas(){const a=await this._imageAsset.LoadToDrawable(),b=C3.CreateCanvas(this._width,this._height),c=b.getContext("2d");return c.drawImage(a,this._offsetX,this._offsetY,this._width,this._height,0,0,this._width,this._height),b}}} + +// c3/objects/animationInfo.js +"use strict";C3.AnimationInfo=class extends C3.DefendedBase{constructor(a){super(),this._name=a[0],this._speed=a[1],this._isLooping=!!a[2],this._repeatCount=a[3],this._repeatTo=a[4],this._isPingPong=!!a[5],this._sid=a[6],this._frames=a[7].map((a)=>C3.New(C3.AnimationFrameInfo,a))}Release(){for(const a of this._frames)a.Release();C3.clearArray(this._frames)}LoadAllAssets(a){for(const b of this._frames)b.GetImageInfo().LoadAsset(a)}LoadAllTextures(a,b){return Promise.all(this._frames.map((c)=>c.GetImageInfo().LoadStaticTexture(a,b)))}ReleaseAllTextures(){for(const a of this._frames)a.GetImageInfo().ReleaseTexture()}GetName(){return this._name}GetSID(){return this._sid}GetFrameCount(){return this._frames.length}GetFrames(){return this._frames}GetFrameAt(a){if(a=Math.floor(a),0>a||a>=this._frames.length)throw new RangeError("invalid frame");return this._frames[a]}GetSpeed(){return this._speed}IsLooping(){return this._isLooping}GetRepeatCount(){return this._repeatCount}GetRepeatTo(){return this._repeatTo}IsPingPong(){return this._isPingPong}}; + +// c3/objects/animationFrameInfo.js +"use strict";C3.AnimationFrameInfo=class extends C3.DefendedBase{constructor(a){super(),this._imageInfo=C3.New(C3.ImageInfo),this._imageInfo.LoadAnimationFrameData(a),this._duration=a[6],this._origin=C3.New(C3.Vector2,a[7],a[8]),this._imagePoints=a[9].map((a)=>C3.New(C3.ImagePoint,this,a)),this._imagePointsByName=new Map;for(const b of this._imagePoints)this._imagePointsByName.set(b.GetName().toLowerCase(),b);this._collisionPoly=null;const b=a[10];6<=b.length&&(this._collisionPoly=C3.New(C3.CollisionPoly,b))}Release(){this._collisionPoly&&(this._collisionPoly.Release(),this._collisionPoly=null),this._imageInfo.Release(),this._imageInfo=null}GetImageInfo(){return this._imageInfo}GetDuration(){return this._duration}GetOriginX(){return this._origin.getX()}GetOriginY(){return this._origin.getY()}GetCollisionPoly(){return this._collisionPoly}GetImagePointByName(a){return this._imagePointsByName.get(a.toLowerCase())||null}GetImagePointByIndex(a){return a=Math.floor(a),0>a||a>=this._imagePoints.length?null:this._imagePoints[a]}GetImagePointCount(){return this._imagePoints.length}}; + +// c3/objects/imagePoint.js +"use strict";C3.ImagePoint=class extends C3.DefendedBase{constructor(a,b){super(),this._afi=a,this._name=b[0],this._pos=C3.New(C3.Vector2,b[1],b[2])}Release(){}GetName(){return this._name}GetX(){return this._pos.getX()}GetY(){return this._pos.getY()}GetVec2(){return this._pos}}; + +// c3/objects/objectClass.js +"use strict";C3.ObjectClass=class extends C3.DefendedBase{constructor(a,b,c){super();const d=a.GetObjectReference(c[1]);if(this._runtime=a,this._plugin=a.GetPluginManager().GetPluginByConstructorFunction(d),this._sdkType=null,this._instSdkCtor=d.Instance,this._index=b,this._sid=c[11],this._name=c[0],this._isGlobal=!!c[9],this._isFamily=!!c[2],this._isOnLoaderLayout=!!c[10],this._instVarSids=c[3].map((a)=>a[0]),this._instVarTypes=c[3].map((a)=>a[1]),this._instVarNames=null,a.IsPreview()&&(this._instVarNames=c[3].map((a)=>a[2])),this._behaviorsCount=c[4],this._effectsCount=c[5],this._isWorldType=this._plugin.IsWorldType(),this._effectList=null,this._collisionGrid=C3.New(C3.SparseGrid,a.GetOriginalViewportWidth(),a.GetOriginalViewportHeight()),this._anyCollisionCellChanged=!0,this._anyInstanceParallaxed=!1,this._familyMembers=null,this._familyMembersSet=null,this._familyIndex=-1,this._families=null,this._familiesSet=null,this._familyInstVarMap=null,this._familyBehaviorMap=null,this._familyEffectMap=null,this._isInContainer=!1,this._container=null,this._behaviorTypes=c[8].map((a)=>C3.BehaviorType.Create(this,a)),this._behaviorTypesIncludingInherited=[],this._behaviorsByName=new Map,this._behaviorNameToIndex=new Map,this._usedBehaviorCtors=new Set,this._solStack=C3.New(C3.SolStack,this),this._defaultInstanceData=null,this._defaultLayerIndex=0,this._isContained=!1,this._container=null,this._imageInfo=null,this._animations=null,this._animationsByName=null,this._animationsBySid=null,this._textureRefCount=0,this._savedData=new Map,this._unsavedData=new Map,this._instances=[],this._iidsStale=!0,this._plugin.HasEffects()&&(this._effectList=C3.New(C3.EffectList,this,c[12])),c[6]&&(this._imageInfo=C3.New(C3.ImageInfo),this._imageInfo.LoadData(c[6])),c[7]){this._animations=c[7].map((a)=>C3.New(C3.AnimationInfo,a)),this._animationsByName=new Map,this._animationsBySid=new Map;for(const a of this._animations)this._animationsByName.set(a.GetName().toLowerCase(),a),this._animationsBySid.set(a.GetSID(),a)}this._isFamily?(this._familyMembers=[],this._familyMembersSet=new Set,this._familyIndex=this._runtime._GetNextFamilyIndex()):(this._families=[],this._familiesSet=new Set,this._familyInstVarMap=[],this._familyBehaviorMap=[],this._familyEffectMap=[]),this._sdkType=C3.New(d.Type,this),c[13]&&c[13].length&&this._sdkType.LoadTilePolyData(c[13]),(!this._runtime.UsesLoaderLayout()||this._isFamily||this._isOnLoaderLayout||!this._isWorldType)&&this.OnCreate(),this._plugin.IsSingleGlobal()&&(this._plugin._SetSingleGlobalObjectClass(this),this._CreateSingleGlobalInstance(c))}static Create(a,b,c){return C3.New(C3.ObjectClass,a,b,c)}Release(){if(this._imageInfo&&(this._imageInfo.Release(),this._imageInfo=null),this._animations){for(const b of this._animations)b.Release();C3.clearArray(this._animations),this._animationsByName.clear(),this._animationsBySid.clear()}this._solStack.Release(),this._solStack=null,this._savedData.clear(),this._unsavedData.clear(),this._container=null,this._runtime=null}_LoadFamily(a){for(let b=1,c=a.length;bthis._textureRefCount)throw new Error("released textures too many times");0===this._textureRefCount&&this._sdkType.ReleaseTextures()}}OnDynamicTextureLoadComplete(){if(this._isFamily)throw new Error("not applicable to family");this._sdkType.OnDynamicTextureLoadComplete()}GetRuntime(){return this._runtime}GetPlugin(){return this._plugin}GetInstanceSdkCtor(){return this._instSdkCtor}GetName(){return this._name}GetIndex(){return this._index}GetSID(){return this._sid}IsFamily(){return this._isFamily}IsGlobal(){return this._isGlobal}IsWorldType(){return this._isWorldType}GetFamilyIndex(){return this._familyIndex}GetBehaviorTypes(){return this._behaviorTypes}GetBehaviorTypesCount(){return this._behaviorsCount}UsesBehaviorByCtor(a){return a&&this._usedBehaviorCtors.has(a)}GetInstanceVariablesCount(){return this._instVarSids.length}GetInstanceVariableSIDs(){return this._instVarSids}GetInstanceVariableIndexBySID(a){return this._instVarSids.indexOf(a)}_GetAllInstanceVariableNames(){return this._instVarNames}GetInstanceVariableType(a){if(a=Math.floor(a),0>a||a>=this._instVarTypes.length)throw new RangeError("invalid instance variable index");return this._instVarTypes[a]}GetEffectTypesCount(){return this._effectsCount}GetBehaviorTypesIncludingInherited(){return this._behaviorTypesIncludingInherited}GetBehaviorTypeByName(a){return this._behaviorsByName.get(a.toLowerCase())||null}GetBehaviorIndexByName(a){const b=this._behaviorNameToIndex.get(a.toLowerCase());return"undefined"==typeof b?-1:b}GetEffectList(){return this._effectList}HasEffects(){return this._plugin.HasEffects()}GetSolStack(){return this._solStack}GetCurrentSol(){return this._solStack.GetCurrentSol()}GetImageInfo(){return this._imageInfo}SetDefaultInstanceData(a){this._defaultInstanceData=a}GetDefaultInstanceData(){return this._defaultInstanceData}_SetDefaultLayerIndex(a){this._defaultLayerIndex=a}GetDefaultLayerIndex(){return this._defaultLayerIndex}GetAnimations(){return this._animations}GetAnimationCount(){return this._animations.length}GetFamilies(){return this._families}BelongsToFamily(a){return this._familiesSet.has(a)}GetFamilyMembers(){return this._familyMembers}FamilyHasMember(a){return this._familyMembersSet.has(a)}GetFamilyBehaviorOffset(a){return this._familyBehaviorMap[a]}GetFamilyInstanceVariableOffset(a){return this._familyInstVarMap[a]}GetAnimationByName(a){if(!this._animations)throw new Error("no animations");return this._animationsByName.get(a.toLowerCase())||null}GetAnimationBySID(a){if(!this._animations)throw new Error("no animations");return this._animationsBySid.get(a)||null}GetFirstAnimationFrame(){if(!this._animations)throw new Error("no animations");return this._animations[0].GetFrameAt(0)}GetDefaultInstanceSize(){if(this._animations){const a=this.GetFirstAnimationFrame().GetImageInfo();return[a.GetWidth(),a.GetHeight()]}return this._imageInfo?[this._imageInfo.GetWidth(),this._imageInfo.GetHeight()]:[100,100]}GetSingleGlobalInstance(){if(!this._plugin.IsSingleGlobal())throw new Error("not a single-global plugin");return this._instances[0]}GetInstances(){return this._instances}GetInstanceCount(){return this._instances.length}_AddInstance(a){this._instances.push(a)}_SetIIDsStale(){this._iidsStale=!0}_UpdateIIDs(){if(this._iidsStale&&!this._isFamily){const a=this._instances;let b=0;for(let c=a.length;ba.SaveToJson())};return this._savedData&&this._savedData.size&&(a["ex"]=C3.ToSuperJSON(this._savedData)),a}_LoadFromJson(a){this._savedData&&(this._savedData.clear(),this._savedData=null);const b=a["ex"];b&&(this._savedData=C3.FromSuperJSON(b));const c=this._instances,d=a["instances"];for(let b=0,e=Math.min(c.length,d.length);ba.IsWorldType())}}; + +// c3/objects/instance.js +"use strict";{let a=0;C3.Instance=class extends C3.DefendedBase{constructor(b){if(super(),this._runtime=b.runtime,this._objectType=b.objectType,this._plugin=this._objectType.GetPlugin(),this._mustPreDraw=this._plugin.MustPreDraw(),this._iid=0,this._uid=b.uid,this._puid=0,this._sequenceId=a++,this._isDestroyed=!1,this._instVarValues=[],this._behaviorInstances=this._objectType.GetBehaviorTypesIncludingInherited().map((a,b)=>C3.New(C3.BehaviorInstance,{runtime:this._runtime,behaviorType:a,instance:this,index:b})),this._worldInfo=null,this._timeScale=-1,this._sdkInst=null,this._savedData=null,this._unsavedData=null,this._hasTilemap=!1,this._isInContainer=this._objectType.IsInContainer(),this._siblings=this._isInContainer?[]:null,this._dispatcher=null,this._plugin.IsWorldType())if(this._worldInfo=C3.New(C3.WorldInfo,this,b.layer),b.worldData)this._worldInfo.Init(b.worldData);else{const[a,b]=this._objectType.GetDefaultInstanceSize();this._worldInfo.SetSize(a,b),this._worldInfo.GetInstanceEffectList().LoadDefaultEffectParameters()}b.instVarData?this._LoadInstanceVariableData(b.instVarData):this._LoadDefaultInstanceVariables()}Release(){for(const a of this._behaviorInstances)a.Release();C3.clearArray(this._behaviorInstances),this._sdkInst.Release(),this._sdkInst=null,this._savedData&&this._savedData.clear(),this._unsavedData&&this._unsavedData.clear(),this._siblings&&C3.clearArray(this._siblings),this._dispatcher&&(this._dispatcher.Release(),this._dispatcher=null),this._runtime=null,this._objectType=null,this._plugin=null,C3.clearArray(this._instVarValues),this._worldInfo&&(this._worldInfo.Release(),this._worldInfo=null)}_LoadInstanceVariableData(a){C3.shallowAssignArray(this._instVarValues,a)}_LoadDefaultInstanceVariables(){const a=[0,0,""];for(let b=0,c=this._objectType.GetInstanceVariablesCount();ba||!isFinite(a))&&(a=0),this._timeScale=a}RestoreTimeScale(){this._timeScale=-1}MustPreDraw(){return this._mustPreDraw}Dispatcher(){return this._dispatcher||(this._dispatcher=C3.New(C3.Event.Dispatcher)),this._dispatcher}Draw(a){this._sdkInst.Draw(a)}OnCreate(a){this._sdkInst.OnCreate(a)}_SetHasTilemap(){this._hasTilemap=!0}HasTilemap(){return this._hasTilemap}GetCurrentImageInfo(){return this._sdkInst.GetCurrentImageInfo()}GetImagePoint(a){return this._sdkInst.GetImagePoint(a)}GetObjectClass(){return this._objectType}BelongsToObjectClass(a){return a.IsFamily()?a.FamilyHasMember(this.GetObjectClass()):this.GetObjectClass()===a}IsInContainer(){return this._isInContainer}_AddSibling(a){this._siblings.push(a)}GetSiblings(){return this._siblings}siblings(){return this._siblings}SetSiblingsSinglePicked(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol().SetSinglePicked(a)}_PushSiblingsToSolInstances(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol()._PushInstance(a)}_SetSiblingsToSolInstancesIndex(a){for(const b of this.siblings())b.GetObjectClass().GetCurrentSol()._GetOwnInstances()[a]=b}_PushSiblingsToSolElseInstances(){for(const a of this.siblings())a.GetObjectClass().GetCurrentSol()._PushElseInstance(a)}_SetSiblingsToSolElseInstancesIndex(a){for(const b of this.siblings())b.GetObjectClass().GetCurrentSol()._GetOwnElseInstances()[a]=b}GetPlugin(){return this._plugin}_SetIID(a){this._iid=a}GetIID(){return this._objectType._UpdateIIDs(),this._iid}GetUID(){return this._uid}_GetSequenceID(){return this._sequenceId}GetBehaviorInstances(){return this._behaviorInstances}GetBehaviorInstanceFromCtor(a){if(!a)return null;for(const b of this._behaviorInstances)if(b.GetBehavior()instanceof a)return b;return null}GetBehaviorSdkInstanceFromCtor(a){if(!a)return null;const b=this.GetBehaviorInstanceFromCtor(a);return b?b.GetSdkInstance():null}GetBehaviorIndexBySID(a){const b=this._behaviorInstances;for(let c=0,d=b.length;ca||a>=b.length)throw new RangeError("invalid instance variable");return b[a]}_GetInstanceVariableValueUnchecked(a){return this._instVarValues[a]}SetInstanceVariableValue(a,b){a|=0;const c=this._instVarValues;if(0>a||a>=c.length)throw new RangeError("invalid instance variable");const d=c[a];if("number"==typeof d)c[a]="number"==typeof b?b:parseFloat(b);else if("boolean"==typeof d)c[a]="boolean"==typeof b?b:!!b;else if("string"==typeof d)c[a]="string"==typeof b?b:b.toString();else throw new Error("unknown instance variable type")}SetInstanceVariableOffset(a,b){if(0!==b){a|=0;const c=this._instVarValues;if(0>a||a>=c.length)throw new RangeError("invalid instance variable");const d=c[a];if("number"==typeof d)c[a]+="number"==typeof b?b:parseFloat(b);else if("boolean"==typeof d)throw new Error("can not set offset of boolean variable");else if("string"==typeof d)throw new Error("can not set offset of string variable");else throw new Error("unknown instance variable type")}}GetSavedDataMap(){return this._savedData||(this._savedData=new Map),this._savedData}GetUnsavedDataMap(){return this._unsavedData||(this._unsavedData=new Map),this._unsavedData}_TriggerOnCreated(){this._runtime.Trigger(this.GetPlugin().constructor.Cnds.OnCreated,this)}_TriggerOnDestroyed(){this._runtime.Trigger(this.GetPlugin().constructor.Cnds.OnDestroyed,this)}_MarkDestroyed(){this._isDestroyed=!0}IsDestroyed(){return this._isDestroyed}_GetDebuggerProperties(){return this._sdkInst.GetDebuggerProperties()}SaveToJson(a){const b={};if(a?b["c3"]=!0:b["uid"]=this.GetUID(),this._savedData&&this._savedData.size&&(b["ex"]=C3.ToSuperJSON(this._savedData)),-1!==this.GetTimeScale()&&(b["mts"]=this.GetTimeScale()),0d||d>=this._instVarValues.length)continue;let e=b;null===e&&(e=NaN),this._instVarValues[d]=e}if(this._plugin.IsWorldType()){const c=a["w"],d=c["l"];if(this._worldInfo.GetLayer().GetSID()!==d){const a=this._worldInfo.GetLayer(),c=a.GetLayout().GetLayerBySID(d);c?(this._worldInfo._SetLayer(c),a._RemoveInstance(this,!0),c._AddInstance(this,!0),c.SetZIndicesChanged(),this._worldInfo.SetBboxChanged()):!b&&this._runtime.DestroyInstance(this)}this._worldInfo._LoadFromJson(c)}const e=a["behs"];if(e)for(const[a,b]of Object.entries(e)){const c=parseInt(a,10),d=this.GetBehaviorIndexBySID(c);0>d||d>=this._behaviorInstances.length||this._behaviorInstances[d].LoadFromJson(b)}const f=a["data"];f&&this._sdkInst.LoadFromJson(f)}}} + +// c3/objects/worldInfo.js +"use strict";{const a=C3.New(C3.Rect),b=C3.New(C3.Rect),c=C3.New(C3.Event,"bboxchange",!1);C3.WorldInfo=class extends C3.DefendedBase{constructor(a,b){super(),this._inst=a,this._objectClass=a.GetObjectClass(),this._runtime=a.GetRuntime(),this._layer=b,this._zIndex=-1,this._isVisible=!0,this._x=0,this._y=0,this._zElevation=0,this._w=0,this._h=0,this._a=0,this._sinA=0,this._cosA=1,this._ox=0,this._oy=0,this._bboxChanged=!0,this._boundingBox=new C3.Rect,this._boundingQuad=new C3.Quad,this._enableBboxChangeEvent=!1,this._isCollisionEnabled=!0,this._isCollisionCellChanged=!0,this._collisionCells=C3.New(C3.Rect,0,0,-1,-1),this._renderCells=C3.New(C3.Rect,0,0,-1,-1),this._sourceCollisionPoly=null,this._transformedCollisionPoly=C3.New(C3.CollisionPoly),this._polyWidth=-1,this._polyHeight=-1,this._polyAngle=0,this._solidFilterInclusive=!1,this._solidFilterTags=null,this._color=C3.New(C3.Color,1,1,1,1),this._colorPremultiplied=C3.New(C3.Color,1,1,1,1),this._hasDefaultColor=!0,this._blendMode=-1,this._srcBlend=0,this._destBlend=0,this._stateGroup=null,this._instanceEffectList=null,this._hasAnyActiveEffect=!1,this._inst.GetObjectClass().HasEffects()&&(this._instanceEffectList=C3.New(C3.InstanceEffectList,this._inst,this)),this.SetBlendMode(0)}Release(){this._stateGroup&&(this._runtime.GetWebGLRenderer().ReleaseStateGroup(this._stateGroup),this._stateGroup=null),this._sourceCollisionPoly=null,this._transformedCollisionPoly.Release(),this._transformedCollisionPoly=null,this._solidFilterTags&&(this._solidFilterTags.clear(),this._solidFilterTags=null),this._inst=null,this._objectClass=null,this._runtime=null,this._layer=null}Init(a){this.SetX(a[0]),this.SetY(a[1]),this.SetZElevation(a[2]),this.SetWidth(a[3]),this.SetHeight(a[4]),this.SetAngle(a[6]),this._color.setFromJSON(a[7]),this.SetOriginX(a[8]),this.SetOriginY(a[9]),this.SetBlendMode(a[10]),this._instanceEffectList&&this._instanceEffectList._LoadEffectParameters(a[12]),this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup()}GetInstance(){return this._inst}SetX(a){this._x=+a}OffsetX(a){this._x+=+a}GetX(){return this._x}SetY(a){this._y=+a}OffsetY(a){this._y+=+a}GetY(){return this._y}SetXY(a,b){this._x=+a,this._y=+b}OffsetXY(a,b){this._x+=+a,this._y+=+b}EqualsXY(a,b){return this._x===a&&this._y===b}SetZElevation(a){if(a=+a,this._zElevation!==a){this._zElevation=a,this._UpdateWebGLStateGroup();const b=this.GetLayer();0!==this._zElevation&&b._SetAnyInstanceZElevated(),b.SetZIndicesChanged()}}GetZElevation(){return this._zElevation}GetTotalZElevation(){return this.GetLayer().GetZElevation()+this.GetZElevation()}SetWidth(a){this._w=+a}OffsetWidth(a){this._w+=+a}GetWidth(){return this._w}SetHeight(a){this._h=+a}OffsetHeight(a){this._h+=+a}GetHeight(){return this._h}SetSize(a,b){this._w=+a,this._h=+b}SetAngle(b){b=C3.clampAngle(+b);this._a===b||(this._a=b,this._sinA=Math.sin(b),this._cosA=Math.cos(b))}OffsetAngle(b){b=+b;0===b||this.SetAngle(this._a+b)}GetAngle(){return this._a}GetSinAngle(){return this._sinA}GetCosAngle(){return this._cosA}SetOriginX(a){this._ox=+a}OffsetOriginX(a){this._ox+=+a}GetOriginX(){return this._ox}SetOriginY(a){this._oy=+a}OffsetOriginY(a){this._oy+=+a}GetOriginY(){return this._oy}SetOpacity(a){a=C3.clamp(a,0,1);this._color.a===a||(this._color.a=a,this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}OffsetOpacity(a){if(0!==a){const b=this._color.a;this._color.a+=a,this._color.a===b||(this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}}GetOpacity(){return this._color.a}SetUnpremultipliedColor(a){this._color.equalsIgnoringAlpha(a)||(this._color.copyRgb(a),this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}SetUnpremultipliedColorRGB(a,c,d){const b=this._color;b.r===a&&b.g===c&&b.b===d||(b.r=a,b.g=c,b.b=d,this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}OffsetUnpremultipliedColorRGB(a,c,d){if(0!==a||0!==c||0!==d){const b=this._color,e=b.r,f=b.g,g=b.b;b.r+=a,b.g+=c,b.b+=d,b.r===e&&b.g===f&&b.b===g||(this._UpdatePremultipliedColor(),this._UpdateWebGLStateGroup())}}GetUnpremultipliedColor(){return this._color}_UpdatePremultipliedColor(){const a=this._color,b=this._colorPremultiplied;this._hasDefaultColor=a.equalsRgba(1,1,1,1),b.set(a),b.premultiply()}GetPremultipliedColor(){return this._colorPremultiplied}_UpdateWebGLStateGroup(){const a=this._runtime.GetWebGLRenderer();this._stateGroup&&a.ReleaseStateGroup(this._stateGroup),this._stateGroup=a.AcquireStateGroup(a.GetTextureFillShaderProgram()||"",this._srcBlend,this._destBlend,this._colorPremultiplied,this._zElevation)}GetWebGLStateGroup(){return this._stateGroup}HasDefaultColor(){return this._hasDefaultColor}SetBlendMode(a){if(this._blendMode!==a){this._blendMode=a;const b=this._runtime.GetWebGLRenderer();if(b){const c=b.GetBlendByIndex(a);this._srcBlend=c.srcBlend,this._destBlend=c.destBlend}this._UpdateWebGLStateGroup()}}GetBlendMode(){return this._blendMode}GetSrcBlend(){return this._srcBlend}GetDestBlend(){return this._destBlend}_SetLayer(a){this._layer=a,0!==this.GetZElevation()&&this._layer._SetAnyInstanceZElevated()}GetLayer(){return this._layer}GetLayout(){return this.GetLayer().GetLayout()}_SetZIndex(a){this._zIndex=0|a}GetZIndex(){return this._layer._UpdateZIndices(),this._zIndex}_GetLastCachedZIndex(){return this._zIndex}IsVisible(){return this._isVisible}SetVisible(a){this._isVisible=!!a}IsCollisionEnabled(){return this._isCollisionEnabled}SetCollisionEnabled(a){a=!!a;this._isCollisionEnabled===a||(this._isCollisionEnabled=a,a?this.SetBboxChanged():this._RemoveFromCollisionCells())}SetSolidCollisionFilter(a,b){if(this._solidFilterInclusive=!!a,this._solidFilterTags&&this._solidFilterTags.clear(),!b.trim())return void(this._solidFilterTags=null);this._solidFilterTags||(this._solidFilterTags=new Set);for(const c of b.split(" "))c&&this._solidFilterTags.add(c.toLowerCase())}IsSolidCollisionAllowed(a){const b=this._solidFilterInclusive,c=this._solidFilterTags;if(!a||!c)return!b;for(const d of c)if(a.has(d))return b;return!b}SetBboxChanged(){this._bboxChanged=!0,this._isCollisionCellChanged=!0,this._objectClass._SetAnyCollisionCellChanged(!0),this._runtime.UpdateRender(),this._layer.UsesRenderCells()&&(this._CalculateBbox(),this._UpdateRenderCell()),this._enableBboxChangeEvent&&this._inst.Dispatcher().dispatchEvent(c)}_CalculateBbox(){const a=this._boundingBox,b=this._boundingQuad,c=this._x,d=this._y,e=this._w,f=this._h;a.setWH(c-this._ox*e,d-this._oy*f,e,f),0===this._a?b.setFromRect(a):(a.offset(-c,-d),b.setFromRotatedRectPrecalc(a,this._sinA,this._cosA),b.offset(c,d),b.getBoundingBox(a)),a.normalize(),this._bboxChanged=!1}_UpdateBbox(){this._bboxChanged&&this._CalculateBbox()}GetBoundingBox(){return this._UpdateBbox(),this._boundingBox}GetBoundingQuad(){return this._UpdateBbox(),this._boundingQuad}OverwriteBoundingBox(a){this._boundingBox.copy(a),this._boundingQuad.setFromRect(this._boundingBox),this._bboxChanged=!1,this._UpdateCollisionCell(),this._UpdateRenderCell()}SetBboxChangeEventEnabled(a){this._enableBboxChangeEvent=!!a}IsBboxChangeEventEnabled(){return this._enableBboxChangeEvent}IsInViewport(a){return 0===this._zElevation?a.intersectsRect(this.GetBoundingBox()):this._IsInViewport_ZElevated()}_IsInViewport_ZElevated(){const a=this.GetLayer(),c=this.GetTotalZElevation();return!(c>=a.GetCameraZ())&&(a.GetViewportForZ(c,b),b.intersectsRect(this.GetBoundingBox()))}SetSourceCollisionPoly(a){this._sourceCollisionPoly=a,this._polyWidth=-1,this._polyHeight=-1,this._polyAngle=0}GetSourceCollisionPoly(){return this._sourceCollisionPoly}HasOwnCollisionPoly(){return!!this._sourceCollisionPoly}GetTransformedCollisionPoly(){return this._GetCustomTransformedCollisionPolyPrecalc(this.GetWidth(),this.GetHeight(),this.GetAngle(),this.GetSinAngle(),this.GetCosAngle())}GetCustomTransformedCollisionPoly(b,c,d){let a=0,e=1;return 0!==d&&(a=Math.sin(d),e=Math.cos(d)),this._GetCustomTransformedCollisionPolyPrecalc(b,c,d,a,e)}_GetCustomTransformedCollisionPolyPrecalc(b,c,d,a,e){return this._polyWidth===b&&this._polyHeight===c&&this._polyAngle===d?this._transformedCollisionPoly:(this._sourceCollisionPoly?(this._transformedCollisionPoly.copy(this._sourceCollisionPoly),this._transformedCollisionPoly.transformPrecalc(b,c,a,e)):this._transformedCollisionPoly.setFromQuad(this.GetBoundingQuad(),-this.GetX(),-this.GetY()),this._polyWidth=b,this._polyHeight=c,this._polyAngle=d,this._transformedCollisionPoly)}HasTilemap(){return this._inst.HasTilemap()}ContainsPoint(a,b){return!!this.GetBoundingBox().containsPoint(a,b)&&!!this.GetBoundingQuad().containsPoint(a,b)&&(this.HasTilemap()?this._inst.GetSdkInstance().TestPointOverlapTile(a,b):!this.HasOwnCollisionPoly()||this.GetTransformedCollisionPoly().containsPoint(a-this.GetX(),b-this.GetY()))}_UpdateCollisionCell(){if(this._isCollisionCellChanged&&this._isCollisionEnabled){const b=this.GetBoundingBox(),c=this._objectClass._GetCollisionCellGrid(),d=this._collisionCells;if(a.set(c.XToCell(b.getLeft()),c.YToCell(b.getTop()),c.XToCell(b.getRight()),c.YToCell(b.getBottom())),!d.equals(a)){const b=this._inst;d.getRight()=this._renderCells.getLeft()}GetRenderCellRange(){return this._renderCells}GetInstanceEffectList(){return this._instanceEffectList}_SetHasAnyActiveEffect(a){this._hasAnyActiveEffect=!!a}HasAnyActiveEffect(){return this._hasAnyActiveEffect}SaveGeometryState(){this._UpdateBbox();const a=this._boundingBox,b=this._boundingQuad;return[this._x,this._y,this._w,this._h,this._a,this._ox,this._oy,a.getLeft(),a.getTop(),a.getRight(),a.getBottom(),b.getTlx(),b.getTly(),b.getTrx(),b.getTry(),b.getBrx(),b.getBry(),b.getBlx(),b.getBly()]}RestoreGeometryState(a){this._x=a[0],this._y=a[1],this._w=a[2],this._h=a[3],this.SetAngle(a[4]),this._ox=a[5],this._oy=a[6],this._boundingBox.set(a[7],a[8],a[9],a[10]),this._boundingQuad.set(a[11],a[12],a[13],a[14],a[15],a[16],a[17],a[18]),this._bboxChanged=!1}_SaveToJson(){const a={"x":this.GetX(),"y":this.GetY(),"w":this.GetWidth(),"h":this.GetHeight(),"l":this.GetLayer().GetSID(),"zi":this.GetZIndex()};return 0!==this.GetZElevation()&&(a["ze"]=this.GetZElevation()),0!==this.GetAngle()&&(a["a"]=this.GetAngle()),1!==this.GetOpacity()&&(a["o"]=this.GetOpacity()),.5!==this.GetOriginX()&&(a["oX"]=this.GetOriginX()),.5!==this.GetOriginY()&&(a["oY"]=this.GetOriginY()),0!==this.GetBlendMode()&&(a["bm"]=this.GetBlendMode()),this.IsVisible()||(a["v"]=this.IsVisible()),this.IsCollisionEnabled()||(a["ce"]=this.IsCollisionEnabled()),this.IsBboxChangeEventEnabled()&&(a["be"]=this.IsBboxChangeEventEnabled()),this._instanceEffectList&&(a["fx"]=this._instanceEffectList._SaveToJson()),this._solidFilterInclusive&&(a["sfi"]=this._solidFilterInclusive),this._solidFilterTags&&(a["sft"]=[...this._solidFilterTags].join(" ")),a}_LoadFromJson(a){this.SetX(a["x"]),this.SetY(a["y"]),this.SetWidth(a["w"]),this.SetHeight(a["h"]),this._SetZIndex(a["zi"]),this.SetZElevation(a.hasOwnProperty("ze")?a["ze"]:0),this.SetAngle(a.hasOwnProperty("a")?a["a"]:0),this.SetOpacity(a.hasOwnProperty("o")?a["o"]:1),this.SetOriginX(a.hasOwnProperty("oX")?a["oX"]:.5),this.SetOriginY(a.hasOwnProperty("oY")?a["oY"]:.5),this.SetBlendMode(a.hasOwnProperty("bm")?a["bm"]:0),this.SetVisible(!a.hasOwnProperty("v")||a["v"]),this.SetCollisionEnabled(!a.hasOwnProperty("ce")||a["ce"]),this.SetBboxChangeEventEnabled(!!a.hasOwnProperty("be")&&a["be"]),this.SetSolidCollisionFilter(!!a.hasOwnProperty("sfi")&&a["sfi"],a.hasOwnProperty("sft")?a["sft"]:""),this._instanceEffectList&&a.hasOwnProperty("fx")&&this._instanceEffectList._LoadFromJson(a["fx"]),this.SetBboxChanged()}}} + +// c3/objects/behaviorType.js +"use strict";C3.BehaviorType=class extends C3.DefendedBase{constructor(a,b){super();const c=a.GetRuntime(),d=c.GetPluginManager(),e=c.GetObjectReference(b[1]);d.HasBehaviorByConstructorFunction(e)||d.CreateBehavior(b),this._runtime=c,this._objectClass=a,this._behavior=d.GetBehaviorByConstructorFunction(e),this._sdkType=null,this._instSdkCtor=e.Instance,this._sid=b[2],this._name=b[0],this._sdkType=C3.New(e.Type,this);this.OnCreate()}static Create(a,b){return C3.New(C3.BehaviorType,a,b)}Release(){this._runtime=null,this._behavior=null,this._sdkType.Release(),this._sdkType=null,this._instSdkCtor=null}GetSdkType(){return this._sdkType}OnCreate(){this._sdkType.OnCreate()}GetRuntime(){return this._runtime}GetObjectClass(){return this._objectClass}GetBehavior(){return this._behavior}GetInstanceSdkCtor(){return this._instSdkCtor}GetName(){return this._name}GetSID(){return this._sid}}; + +// c3/objects/behaviorInstance.js +"use strict";C3.BehaviorInstance=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a.runtime,this._behaviorType=a.behaviorType,this._behavior=this._behaviorType.GetBehavior(),this._inst=a.instance,this._index=a.index,this._sdkInst=null,this._behavior._AddInstance(this._inst)}Release(){this._behavior._RemoveInstance(this._inst),this._sdkInst.Release(),this._sdkInst=null,this._runtime=null,this._behaviorType=null,this._behavior=null,this._inst=null}_CreateSdkInstance(a){if(this._sdkInst)throw new Error("already got sdk instance");this._sdkInst=C3.New(this._behaviorType.GetInstanceSdkCtor(),this,a)}GetSdkInstance(){return this._sdkInst}GetObjectInstance(){return this._inst}GetRuntime(){return this._runtime}GetBehaviorType(){return this._behaviorType}GetBehavior(){return this._behavior}_GetIndex(){return this._index}PostCreate(){this._sdkInst.PostCreate()}OnSpriteFrameChanged(a,b){this._sdkInst.OnSpriteFrameChanged(a,b)}_GetDebuggerProperties(){return this._sdkInst.GetDebuggerProperties()}SaveToJson(){return this._sdkInst.SaveToJson()}LoadFromJson(a){return this._sdkInst.LoadFromJson(a)}static SortByTickSequence(c,a){const b=c.GetObjectInstance(),d=a.GetObjectInstance(),e=b.GetObjectClass().GetIndex(),f=d.GetObjectClass().GetIndex();if(e!==f)return e-f;const g=b._GetSequenceID(),h=d._GetSequenceID();return g===h?c.GetBehaviorInstance()._GetIndex()-a.GetBehaviorInstance()._GetIndex():g-h}}; + +// c3/objects/effectList.js +"use strict";C3.EffectList=class extends C3.DefendedBase{constructor(a,b){super(),this._owner=a,this._allEffectTypes=[],this._activeEffectTypes=[],this._effectTypesByName=new Map,this._effectParams=[],this._preservesOpaqueness=!0;for(const c of b){const a=C3.New(C3.EffectType,this,c,this._allEffectTypes.length);this._allEffectTypes.push(a),this._effectTypesByName.set(a.GetName().toLowerCase(),a),3<=c.length&&this._effectParams.push(this._LoadSingleEffectParameters(c[2]))}this.GetRuntime()._AddEffectList(this)}Release(){C3.clearArray(this._allEffectTypes),C3.clearArray(this._activeEffectTypes),this._effectTypesByName.clear(),C3.clearArray(this._effectParams),this._owner=null}PrependEffectTypes(a){if(a.length){this._allEffectTypes=a.concat(this._allEffectTypes);for(const b of a)this._effectTypesByName.set(b.GetName().toLowerCase(),b);for(let a=0,b=this._allEffectTypes.length;a({"name":a.GetName(),"active":a.IsActive(),"params":C3.EffectList.SaveFxParamsToJson(this._effectParams[a.GetIndex()])}))}LoadFromJson(a){for(const b of a){const a=this.GetEffectTypeByName(b["name"]);a&&(a.SetActive(b["active"]),this._effectParams[a.GetIndex()]=C3.EffectList.LoadFxParamsFromJson(b["params"]))}this.UpdateActiveEffects()}}; + +// c3/objects/effectType.js +"use strict";C3.EffectType=class extends C3.DefendedBase{constructor(a,b,c){super(),this._effectList=a,this._id=b[0],this._name=b[1],this._index=c,this._shaderProgram=null,this._isActive=!0}Release(){this._effectList=null,this._shaderProgram=null}Clone(a){const b=C3.New(C3.EffectType,a,[this._id,this._name],-1);return b._shaderProgram=this._shaderProgram,b._isActive=this._isActive,b}_InitRenderer(a){const b=a.GetShaderProgramByName(this._id);if(!b)throw new Error("failed to find shader program '"+this._id+"'");this._shaderProgram=b}GetEffectList(){return this._effectList}GetName(){return this._name}_SetIndex(a){this._index=a}GetIndex(){return this._index}GetOwner(){return this._effectList.GetOwner()}GetRuntime(){return this._effectList.GetRuntime()}SetActive(b){this._isActive=!!b}IsActive(){return this._isActive}GetShaderProgram(){return this._shaderProgram}GetDefaultParameterValues(){const a=[];for(let b=0,c=this._shaderProgram.GetParameterCount();ba.GetShaderProgram().UsesDest())}IsEffectIndexActive(a){return this._activeEffectFlags[a]}SetEffectIndexActive(a,b){this._activeEffectFlags[a]=!!b}_SaveToJson(){return this._effectList.GetAllEffectTypes().map((a)=>({"name":a.GetName(),"active":this._activeEffectFlags[a.GetIndex()],"params":C3.EffectList.SaveFxParamsToJson(this._effectParams[a.GetIndex()])}))}_LoadFromJson(a){for(const b of a){const a=this._effectList.GetEffectTypeByName(b["name"]);a&&(this._activeEffectFlags[a.GetIndex()]=b["active"],this._effectParams[a.GetIndex()]=C3.EffectList.LoadFxParamsFromJson(b["params"]))}this.UpdateActiveEffects()}}; + +// c3/collisions/collisionEngine.js +"use strict";{const a=[],b=[],c=[],d=C3.New(C3.CollisionPoly),e=C3.New(C3.CollisionPoly),f=C3.New(C3.Quad),g=C3.New(C3.Rect),h=C3.New(C3.Rect);C3.CollisionEngine=class extends C3.DefendedBase{constructor(a){super(),this._runtime=a,this._registeredCollisions=[],this._collisionCheckCount=0,this._collisionCheckSec=0,this._polyCheckCount=0,this._polyCheckSec=0}Release(){this._runtime=null}_Update1sStats(){this._collisionCheckSec=this._collisionCheckCount,this._collisionCheckCount=0,this._polyCheckSec=this._polyCheckCount,this._polyCheckCount=0}Get1secCollisionChecks(){return this._collisionCheckSec}Get1secPolyChecks(){return this._polyCheckSec}RegisterCollision(c,a){const b=c.GetWorldInfo(),d=a.GetWorldInfo();b&&d&&b.IsCollisionEnabled()&&d.IsCollisionEnabled()&&this._registeredCollisions.push([c,a])}AddRegisteredCollisionCandidates(c,d,e){for(const[f,a]of this._registeredCollisions){let b=null;if(c===f)b=a;else if(c===a)b=f;else continue;b.BelongsToObjectClass(d)&&!e.includes(b)&&e.push(b)}}CheckRegisteredCollision(e,a){if(!this._registeredCollisions.length)return!1;for(const[b,c]of this._registeredCollisions)if(e===b&&a===c||e===c&&a===b)return!0;return!1}ClearRegisteredCollisions(){C3.clearArray(this._registeredCollisions)}TestOverlap(c,d){if(!c||!d||c===d)return!1;const e=c.GetWorldInfo(),f=d.GetWorldInfo();if(!e.IsCollisionEnabled()||!f.IsCollisionEnabled())return!1;this._collisionCheckCount++;const g=e.GetLayer(),h=f.GetLayer(),i=g!==h&&!g._IsCollisionCompatibleWith(h);return i?this._TestOverlap_DifferentLayers(e,f):this._TestOverlap_SameLayers(e,f)}_TestOverlap_SameLayers(a,b){if(!a.GetBoundingBox().intersectsRect(b.GetBoundingBox()))return!1;if(this._polyCheckCount++,!a.GetBoundingQuad().intersectsQuad(b.GetBoundingQuad()))return!1;if(a.HasTilemap()&&b.HasTilemap())return!1;if(a.HasTilemap())return this.TestTilemapOverlap(a,b);if(b.HasTilemap())return this.TestTilemapOverlap(b,a);if(!a.HasOwnCollisionPoly()&&!b.HasOwnCollisionPoly())return!0;const c=a.GetTransformedCollisionPoly(),d=b.GetTransformedCollisionPoly();return c.intersectsPoly(d,b.GetX()-a.GetX(),b.GetY()-a.GetY())}_TestOverlap_DifferentLayers(a,b){const c=a.GetLayer(),f=b.GetLayer();d.copy(a.GetTransformedCollisionPoly()),e.copy(b.GetTransformedCollisionPoly());const g=d.pointsArr();for(let d=0,e=g.length;dd;++d){const i=2*d-1;if(e.SetXY(f+b*k*i,g+c*k*i),e.SetBboxChanged(),!this.TestOverlap(a,h))if(h=this.TestOverlapSolid(a),h)j=h;else return j&&this.PushInFractional(a,b*i,c*i,j,16),!0}return e.SetXY(f,g),e.SetBboxChanged(),!1}PushInFractional(a,b,c,d,e){let f=2,g=!1,h=!1;const i=a.GetWorldInfo();let j=i.GetX(),k=i.GetY();for(;f<=e;){const e=1/f;f*=2,i.OffsetXY(b*e*(g?1:-1),c*e*(g?1:-1)),i.SetBboxChanged(),this.TestOverlap(a,d)?(g=!0,h=!0):(g=!1,h=!1,j=i.GetX(),k=i.GetY())}h&&(i.SetXY(j,k),i.SetBboxChanged())}PushOutSolidNearest(a,b=100){var c=Math.floor;let d=0;const e=a.GetWorldInfo(),f=e.GetX(),g=e.GetY();let h=0,i=this.TestOverlapSolid(a);if(!i)return!0;for(;d<=b;){let b=0,j=0;if(0==h?(b=0,j=-1,d++):1==h?(b=1,j=-1):2==h?(b=1,j=0):3==h?(b=1,j=1):4==h?(b=0,j=1):5==h?(b=-1,j=1):6==h?(b=-1,j=0):7==h?(b=-1,j=-1):void 0,h=(h+1)%8,e.SetXY(c(f+b*d),c(g+j*d)),e.SetBboxChanged(),!this.TestOverlap(a,i)&&(i=this.TestOverlapSolid(a),!i))return!0}return e.SetXY(f,g),e.SetBboxChanged(),!1}CalculateBounceAngle(a,b,c,d){var e=Math.sin,f=Math.cos,g=Math.PI;const h=a.GetWorldInfo(),j=h.GetX(),k=h.GetY(),l=Math.max(10,C3.distanceTo(b,c,j,k)),m=C3.angleTo(b,c,j,k),n=d||this.TestOverlapSolid(a);if(!n)return C3.clampAngle(m+g);let o=n,p=0,q=0;const r=C3.toRadians(5);let s;for(s=1;36>s;++s){const g=m-s*r;if(h.SetXY(b+f(g)*l,c+e(g)*l),h.SetBboxChanged(),!this.TestOverlap(a,o)&&(o=d?null:this.TestOverlapSolid(a),!o)){p=g;break}}for(36===s&&(p=C3.clampAngle(m+g)),o=n,s=1;36>s;++s){const g=m+s*r;if(h.SetXY(b+f(g)*l,c+e(g)*l),h.SetBboxChanged(),!this.TestOverlap(a,o)&&(o=d?null:this.TestOverlapSolid(a),!o)){q=g;break}}if(36===s&&(q=C3.clampAngle(m+g)),h.SetXY(j,k),h.SetBboxChanged(),q===p)return q;const i=C3.angleDiff(q,p)/2;let t=C3.angleClockwise(q,p)?C3.clampAngle(p+i+g):C3.clampAngle(q+i);const u=f(m),v=e(m),w=f(t),x=e(t),y=u*w+v*x;return C3.angleTo(0,0,u-2*y*w,v-2*y*x)}TestSegmentOverlap(a,b,c,d,e){var f=Math.min,h=Math.max;if(!e)return!1;const i=e.GetWorldInfo();if(!i.IsCollisionEnabled())return!1;if(this._collisionCheckCount++,g.set(f(a,c),f(b,d),h(a,c),h(b,d)),!i.GetBoundingBox().intersectsRect(g))return!1;if(e.HasTilemap())return this._TestSegmentOverlapTilemap(a,b,c,d,e,i);if(this._polyCheckCount++,!i.GetBoundingQuad().intersectsSegment(a,b,c,d))return!1;if(!i.HasOwnCollisionPoly())return!0;const j=i.GetTransformedCollisionPoly();return j.intersectsSegment(i.GetX(),i.GetY(),a,b,c,d)}_TestSegmentOverlapTilemap(a,d,e,j,c,i){const k=i.GetX(),l=i.GetY(),m=c.GetSdkInstance(),n=b;h.set(a,d,e,j),h.normalize(),m.GetCollisionRectCandidates(h,n);for(let b=0,h=n.length;bthis._loadingProgress=a.progress,this._webglPercentText=null,this._loadingLogoAsset=null,this._splashTextures={logo:null,powered:null,website:null},this._splashFrameNumber=0,this._splashFadeInFinishTime=0,this._splashFadeOutStartTime=0,this._splashState="fade-in",this._splashDoneResolve=null,this._splashDonePromise=new Promise((a)=>this._splashDoneResolve=a)}_SetGPUPowerPreference(a){this._gpuPreference=a}async CreateCanvas(a){this._canvas=a["canvas"],this._canvas.addEventListener("webglcontextlost",(a)=>this._OnWebGLContextLost(a)),this._canvas.addEventListener("webglcontextrestored",(a)=>this._OnWebGLContextRestored(a)),this._webglRenderer=C3.New(C3.Gfx.WebGLRenderer,this._canvas,{powerPreference:this._gpuPreference,enableGpuProfiling:!0,alpha:!0,maxWebGLVersion:"Android"===C3.Platform.OS?1:2}),await this._webglRenderer.InitState(),this._webglRenderer.SupportsGPUProfiling()||(this._gpuLastUtilisation=NaN),this._runtime.AddDOMComponentMessageHandler("runtime","window-resize",(a)=>this._OnWindowResize(a)),this._runtime.AddDOMComponentMessageHandler("runtime","fullscreenchange",(a)=>this._OnFullscreenChange(a)),this._runtime.AddDOMComponentMessageHandler("runtime","fullscreenerror",(a)=>this._OnFullscreenError(a)),this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["windowInnerWidth"],a["windowInnerHeight"],!0),this._shaderData=a["shaders"]||self["C3_Shaders"],await this._LoadShaderPrograms();let b=!1;for(const c of this._runtime._GetAllEffectLists()){for(const a of c.GetAllEffectTypes())a._InitRenderer(this._webglRenderer),a.GetShaderProgram().UsesDest()&&(b=!0);c.UpdateActiveEffects()}this._runtime._SetUsesAnyBackgroundBlending(b),this._webglRenderer.SupportsGPUProfiling()&&(this._gpuFrameTimingsBuffer=C3.New(C3.Gfx.WebGLQueryResultBuffer,this._webglRenderer))}async _LoadShaderPrograms(){if(this._shaderData){const a=[];for(const[b,c]of Object.entries(this._shaderData)){const d=C3.Gfx.WebGLShaderProgram.GetDefaultVertexShaderSource(this._webglRenderer.Is3D());a.push(this._webglRenderer.CreateShaderProgram(c,d,b))}await Promise.all(a),this._webglRenderer.ResetLastProgram(),this._webglRenderer.SetTextureFillMode()}}Release(){this._runtime=null,this._webglRenderer=null,this._canvas=null}_OnWindowResize(a){this._runtime.IsInWorker()&&(self.devicePixelRatio=a["devicePixelRatio"]),this.SetSize(a["innerWidth"],a["innerHeight"]),this._runtime.UpdateRender()}_OnFullscreenChange(a){this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["innerWidth"],a["innerHeight"],!0),this._runtime.UpdateRender()}_OnFullscreenError(a){this._isDocumentFullscreen=!!a["isFullscreen"],this.SetSize(a["innerWidth"],a["innerHeight"],!0),this._runtime.UpdateRender()}SetSize(a,b,c=!1){var d=Math.floor;if(a=d(a),b=d(b),0>=a||0>=b)throw new Error("invalid size");if(this._windowInnerWidth!==a||this._windowInnerHeight!==b||c){this._windowInnerWidth=a,this._windowInnerHeight=b;const c=this.GetCurrentFullscreenMode();"letterbox-scale"===c?this._CalculateLetterboxScale(a,b):"letterbox-integer-scale"===c?this._CalculateLetterboxIntegerScale(a,b):"off"===c?this._CalculateFixedSizeCanvas(a,b):this._CalculateFullsizeCanvas(a,b),this._UpdateFullscreenScalingQuality(c),this._canvas.width=this._canvasDeviceWidth,this._canvas.height=this._canvasDeviceHeight,this._runtime.PostComponentMessageToDOM("canvas","update-size",{"marginLeft":this._canvasCssOffsetX,"marginTop":this._canvasCssOffsetY,"styleWidth":this._canvasCssWidth,"styleHeight":this._canvasCssHeight}),this._webglRenderer.SetSize(this._canvasDeviceWidth,this._canvasDeviceHeight,!0)}}_CalculateLetterboxScale(a,b){var c=Math.round,d=Math.floor;const e=self.devicePixelRatio,f=this._runtime.GetOriginalViewportWidth(),g=this._runtime.GetOriginalViewportHeight(),h=f/g;if(a/b>h){this._canvasCssWidth=c(b*h),this._canvasCssHeight=b,this._canvasCssOffsetX=d((a-this._canvasCssWidth)/2),this._canvasCssOffsetY=0}else{this._canvasCssWidth=a,this._canvasCssHeight=c(a/h),this._canvasCssOffsetX=0,this._canvasCssOffsetY=d((b-this._canvasCssHeight)/2)}this._canvasDeviceWidth=c(this._canvasCssWidth*e),this._canvasDeviceHeight=c(this._canvasCssHeight*e),this._runtime.SetViewportSize(f,g)}_CalculateLetterboxIntegerScale(a,b){var c=Math.max,d=Math.round,e=Math.floor;const f=self.devicePixelRatio;1!==f&&(a+=1,b+=1);const g=this._runtime.GetOriginalViewportWidth(),h=this._runtime.GetOriginalViewportHeight(),i=g/h,j=a/b;let k;if(j>i){const a=b*i;k=a*f/g}else{const b=a/i;k=b*f/h}1k&&(k=1/Math.ceil(1/k)),this._canvasDeviceWidth=d(g*k),this._canvasDeviceHeight=d(h*k),this._canvasCssWidth=this._canvasDeviceWidth/f,this._canvasCssHeight=this._canvasDeviceHeight/f,this._canvasCssOffsetX=c(e((a-this._canvasCssWidth)/2),0),this._canvasCssOffsetY=c(e((b-this._canvasCssHeight)/2),0),this._runtime.SetViewportSize(g,h)}_CalculateFullsizeCanvas(a,b){var c=Math.round;const d=self.devicePixelRatio;this._canvasCssWidth=a,this._canvasCssHeight=b,this._canvasDeviceWidth=c(this._canvasCssWidth*d),this._canvasDeviceHeight=c(this._canvasCssHeight*d),this._canvasCssOffsetX=0,this._canvasCssOffsetY=0;const e=this.GetDisplayScale();this._runtime.SetViewportSize(this._canvasCssWidth/e,this._canvasCssHeight/e)}_CalculateFixedSizeCanvas(a,b){var c=Math.round,d=Math.floor;const e=self.devicePixelRatio;this._canvasCssWidth=this._runtime.GetViewportWidth(),this._canvasCssHeight=this._runtime.GetViewportHeight(),this._canvasDeviceWidth=c(this._canvasCssWidth*e),this._canvasDeviceHeight=c(this._canvasCssHeight*e),this.IsDocumentFullscreen()?(this._canvasCssOffsetX=d((a-this._canvasCssWidth)/2),this._canvasCssOffsetY=d((b-this._canvasCssHeight)/2)):(this._canvasCssOffsetX=0,this._canvasCssOffsetY=0),this._runtime.SetViewportSize(this._runtime.GetViewportWidth(),this._runtime.GetViewportHeight())}_UpdateFullscreenScalingQuality(a){if("high"===this._wantFullscreenScalingQuality)this._drawWidth=this._canvasDeviceWidth,this._drawHeight=this._canvasDeviceHeight,this._fullscreenScalingQuality="high";else{let b,c;if("off"===this.GetCurrentFullscreenMode()?(b=this._runtime.GetViewportWidth(),c=this._runtime.GetViewportHeight()):(b=this._runtime.GetOriginalViewportWidth(),c=this._runtime.GetOriginalViewportHeight()),this._canvasDeviceWidtha&&(this._drawHeight=this._drawWidth/d)}else if("scale-outer"===a){const a=b/c,d=this._windowInnerWidth/this._windowInnerHeight;d>a?this._drawWidth=this._drawHeight*d:dd||"scale-inner"===a&&eb.IsCompatibleWithOptions(a));let d;return-1===c?d=this._webglRenderer.CreateRenderTarget(a):(d=b[c],b.splice(c,1)),this._usedAdditionalRenderTargets.add(d),d}ReleaseAdditionalRenderTarget(a){if(!this._usedAdditionalRenderTargets.has(a))throw new Error("render target not in use");this._usedAdditionalRenderTargets.delete(a),this._availableAdditionalRenderTargets.push(a)}*activeLayersGpuProfiles(){for(const a of this._runtime.GetLayoutManager().runningLayouts())for(const b of a.GetLayers()){const a=this._layersGpuProfile.get(b);a&&(yield a)}}GetLayerTimingsBuffer(a){if(!this._webglRenderer.SupportsGPUProfiling())return null;let b=this._layersGpuProfile.get(a);return b||(b={name:a.GetName(),timingsBuffer:C3.New(C3.Gfx.WebGLQueryResultBuffer,this._webglRenderer),curUtilisation:0,lastUtilisation:0},this._layersGpuProfile.set(a,b)),b.timingsBuffer}_Update1sFrameRange(){if(this._webglRenderer.SupportsGPUProfiling()&&0===this._gpuTimeEndFrame){this._gpuTimeEndFrame=this._webglRenderer.GetFrameNumber(),this._gpuCurUtilisation=NaN;for(const a of this.activeLayersGpuProfiles())a.curUtilisation=NaN}}_UpdateTick(){var a=Math.min;if(this._webglRenderer.SupportsGPUProfiling()&&isNaN(this._gpuCurUtilisation)&&(this._gpuCurUtilisation=this._gpuFrameTimingsBuffer.GetFrameRangeResultSum(this._gpuTimeStartFrame,this._gpuTimeEndFrame),!isNaN(this._gpuCurUtilisation))){if(this._runtime.IsDebug())for(const a of this.activeLayersGpuProfiles())if(a.curUtilisation=a.timingsBuffer.GetFrameRangeResultSum(this._gpuTimeStartFrame,this._gpuTimeEndFrame),isNaN(a.curUtilisation))return;if(this._gpuFrameTimingsBuffer.DeleteAllBeforeFrameNumber(this._gpuTimeEndFrame),this._gpuLastUtilisation=a(this._gpuCurUtilisation,1),this._runtime.IsDebug()){for(const b of this.activeLayersGpuProfiles())b.timingsBuffer.DeleteAllBeforeFrameNumber(this._gpuTimeEndFrame),b.lastUtilisation=a(b.curUtilisation,1);C3Debugger.UpdateGPUProfile(this._gpuLastUtilisation,[...this.activeLayersGpuProfiles()])}this._gpuTimeStartFrame=this._gpuTimeEndFrame,this._gpuTimeEndFrame=0}}GetGPUFrameTimingsBuffer(){return this._gpuFrameTimingsBuffer}GetGPUUtilisation(){return this._gpuLastUtilisation}SnapshotCanvas(a,b){return(this._snapshotFormat=a,this._snapshotQuality=b,this._snapshotPromise)?this._snapshotPromise:(this._snapshotPromise=new Promise((a)=>{this._snapshotResolve=a}),this._snapshotPromise)}_MaybeTakeSnapshot(){this._snapshotFormat&&(C3.CanvasToBlob(this._canvas,this._snapshotFormat,this._snapshotQuality).then((a)=>{this._snapshotUrl=URL.createObjectURL(a),this._snapshotPromise=null,this._snapshotResolve(this._snapshotUrl)}),this._snapshotFormat="",this._snapshotQuality=1)}GetCanvasSnapshotUrl(){return this._snapshotUrl}InitLoadingScreen(a){if(2===a)this._webglPercentText=C3.New(C3.Gfx.WebGLText,this._webglRenderer),this._webglPercentText.SetIsAsync(!1),this._webglPercentText.SetFontName("Arial"),this._webglPercentText.SetFontSize(16),this._webglPercentText.SetHorizontalAlignment("center"),this._webglPercentText.SetVerticalAlignment("center"),this._webglPercentText.SetSize(300,200);else if(0===a){const a=this._runtime.GetAssetManager();let b;if(this._runtime.IsPreview()){if(!a._HasLocalURLBlob("loading-logo.png"))return;b=a.GetLocalUrlAsBlobUrl("loading-logo.png")}else b=a.GetIconsSubfolder()+"loading-logo.png";this._loadingLogoAsset=a.LoadImage({url:b}),this._loadingLogoAsset.LoadStaticTexture(this._webglRenderer).catch(()=>console.warn(`[C3 runtime] Failed to load 'loading-logo.png' for loading screen. Check the project has an icon with that name.`))}else 4===a&&(this._LoadSvgSplashImage("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiDQoJIHdpZHRoPSIxNzAwLjc5MDA0cHgiIGhlaWdodD0iMTcwMC43OTAwNHB4IiB2aWV3Qm94PSIyODcgMzE3IDExMjUgMTEyNSINCgkgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTcwMC43OTAwNCAxNzAwLjc5MDA0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnIGlkPSJsb2dvIj4NCgk8Zz4NCgkJPGc+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0ZGRkZGRiIgZD0iTTM1NC45Nzc1NCwxMTk1LjYyMzA1DQoJCQkJYzExLjM4NDc3LDAsMjIuMDEyNywzLjIzNzMsMzEuMDE3NTgsOC44Mzc4OWMxLjk0NjI5LDEuMjEwOTQsMi41ODQ5NiwzLjc0OTAyLDEuNDM4NDgsNS43MzQzOGwtNC45MzI2Miw4LjU0MTk5DQoJCQkJYy0zLjI3ODMyLDUuNjc5NjktMTAuMDMzMiw4LjM3Njk1LTE2LjMxNzM4LDYuNTAwOThjLTIuNzY0NjUtMC44MjUyLTUuNjkzMzYtMS4yNjg1NS04LjcyNjU2LTEuMjY4NTUNCgkJCQljLTE2LjgyOTEsMC0zMC40NzI2NiwxMy42NDM1NS0zMC40NzI2NiwzMC40NzI2NmMwLDE2LjgyODEzLDEzLjY0MzU1LDMwLjQ3MjY2LDMwLjQ3MjY2LDMwLjQ3MjY2DQoJCQkJYzMuMDMzMiwwLDUuOTYxOTEtMC40NDMzNiw4LjcyNjU2LTEuMjY4NTVjNi4yOTQ5Mi0xLjg3OTg4LDEzLjAzMzIsMC44MTE1MiwxNi4zMTczOCw2LjUwMDk4bDQuOTMxNjQsOC41NDE5OQ0KCQkJCWMxLjE0NzQ2LDEuOTg4MjgsMC41MTA3NCw0LjUyMzQ0LTEuNDM4NDgsNS43MzQzOGMtOS4wMDM5MSw1LjYwMTU2LTE5LjYzMTg0LDguODM3ODktMzEuMDE2Niw4LjgzNzg5DQoJCQkJYy0zMi40ODUzNSwwLTU4LjgxOTM0LTI2LjMzNDk2LTU4LjgxOTM0LTU4LjgxOTM0QzI5Ni4xNTgyLDEyMjEuOTU3MDMsMzIyLjQ5MjE5LDExOTUuNjIzMDUsMzU0Ljk3NzU0LDExOTUuNjIzMDUNCgkJCQlMMzU0Ljk3NzU0LDExOTUuNjIzMDV6IE03MDMuMjE0ODQsMTI1OS4xNzU3OGMtMTQuNTU5NTctOS44MTczOC0yMC4yMDMxMy0yMC4wMzIyMy0yMC4yMDMxMy0zMy4wODAwOA0KCQkJCWMwLTE4LjQ4OTI2LDE1LjcxNDg0LTI5Ljc2MzY3LDM4LjI2NjYtMjkuNzYzNjdjOS42NTcyMywwLDE4LjcyMTY4LDIuNTQyOTcsMjYuNTU5NTcsNi45OTQxNA0KCQkJCWMyLjA0OTgsMS4xNjQwNiwyLjc2MTcyLDMuNzgzMiwxLjU4MzAxLDUuODI0MjJsLTMuNDE3OTcsNS45MTk5MmMtMy4yNDcwNyw1LjYyNDAyLTkuOTA4Miw4LjMzMTA1LTE2LjE1MzMyLDYuNTQ4ODMNCgkJCQljLTIuNzIzNjMtMC43NzYzNy01LjU5ODYzLTEuMTkyMzgtOC41NzEyOS0xLjE5MjM4Yy0xMC40OTAyMywwLTExLjU5ODYzLDkuNTc2MTctNC44NTc0MiwxNC4xMjMwNWwyMy42ODY1MiwxNS45NzY1Ng0KCQkJCWM5Ljk5MDIzLDYuNzM4MjgsMTUuODk1NTEsMTcuMDY2NDEsMTUuODk1NTEsMjguNzE4NzVjMCwxOC43ODYxMy0xNS4wMDY4NCwzMy4zMDc2Mi0zOC4yNjc1OCwzMy4zMDc2Mg0KCQkJCWMtOS41MjI0NiwwLTE4LjU4Nzg5LTEuOTU3MDMtMjYuODE1NDMtNS40OTAyM2MtNy43ODEyNS0zLjMzOTg0LTEwLjkzMzU5LTEyLjc4MjIzLTYuNjk3MjctMjAuMTE4MTZsMy40ODczLTYuMDQxOTkNCgkJCQljMS4yMTM4Ny0yLjA5OTYxLDMuOTMxNjQtMi43NTk3Nyw1Ljk3NDYxLTEuNDU2MDVjNi44NTkzOCw0LjM4MjgxLDE2LjQ5MDIzLDcuNTk0NzMsMjQuNzU4NzksNy41OTQ3Mw0KCQkJCWMxMC41NDU5LDAsMTEuMzI4MTMtOS45NTg5OCwzLjc2NzU4LTE1LjA1NzYyTDcwMy4yMTQ4NCwxMjU5LjE3NTc4TDcwMy4yMTQ4NCwxMjU5LjE3NTc4eiBNOTg0LjYzMDg2LDEyMDIuMDAwOTgNCgkJCQljMC0yLjM0NzY2LDEuOTAzMzItNC4yNTE5NSw0LjI1MTk1LTQuMjUxOTVoOS45MjE4OGM3LjgyNzE1LDAsMTQuMTcyODUsNi4zNDU3LDE0LjE3Mjg1LDE0LjE3MzgzdjU3LjQwMTM3DQoJCQkJYzAsOC42MTAzNSw2Ljk4MDQ3LDE1LjU5MDgyLDE1LjU5MDgyLDE1LjU5MDgyczE1LjU5MDgyLTYuOTgwNDcsMTUuNTkwODItMTUuNTkwODJ2LTU3LjQwMTM3DQoJCQkJYzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTcyODUtMTQuMTczODNoOS45MjA5YzIuMzQ4NjMsMCw0LjI1MTk1LDEuOTA0Myw0LjI1MTk1LDQuMjUxOTV2NjcuMzIzMjQNCgkJCQljMCwyNC4yNjU2My0xOS42NzA5LDQzLjkzNzUtNDMuOTM2NTIsNDMuOTM3NXMtNDMuOTM3NS0xOS42NzE4OC00My45Mzc1LTQzLjkzNzVWMTIwMi4wMDA5OEw5ODQuNjMwODYsMTIwMi4wMDA5OHoNCgkJCQkgTTQ2Ni44NjkxNCwxMTk1LjYyMzA1YzMyLjQ4NDM4LDAsNTguODE4MzYsMjYuMzMzOTgsNTguODE4MzYsNTguODE5MzRjMCwzMi40ODQzOC0yNi4zMzM5OCw1OC44MTkzNC01OC44MTgzNiw1OC44MTkzNA0KCQkJCWMtMzIuNDg2MzMsMC01OC44MTkzNC0yNi4zMzQ5Ni01OC44MTkzNC01OC44MTkzNEM0MDguMDQ5OCwxMjIxLjk1NzAzLDQzNC4zODI4MSwxMTk1LjYyMzA1LDQ2Ni44NjkxNCwxMTk1LjYyMzA1DQoJCQkJTDQ2Ni44NjkxNCwxMTk1LjYyMzA1eiBNNDY2Ljg2OTE0LDEyMjUuMDMzMmMtMTYuMjQzMTYsMC0yOS40MTAxNiwxMy4xNjY5OS0yOS40MTAxNiwyOS40MDkxOA0KCQkJCXMxMy4xNjY5OSwyOS40MDgyLDI5LjQxMDE2LDI5LjQwODJjMTYuMjQxMjEsMCwyOS40MDgyLTEzLjE2NjAyLDI5LjQwODItMjkuNDA4MlM0ODMuMTEwMzUsMTIyNS4wMzMyLDQ2Ni44NjkxNCwxMjI1LjAzMzINCgkJCQlMNDY2Ljg2OTE0LDEyMjUuMDMzMnogTTU1Ni43MzI0MiwxMzExLjEzNDc3Yy0yLjM0NzY2LDAtNC4yNTE5NS0xLjkwMjM0LTQuMjUxOTUtNC4yNXYtOTQuOTYxOTENCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzM4My0xNC4xNzM4M2gzLjk1ODk4YzQuNjI1LDAsOC45NTg5OCwyLjI1Njg0LDExLjYxMTMzLDYuMDQ1OWw0MS4xMjIwNyw1OC43NDcwN3YtNTAuNjE5MTQNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2g5LjkyMTg4YzIuMzQ3NjYsMCw0LjI1MTk1LDEuOTA0Myw0LjI1MTk1LDQuMjUxOTV2OTQuOTYwOTQNCgkJCQljMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3MzgzLDE0LjE3Mjg1aC0zLjk1ODk4Yy00LjYyNSwwLTguOTU4OTgtMi4yNTU4Ni0xMS42MTEzMy02LjA0NDkybC00MS4xMjIwNy01OC43NDYwOXY1MC42MTgxNg0KCQkJCWMwLDcuODI5MS02LjM0NTcsMTQuMTcyODUtMTQuMTcyODUsMTQuMTcyODVINTU2LjczMjQyTDU1Ni43MzI0MiwxMzExLjEzNDc3eiBNMTIxNS4wMjA1MSwxMjExLjkyMjg1DQoJCQkJYzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTcyODUtMTQuMTczODNoNTAuMzE1NDNjMi4zNDg2MywwLDQuMjUxOTUsMS45MDQzLDQuMjUxOTUsNC4yNTE5NXY1LjY2OTkyDQoJCQkJYzAsNy44MjcxNS02LjM0NTcsMTQuMTcyODUtMTQuMTcyODUsMTQuMTcyODVoLTYuMDI0NDF2NzUuMTE4MTZjMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3Mjg1LDE0LjE3Mjg1aC05LjkyMTg4DQoJCQkJYy0yLjM0ODYzLDAtNC4yNTE5NS0xLjkwMjM0LTQuMjUxOTUtNC4yNXYtODUuMDQxMDJoLTE1Ljk0NDM0Yy0yLjM0ODYzLDAtNC4yNTE5NS0xLjkwMzMyLTQuMjUxOTUtNC4yNTE5NVYxMjExLjkyMjg1DQoJCQkJTDEyMTUuMDIwNTEsMTIxMS45MjI4NXogTTc3Ni40NDkyMiwxMjExLjkyMjg1YzAtNy44MjgxMyw2LjM0NTctMTQuMTczODMsMTQuMTczODMtMTQuMTczODNoNTAuMzE0NDUNCgkJCQljMi4zNDk2MSwwLDQuMjUxOTUsMS45MDQzLDQuMjUxOTUsNC4yNTE5NXY1LjY2OTkyYzAsNy44MjcxNS02LjM0NTcsMTQuMTcyODUtMTQuMTcxODgsMTQuMTcyODVoLTYuMDI1Mzl2NzUuMTE4MTYNCgkJCQljMCw3LjgyOTEtNi4zNDU3LDE0LjE3Mjg1LTE0LjE3Mjg1LDE0LjE3Mjg1aC05LjkyMDljLTIuMzQ5NjEsMC00LjI1MTk1LTEuOTAyMzQtNC4yNTE5NS00LjI1di04NS4wNDEwMmgtMTUuOTQ1MzENCgkJCQljLTIuMzQ3NjYsMC00LjI1MTk1LTEuOTAzMzItNC4yNTE5NS00LjI1MTk1VjEyMTEuOTIyODVMNzc2LjQ0OTIyLDEyMTEuOTIyODV6IE05MjkuNjA0NDksMTI3Mi4wMjI0NmwyNi45NTgwMSwzMi4xMjc5Mw0KCQkJCWMyLjMxNDQ1LDIuNzU3ODEsMC4zNDM3NSw2Ljk4NDM4LTMuMjU2ODQsNi45ODQzOGgtMTkuNzA1MDhjLTQuMTg5NDUsMC04LjE2NTA0LTEuODUxNTYtMTAuODU3NDItNS4wNjA1NWwtMjIuNjgxNjQtMjcuMDMxMjUNCgkJCQl2MjcuODQxOGMwLDIuMzQ3NjYtMS45MDMzMiw0LjI1LTQuMjUxOTUsNC4yNWgtOS45MjA5Yy03LjgyNzE1LDAtMTQuMTcyODUtNi4zNDM3NS0xNC4xNzI4NS0xNC4xNzI4NXYtODUuMDM5MDYNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2gyOS43NjM2N2MyMi43MDAyLDAsNDEuMTAyNTQsMTcuMTMzNzksNDEuMTAyNTQsMzguMjY4NTUNCgkJCQlDOTU2Ljc1NDg4LDEyNTIuNTkwODIsOTQ1LjQzNjUyLDEyNjYuNzAyMTUsOTI5LjYwNDQ5LDEyNzIuMDIyNDZMOTI5LjYwNDQ5LDEyNzIuMDIyNDZ6IE05MDAuMDYxNTIsMTIyMS44NDM3NXYzMi41OTg2M2g4LjUwMzkxDQoJCQkJYzEwLjk1ODk4LDAsMTkuODQyNzctNy4yOTc4NSwxOS44NDI3Ny0xNi4yOTg4M2MwLTkuMDAxOTUtOC44ODM3OS0xNi4yOTk4LTE5Ljg0Mjc3LTE2LjI5OThIOTAwLjA2MTUyTDkwMC4wNjE1MiwxMjIxLjg0Mzc1eg0KCQkJCSBNMTE1OC4zNTkzOCwxMTk1LjYyMzA1YzExLjM4NDc3LDAsMjIuMDEyNywzLjIzNzMsMzEuMDE3NTgsOC44Mzc4OWMxLjk0NzI3LDEuMjEwOTQsMi41ODQ5NiwzLjc0OTAyLDEuNDM4NDgsNS43MzQzOA0KCQkJCWwtNC45MzI2Miw4LjU0MTk5Yy0zLjI3ODMyLDUuNjc5NjktMTAuMDMzMiw4LjM3Njk1LTE2LjMxNzM4LDYuNTAwOThjLTIuNzY0NjUtMC44MjUyLTUuNjkzMzYtMS4yNjg1NS04LjcyNTU5LTEuMjY4NTUNCgkJCQljLTE2LjgyOTEsMC0zMC40NzI2NiwxMy42NDM1NS0zMC40NzI2NiwzMC40NzI2NmMwLDE2LjgyODEzLDEzLjY0MzU1LDMwLjQ3MjY2LDMwLjQ3MjY2LDMwLjQ3MjY2DQoJCQkJYzMuMDMyMjMsMCw1Ljk2MDk0LTAuNDQzMzYsOC43MjU1OS0xLjI2ODU1YzYuMjk1OS0xLjg3OTg4LDEzLjAzMzIsMC44MTE1MiwxNi4zMTgzNiw2LjUwMDk4bDQuOTMwNjYsOC41NDE5OQ0KCQkJCWMxLjE0NzQ2LDEuOTg4MjgsMC41MTA3NCw0LjUyMzQ0LTEuNDM3NSw1LjczNDM4Yy05LjAwNDg4LDUuNjAxNTYtMTkuNjMyODEsOC44Mzc4OS0zMS4wMTc1OCw4LjgzNzg5DQoJCQkJYy0zMi40ODUzNSwwLTU4LjgxOTM0LTI2LjMzNDk2LTU4LjgxOTM0LTU4LjgxOTM0QzEwOTkuNTQwMDQsMTIyMS45NTcwMywxMTI1Ljg3NDAyLDExOTUuNjIzMDUsMTE1OC4zNTkzOCwxMTk1LjYyMzA1eiIvPg0KCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiMwMEZGREEiIGQ9Ik0xMzE4LjE5NzI3LDEyMDYuMDMyMjMNCgkJCQljMC03LjgyODEzLDYuMzQ1Ny0xNC4xNzM4MywxNC4xNzI4NS0xNC4xNzM4M2MyMC42NTYyNSwwLDQxLjMxMjUsMCw2MS45Njg3NSwwYzMuNDI5NjksMCw1LjQ1MDIsMy44ODA4NiwzLjQ4MzQsNi42OTA0Mw0KCQkJCWwtMTkuMjk2ODgsMjcuNTY3MzhjMTUuNTQyOTcsOC4zNzU5OCwyNi4xMDY0NSwyNC44MDA3OCwyNi4xMDY0NSw0My42OTUzMWMwLDI3LjM5NzQ2LTIyLjIwODk4LDQ5LjYwNjQ1LTQ5LjYwNjQ1LDQ5LjYwNjQ1DQoJCQkJYy0xNi42ODg0OCwwLTMxLjQ1MTE3LTguMjQwMjMtNDAuNDQzMzYtMjAuODc1OThjLTEuNDUwMi0yLjAzOTA2LTAuODMxMDUtNC44OTk0MSwxLjMzNTk0LTYuMTUyMzRsMTAuOTc3NTQtNi4zMzc4OQ0KCQkJCWM0Ljg4MTg0LTIuODE4MzYsMTAuOTc5NDktMi40NzU1OSwxNS41MTQ2NSwwLjg3MzA1YzMuNTI4MzIsMi42MDU0Nyw3Ljg5MTYsNC4xNDY0OCwxMi42MTUyMyw0LjE0NjQ4DQoJCQkJYzExLjc0MjE5LDAsMjEuMjU5NzctOS41MTg1NSwyMS4yNTk3Ny0yMS4yNTk3N3MtOS41MTc1OC0yMS4yNTk3Ny0yMS4yNTk3Ny0yMS4yNTk3N2gtMTUuMjE3NzcNCgkJCQljLTMuNDI5NjksMC01LjQ1MDItMy44ODA4Ni0zLjQ4NDM4LTYuNjkwNDNsMTguMTM1NzQtMjUuOTA4MmgtMzIuMDA5NzdjLTIuMzQ4NjMsMC00LjI1MTk1LTEuOTAzMzItNC4yNTE5NS00LjI1MTk1VjEyMDYuMDMyMjN6DQoJCQkJIi8+DQoJCTwvZz4NCgkJPGc+DQoJCQk8Zz4NCgkJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iI0RBRThGNyIgZD0iTTg1MC4zOTU1MSw4NTcuNTkxOA0KCQkJCQljLTUwLjM1NjQ1LDAtOTQuMzI1Mi0yNy4zNTY0NS0xMTcuODUyNTQtNjguMDIwNTFsLTgwLjAzMDI3LDQ2LjIwNDFjLTQuNjU1MjcsMi42ODk0NS02LjEzMTg0LDguNzE4NzUtMy4yNDkwMiwxMy4yNTU4Ng0KCQkJCQljNDIuMjM3Myw2Ni40ODYzMywxMTYuNTMzMiwxMTAuNjA3NDIsMjAxLjEzMTg0LDExMC42MDc0MmM4OC4xMjU5OCwwLDE2NS4wNzEyOS00Ny44NzUsMjA2LjI0MzE2LTExOS4wMzYxM2wtODAuNDg3My00Ni40Njk3Mw0KCQkJCQljLTQuMzEzNDgtMi40OTAyMy05LjgwMTc2LTEuMjA1MDgtMTIuNTcwMzEsMi45MzU1NUM5MzkuMTc1NzgsODMzLjU2MjUsODk3LjU5MTgsODU3LjU5MTgsODUwLjM5NTUxLDg1Ny41OTE4DQoJCQkJCUw4NTAuMzk1NTEsODU3LjU5MTh6IE0xMTM2LjcyMTY4LDU1Ni4yMTc3N2M0LjYxNDI2LTIuNjYzMDksNi4xMTAzNS04LjYxOTE0LDMuMzEyNS0xMy4xNTEzNw0KCQkJCQljLTU5LjkxNTA0LTk3LjAzMDI3LTE2Ny4yMjQ2MS0xNjEuNjk0MzQtMjg5LjYzODY3LTE2MS42OTQzNGMtMTI1Ljg5MzU1LDAtMjM1LjgxMzQ4LDY4LjM5MjU4LTI5NC42MzM3OSwxNzAuMDQ5OA0KCQkJCQlsODAuMzc2OTUsNDYuNDA2MjVjNC4zOTc0NiwyLjUzOTA2LDEwLjAwMTk1LDEuMTQ5NDEsMTIuNzEwOTQtMy4xNDU1MQ0KCQkJCQljNDIuMTY0MDYtNjYuODUxNTYsMTE2LjY2ODk1LTExMS4yNjM2NywyMDEuNTQ1OS0xMTEuMjYzNjdjODguMTI1OTgsMCwxNjUuMDcxMjksNDcuODc1OTgsMjA2LjI0MzE2LDExOS4wMzYxMw0KCQkJCQlMMTEzNi43MjE2OCw1NTYuMjE3Nzd6Ii8+DQoJCQkJPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGZpbGw9IiNBNUJBQzgiIGQ9Ik04NTAuMzk1NTEsOTU5LjYzODY3DQoJCQkJCWMtODQuNTk4NjMsMC0xNTguODk0NTMtNDQuMTIxMDktMjAxLjEzMTg0LTExMC42MDc0MmMtMi44NzY5NS00LjUzMDI3LTEuMzk5NDEtMTAuNTcwMzEsMy4yNDkwMi0xMy4yNTU4Nmw4MC4wMzAyNy00Ni4yMDQxDQoJCQkJCWMtMTEuNTgxMDUtMjAuMDE2Ni0xOC4yMDk5Ni00My4yNTQ4OC0xOC4yMDk5Ni02OC4wNDE5OWMwLTc0Ljc4NTE2LDYwLjU1NzYyLTEzNi4wNjI1LDEzNi4wNjI1LTEzNi4wNjI1DQoJCQkJCWM0Ny4xOTYyOSwwLDg4Ljc4MDI3LDI0LjAyOTMsMTEzLjE4NTU1LDYwLjUyMjQ2YzIuNzY0NjUsNC4xMzM3OSw4LjI2MzY3LDUuNDIxODgsMTIuNTcwMzEsMi45MzU1NWw4MC40ODczLTQ2LjQ2OTczDQoJCQkJCWMtNDEuMTcxODgtNzEuMTYwMTYtMTE4LjExNzE5LTExOS4wMzYxMy0yMDYuMjQzMTYtMTE5LjAzNjEzYy04NC44NzY5NSwwLTE1OS4zODE4NCw0NC40MTIxMS0yMDEuNTQ1OSwxMTEuMjYzNjcNCgkJCQkJYy0yLjcwNjA1LDQuMjkxMDItOC4zMTgzNiw1LjY4MTY0LTEyLjcxMDk0LDMuMTQ1NTFsLTgwLjM3Njk1LTQ2LjQwNjI1DQoJCQkJCWMtMjguOTUyMTUsNTAuMDQwMDQtNDUuNTIzNDQsMTA4LjEzOTY1LTQ1LjUyMzQ0LDE3MC4xMDc0MmMwLDE4Ni45NjM4NywxNTEuMzk0NTMsMzQwLjE1NzIzLDM0MC4xNTcyMywzNDAuMTU3MjMNCgkJCQkJYzEyMi40MTQwNiwwLDIyOS43MjM2My02NC42NjQwNiwyODkuNjM4NjctMTYxLjY5NTMxYzIuNzk0OTItNC41MjYzNywxLjI5NDkyLTEwLjQ5MDIzLTMuMzEyNS0xMy4xNTEzN2wtODAuMDgzMDEtNDYuMjM3Mw0KCQkJCQlDMTAxNS40NjY4LDkxMS43NjM2Nyw5MzguNTIxNDgsOTU5LjYzODY3LDg1MC4zOTU1MSw5NTkuNjM4Njd6Ii8+DQoJCQk8L2c+DQoJCQk8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZmlsbD0iIzAwRkZEQSIgZD0iTTExMzcuMTg1NTUsNzU4LjExMzI4di03My4xNjc5N2wtNjMuMzY1MjMsMzYuNTgzOTgNCgkJCQlMMTEzNy4xODU1NSw3NTguMTEzMjhMMTEzNy4xODU1NSw3NTguMTEzMjh6IE0xMDI2LjU3NjE3LDcwNS4xNjQwNmwxMjAuMDU4NTktNjkuMzE2NDENCgkJCQljMTIuNTY4MzYtNy4yNTU4NiwyOC4zNDQ3MywxLjg1MjU0LDI4LjM0NTcsMTYuMzY2MjF2MTM4LjYzMDg2Yy0wLjAwMDk4LDE0LjUxMjctMTUuNzc3MzQsMjMuNjIyMDctMjguMzQ1NywxNi4zNjYyMQ0KCQkJCWwtMTIwLjA1ODU5LTY5LjMxNjQxQzEwMTQuMDI4MzIsNzMwLjY0OTQxLDEwMTQuMDI4MzIsNzEyLjQwOTE4LDEwMjYuNTc2MTcsNzA1LjE2NDA2eiIvPg0KCQk8L2c+DQoJPC9nPg0KPC9nPg0KPC9zdmc+DQo=").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.logo=a}).catch((a)=>console.warn("Failed to load splash image: ",a)),this._LoadBitmapSplashImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABABAMAAACekdKMAAAAMFBMVEUAAAByfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYYgo7vbAAAAD3RSTlMAmd137hFVqjO7zCKIRGZ881JRAAAFY0lEQVR42u2aPW/bVhSGn1iiPizZ8D+QgSJBNglFmiboQA0NUKAD1XotYA0BOspAkZnqx24vnTrIQNCpg4QkQMcYKDoW9j9w5y6qLNqWFDlvh3tJUa6ddHBhAuS7SKBIQffhuee851CQKVOmTJkyZcqUKXmqa8O+uyNlABKsFRmdP0o5AOle2gHoWdoBzFrpBHACwPeetJNmAFSlt6kGwGH0LqUAVqRuqgHkpEaqAVRkfvOWr+Dh9Rc4j6VvwnrhPNAbgK2ezj+yx7Z6GjUuASi4Ch4lHQAGwBeRK1rROQAdUx5K0hE4NUkaAdS02ZEuoms2wkCSgvYSgFJfkn6CobkSPG0mEcAOrHnGFOxAToHNjk/MygLgO/PxL0BN9yRdQKlufMQAoCdJGi8BOJYknXTJ269cu9HtdqNb4Ni6oimUbFb0dAZQ1DmULJ+TFtT0qQHwg73mLlCMfFUMQPR5VWrbmttNHICC1KDiSZ+w3pMOwFPDhP4IYFtv4ZX0nIorbUBNmjWAiqdZg5fmNFd6jvPhJQDjAV9LI0r28IpmycsBZalNWfoRWJcuoKY9c7cCkwpOwdcIqNT1BmrSgQkNbQAvpAGOF+aHOIBpCxhKR/TVBNjVOHkAOgrg2N6aoU7sklmVidtD7bNm/fIrjaBmk+Sxea142iBnTyguAfjZZscNXLOdXFM8EgVgXRpDz/6yonTEts6AXdV1APTVoKigFSXEmj3XN0kSV01WFQwAHC8O4Mhagye8NgHS137SALzsS3dxwhtXkQ4oaw64eqomOFKXbc2xJbFLTX8DOHYnsKsJu2Gdu8IIuTqjrMB8eyM5ACIFXQo2S5t7lNMM6AdFTaCgADqahHW8EQIohBk9rzEdE+JXAtjVmHWpDTmplUAA96Ea/bJDnVKSWjgaFTSHqubgmjVDXQchgFy4wBXNcXV6LYC8RjbEypomcCAyBopRShxqAn21yenM8WawqjOoKVbmLYBFndeImsnyVwJY1RR8NW1FTRiA6UNTCsP6fKwLONQBZTXx1WVbT0KbtwygvAxg81oAZU0xe2QYxkmyrDDx2DzWBXTUZFs7dNQwHUEMwN4VAKb47wOQ1wj8Gx0+/Y8A8powVJtt7XOoxn8A8N4IqCrA8cJUmzgAl3JAUWN8tSjqDX0NwI/XbwugGLe178oBK7bBaBesm0gggOUqwLrOHe8c1jV2NAMOw/XFAFRth2dr/burANS1cSc0C8kDsB7zAZvgKCjoLTiaFqwpmvwLQC7e2b3PB4CrZj48KXkAKktOEPr6VqeAr680udzEWACluK0LreJ1ThBe6+w4HkfJAhD1AtbAu3qgPcDVX2oCK9bqxwFQ1+fRsVW7va/uBZpAWaND652TCGBoM1rHHN6VmQlsq6cdE+4mC75oLAC49prKB1zTDd6NukHIKahbIkkEsGrmAQWZbZqXNLClrg04dTP4KnjnCwBfmgkZT7WD45k94C8BmA3MPGBgeqcbfQBxwwDsRMi3N7Iqc3dzsuVhV5ofkevpJOoGKUn6Ax5L92F49USoayZCls08uQDiM0ETCWPb8k7DMmH02SICGC7ayVhnsABwEpsZQkfxUpI4ALGpsFn4xCbHcVjnwgnvAkBh0U6CbzqrXgzA1E6FB9YOJGcacgUAfl36t0Ro/SIDUDEL/D1WBcJr5q0oRoJ2LQZgZJ4LPIu2RCPJAJafDLm2Yr2OHmQ4H0vzBksA2PKl38L3fY0aLAFYejK0ZpJhelVKzkj8dlRNzkj8dpRP0DTkVjTUXroB9PVnqtefS9I05BZU8NOdAyUl5q8RtwUg6KYcwP1Up8CanpMpU6ZMmTLdgP4BRYsi23xEdOAAAAAASUVORK5CYII=").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.powered=a}).catch((a)=>console.warn("Failed to load splash image: ",a)),this._LoadBitmapSplashImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAABABAMAAACekdKMAAAAMFBMVEUAAAByfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYZyfYYgo7vbAAAAD3RSTlMAdxHdu4hmVZnuRMwzqiLYE4y2AAAF2klEQVR42u2Yv28jaRnHP/bG8SVxvA4ncRw6sCVoVlc4R8FJCOHlGkq7olrJy18QFzRUWSqkE1KibZAQOkc6Ua+5htJGW12BEihpHAqKE0XWcZzEcXIfinf8a8zunsTNoZPmW80zfsbvzGfmfX5BqlSpUqVKlSpVqlSpUqVKlSrV/1EHPv4SfN7wMgWQAkgBpABSAF+2HngOsG8PyDpsWwHy3gJU/UHM3o0uyxw4/G44zJf1LQC8INP3ugXAejOcrqn6EIf80puiQwDqHgF8S987nfsAcN+HfEd/M/v34TtwT9WLBABsewXQtAHkHfVtATlHAUsjboer1lX9O8BmV/V9AIf5tnpRATZrqj9aBLBmHMCe6l0lDmD3V6ofABS6YaHkAOTDo7XtADmvwjNuOAlYWnE7XNVXdXgKlFW1BDjcU7UzP/14AUA/DmA7+PwkDuCHqmHFvWih5ABknQAFvQW2fFq1AxxrD+iOK3E72o8+ItP2E8joz8jXHQDqnyj0vYRN/ZBMzdvZ/lYfwRKAA0c93nZSWYoB93VS4q/6GPL6WzJtOwkGwboVyOkAqHqy5jnQ1BJkvSNuE7bC74F/O4BjB0BGj0DvgJwTWHMAvOvFAoAblgHkHR9BsWspDuAEaNqBz7wB3nWQIICyLdiyPQH2LWW8ArpjO5B3QNwGoGYLKDquUA9hoekuhDvPaoWqh0BRK3MApRiAeyH8nPk0BuAuBNxzOIgWGiYI4NgGHLtnBZqeFhxBwUvPIefnxO0QNy6i3NUqGHbFPW9ATwG69jgL+aIbvvQAgBiA/bDr3/AqBuBzgC1vKUYL9e0lB+CeHShPNixBdwK1CWTstAewZWfVBnLRl7BvKUoPZBxNn5G6R+H9wS92Tl8OoGkp4BzEALwAWPOGTLRQ2VJyAHLeQnew7UOyjqBpjy1L/Quo2li1o5cD8M+d1lb4jCk4WQKw5qS3XOSsAujaAyjuvPUyANvRQs98khyAvAOK3uY9D+XOviXO7O1bCdVR3AY2wusNh2FXoEsACjr59msAhBprpRJcABCSn+pJcgCy7TsydrLtS3IewgNPKE944GOaY1bt+S0uHdY8XQTAx+rwnVcCiNxfAeD+DMDDBHuB/pg1G/Tv2PIEtj2kPmLbE7p3rNpfEABvq/756wCgbK9qj71xpWoLMt5mvWXdp1mvWLW/KAD+0jfkxf8FwIuvoBs8s7Q3hKqtfStQdLDuLlmv8p6zagMb8/uahYNYDAhBsub1K2PA6wAsBJsEAWx50h/Btk+aE4Du3bYN6F/nQtaL2/MsAGx5E2WB4SoAMtp7bRZ4BYBpjkkWQM6P2jew7mF7ANAcf+YR7I03Qp6O2/M64JmNeR1wvQRgZyc6LC0DyK7WAZuOXgYg5/VXAKDgtYeQdRBe7LEHY6BqObyhuD2vBMuW5pXg1RKAWvAtxwFMc99CJZh5eSGUj2rLhCdCbX0C1MehfN3Qa2DN9pD/Zs96gWzNWS9QDr3ADMCBT0KLUILmIoCurdB9znqB73k+9YkDoBYx+gByyQHoayt08I0wIomif/R1L9vPhz3Y9w/A9x1Nu8H1qBucATj2Eii07UHZxhxA2Q7wqaEb7EG2bmPq83zYWwawHxqj5rAXiu1ktB8+42rgQF6fhqbuilW7HnpzH5Gp2ZnOA/qOWAKQ039QLHsHPPN3VKY/nnlxxB91Ng9408nMp25nGUBO3yO4bDpuZZMBUA2Y16LtnA3Zm7pPWbVrvphNhCaV+einsQyAg3D6E8I8b3f6Yyac7y5MhOY+NV8sA6A5d6npMKk8eBluLSr0umE/lsNzx+y6u7OZYIPZ8O99YgDW2xptokJ7AUAA9uOD+UxwwafubgxAvjZz+TQxAJlQbhSn445yCNRn06y3ZD8fHkVT4YtvzKfC3yQOgExT/xa6nX9pYwag+Kb+nOZsKvzTBZ/nw6MYAPJl/XW4sJlcFEiVKlWqVKlSpUqVKlWqVKlSpUqV6uuu/wDv59f7eYDABQAAAABJRU5ErkJggg==").then((a)=>{"done"===this._splashState?this._webglRenderer.DeleteTexture(a):this._splashTextures.website=a}).catch((a)=>console.warn("Failed to load splash image: ",a)))}async _LoadSvgSplashImage(a){a=new URL(a,this._runtime.GetBaseURL()).toString();const b=await C3.FetchBlob(a),c=await this._runtime.RasterSvgImage(b,2048,2048);return await this._webglRenderer.CreateStaticTextureAsync(c,{mipMapQuality:"high"})}async _LoadBitmapSplashImage(a){a=new URL(a,this._runtime.GetBaseURL()).toString();const b=await C3.FetchBlob(a);return await this._webglRenderer.CreateStaticTextureAsync(b,{mipMapQuality:"high"})}StartLoadingScreen(){this._loaderStartTime=Date.now(),this._runtime.Dispatcher().addEventListener("loadingprogress",this._loadingprogress_handler),this._rafId=requestAnimationFrame(()=>this._DrawLoadingScreen())}async EndLoadingScreen(){this._loadingProgress=1,4===this._runtime.GetLoaderStyle()&&(await this._splashDonePromise),this._splashDoneResolve=null,this._splashDonePromise=null,-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1),this._runtime.Dispatcher().removeEventListener("loadingprogress",this._loadingprogress_handler),this._loadingprogress_handler=null,this._webglPercentText&&(this._webglPercentText.Release(),this._webglPercentText=null),this._loadingLogoAsset&&(this._loadingLogoAsset.Release(),this._loadingLogoAsset=null),this._webglRenderer.Start(),this._splashTextures.logo&&(this._webglRenderer.DeleteTexture(this._splashTextures.logo),this._splashTextures.logo=null),this._splashTextures.powered&&(this._webglRenderer.DeleteTexture(this._splashTextures.powered),this._splashTextures.powered=null),this._splashTextures.website&&(this._webglRenderer.DeleteTexture(this._splashTextures.website),this._splashTextures.website=null),this._webglRenderer.ClearRgba(0,0,0,0),this._webglRenderer.Finish(),this._splashState="done",this._gpuTimeStartFrame=this._webglRenderer.GetFrameNumber()}_DrawLoadingScreen(){if(-1!==this._rafId){const a=this._webglRenderer;a.Start(),this._rafId=-1;const b=this._runtime.GetAssetManager().HasHadErrorLoading(),c=this._runtime.GetLoaderStyle();if(3!==c&&(this.SetCssTransform(a),a.ClearRgba(0,0,0,0),a.ResetColor(),a.SetTextureFillMode(),a.SetTexture(null)),0===c)this._DrawProgressBarAndLogoLoadingScreen(b);else if(1===c)this._DrawProgressBarLoadingScreen(b,120,0);else if(2===c)this._DrawPercentTextLoadingScreen(b);else if(3===c)C3.noop();else if(4===c)this._DrawSplashLoadingScreen(b);else throw new Error("invalid loader style");a.Finish(),this._rafId=requestAnimationFrame(()=>this._DrawLoadingScreen())}}_DrawPercentTextLoadingScreen(a){a?this._webglPercentText.SetColorRgb(1,0,0):this._webglPercentText.SetColorRgb(.6,.6,.6),this._webglPercentText.SetText(Math.round(100*this._loadingProgress)+"%");const b=this._canvasCssWidth/2,d=this._canvasCssHeight/2;c.setRect(b-150,d-100,b+150,d+100),this._webglRenderer.SetTexture(this._webglPercentText.GetTexture()),this._webglRenderer.Quad3(c,this._webglPercentText.GetTexRect())}_DrawProgressBarLoadingScreen(a,b,c){const e=this._webglRenderer;e.SetColorFillMode(),a?e.SetColorRgba(1,0,0,1):e.SetColorRgba(.118,.565,1,1);const f=this._canvasCssWidth/2,g=this._canvasCssHeight/2,h=b/2;d.setWH(f-h,g-4+c,Math.floor(b*this._loadingProgress),8),e.Rect(d),d.setWH(f-h,g-4+c,b,8),d.offset(-.5,-.5),d.inflate(.5,.5),e.SetColorRgba(0,0,0,1),e.LineRect2(d),d.inflate(1,1),e.SetColorRgba(1,1,1,1),e.LineRect2(d)}_DrawProgressBarAndLogoLoadingScreen(a){if(!this._loadingLogoAsset)return void this._DrawProgressBarLoadingScreen(a,120,0);const b=this._loadingLogoAsset.GetTexture();if(!b)return void this._DrawProgressBarLoadingScreen(a,120,0);const d=b.GetWidth(),e=b.GetHeight(),f=this._canvasCssWidth/2,g=this._canvasCssHeight/2,h=d/2,i=e/2;c.setRect(f-h,g-i,f+h,g+i),this._webglRenderer.SetTexture(b),this._webglRenderer.Quad(c),this._DrawProgressBarLoadingScreen(a,d,i+16)}_DrawSplashLoadingScreen(b){var c=Math.min,e=Math.max,f=Math.ceil;const g=this._webglRenderer,i=this._splashTextures.logo,j=this._splashTextures.powered,k=this._splashTextures.website,l=Date.now();0===this._splashFrameNumber&&(this._loaderStartTime=l);const m=this._runtime.IsPreview()||this._runtime.IsFBInstantAvailable()&&!this._runtime.IsCordova(),n=m?0:200,o=m?0:3000;let p=1;"fade-in"===this._splashState?p=c((l-this._loaderStartTime)/300,1):"fade-out"===this._splashState&&(p=e(1-(l-this._splashFadeOutStartTime)/300,0)),g.SetColorFillMode(),g.SetColorRgba(.231*p,.251*p,.271*p,p),d.set(0,0,this._canvasCssWidth,this._canvasCssHeight),g.Rect(d);const a=f(this._canvasCssWidth),q=f(this._canvasCssHeight);let h,r;256=300&&2<=this._splashFrameNumber&&(this._splashState="wait",this._splashFadeInFinishTime=l),"wait"===this._splashState&&l-this._splashFadeInFinishTime>=o&&1<=this._loadingProgress&&(this._splashState="fade-out",this._splashFadeOutStartTime=l),("fade-out"===this._splashState&&l-this._splashFadeOutStartTime>=300+n||m&&1<=this._loadingProgress&&500>l-this._loaderStartTime)&&this._splashDoneResolve()}}} + +// c3/runtime.js +"use strict";{const e={"messagePort":null,"baseUrl":"","headless":!1,"hasDom":!0,"isInWorker":!1,"useAudio":!0,"projectData":"","exportType":""};let a=!0;C3.Runtime=class extends C3.DefendedBase{constructor(n){n=Object.assign({},e,n);super(),this._messagePort=n["messagePort"],this._baseUrl=n["baseUrl"],this._isHeadless=!!n["headless"],this._hasDom=!!n["hasDom"],this._isInWorker=!!n["isInWorker"],a=n["ife"],this._useAudio=!!n["useAudio"],this._exportType=n["exportType"],this._isWKWebView=!!n["isWKWebView"],this._isFBInstantAvailable=!!n["isFBInstantAvailable"],this._opusWasmScriptUrl=n["opusWasmScriptUrl"],this._opusWasmBinaryUrl=n["opusWasmBinaryUrl"],this._dataJsonFilename="data.json",this._isDebug=!!("preview"===this._exportType&&n["isDebug"]),this._breakpointsEnabled=this._isDebug,this._isDebugging=this._isDebug,this._debuggingDisabled=0;const t=n["previewImageBlobs"],s=n["previewProjectFileBlobs"];s&&Object.assign(t,s);const i=n["projectData"];i&&(t[this._dataJsonFilename]=i),this._additionalLoadPromises=[],this._projectName="",this._projectVersion="",this._projectUniqueId="",this._originalViewportWidth=0,this._originalViewportHeight=0,this._parallaxXorigin=0,this._parallaxYorigin=0,this._viewportWidth=0,this._viewportHeight=0,this._loaderStyle=0,this._usesLoaderLayout=!1,this._isLoading=!0,this._usesAnyBackgroundBlending=!1;const r="html5"===this._exportType||"scirra-arcade"===this._exportType;this._assetManager=C3.New(C3.AssetManager,this,{defaultLoadPolicy:r?"remote":"local",localUrlBlobs:t,isCordova:"cordova"===this._exportType,isWKWebView:this._isWKWebView,supportedAudioFormats:n["supportedAudioFormats"]}),this._layoutManager=C3.New(C3.LayoutManager,this),this._eventSheetManager=C3.New(C3.EventSheetManager,this),this._pluginManager=C3.New(C3.PluginManager,this),this._collisionEngine=C3.New(C3.CollisionEngine,this),this._timelineManager=C3.New(C3.TimelineManager,this),this._allObjectClasses=[],this._objectClassesByName=new Map,this._objectClassesBySid=new Map,this._familyCount=0,this._allContainers=[],this._allEffectLists=[],this._currentLayoutStack=[],this._instancesPendingCreate=[],this._instancesPendingDestroy=new Map,this._hasPendingInstances=!1,this._isFlushingPendingInstances=!1,this._objectCount=0,this._nextUid=0,this._instancesByUid=new Map,this._instancesToReleaseAtEndOfTick=new Set,this._instancesToReleaseAffectedObjectClasses=new Set,this._objectReferenceTable=[],this._canvasManager=null,this._sampling="trilinear",this._isPixelRoundingEnabled=!1,this._needRender=!0,this._pauseOnBlur=!1,this._isPausedOnBlur=!1,this._tickCallback=(e)=>this.Tick(e),this._rafId=-1,this._tickCount=0,this._tickCountNoSave=0,this._execCount=0,this._hasStarted=!1,this._isInTick=!1,this._hasStartedTicking=!1,this._isLayoutFirstTick=!0,this._suspendCount=0,this._scheduleTriggersThrottle=new C3.PromiseThrottle(1),this._randomNumberCallback=()=>Math.random(),this._startTime=0,this._lastTickTime=0,this._dt1=0,this._dt=0,this._timeScale=1,this._minimumFramerate=30,this._gameTime=C3.New(C3.KahanSum),this._wallTime=C3.New(C3.KahanSum),this._fpsFrameCount=-1,this._fpsLastTime=0,this._fps=0,this._mainThreadTimeCounter=0,this._mainThreadTime=0,this._isLoadingState=!1,this._saveToSlotName="",this._loadFromSlotName="",this._loadFromJson=null,this._lastSaveJson="",this._triggerOnCreateAfterLoad=[],this._savegamesStorage=null,this._dispatcher=C3.New(C3.Event.Dispatcher),this._domEventHandlers=new Map,this._pendingResponsePromises=new Map,this._nextDomResponseId=0,this._didRequestDeviceOrientationEvent=!1,this._didRequestDeviceMotionEvent=!1,this._isReadyToHandleEvents=!1,this._waitingToHandleEvents=[],this._eventObjects={"pretick":C3.New(C3.Event,"pretick",!1),"tick":C3.New(C3.Event,"tick",!1),"tick2":C3.New(C3.Event,"tick2",!1),"instancedestroy":C3.New(C3.Event,"instancedestroy",!1),"beforelayoutchange":C3.New(C3.Event,"beforelayoutchange",!1),"layoutchange":C3.New(C3.Event,"layoutchange",!1)},this._eventObjects["instancedestroy"].instance=null,this._behInstsToTick=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._behInstsToPostTick=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._behInstsToTick2=C3.New(C3.RedBlackSet,C3.BehaviorInstance.SortByTickSequence),this._jobScheduler=C3.New(C3.JobSchedulerRuntime,this,n["jobScheduler"]),n["canvas"]&&(this._canvasManager=C3.New(C3.CanvasManager,this)),this._messagePort.onmessage=(a)=>this["_OnMessageFromDOM"](a.data),this.AddDOMComponentMessageHandler("runtime","visibilitychange",(a)=>this._OnVisibilityChange(a)),this.AddDOMComponentMessageHandler("runtime","opus-decode",(a)=>this._WasmDecodeWebMOpus(a["arrayBuffer"])),this.AddDOMComponentMessageHandler("runtime","get-remote-preview-status-info",()=>this._GetRemotePreviewStatusInfo()),this.AddDOMComponentMessageHandler("runtime","js-invoke-function",(a)=>this._InvokeFunctionFromJS(a)),this._dispatcher.addEventListener("window-blur",(a)=>this._OnWindowBlur(a)),this._dispatcher.addEventListener("window-focus",()=>this._OnWindowFocus()),this._timelineManager.AddRuntimeListeners()}static Create(e){return C3.New(C3.Runtime,e)}Release(){C3.clearArray(this._allObjectClasses),this._objectClassesByName.clear(),this._objectClassesBySid.clear(),this._layoutManager.Release(),this._layoutManager=null,this._eventSheetManager.Release(),this._eventSheetManager=null,this._pluginManager.Release(),this._pluginManager=null,this._assetManager.Release(),this._assetManager=null,this._collisionEngine.Release(),this._collisionEngine=null,this._timelineManager.Release(),this._timelineManager=null,this._canvasManager&&(this._canvasManager.Release(),this._canvasManager=null),this._dispatcher.Release(),this._dispatcher=null,this._tickEvent=null,this._tickCallback=null}["_OnMessageFromDOM"](e){const a=e["type"];if("event"===a)this._OnEventFromDOM(e);else if("result"===a)this._OnResultFromDOM(e);else throw new Error(`unknown message '${a}'`)}_OnEventFromDOM(a){if(!this._isReadyToHandleEvents)return void this._waitingToHandleEvents.push(a);const e=a["component"],n=a["handler"],t=a["data"],s=a["dispatchRuntimeEvent"],i=a["responseId"];if("runtime"===e&&s){const e=new C3.Event(n);e.data=t,this._dispatcher.dispatchEventAndWaitAsyncSequential(e)}const r=this._domEventHandlers.get(e);if(!r)return void(s||console.warn(`[Runtime] No DOM event handlers for component '${e}'`));const o=r.get(n);if(!o)return void(s||console.warn(`[Runtime] No DOM handler '${n}' for component '${e}'`));let d=null;try{d=o(t)}catch(a){return console.error(`Exception in '${e}' handler '${n}':`,a),void(null!==i&&this._PostResultToDOM(i,!1,a.toString()))}null!==i&&(d&&d.then?d.then((e)=>this._PostResultToDOM(i,!0,e)).catch((a)=>{console.error(`Rejection from '${e}' handler '${n}':`,a),this._PostResultToDOM(i,!1,a.toString())}):this._PostResultToDOM(i,!0,d))}_PostResultToDOM(e,a,n){this._messagePort.postMessage({"type":"result","responseId":e,"isOk":a,"result":n})}_OnResultFromDOM(e){const a=e["responseId"],n=e["isOk"],t=e["result"],s=this._pendingResponsePromises.get(a);n?s.resolve(t):s.reject(t),this._pendingResponsePromises.delete(a)}AddDOMComponentMessageHandler(e,a,n){let t=this._domEventHandlers.get(e);if(t||(t=new Map,this._domEventHandlers.set(e,t)),t.has(a))throw new Error(`[Runtime] Component '${e}' already has handler '${a}'`);t.set(a,n)}PostComponentMessageToDOM(e,a,n){this._messagePort.postMessage({"type":"event","component":e,"handler":a,"data":n,"responseId":null})}PostComponentMessageToDOMAsync(e,a,n){const t=this._nextDomResponseId++,s=new Promise((e,a)=>{this._pendingResponsePromises.set(t,{resolve:e,reject:a})});return this._messagePort.postMessage({"type":"event","component":e,"handler":a,"data":n,"responseId":t}),s}PostToDebugger(e){if(!this.IsDebug())throw new Error("not in debug mode");this.PostComponentMessageToDOM("runtime","post-to-debugger",e)}async Init(e){this.IsDebug()&&(await C3Debugger.Init(this));const[a]=await Promise.all([this._assetManager.FetchJson(this._dataJsonFilename),this._MaybeLoadOpusDecoder(),this._jobScheduler.Init()]);this._LoadDataJson(a),await this._InitialiseCanvas(e),this.IsPreview()||console.info("Made with Construct 3, the game and app creator :: https://www.construct.net");const n=this.GetWebGLRenderer();n?(console.info(`[C3 runtime] Hosted in ${this.IsInWorker()?"worker":"DOM"}, rendering with WebGL ${n.GetWebGLVersionNumber()} [${n.GetUnmaskedRenderer()}]`),n.HasMajorPerformanceCaveat()&&console.warn("[C3 runtime] WebGL indicates a major performance caveat. Software rendering may be in use. This can result in significantly degraded performance.")):console.info(`[C3 runtime] Hosted in ${this.IsInWorker()?"worker":"DOM"}, headless`),this._isReadyToHandleEvents=!0;for(const a of this._waitingToHandleEvents)this._OnEventFromDOM(a);if(C3.clearArray(this._waitingToHandleEvents),this._canvasManager&&this._canvasManager.StartLoadingScreen(),await Promise.all([this._assetManager.WaitForAllToLoad(),...this._additionalLoadPromises]),!this._assetManager.HasHadErrorLoading())return this._canvasManager&&(await this._canvasManager.EndLoadingScreen()),await this._dispatcher.dispatchEventAndWaitAsync(new C3.Event("beforeruntimestart")),await this.Start(),this._messagePort.postMessage({"type":"runtime-ready"}),this}_LoadDataJson(e){const a=e["project"];this._projectName=a[0],this._projectVersion=a[16],this._projectUniqueId=a[31],this._isPixelRoundingEnabled=!!a[9],this._originalViewportWidth=this._viewportWidth=a[10],this._originalViewportHeight=this._viewportHeight=a[11],this._parallaxXorigin=this._originalViewportWidth/2,this._parallaxYorigin=this._originalViewportHeight/2,this._sampling=a[14],this._usesLoaderLayout=!!a[18],this._loaderStyle=a[19],this._nextUid=a[21],this._pauseOnBlur=a[22],this._assetManager._SetAudioFiles(a[7],a[25]),this._assetManager._SetMediaSubfolder(a[8]),this._assetManager._SetFontsSubfolder(a[32]),this._assetManager._SetIconsSubfolder(a[28]),this._assetManager._SetWebFonts(a[29]),this._canvasManager&&(this._canvasManager.SetFullscreenMode(C3.CanvasManager._FullscreenModeNumberToString(a[12])),this._canvasManager.SetFullscreenScalingQuality(a[23]?"high":"low"),this._canvasManager._SetGPUPowerPreference(a[34])),this._pluginManager.CreateSystemPlugin(),this._objectReferenceTable=self.C3_GetObjectRefTable();for(const n of a[2])this._pluginManager.CreatePlugin(n);this._objectReferenceTable=self.C3_GetObjectRefTable();for(const n of a[3]){const e=C3.ObjectClass.Create(this,this._allObjectClasses.length,n);this._allObjectClasses.push(e),this._objectClassesByName.set(e.GetName().toLowerCase(),e),this._objectClassesBySid.set(e.GetSID(),e)}for(const n of a[4]){const e=this._allObjectClasses[n[0]];e._LoadFamily(n)}for(const n of a[27]){const e=n.map((e)=>this._allObjectClasses[e]);this._allContainers.push(C3.New(C3.Container,this,e))}for(const a of this._allObjectClasses)a._OnAfterCreate();for(const n of a[5])this._layoutManager.Create(n);const n=a[1];if(n){const e=this._layoutManager.GetLayoutByName(n);e&&this._layoutManager.SetFirstLayout(e)}for(const n of a[33])this._timelineManager.Create(n);for(const n of a[6])this._eventSheetManager.Create(n);this._eventSheetManager._PostInit(),C3.clearArray(this._objectReferenceTable),this.FlushPendingInstances();let t="any";const s=a[20];1===s?t="portrait":2===s&&(t="landscape"),this.PostComponentMessageToDOM("runtime","set-target-orientation",{"targetOrientation":t})}GetLoaderStyle(){return this._loaderStyle}IsFBInstantAvailable(){return this._isFBInstantAvailable}IsLoading(){return this._isLoading}AddLoadPromise(e){this._additionalLoadPromises.push(e)}_GetNextFamilyIndex(){return this._familyCount++}GetFamilyCount(){return this._familyCount}_AddEffectList(e){this._allEffectLists.push(e)}_GetAllEffectLists(){return this._allEffectLists}async _InitialiseCanvas(e){this._canvasManager&&(await this._canvasManager.CreateCanvas(e),this._canvasManager.InitLoadingScreen(this._loaderStyle))}async _MaybeLoadOpusDecoder(){if(this._assetManager.IsAudioFormatSupported("audio/webm; codecs=opus"))return;let e=null,a=null;try{this.IsWKWebView()?a=await this._assetManager.CordovaFetchLocalFileAsArrayBuffer(this._opusWasmBinaryUrl):e=await this._assetManager.FetchBlob(this._opusWasmBinaryUrl)}catch(e){return void console.info("Failed to fetch Opus decoder WASM; assuming project has no Opus audio.",e)}a?this.AddJobWorkerBuffer(a,"opus-decoder-wasm"):this.AddJobWorkerBlob(e,"opus-decoder-wasm"),await this.AddJobWorkerScripts([this._opusWasmScriptUrl])}async _WasmDecodeWebMOpus(e){const a=await this.AddJob("OpusDecode",{"arrayBuffer":e},[e]);return a}async Start(){if(this._hasStarted=!0,this._startTime=Date.now(),this._usesLoaderLayout){for(const e of this._allObjectClasses)e.IsFamily()||e.IsOnLoaderLayout()||!e.IsWorldType()||e.OnCreate();this._assetManager.WaitForAllToLoad().then(()=>{this._isLoading=!1,this._OnLoadFinished()})}else this._isLoading=!1;this._assetManager.SetInitialLoadFinished(),this.IsDebug()&&C3Debugger.RuntimeInit(a);for(const e of this._layoutManager.GetAllLayouts())e._CreateGlobalNonWorlds();const e=this._layoutManager.GetFirstLayout();await e._Load(null,this.GetWebGLRenderer()),await e._StartRunning(!0),this._fpsLastTime=performance.now(),this._usesLoaderLayout||this._OnLoadFinished();const n=await this.PostComponentMessageToDOMAsync("runtime","before-start-ticking");n["isSuspended"]?this._suspendCount++:this.Tick()}_OnLoadFinished(){this.Trigger(C3.Plugins.System.Cnds.OnLoadFinished,null),this.PostComponentMessageToDOM("runtime","register-sw")}GetObjectReference(e){if(e=Math.floor(e),0>e||e>=this._objectReferenceTable.length)throw new Error("invalid object reference");return this._objectReferenceTable[e]}HasDOM(){return this._hasDom}IsHeadless(){return this._isHeadless}IsInWorker(){return this._isInWorker}GetBaseURL(){return this._baseUrl}GetEventSheetManager(){return this._eventSheetManager}GetEventStack(){return this._eventSheetManager.GetEventStack()}GetCurrentEventStackFrame(){return this._eventSheetManager.GetCurrentEventStackFrame()}GetCurrentEvent(){return this._eventSheetManager.GetCurrentEvent()}GetCurrentCondition(){return this._eventSheetManager.GetCurrentCondition()}IsCurrentConditionFirst(){return 0===this.GetCurrentEventStackFrame().GetConditionIndex()}GetCurrentAction(){return this._eventSheetManager.GetCurrentAction()}GetPluginManager(){return this._pluginManager}GetSystemPlugin(){return this._pluginManager.GetSystemPlugin()}GetObjectClassByIndex(e){if(e=Math.floor(e),0>e||e>=this._allObjectClasses.length)throw new RangeError("invalid index");return this._allObjectClasses[e]}GetObjectClassByName(e){return this._objectClassesByName.get(e.toLowerCase())||null}GetObjectClassBySID(e){return this._objectClassesBySid.get(e)||null}GetSingleGlobalObjectClassByCtor(e){const a=this._pluginManager.GetPluginByConstructorFunction(e);return a?a.GetSingleGlobalObjectClass():null}GetAllObjectClasses(){return this._allObjectClasses}Dispatcher(){return this._dispatcher}GetOriginalViewportWidth(){return this._originalViewportWidth}GetOriginalViewportHeight(){return this._originalViewportHeight}SetOriginalViewportSize(e,a){this._originalViewportWidth=e,this._originalViewportHeight=a}GetViewportWidth(){return this._viewportWidth}GetViewportHeight(){return this._viewportHeight}SetViewportSize(e,a){this._viewportWidth=e,this._viewportHeight=a}GetParallaxXOrigin(){return this._parallaxXorigin}GetParallaxYOrigin(){return this._parallaxYorigin}GetCanvasManager(){return this._canvasManager}GetDrawWidth(){return this._canvasManager?this._canvasManager.GetDrawWidth():this._viewportWidth}GetDrawHeight(){return this._canvasManager?this._canvasManager.GetDrawHeight():this._viewportHeight}GetRenderScale(){return this._canvasManager?this._canvasManager.GetRenderScale():1}GetDisplayScale(){return this._canvasManager?this._canvasManager.GetDisplayScale():1}GetCanvasClientX(){return this._canvasManager?this._canvasManager.GetCanvasClientX():0}GetCanvasClientY(){return this._canvasManager?this._canvasManager.GetCanvasClientY():0}GetCanvasCssWidth(){return this._canvasManager?this._canvasManager.GetCssWidth():0}GetCanvasCssHeight(){return this._canvasManager?this._canvasManager.GetCssHeight():0}GetFullscreenMode(){return this._canvasManager?this._canvasManager.GetFullscreenMode():"off"}GetAdditionalRenderTarget(e){return this._canvasManager?this._canvasManager.GetAdditionalRenderTarget(e):null}ReleaseAdditionalRenderTarget(e){this._canvasManager&&this._canvasManager.ReleaseAdditionalRenderTarget(e)}_SetUsesAnyBackgroundBlending(e){this._usesAnyBackgroundBlending=!!e}UsesAnyBackgroundBlending(){return this._usesAnyBackgroundBlending}GetGPUUtilisation(){return this._canvasManager?this._canvasManager.GetGPUUtilisation():NaN}IsLinearSampling(){return"nearest"!==this.GetSampling()}GetSampling(){return this._sampling}UsesLoaderLayout(){return this._usesLoaderLayout}GetLayoutManager(){return this._layoutManager}GetMainRunningLayout(){return this._layoutManager.GetMainRunningLayout()}GetTimelineManager(){return this._timelineManager}GetAssetManager(){return this._assetManager}LoadImage(e){return this._assetManager.LoadImage(e)}CreateInstance(e,a,n,t){return this.CreateInstanceFromData(e,a,!1,n,t)}CreateInstanceFromData(e,a,n,t,s,i){let r=null,o=null;if(e instanceof C3.ObjectClass){if(o=e,o.IsFamily()){const e=o.GetFamilyMembers(),a=Math.floor(this.Random()*e.length);o=e[a]}r=o.GetDefaultInstanceData()}else r=e,o=this.GetObjectClassByIndex(r[1]);const d=o.GetPlugin().IsWorldType();if(this._isLoading&&d&&!o.IsOnLoaderLayout())return null;const _=a;d||(a=null);let l=n&&!i&&r&&!this._instancesByUid.has(r[2])?r[2]:this._nextUid++;const g=r?r[0]:null,u=C3.New(C3.Instance,{runtime:this,objectType:o,layer:a,worldData:g,instVarData:r?r[3]:null,uid:l});this._instancesByUid.set(l,u);let c=null;if(d&&(c=u.GetWorldInfo(),"undefined"!=typeof t&&"undefined"!=typeof s&&(c.SetX(t),c.SetY(s)),o._SetAnyCollisionCellChanged(!0)),a&&(a._AddInstance(u,!0),(1!==a.GetParallaxX()||1!==a.GetParallaxY())&&o._SetAnyInstanceParallaxed(!0),a.GetLayout().MaybeLoadTexturesFor(o)),(this._objectCount++,o.IsInContainer()&&!n&&!i)){for(const e of o.GetContainer().objectTypes()){if(e===o)continue;const a=this.CreateInstanceFromData(e,_,!1,c?c.GetX():t,c?c.GetY():s,!0);u._AddSibling(a)}for(const e of u.siblings()){e._AddSibling(u);for(const a of u.siblings())e!==a&&e._AddSibling(a)}}o._SetIIDsStale();const m=r?C3.cloneArray(r[5]):null,p=r?r[4].map((e)=>C3.cloneArray(e)):null;if(u._CreateSdkInstance(m,p),d&&g&&14===g.length){const e=g[13];u._SetHasTilemap(),u.GetSdkInstance().LoadTilemapData(e[2],e[0],e[1])}return this._instancesPendingCreate.push(u),this._hasPendingInstances=!0,this.IsDebug()&&C3Debugger.InstanceCreated(u),u}DestroyInstance(e){if(this._instancesToReleaseAtEndOfTick.has(e))return;const a=e.GetObjectClass();let n=this._instancesPendingDestroy.get(a);if(n){if(n.has(e))return;n.add(e)}else n=new Set,n.add(e),this._instancesPendingDestroy.set(a,n);if(this.IsDebug()&&C3Debugger.InstanceDestroyed(e),e._MarkDestroyed(),this._hasPendingInstances=!0,e.IsInContainer())for(const a of e.siblings())this.DestroyInstance(a);if(this._isFlushingPendingInstances&&C3.NotYetImplemented(),!this._layoutManager.IsEndingLayout()){const a=this.GetEventSheetManager();a.BlockFlushingInstances(!0),e._TriggerOnDestroyed(),a.BlockFlushingInstances(!1)}}FlushPendingInstances(){this._hasPendingInstances&&(this._isFlushingPendingInstances=!0,this._FlushInstancesPendingCreate(),this._FlushInstancesPendingDestroy(),this._isFlushingPendingInstances=!1,this._hasPendingInstances=!1,this.UpdateRender())}_FlushInstancesPendingCreate(){for(const e of this._instancesPendingCreate){const a=e.GetObjectClass();a._AddInstance(e);for(const n of a.GetFamilies())n._AddInstance(e),n._SetIIDsStale()}C3.clearArray(this._instancesPendingCreate)}_FlushInstancesPendingDestroy(){this._dispatcher.SetDelayRemoveEventsEnabled(!0);for(const[e,a]of this._instancesPendingDestroy.entries())this._FlushInstancesPendingDestroyForObjectClass(e,a),a.clear();this._instancesPendingDestroy.clear(),this._dispatcher.SetDelayRemoveEventsEnabled(!1)}_FlushInstancesPendingDestroyForObjectClass(e,a){C3.arrayRemoveAllInSet(e.GetInstances(),a),e._SetIIDsStale(),this._instancesToReleaseAffectedObjectClasses.add(e),0===e.GetInstances().length&&e._SetAnyInstanceParallaxed(!1);for(const n of e.GetFamilies())C3.arrayRemoveAllInSet(n.GetInstances(),a),n._SetIIDsStale(),this._instancesToReleaseAffectedObjectClasses.add(n);if(e.GetPlugin().IsWorldType()){const e=new Set([...a].map((e)=>e.GetWorldInfo().GetLayer()));for(const n of e)n._RemoveAllInstancesInSet(a)}for(const n of a){const e=this._eventObjects["instancedestroy"];e.instance=n,this._dispatcher.dispatchEvent(e),this._instancesByUid.delete(n.GetUID());const a=n.GetWorldInfo();a&&(a._RemoveFromCollisionCells(),a._RemoveFromRenderCells()),this._instancesToReleaseAtEndOfTick.add(n),this._objectCount--}}_GetInstancesPendingCreate(){return this._instancesPendingCreate}_GetNewUID(){return this._nextUid++}_MapInstanceByUID(e,a){this._instancesByUid.set(e,a)}_OnWebGLContextLost(){this._dispatcher.dispatchEvent(C3.New(C3.Event,"webglcontextlost")),this.SetSuspended(!0);for(const e of this._allObjectClasses)!e.IsFamily()&&e.HasLoadedTextures()&&e.ReleaseTextures();this.GetMainRunningLayout()._OnWebGLContextLost(),C3.ImageInfo.OnWebGLContextLost(),C3.ImageAsset.OnWebGLContextLost()}async _OnWebGLContextRestored(){await this.GetMainRunningLayout()._Load(null,this.GetWebGLRenderer()),this._dispatcher.dispatchEvent(C3.New(C3.Event,"webglcontextrestored")),this.SetSuspended(!1),this.UpdateRender()}_OnVisibilityChange(a){this.SetSuspended(a["hidden"])}_OnWindowBlur(a){this.IsPreview()&&this._pauseOnBlur&&!C3.Platform.IsMobile&&(a.data["parentHasFocus"]||(this.SetSuspended(!0),this._isPausedOnBlur=!0))}_OnWindowFocus(){this._isPausedOnBlur&&(this.SetSuspended(!1),this._isPausedOnBlur=!1)}IsSuspended(){return 0this._suspendCount&&(this._suspendCount=0);const n=this.IsSuspended();if(!a&&n)console.log("[Construct 3] Suspending"),-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1),this._dispatcher.dispatchEvent(C3.New(C3.Event,"suspend")),this.Trigger(C3.Plugins.System.Cnds.OnSuspend,null);else if(a&&!n){console.log("[Construct 3] Resuming");const e=performance.now();this._lastTickTime=e,this._fpsLastTime=e,this._fpsFrameCount=0,this._fps=0,this._mainThreadTime=0,this._mainThreadTimeCounter=0,this._dispatcher.dispatchEvent(C3.New(C3.Event,"resume")),this.Trigger(C3.Plugins.System.Cnds.OnResume,null),this.HitBreakpoint()||this.Tick(e)}}_AddBehInstToTick(e){this._behInstsToTick.Add(e)}_AddBehInstToPostTick(e){this._behInstsToPostTick.Add(e)}_AddBehInstToTick2(e){this._behInstsToTick2.Add(e)}_RemoveBehInstToTick(e){this._behInstsToTick.Remove(e)}_RemoveBehInstToPostTick(e){this._behInstsToPostTick.Remove(e)}_RemoveBehInstToTick2(e){this._behInstsToTick2.Remove(e)}_BehaviorTick(){for(const e of this._behInstsToTick)e.Tick()}_BehaviorPostTick(){for(const e of this._behInstsToPostTick)e.PostTick()}_BehaviorTick2(){for(const e of this._behInstsToTick2)e.Tick2()}*_DebugBehaviorTick(){for(const e of this._behInstsToTick){const a=e.Tick();C3.IsIterator(a)&&(yield*a)}}*_DebugBehaviorPostTick(){for(const e of this._behInstsToPostTick){const a=e.PostTick();C3.IsIterator(a)&&(yield*a)}}*_DebugBehaviorTick2(){for(const e of this._behInstsToTick2){const a=e.Tick2();C3.IsIterator(a)&&(yield*a)}}async Tick(e,a){if(this._rafId=-1,this._hasStartedTicking=!0,this._hasStarted&&(!this.IsSuspended()||a)){const a=performance.now();this._isInTick=!0,e||(e=a),await this.Step(e),this.Render(),this.IsSuspended()||-1!==this._rafId||(this._rafId=self.requestAnimationFrame(this._tickCallback)),this._tickCount++,this._tickCountNoSave++,this._execCount++,this._isInTick=!1,this._mainThreadTimeCounter+=performance.now()-a}}async Step(e){const a=this._eventSheetManager,n=this._dispatcher,t=this._eventObjects,s=this.IsDebug(),i=this.IsDebugging();if(this._MeasureDt(e),this.FlushPendingInstances(),a.BlockFlushingInstances(!0),this.PushCurrentLayout(this.GetMainRunningLayout()),s&&C3Debugger.StartMeasuringTime(),i?await a.DebugRunScheduledWaits():a.RunScheduledWaits(),s&&C3Debugger.AddEventsTime(),this.PopCurrentLayout(),a.BlockFlushingInstances(!1),this.FlushPendingInstances(),a.BlockFlushingInstances(!0),await n.dispatchEventAndWaitAsync(t["pretick"]),s&&C3Debugger.StartMeasuringTime(),i?await this.DebugIterateAndBreak(this._DebugBehaviorTick()):this._BehaviorTick(),i?await this.DebugIterateAndBreak(this._DebugBehaviorPostTick()):this._BehaviorPostTick(),s&&C3Debugger.AddBehaviorTickTime(),s&&C3Debugger.StartMeasuringTime(),i?await this.DebugFireGeneratorEventAndBreak(t["tick"]):n.dispatchEvent(t["tick"]),s&&C3Debugger.AddPluginTickTime(),a.BlockFlushingInstances(!1),this._NeedsHandleSaveOrLoad()&&(await this._HandleSaveOrLoad()),this.GetLayoutManager().IsPendingChangeMainLayout()&&(await this._MaybeChangeLayout()),s&&C3Debugger.StartMeasuringTime(),i?await a.DebugRunEvents(this._layoutManager):a.RunEvents(this._layoutManager),s&&C3Debugger.AddEventsTime(),this._collisionEngine.ClearRegisteredCollisions(),0a++;)await this._DoChangeLayout(e.GetPendingChangeMainLayout())}_MeasureDt(e){if(0!==this._lastTickTime){const a=Math.max(e-this._lastTickTime,0);this._dt1=a/1e3;const n=1/this._minimumFramerate;.5n&&(this._dt1=n)}this._lastTickTime=e,this._dt=this._dt1*this._timeScale,this._gameTime.Add(this._dt),this._wallTime.Add(this._dt1),this._canvasManager&&this._canvasManager._UpdateTick(),1e3<=e-this._fpsLastTime&&(this._fpsLastTime+=1e3,1e3<=e-this._fpsLastTime&&(this._fpsLastTime=e),this._fps=this._fpsFrameCount,this._fpsFrameCount=0,this._mainThreadTime=Math.min(this._mainThreadTimeCounter/1e3,1),this._mainThreadTimeCounter=0,this._canvasManager&&this._canvasManager._Update1sFrameRange(),this._collisionEngine._Update1sStats(),this.IsDebug()&&C3Debugger.Update1sPerfStats()),this._fpsFrameCount++}async _DoChangeLayout(e){const a=this._dispatcher,n=this.GetLayoutManager(),t=n.GetMainRunningLayout();await t._StopRunning(),t._Unload(e,this.GetWebGLRenderer()),t===e&&this._eventSheetManager.ClearAllScheduledWaits(),this._collisionEngine.ClearRegisteredCollisions(),a.dispatchEvent(this._eventObjects["beforelayoutchange"]),await e._Load(t,this.GetWebGLRenderer()),await e._StartRunning(!1),a.dispatchEvent(this._eventObjects["layoutchange"]),this.UpdateRender(),this._isLayoutFirstTick=!0,this.FlushPendingInstances()}UpdateRender(){this._needRender=!0}GetWebGLRenderer(){return this._canvasManager?this._canvasManager.GetWebGLRenderer():null}Render(){if(!this._canvasManager||this._canvasManager.IsWebGLContextLost())return;const e=this.GetWebGLRenderer();if(e.Start(),e.CheckForQueryResults(),!this._needRender)return void e.IncrementFrameNumber();const a=this.IsDebug();a&&C3Debugger.StartMeasuringTime(),this._needRender=!1;let n=null;e.SupportsGPUProfiling()&&(n=this._canvasManager.GetGPUFrameTimingsBuffer().AddTimeElapsedQuery(),e.StartQuery(n)),e.SetTextureFillMode(),e.SetAlphaBlend(),e.SetColorRgba(1,1,1,1),e.SetRenderTarget(null),e.SetTexture(null);const t=this._layoutManager.GetMainRunningLayout();t.Draw(e),n&&e.EndQuery(n),e.Finish(),a&&(C3Debugger.AddDrawCallsTime(),C3Debugger.UpdateInspectHighlight()),this._canvasManager&&this._canvasManager._MaybeTakeSnapshot()}Trigger(e,a){if(!this._hasStarted)return!1;const n=!this._isInTick&&!this._eventSheetManager.IsInTrigger();let t=0;n&&(t=performance.now());const s=this.IsDebug();s&&this.SetDebuggingEnabled(!1);const i=this._eventSheetManager._Trigger(this._layoutManager,e,a);if(n){const e=performance.now()-t;this._mainThreadTimeCounter+=e,s&&C3Debugger.AddTriggersTime(e)}return s&&this.SetDebuggingEnabled(!0),i}DebugTrigger(e,a){if(!this.IsDebug())return this.Trigger(e,a);if(this.HitBreakpoint())throw new Error("called DebugTrigger() while stopped on breakpoint");if(!this._isInTick&&!this._eventSheetManager.IsInTrigger())throw new Error("called DebugTrigger() outside of event code - use TriggerAsync() instead");return this._eventSheetManager._DebugTrigger(this._layoutManager,e,a)}async TriggerAsync(e,a){if(!this.IsDebugging())return this.Trigger(e,a);if(!this._hasStarted)return!1;if(this.HitBreakpoint())return this._eventSheetManager.QueueDebugTrigger(e,a);if(!this.GetMainRunningLayout())return this._eventSheetManager.QueueTrigger(e,a);const n=performance.now(),t=this._eventSheetManager._DebugTrigger(this._layoutManager,e,a);let s=t.next();for(;!s.done;)await this.DebugBreak(s.value),s=t.next();return this.IsSuspended()||this._eventSheetManager.IsInTrigger()||(await this._eventSheetManager.RunQueuedDebugTriggersAsync(),this._hasStartedTicking&&-1===this._rafId&&!this._isInTick&&(this._rafId=self.requestAnimationFrame(this._tickCallback))),this._mainThreadTimeCounter+=performance.now()-n,s.value}FastTrigger(e,a,n){const t=this.IsDebug();t&&this.SetDebuggingEnabled(!1);const s=this._eventSheetManager._FastTrigger(this._layoutManager,e,a,n);return t&&this.SetDebuggingEnabled(!0),s}DebugFastTrigger(e,a,n){return this._eventSheetManager._DebugFastTrigger(this._layoutManager,e,a,n)}ScheduleTriggers(e){return this._scheduleTriggersThrottle.Add(e)}PushCurrentLayout(e){this._currentLayoutStack.push(e)}PopCurrentLayout(){if(!this._currentLayoutStack.length)throw new Error("layout stack empty");this._currentLayoutStack.pop()}GetCurrentLayout(){if(!this._currentLayoutStack.length)throw new Error("no current layout");return this._currentLayoutStack[this._currentLayoutStack.length-1]}GetDt(e){return e&&-1!==e.GetTimeScale()?this._dt1*e.GetTimeScale():this._dt}_GetDtFast(){return this._dt}GetDt1(){return this._dt1}GetTimeScale(){return this._timeScale}SetTimeScale(e){(isNaN(e)||0>e)&&(e=0),this._timeScale=e}SetMinimumFramerate(e){this._minimumFramerate=C3.clamp(e,1,120)}GetMinimumFramerate(){return this._minimumFramerate}GetFPS(){return this._fps}GetMainThreadTime(){return this._mainThreadTime}GetStartTime(){return this._startTime}GetGameTime(){return this._gameTime.Get()}GetWallTime(){return this._wallTime.Get()}GetTickCount(){return this._tickCount}GetTickCountNoSave(){return this._tickCountNoSave}IncrementExecCount(){++this._execCount}GetExecCount(){return this._execCount}GetObjectCount(){return this._objectCount}GetProjectName(){return this._projectName}GetProjectVersion(){return this._projectVersion}GetProjectUniqueId(){return this._projectUniqueId}GetInstanceByUID(e){if(this._isLoadingState)throw new Error("cannot call while loading state - wait until afterload event");return this._instancesByUid.get(e)||null}_RefreshUidMap(){this._instancesByUid.clear();for(const e of this._allObjectClasses)if(!e.IsFamily())for(const a of e.GetInstances())this._instancesByUid.set(a.GetUID(),a)}IsPreview(){return"preview"===this._exportType}IsDebug(){return this._isDebug}GetExportType(){return this._exportType}IsCordova(){return"cordova"===this._exportType}IsWKWebView(){return this._isWKWebView}GetCollisionEngine(){return this._collisionEngine}GetSolidBehavior(){return this._pluginManager.GetSolidBehavior()}GetJumpthruBehavior(){return this._pluginManager.GetJumpthruBehavior()}IsLayoutFirstTick(){return this._isLayoutFirstTick}SetPixelRoundingEnabled(a){a=!!a;this._isPixelRoundingEnabled===a||(this._isPixelRoundingEnabled=a,this.UpdateRender())}IsPixelRoundingEnabled(){return this._isPixelRoundingEnabled}SaveToSlot(e){this._saveToSlotName=e}LoadFromSlot(e){this._loadFromSlotName=e}LoadFromJsonString(e){this._loadFromJson=e}GetLastSaveJsonString(){return this._lastSaveJson}_NeedsHandleSaveOrLoad(){return!!(this._saveToSlotName||this._loadFromSlotName||null!==this._loadFromJson)}async _HandleSaveOrLoad(){if(this._saveToSlotName&&(this.FlushPendingInstances(),await this._DoSaveToSlot(this._saveToSlotName),this._ClearSaveOrLoad()),this._loadFromSlotName&&(await this._DoLoadFromSlot(this._loadFromSlotName),this._ClearSaveOrLoad(),this.IsDebug()&&C3Debugger.StepIfPausedInDebugger()),null!==this._loadFromJson){this.FlushPendingInstances();try{await this._DoLoadFromJsonString(this._loadFromJson),this._lastSaveJson=this._loadFromJson,await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to load state from JSON string: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadFailed,null)}this._ClearSaveOrLoad()}}_ClearSaveOrLoad(){this._saveToSlotName="",this._loadFromSlotName="",this._loadFromJson=null}_GetSavegamesStorage(){return this._savegamesStorage||(this._savegamesStorage=localforage.createInstance({name:"c3-savegames-"+this.GetProjectUniqueId(),description:this.GetProjectName()})),this._savegamesStorage}async _DoSaveToSlot(e){const a=this._SaveToJsonString();try{await this._GetSavegamesStorage().setItem(e,a),console.log("[Construct 3] Saved state to storage ("+a.length+" chars)"),this._lastSaveJson=a,await this.TriggerAsync(C3.Plugins.System.Cnds.OnSaveComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to save state to storage: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnSaveFailed,null)}}async _DoLoadFromSlot(e){try{const a=await this._GetSavegamesStorage().getItem(e);if(!a)throw new Error("empty slot");console.log("[Construct 3] Loaded state from storage ("+a.length+" chars)"),await this._DoLoadFromJsonString(a),this._lastSaveJson=a,await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadComplete,null),this._lastSaveJson=""}catch(e){console.error("[Construct 3] Failed to load state from storage: ",e),await this.TriggerAsync(C3.Plugins.System.Cnds.OnLoadFailed,null)}}_SaveToJsonString(){const e={"c3save":!0,"version":1,"rt":{"time":this.GetGameTime(),"walltime":this.GetWallTime(),"timescale":this.GetTimeScale(),"tickcount":this.GetTickCount(),"execcount":this.GetExecCount(),"next_uid":this._nextUid,"running_layout":this.GetMainRunningLayout().GetSID(),"start_time_offset":Date.now()-this._startTime},"types":{},"layouts":{},"events":this._eventSheetManager._SaveToJson()};for(const a of this._allObjectClasses)a.IsFamily()||a.HasNoSaveBehavior()||(e["types"][a.GetSID().toString()]=a._SaveToJson());for(const a of this._layoutManager.GetAllLayouts())e["layouts"][a.GetSID().toString()]=a._SaveToJson();return JSON.stringify(e)}IsLoadingState(){return this._isLoadingState}_TriggerOnCreateAfterLoad(e){C3.shallowAssignArray(this._triggerOnCreateAfterLoad,e)}async _DoLoadFromJsonString(e){const a=JSON.parse(e);if(a["c2save"])throw new Error("C2 saves are incompatible with C3 runtime");if(!a["c3save"])throw new Error("not valid C3 save data");if(1n||n>=s.length)throw new Error("missing sibling instance");e._AddSibling(s[n])}}this._dispatcher.dispatchEvent(C3.New(C3.Event,"afterload")),this.UpdateRender()}async AddJobWorkerScripts(e){const a=await Promise.all(e.map((e)=>this._assetManager.FetchBlob(e))),n=a.map((e)=>URL.createObjectURL(e));this._jobScheduler.ImportScriptsToJobWorkers(n)}AddJobWorkerBlob(e,a){this._jobScheduler.SendBlobToJobWorkers(e,a)}AddJobWorkerBuffer(e,a){this._jobScheduler.SendBufferToJobWorkers(e,a)}AddJob(e,a,n){return this._jobScheduler.AddJob(e,a,n)}BroadcastJob(e,a,n){return this._jobScheduler.BroadcastJob(e,a,n)}InvokeDownload(e,a){this.PostComponentMessageToDOM("runtime","invoke-download",{"url":e,"filename":a})}async RasterSvgImage(e,a,n){if(this.IsInWorker())return await this.PostComponentMessageToDOMAsync("runtime","raster-svg-image",{"blob":e,"width":a,"height":n});else{const t=await C3.BlobToImage(e);return await self["C3_RasterSvgImage"](t,a,n)}}RequestDeviceOrientationEvent(){this._didRequestDeviceOrientationEvent||(this._didRequestDeviceOrientationEvent=!0,this.PostComponentMessageToDOM("runtime","enable-device-orientation"))}RequestDeviceMotionEvent(){this._didRequestDeviceMotionEvent||(this._didRequestDeviceMotionEvent=!0,this.PostComponentMessageToDOM("runtime","enable-device-motion"))}Random(){return this._randomNumberCallback()}SetRandomNumberGeneratorCallback(e){this._randomNumberCallback=e}_GetRemotePreviewStatusInfo(){return{"fps":this.GetFPS(),"cpu":this.GetMainThreadTime(),"gpu":this.GetGPUUtilisation(),"layout":this.GetMainRunningLayout()?this.GetMainRunningLayout().GetName():"","renderer":this.GetWebGLRenderer().GetUnmaskedRenderer()}}HitBreakpoint(){return!!this.IsDebug()&&C3Debugger.HitBreakpoint()}DebugBreak(e){return this.IsDebugging()?C3Debugger.DebugBreak(e):Promise.resolve()}DebugBreakNext(){return!!this.IsDebugging()&&C3Debugger.BreakNext()}SetDebugBreakpointsEnabled(a){this._breakpointsEnabled=!!a,this._UpdateDebuggingFlag()}AreDebugBreakpointsEnabled(){return this._breakpointsEnabled}IsDebugging(){return this._isDebugging}SetDebuggingEnabled(e){e?this._debuggingDisabled--:this._debuggingDisabled++,this._UpdateDebuggingFlag()}_UpdateDebuggingFlag(){this._isDebugging=this.IsDebug()&&this._breakpointsEnabled&&0===this._debuggingDisabled}IsCPUProfiling(){return this.IsDebug()&&C3Debugger.IsCPUProfiling()}IsGPUProfiling(){return this.IsDebug()&&this.GetWebGLRenderer().SupportsGPUProfiling()&&C3Debugger.IsGPUProfiling()}async DebugIterateAndBreak(e){if(e)for(const a of e)await this.DebugBreak(a)}DebugFireGeneratorEventAndBreak(e){return this.DebugIterateAndBreak(this._dispatcher.dispatchGeneratorEvent(e))}_InvokeFunctionFromJS(a){return this._eventSheetManager._InvokeFunctionFromJS(a["name"],a["params"])}},self["C3_CreateRuntime"]=C3.Runtime.Create,self["C3_InitRuntime"]=(e,a)=>e.Init(a)} + +// c3/workers/jobSchedulerRuntime.js +"use strict";C3.JobSchedulerRuntime=class extends C3.DefendedBase{constructor(a,b){super(),this._runtime=a,this._jobPromises=new Map,this._nextJobId=0,this._inputPort=b["inputPort"],b["outputPort"].onmessage=(a)=>this._OnJobWorkerMessage(a),this._maxNumWorkers=b["maxNumWorkers"],this._jobWorkerCount=1,this._isCreatingWorker=!1,this._hadErrorCreatingWorker=!1,this._isBroken=!1,this._testOkResolve=null}async Init(){await this._TestMessageChannelWorks()}ImportScriptsToJobWorkers(a){this._isBroken||this._inputPort.postMessage({"type":"_import_scripts","scripts":a})}SendBlobToJobWorkers(a,b){this._isBroken||this._inputPort.postMessage({"type":"_send_blob","blob":a,"id":b})}SendBufferToJobWorkers(a,b){this._isBroken||this._inputPort.postMessage({"type":"_send_buffer","buffer":a,"id":b},[a])}AddJob(a,b,c,d,e){if(this._isBroken)return Promise.reject("messagechannels broken");c||(c=[]);const f=this._nextJobId++,g={"type":a,"isBroadcast":!1,"jobId":f,"params":b,"transferables":c},h=new Promise((a,b)=>{this._jobPromises.set(f,{resolve:a,progress:d,reject:b,cancelled:!1})});return e&&e.SetAction(()=>this._CancelJob(f)),this._inputPort.postMessage(g,c),this._MaybeCreateExtraWorker(),h}BroadcastJob(a,b,c){if(!this._isBroken){c||(c=[]);const d=this._nextJobId++,e={"type":a,"isBroadcast":!0,"jobId":d,"params":b,"transferables":c};this._inputPort.postMessage(e,c)}}_CancelJob(a){const b=this._jobPromises.get(a);b&&(b.cancelled=!0,b.resolve=null,b.progress=null,b.reject=null,this._inputPort.postMessage({"type":"_cancel","jobId":a}))}_OnJobWorkerMessage(a){const b=a.data,c=b["type"],d=b["jobId"];switch(c){case"result":this._OnJobResult(d,b["result"]);break;case"progress":this._OnJobProgress(d,b["progress"]);break;case"error":this._OnJobError(d,b["error"]);break;case"ready":this._OnJobWorkerReady();break;case"_testMessageChannelOk":this._OnTestMessageChannelOk();break;default:throw new Error(`unknown message from worker '${c}'`);}}_OnJobResult(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");c.cancelled||c.resolve(b),this._jobPromises.delete(a)}_OnJobProgress(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");!c.cancelled&&c.progress&&c.progress(b)}_OnJobError(a,b){const c=this._jobPromises.get(a);if(!c)throw new Error("invalid job ID");c.cancelled||c.reject(b),this._jobPromises.delete(a)}_OnJobWorkerReady(){this._isCreatingWorker&&(this._isCreatingWorker=!1,this._jobWorkerCount++,this._jobWorkerCount=this._maxNumWorkers||this._isCreatingWorker||this._hadErrorCreatingWorker||this._jobPromises.size<=this._jobWorkerCount))try{this._isCreatingWorker=!0;const a=await this._runtime.PostComponentMessageToDOMAsync("runtime","create-job-worker");a["outputPort"].onmessage=(a)=>this._OnJobWorkerMessage(a)}catch(a){this._hadErrorCreatingWorker=!0,this._isCreatingWorker=!1,console.error(`[Construct 3] Failed to create job worker; stopping creating any more (created ${this._jobWorkerCount} so far)`,a)}}_TestMessageChannelWorks(){return this._inputPort.postMessage({"type":"_testMessageChannel"}),self.setTimeout(()=>this._CheckMessageChannelTestTimedOut(),2e3),new Promise((a)=>this._testOkResolve=a)}_OnTestMessageChannelOk(){this._testOkResolve(),this._testOkResolve=null}_CheckMessageChannelTestTimedOut(){this._testOkResolve&&(console.warn("MessageChannel determined to be broken. Job scheduler disabled."),this._isBroken=!0,this._testOkResolve(),this._testOkResolve=null)}}; + +self["C3_Shaders"] = {}; + + +"use strict";{function a(c,a){const b=c[1],d=a[1];if("number"==typeof b&&"number"==typeof d)return b-d;else{const a=""+b,c=""+d;return ac?1:0}}let b=null,c="",d="",e=[],f="",g="",h="";const i=C3.New(C3.ArrayStack);C3.Plugins.System=class extends C3.SDKPluginBase{constructor(a){super(a),this._loopStack=this._runtime.GetEventSheetManager().GetLoopStack(),this._eventStack=this._runtime.GetEventSheetManager().GetEventStack(),this._imagesLoadingTotal=0,this._imagesLoadingComplete=0,this._functionMaps=new Map}Release(){super.Release()}UpdateRender(){this._runtime.UpdateRender()}Trigger(a){this._runtime.Trigger(a,null)}GetRegex(a,e){return b&&a===c&&e===d||(b=new RegExp(a,e),c=a,d=e),b.lastIndex=0,b}GetRegexMatches(a,b,c){if(a===f&&b===g&&c===h)return e;const d=this.GetRegex(b,c);return e=a.match(d),f=a,g=b,h=c,e}async _LoadTexturesForObjectClasses(a,b){if(b.length){this._imagesLoadingTotal+=b.length;const c=[];for(const d of b)c.push(a.MaybeLoadTexturesFor(d));await C3.PromiseAllWithProgress(c,()=>{this._imagesLoadingComplete++}),this._imagesLoadingComplete++,this._imagesLoadingComplete===this._imagesLoadingTotal&&(this._runtime.Trigger(C3.Plugins.System.Cnds.OnImageLoadingComplete,null),this._imagesLoadingComplete=0,this._imagesLoadingTotal=0)}}_UnloadTexturesForObjectClasses(a,b){for(const c of b)0===c.GetInstanceCount()&&a.MaybeUnloadTexturesFor(c)}_GetForEachStack(){return i}_Repeat(a){const b=this._runtime.GetEventSheetManager(),c=b.GetEventStack(),d=c.GetCurrentStackFrame(),e=d.GetCurrentEvent(),f=e.GetSolModifiers(),g=d.IsSolModifierAfterCnds(),h=c.Push(e),i=b.GetLoopStack(),j=i.Push();if(j.SetEnd(a),g)for(let c=0;c=c&&!l.IsStopped();--a)d.PushCopySol(h),l.SetIndex(a),g.Retrigger(f,j),d.PopSol(h);else for(let a=b;a>=c&&!l.IsStopped();--a)l.SetIndex(a),g.Retrigger(f,j);}else if(i)for(let a=b;a<=c&&!l.IsStopped();++a)d.PushCopySol(h),l.SetIndex(a),g.Retrigger(f,j),d.PopSol(h);else for(let a=b;a<=c&&!l.IsStopped();++a)l.SetIndex(a),g.Retrigger(f,j);return e.Pop(),k.Pop(),!1}*_DebugFor(a,b,c){const d=this._runtime.GetEventSheetManager(),e=d.GetEventStack(),f=e.GetCurrentStackFrame(),g=f.GetCurrentEvent(),h=g.GetSolModifiers(),i=f.IsSolModifierAfterCnds(),j=e.Push(g),k=d.GetLoopStack(),l=k.Push();if(l.SetName(a),l.SetEnd(c),c=c&&!l.IsStopped();--a)d.PushCopySol(h),l.SetIndex(a),yield*g.DebugRetrigger(f,j),d.PopSol(h);else for(let a=b;a>=c&&!l.IsStopped();--a)l.SetIndex(a),yield*g.DebugRetrigger(f,j);}else if(i)for(let a=b;a<=c&&!l.IsStopped();++a)d.PushCopySol(h),l.SetIndex(a),yield*g.DebugRetrigger(f,j),d.PopSol(h);else for(let a=b;a<=c&&!l.IsStopped();++a)l.SetIndex(a),yield*g.DebugRetrigger(f,j);return e.Pop(),k.Pop(),!1}_ForEach(a){const b=this._runtime.GetEventSheetManager(),c=b.GetEventStack(),d=c.GetCurrentStackFrame(),e=d.GetCurrentEvent(),f=e.GetSolModifiers(),g=d.IsSolModifierAfterCnds(),h=c.Push(e),j=b.GetLoopStack(),k=j.Push(),l=a.IsInContainer(),m=a.GetCurrentSol(),n=i.Push();if(C3.shallowAssignArray(n,m.GetInstances()),k.SetEnd(n.length),g)for(let c=0,g=n.length;c=d+f?(c.set("Every_lastTime",d+f),e>=c.get("Every_lastTime")+.04&&c.set("Every_lastTime",e),c.set("Every_seconds",a),!0):(e=d&&c<=a},CompareVar(a,b,c){return C3.compare(a.GetValue(),b,c)},CompareBoolVar(a){return!!a.GetValue()},CompareTime(a,b){const c=this._runtime.GetGameTime();if(0===a){const a=this._runtime.GetCurrentCondition(),d=a.GetSavedDataMap();return!(d.get("CompareTime_executed")||!(c>=b))&&(d.set("CompareTime_executed",!0),!0)}return C3.compare(c,a,b)},IsNaN(a){return isNaN(a)},AngleWithin(a,b,c){return C3.angleDiff(C3.toRadians(a),C3.toRadians(c))<=C3.toRadians(b)},IsClockwiseFrom(a,b){return C3.angleClockwise(C3.toRadians(a),C3.toRadians(b))},IsBetweenAngles(b,a,c){let d=C3.toRadians(b),e=C3.toRadians(a),f=C3.toRadians(c),g=!C3.angleClockwise(f,e);return g?C3.angleClockwise(d,e)||!C3.angleClockwise(d,f):C3.angleClockwise(d,e)&&!C3.angleClockwise(d,f)},IsValueType(a,b){return"number"==typeof a?0===b:1===b},PickByComparison(a,b,c,d){if(!a)return!1;const e=this._GetForEachStack(),f=e.Push(),g=a.GetCurrentSol();C3.shallowAssignArray(f,g.GetInstances()),g.IsSelectAll()&&C3.clearArray(g._GetOwnElseInstances());const h=this._runtime.GetCurrentCondition();let j=0;for(let e=0,i=f.length;e=d.length)return!1;const e=d[b];return c.PickOne(e),a.ApplySolToContainer(),!0},PickRandom(a){if(!a)return!1;const b=a.GetCurrentSol(),c=b.GetInstances(),d=Math.floor(this._runtime.Random()*c.length);if(d>=c.length)return!1;const e=c[d];return b.PickOne(e),a.ApplySolToContainer(),!0},PickAll(a){if(!a)return!1;if(!a.GetInstanceCount())return!1;const b=a.GetCurrentSol();return b._SetSelectAll(!0),a.ApplySolToContainer(),!0},PickOverlappingPoint(b,c,d){if(!b)return!1;const e=b.GetCurrentSol(),f=e.GetInstances(),g=this._runtime.GetCurrentEvent(),h=g.IsOrBlock(),j=this._runtime.GetCurrentCondition().IsInverted();e.IsSelectAll()?(C3.shallowAssignArray(a,f),e.ClearArrays(),e._SetSelectAll(!1)):h?(C3.shallowAssignArray(a,e._GetOwnElseInstances()),C3.clearArray(e._GetOwnElseInstances())):(C3.shallowAssignArray(a,e._GetOwnInstances()),C3.clearArray(e._GetOwnInstances()));for(let f=0,g=a.length;fb&&(b=0),!!a){const c=a.GetCurrentSol(),d=c.GetInstances();for(const a of d)a.SetTimeScale(b)}},RestoreObjectTimescale(a){if(a){const b=a.GetCurrentSol(),c=b.GetInstances();for(const a of c)a.RestoreTimeScale()}},Wait(a){if(!(0>a))return this._runtime.GetEventSheetManager().AddScheduledWait().InitTimer(a),!0},WaitForSignal(a){return this._runtime.GetEventSheetManager().AddScheduledWait().InitSignal(a),!0},Signal(a){const b=a.toLowerCase();for(const c of this._runtime.GetEventSheetManager().scheduledWaits())c.IsSignal()&&c.GetSignalTag()===b&&c.SetSignalled()},SnapshotCanvas(a,b){const c=this._runtime.GetCanvasManager();c&&(c.SnapshotCanvas(0===a?"image/png":"image/jpeg",b/100).then(()=>this._runtime.TriggerAsync(C3.Plugins.System.Cnds.OnCanvasSnapshot,null)),this.UpdateRender())},SetCanvasSize(a,b){if(!(0>=a||0>=b)){this._runtime.SetViewportSize(a,b);const c=this._runtime.GetCanvasManager();c&&("off"===c.GetCurrentFullscreenMode()?c.SetSize(c.GetLastWidth(),c.GetLastHeight(),!0):(this._runtime.SetOriginalViewportSize(a,b),c.SetSize(c.GetLastWidth(),c.GetLastHeight(),!0)),this._runtime.UpdateRender())}},SetFullscreenQuality(a){const b=this._runtime.GetCanvasManager();b&&"off"!==b.GetCurrentFullscreenMode()&&(b.SetFullscreenScalingQuality(0===a?"low":"high"),b.SetSize(b.GetLastWidth(),b.GetLastHeight(),!0))},SaveState(a){this._runtime.SaveToSlot(a)},LoadState(a){this._runtime.LoadFromSlot(a)},LoadStateJSON(a){this._runtime.LoadFromJsonString(a)},SetHalfFramerateMode(){},ResetPersisted(){for(const a of this._runtime.GetLayoutManager().GetAllLayouts())a.ResetPersistData()},SetPixelRounding(a){this._runtime.SetPixelRoundingEnabled(0!==a)},SetMinimumFramerate(a){this._runtime.SetMinimumFramerate(a)},SortZOrderByInstVar(e,f){if(!e)return;const g=e.GetCurrentSol(),h=g.GetInstances(),j=c,k=d,l=this._runtime.GetCurrentLayout(),m=e.IsFamily(),n=e.GetFamilyIndex();for(let a=0,b=h.length;ac||c>=b.length)){const a=g.GetShaderProgram().GetParameterType(c);if("color"===a){e.setFromRgbValue(d);const a=b[c];if(e.equalsIgnoringAlpha(a))return;a.copyRgb(e)}else{if("percent"===a&&(d/=100),b[c]===d)return;b[c]=d}g.IsActive()&&this._runtime.UpdateRender()}}}},SetLayerForceOwnTexture(a,b){a&&(b=!!b,a.IsForceOwnTexture()===b||(a.SetForceOwnTexture(b),this.UpdateRender()))},SetLayoutScale(a){const b=this._runtime.GetCurrentLayout();b.GetScale()===a||(b.SetScale(a),this.UpdateRender())},SetLayoutAngle(b){b=C3.clampAngle(C3.toRadians(+b));const c=this._runtime.GetCurrentLayout();c.GetAngle()===b||(c.SetAngle(b),this.UpdateRender())},SetLayoutEffectEnabled(a,b){const c=this._runtime.GetCurrentLayout(),d=c.GetEffectList(),f=d.GetEffectTypeByName(b);if(f){const b=1===a;f.IsActive()===b||(f.SetActive(b),d.UpdateActiveEffects(),this._runtime.UpdateRender())}},SetLayoutEffectParam(a,b,c){const d=this._runtime.GetCurrentLayout(),f=d.GetEffectList(),g=f.GetEffectTypeByName(a);if(g){const a=g.GetIndex(),d=f.GetEffectParametersForIndex(a);if(b=Math.floor(b),!(0>b||b>=d.length)){const a=g.GetShaderProgram().GetParameterType(b);if("color"===a){e.setFromRgbValue(c);const a=d[b];if(e.equalsIgnoringAlpha(a))return;a.copyRgb(e)}else{if("percent"===a&&(c/=100),d[b]===c)return;d[b]=c}g.IsActive()&&this._runtime.UpdateRender()}}},ScrollX(a){const b=this._runtime.GetCurrentLayout();b.SetScrollX(a)},ScrollY(a){const b=this._runtime.GetCurrentLayout();b.SetScrollY(a)},Scroll(a,b){const c=this._runtime.GetCurrentLayout();c.SetScrollX(a),c.SetScrollY(b)},ScrollToObject(a){if(a){const b=a.GetFirstPicked();if(b){const a=b.GetWorldInfo();if(a){const b=this._runtime.GetCurrentLayout();b.SetScrollX(a.GetX()),b.SetScrollY(a.GetY())}}}},LoadObjectTextures(a){const b=this._runtime.GetMainRunningLayout();if(b&&a&&!this._runtime.IsLoading()){const c=a.IsFamily()?a.GetFamilyMembers():[a];this._LoadTexturesForObjectClasses(b,c)}},LoadObjectTexturesByName(a){C3.Plugins.System.Acts.LoadObjectTextures.call(this,this._runtime.GetObjectClassByName(a))},UnloadObjectTextures(a){const b=this._runtime.GetMainRunningLayout();if(b&&a){const c=a.IsFamily()?a.GetFamilyMembers():[a];this._UnloadTexturesForObjectClasses(b,c)}},UnloadObjectTexturesByName(a){C3.Plugins.System.Acts.UnloadObjectTexturesByName.call(this,this._runtime.GetObjectClassByName(a))},UnloadUnusedTextures(){const a=this._runtime.GetMainRunningLayout();if(a){const b=a._GetTextureLoadedObjectTypes();this._UnloadTexturesForObjectClasses(a,b)}},LoadLayoutTextures(a){const b=this._runtime.GetMainRunningLayout();a&&b&&!this._runtime.IsLoading()&&this._LoadTexturesForObjectClasses(b,a._GetInitialObjectClasses())},LoadLayoutTexturesByName(a){const b=this._runtime.GetMainRunningLayout(),c=this._runtime.GetLayoutManager().GetLayoutByName(a);c&&b&&!this._runtime.IsLoading()&&this._LoadTexturesForObjectClasses(b,c._GetInitialObjectClasses())},SetFunctionReturnValue(a){const b=this._eventStack.GetCurrentExpFuncStackFrame();if(b)switch(b.GetFunctionReturnType()){case 1:"number"==typeof a&&b.SetFunctionReturnValue(a);break;case 2:"string"==typeof a&&b.SetFunctionReturnValue(a);break;case 3:b.SetFunctionReturnValue(a);}},MapFunction(a,b,c){const d=this._GetFunctionMap(a.toLowerCase(),!0).strMap,e=b.toLowerCase();d.has(e)&&console.warn(`[Construct 3] Function map '${a}' string '${b}' already in map; overwriting entry`),d.set(e,c)},MapFunctionDefault(a,b){const c=this._GetFunctionMap(a.toLowerCase(),!0);c.defaultFunc&&console.warn(`[Construct 3] Function map '${a}' already has a default; overwriting entry`),c.defaultFunc=b},CallMappedFunction(a,b,c){c=Math.floor(c);const d=this._GetFunctionMap(a.toLowerCase(),!1);if(!d)return void console.warn(`[Construct 3] Call mapped function: map name '${a}' not found; call ignored`);let e=d.strMap.get(b.toLowerCase());if(!e)if(d.defaultFunc)e=d.defaultFunc,c=0;else return void console.warn(`[Construct 3] Call mapped function: no function associated with map '${a}' string '${b}'; call ignored (consider setting a default)`);const f=this._runtime,g=f.GetEventSheetManager(),h=g.GetCurrentEvent(),i=h.GetSolModifiersIncludingParents(),j=0c&&(b=c);return b},clamp(a,b,c){return C3.clamp(a,b,c)},distance(a,b,c,d){return C3.distanceTo(a,b,c,d)},angle(a,b,c,d){return C3.toDegrees(C3.angleTo(a,b,c,d))},lerp(c,a,b){return C3.lerp(c,a,b)},unlerp(c,a,b){return C3.unlerp(c,a,b)},qarp(d,a,b,c){return C3.qarp(d,a,b,c)},cubic(e,a,b,c,d){return C3.cubic(e,a,b,c,d)},cosp(c,a,b){return C3.cosp(c,a,b)},anglediff(c,a){return C3.toDegrees(C3.angleDiff(C3.toRadians(c),C3.toRadians(a)))},anglelerp(c,a,b){return C3.toDegrees(C3.angleLerp(C3.toRadians(c),C3.toRadians(a),b))},anglerotate(d,a,b){return C3.toDegrees(C3.angleRotate(C3.toRadians(d),C3.toRadians(a),C3.toRadians(b)))},setbit(a,c,b){return a|=0,c|=0,b=0===b?0:1,a&~(1<b||b>=d.length?"":d[b]},tokencount(a,b){return"string"==typeof a&&"string"==typeof b&&a.length?a.split(b).length:0},find(a,b){return"string"==typeof a&&"string"==typeof b?a.search(new RegExp(C3.EscapeRegex(b),"i")):-1},findcase(a,b){return"string"==typeof a&&"string"==typeof b?a.search(new RegExp(C3.EscapeRegex(b),"")):-1},replace(a,b,c){return"string"==typeof a&&"string"==typeof b&&"string"==typeof c?a.replace(new RegExp(C3.EscapeRegex(b),"gi"),c):"string"==typeof a?a:""},regexsearch(a,b,c){const d=this.GetRegex(b,c);return a?a.search(d):-1},regexreplace(a,b,c,d){const e=this.GetRegex(b,c);return a?a.replace(e,d):""},regexmatchcount(a,b,c){const d=this.GetRegexMatches(a.toString(),b,c);return d?d.length:0},regexmatchat(a,b,c,d){d=Math.floor(d);const e=this.GetRegexMatches(a.toString(),b,c);return!e||0>d||d>=e.length?"":e[d]},zeropad(a,b){let c=0>a?"-":"";0>a&&(a=-a);const d=b-a.toString().length;return c+="0".repeat(Math.max(d,0)),c+a.toString()},urlencode(a){return encodeURIComponent(a)},urldecode(a){return decodeURIComponent(a)},dt(){return this._runtime._GetDtFast()},timescale(){return this._runtime.GetTimeScale()},wallclocktime(){return(Date.now()-this._runtime.GetStartTime())/1e3},unixtime(){return Date.now()},time(){return this._runtime.GetGameTime()},tickcount(){return this._runtime.GetTickCount()},objectcount(){return this._runtime.GetObjectCount()},fps(){return this._runtime.GetFPS()},cpuutilisation(){return this._runtime.GetMainThreadTime()},gpuutilisation(){return this._runtime.GetGPUUtilisation()},windowwidth(){return this._runtime.GetCanvasManager().GetDeviceWidth()},windowheight(){return this._runtime.GetCanvasManager().GetDeviceHeight()},originalwindowwidth(){return this._runtime.GetOriginalViewportWidth()},originalwindowheight(){return this._runtime.GetOriginalViewportHeight()},originalviewportwidth(){return this._runtime.GetOriginalViewportWidth()},originalviewportheight(){return this._runtime.GetOriginalViewportHeight()},scrollx(){return this._runtime.GetCurrentLayout().GetScrollX()},scrolly(){return this._runtime.GetCurrentLayout().GetScrollY()},layoutname(){return this._runtime.GetCurrentLayout().GetName()},layoutscale(){return this._runtime.GetCurrentLayout().GetScale()},layoutangle(){return C3.toDegrees(this._runtime.GetCurrentLayout().GetAngle())},layoutwidth(){return this._runtime.GetCurrentLayout().GetWidth()},layoutheight(){return this._runtime.GetCurrentLayout().GetHeight()},viewportleft(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getLeft():0},viewporttop(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getTop():0},viewportright(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getRight():0},viewportbottom(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().getBottom():0},viewportwidth(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().width():0},viewportheight(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetViewport().height():0},canvastolayerx(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.CanvasCssToLayer(b,c)[0]:0},canvastolayery(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.CanvasCssToLayer(b,c)[1]:0},layertocanvasx(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.LayerToCanvasCss(b,c)[0]:0},layertocanvasy(a,b,c){const d=this._runtime.GetCurrentLayout().GetLayer(a);return d?d.LayerToCanvasCss(b,c)[1]:0},layerscale(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetOwnScale():0},layerangle(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?C3.toDegrees(b.GetOwnAngle()):0},layeropacity(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetOpacity():0},layerscalerate(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetScaleRate():0},layerparallaxx(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetParallaxX():0},layerparallaxy(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?100*b.GetParallaxY():0},layerzelevation(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetZElevation():0},layerindex(a){const b=this._runtime.GetCurrentLayout().GetLayer(a);return b?b.GetIndex():-1},canvassnapshot(){const a=this._runtime.GetCanvasManager();return a?a.GetCanvasSnapshotUrl():""},loopindex(a){const b=this._loopStack;if(!b.IsInLoop())return 0;if(a){const c=b.FindByName(a);return c?c.GetIndex():0}return b.GetCurrent().GetIndex()},savestatejson(){return this._runtime.GetLastSaveJsonString()},loadingprogress(){return this._runtime.GetAssetManager().GetLoadProgress()},imageloadingprogress(){return 0===this._imagesLoadingTotal?1:this._imagesLoadingComplete/this._imagesLoadingTotal},renderer(){return"webgl"},rendererdetail(){return this._runtime.GetWebGLRenderer().GetUnmaskedRenderer()},imagememoryusage(){let a=this._runtime.GetWebGLRenderer().GetEstimatedTextureMemoryUsage();return Math.round(100*a/1048576)/100},rgb(a,c,d){return C3.PackRGB(a,c,d)},rgbex(a,c,d){return C3.PackRGBEx(a/100,c/100,d/100)},rgba(c,d,e,b){return C3.PackRGBAEx(c/100,d/100,e/100,b/100)},rgbex255(a,c,d){return C3.PackRGBEx(a/255,c/255,d/255)},rgba255(c,d,e,b){return C3.PackRGBAEx(c/255,d/255,e/255,b/255)},projectname(){return this._runtime.GetProjectName()},projectversion(){return this._runtime.GetProjectVersion()},currenteventsheetname(){return this._runtime.GetCurrentEvent().GetEventSheet().GetName()},currenteventnumber(){return this._runtime.GetCurrentEvent().GetDisplayNumber()}}; + +"use strict";C3.Plugins.Sprite=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Sprite.Type=class extends C3.SDKTypeBase{constructor(a){super(a),this._animations=a.GetAnimations()}Release(){C3.clearArray(this._animations),super.Release()}OnCreate(){for(const b of this._animations)b.LoadAllAssets(this._runtime)}LoadTextures(b){const c={sampling:this._runtime.GetSampling()};return Promise.all(this._animations.map((d)=>d.LoadAllTextures(b,c)))}ReleaseTextures(){for(const b of this._animations)b.ReleaseAllTextures()}OnDynamicTextureLoadComplete(){this._UpdateAllCurrentTexture()}_UpdateAllCurrentTexture(){for(const a of this._objectClass.GetInstances())a.GetSdkInstance()._UpdateCurrentTexture()}FinishCondition(a){C3.Plugins.Sprite._FinishCondition(this,a)}}; + +"use strict";{const a=C3.New(C3.Quad),b=C3.New(C3.Vector2);C3.Plugins.Sprite.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a);let c=!0,d="",e=0,f=!0;b&&(c=!!b[0],d=b[1],e=b[2],f=b[3]),this._currentAnimation=this._objectClass.GetAnimationByName(d)||this._objectClass.GetAnimations()[0],this._currentFrameIndex=C3.clamp(e,0,this._currentAnimation.GetFrameCount()-1),this._currentAnimationFrame=this._currentAnimation.GetFrameAt(this._currentFrameIndex);const g=this._currentAnimationFrame.GetImageInfo();this._currentTexture=g.GetTexture(),this._currentRcTex=g.GetTexRect(),this.HandleWebGLContextLoss(),this._isPlayingForwards=0<=this._currentAnimation.GetSpeed(),this._currentAnimationSpeed=Math.abs(this._currentAnimation.GetSpeed()),this._currentAnimationRepeatTo=this._currentAnimation.GetRepeatTo(),this._animationTimer=C3.New(C3.KahanSum),this._frameStartTime=0,this._isAnimationPlaying=!0,this._animationRepeats=0,this._animTriggerName="",this._isInAnimTrigger=!1,this._changeAnimFrameIndex=-1,this._changeAnimationName="",this._changeAnimationFrom=0;const h=this.GetWorldInfo();this._bquadRef=h.GetBoundingQuad(),h.SetVisible(c),h.SetCollisionEnabled(f),h.SetOriginX(this._currentAnimationFrame.GetOriginX()),h.SetOriginY(this._currentAnimationFrame.GetOriginY()),h.SetSourceCollisionPoly(this._currentAnimationFrame.GetCollisionPoly()),h.SetBboxChanged(),(1!==this._objectClass.GetAnimationCount()||1!==this._objectClass.GetAnimations()[0].GetFrameCount())&&0!==this._currentAnimationSpeed&&this._StartTicking()}Release(){this._currentAnimation=null,this._currentAnimationFrame=null,this._currentTexture=null,this._animationTimer=null,super.Release()}GetCurrentImageInfo(){return this._currentAnimationFrame.GetImageInfo()}OnWebGLContextLost(){this._currentTexture=null}OnWebGLContextRestored(){this._UpdateCurrentTexture()}Draw(b){var c=Math.round;const d=this._currentTexture;if(null!==d){const e=this._bquadRef,f=this._currentRcTex;if(b.SetTexture(d),this._runtime.IsPixelRoundingEnabled()){const d=this.GetWorldInfo(),g=c(d.GetX())-d.GetX(),h=c(d.GetY())-d.GetY();a.copy(e),a.offset(g,h),b.Quad3(a,f)}else b.Quad3(e,f)}}_DrawCollisionPoly(a){const b=this.GetWorldInfo(),c=b.GetTransformedCollisionPoly();a.SetColorFillMode(),a.SetColorRgba(1,0,0,1);const d=c.pointsArr(),e=b.GetX(),f=b.GetY();for(let b=0,c=d.length;b=g&&(j?(this._isPlayingForwards=!1,this._currentFrameIndex=g-2):i?this._currentFrameIndex=f:(this._animationRepeats++,this._animationRepeats>=h?this._FinishAnimation(!1):this._currentFrameIndex=f)),0>this._currentFrameIndex&&(j?(this._currentFrameIndex=1,this._isPlayingForwards=!0,!i&&(this._animationRepeats++,this._animationRepeats>=h&&this._FinishAnimation(!0))):i?this._currentFrameIndex=f:(this._animationRepeats++,this._animationRepeats>=h?this._FinishAnimation(!0):this._currentFrameIndex=f)),this._currentFrameIndex=C3.clamp(this._currentFrameIndex,0,g-1);const k=b.GetFrameAt(this._currentFrameIndex);c>this._frameStartTime+k.GetDuration()/a&&(this._frameStartTime=c),this._OnFrameChanged(d,k)}}_FinishAnimation(a){this._currentFrameIndex=a?0:this._currentAnimation.GetFrameCount()-1,this._isAnimationPlaying=!1,this._animTriggerName=this._currentAnimation.GetName(),this._isInAnimTrigger=!0,this.Trigger(C3.Plugins.Sprite.Cnds.OnAnyAnimFinished),this.Trigger(C3.Plugins.Sprite.Cnds.OnAnimFinished),this._isInAnimTrigger=!1,this._animationRepeats=0}_OnFrameChanged(a,b){const c=this.GetWorldInfo(),d=a.GetImageInfo(),e=b.GetImageInfo(),f=d.GetWidth(),g=d.GetHeight(),h=e.GetWidth(),i=e.GetHeight();f!==h&&c.SetWidth(c.GetWidth()*(h/f)),g!==i&&c.SetHeight(c.GetHeight()*(i/g)),c.SetOriginX(b.GetOriginX()),c.SetOriginY(b.GetOriginY()),c.SetSourceCollisionPoly(b.GetCollisionPoly()),c.SetBboxChanged(),this._currentAnimationFrame=b,this._currentTexture=e.GetTexture(),this._currentRcTex=e.GetTexRect();const j=this.GetInstance().GetBehaviorInstances();for(let c=0,d=j.length;cthis.CallAction(a.SetAnim,b,0)},{name:"plugins.sprite.debugger.animation-properties.current-frame",value:this._currentFrameIndex,onedit:(b)=>this.CallAction(a.SetAnimFrame,b)},{name:"plugins.sprite.debugger.animation-properties.is-playing",value:this._isAnimationPlaying,onedit:(b)=>b?this.CallAction(a.StartAnim,0):this.CallAction(a.StopAnim)},{name:"plugins.sprite.debugger.animation-properties.speed",value:this._currentAnimationSpeed,onedit:(b)=>this.CallAction(a.SetAnimSpeed,b)},{name:"plugins.sprite.debugger.animation-properties.repeats",value:this._animationRepeats,onedit:(a)=>this._animationRepeats=a}]}]}SaveToJson(){const a={"a":this._currentAnimation.GetSID()};0!==this._frameStartTime&&(a["fs"]=this._frameStartTime);const b=this.GetAnimationTime();0!==b&&(a["at"]=b),0!==this._currentFrameIndex&&(a["f"]=this._currentFrameIndex),0!==this._currentAnimationSpeed&&(a["cas"]=this._currentAnimationSpeed),1!==this._animationRepeats&&(a["ar"]=this._animationRepeats),0!==this._currentAnimationRepeatTo&&(a["rt"]=this._currentAnimationRepeatTo),this._isAnimationPlaying||(a["ap"]=this._isAnimationPlaying),this._isPlayingForwards||(a["af"]=this._isPlayingForwards);const c=this.GetWorldInfo();return c.IsCollisionEnabled()&&(a["ce"]=c.IsCollisionEnabled()),a}LoadFromJson(a){const b=this.GetObjectClass().GetAnimationBySID(a["a"]);b&&(this._currentAnimation=b),this._frameStartTime=a.hasOwnProperty("fs")?a["fs"]:0,this._animationTimer.Set(a.hasOwnProperty("at")?a["at"]:0);const c=a.hasOwnProperty("f")?a["f"]:0;this._currentFrameIndex=C3.clamp(c,0,this._currentAnimation.GetFrameCount()-1),this._currentAnimationSpeed=a.hasOwnProperty("cas")?a["cas"]:0,this._animationRepeats=a.hasOwnProperty("ar")?a["ar"]:1;const d=a.hasOwnProperty("rt")?a["rt"]:0;this._currentAnimationRepeatTo=C3.clamp(d,0,this._currentAnimation.GetFrameCount()-1),this._isAnimationPlaying=!a.hasOwnProperty("ap")||!!a["ap"],this._isPlayingForwards=!a.hasOwnProperty("af")||!!a["af"];const e=this._currentAnimation.GetFrameAt(this._currentFrameIndex),f=e.GetImageInfo();this._currentAnimationFrame=e,this._currentTexture=f.GetTexture(),this._currentRcTex=f.GetTexRect();const g=this.GetWorldInfo();g.SetOriginX(e.GetOriginX()),g.SetOriginY(e.GetOriginY()),g.SetSourceCollisionPoly(e.GetCollisionPoly()),g.SetCollisionEnabled(!!a["ce"])}GetPropertyValueByIndex(a){const b=this.GetWorldInfo();return 3===a?b.IsCollisionEnabled():void 0}SetPropertyValueByIndex(a,b){const c=this.GetWorldInfo();3===a?c.SetCollisionEnabled(!!b):void 0}}} + +"use strict";{function a(c,d,a,b){const e=d.GetUID(),f=a.GetUID();ec(s,a.instance)));const t=l.GetCurrentSol(),u=e.GetCurrentSol(),v=t.GetInstances();let w=null;for(let c=0;cc(t,a.instance)));const u=q.GetCurrentSol(),v=e.GetCurrentSol(),w=u.GetInstances();let x=null;for(let c=0;cthis.GetWorldInfo().GetWidth()},IsFlipped(){return 0>this.GetWorldInfo().GetHeight()},OnURLLoaded(){return!0},IsCollisionEnabled(){return this.GetWorldInfo().IsCollisionEnabled()}}} + +"use strict";C3.Plugins.Sprite.Acts={Spawn(a,b,c){if(!a||!b)return;const[d,e]=this.GetImagePoint(c),f=this._runtime.CreateInstance(a,b,d,e);if(!f)return;if(a.GetPlugin().IsRotatable()){const a=f.GetWorldInfo();a.SetAngle(this.GetWorldInfo().GetAngle()),a.SetBboxChanged()}const g=this._runtime.GetEventSheetManager();if(g.BlockFlushingInstances(!0),f._TriggerOnCreated(),f.IsInContainer())for(const a of f.siblings())a._TriggerOnCreated();g.BlockFlushingInstances(!1);const h=this._runtime.GetCurrentAction(),i=h.GetSavedDataMap();let j=!1;if((!i.has("Spawn_LastExec")||i.get("Spawn_LastExec")d.GetWidth()?-1:1,f=0>d.GetHeight()?-1:1,g=c.GetWidth()*a*e,h=c.GetHeight()*a*f;(d.GetWidth()!==g||d.GetHeight()!==h)&&(d.SetSize(g,h),d.SetBboxChanged())},LoadURL(a,b){const c=this._currentAnimationFrame,d=c.GetImageInfo(),e=this.GetWorldInfo(),f=this._runtime;return d.GetURL()===a?(0===b&&(e.SetSize(d.GetWidth(),d.GetHeight()),e.SetBboxChanged()),void this.Trigger(C3.Plugins.Sprite.Cnds.OnURLLoaded)):void(async()=>{const c=C3.New(C3.ImageInfo);await c.LoadDynamicAsset(f,a),await c.LoadStaticTexture(f.GetWebGLRenderer(),{sampling:this._runtime.GetSampling()}),d.ReplaceWith(c),this._sdkType._UpdateAllCurrentTexture(),this.WasReleased()||0!==b||(e.SetSize(d.GetWidth(),d.GetHeight()),e.SetBboxChanged()),f.UpdateRender(),this.WasReleased()||(await this.TriggerAsync(C3.Plugins.Sprite.Cnds.OnURLLoaded))})()},SetCollisions(a){this.GetWorldInfo().SetCollisionEnabled(a)},SetSolidCollisionFilter(a,b){this.GetWorldInfo().SetSolidCollisionFilter(0===a,b)},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()}}; + +"use strict";C3.Plugins.Sprite.Exps={AnimationFrame(){return this._currentFrameIndex},AnimationFrameCount(){return this._currentAnimation.GetFrameCount()},AnimationName(){return this._currentAnimation.GetName()},AnimationSpeed(){return this._isPlayingForwards?this._currentAnimationSpeed:-this._currentAnimationSpeed},ImagePointX(a){return this.GetImagePoint(a)[0]},ImagePointY(a){return this.GetImagePoint(a)[1]},ImagePointCount(){return this._currentAnimationFrame.GetImagePointCount()},ImageWidth(){return this.GetCurrentImageInfo().GetWidth()},ImageHeight(){return this.GetCurrentImageInfo().GetHeight()}}; + +"use strict";C3.Plugins.Keyboard=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Keyboard.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";C3.Plugins.Keyboard.Instance=class extends C3.SDKInstanceBase{constructor(a){super(a),this._keyMap=Array(256),this._typedKeyMap=Array(256),this._triggerKey=0;const b=this.GetRuntime().Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(b,"keydown",(a)=>this._OnKeyDown(a.data)),C3.Disposable.From(b,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(b,"window-blur",()=>this._OnWindowBlur()))}Release(){super.Release()}async _OnKeyDown(a){const b=a["which"];this._keyMap[b]||(this._keyMap[b]=!0,this._typedKeyMap[b]=a["key"],this._triggerKey=b,await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnAnyKey),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKey),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyCode))}async _OnKeyUp(a){const b=a["which"];this._keyMap[b]=!1,this._typedKeyMap[b]=a["key"],this._triggerKey=b,await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnAnyKeyReleased),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyReleased),await this.TriggerAsync(C3.Plugins.Keyboard.Cnds.OnKeyCodeReleased)}async _OnWindowBlur(){for(let a=0,b=this._keyMap.length;aa||a>=this._keyMap.length)&&!!this._keyMap[a]},OnKeyCode(a){return this._triggerKey===a},OnKeyCodeReleased(a){return this._triggerKey===a}}; + +"use strict";C3.Plugins.Keyboard.Acts={}; + +"use strict";{function a(a){return a=Math.floor(a),8===a?"backspace":9===a?"tab":13===a?"enter":16===a?"shift":17===a?"control":18===a?"alt":19===a?"pause":20===a?"capslock":27===a?"esc":33===a?"pageup":34===a?"pagedown":35===a?"end":36===a?"home":37===a?"\u2190":38===a?"\u2191":39===a?"\u2192":40===a?"\u2193":45===a?"insert":46===a?"del":91===a?"left window key":92===a?"right window key":93===a?"select":96===a?"numpad 0":97===a?"numpad 1":98===a?"numpad 2":99===a?"numpad 3":100===a?"numpad 4":101===a?"numpad 5":102===a?"numpad 6":103===a?"numpad 7":104===a?"numpad 8":105===a?"numpad 9":106===a?"numpad *":107===a?"numpad +":109===a?"numpad -":110===a?"numpad .":111===a?"numpad /":112===a?"F1":113===a?"F2":114===a?"F3":115===a?"F4":116===a?"F5":117===a?"F6":118===a?"F7":119===a?"F8":120===a?"F9":121===a?"F10":122===a?"F11":123===a?"F12":144===a?"numlock":145===a?"scroll lock":186===a?";":187===a?"=":188===a?",":189===a?"-":190===a?".":191===a?"/":192===a?"'":219===a?"[":220===a?"\\":221===a?"]":222===a?"#":223===a?"`":String.fromCharCode(a)}C3.Plugins.Keyboard.Exps={LastKeyCode(){return this._triggerKey},StringFromKeyCode(b){return a(b)},TypedKey(){return this._typedKeyMap[this._triggerKey]||""}}} + +"use strict";C3.Plugins.Text=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Text.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}LoadTextures(){}ReleaseTextures(){}}; + +"use strict";{const a=[0,0,0],b=["left","center","right"],c=["top","center","bottom"],d=new C3.Rect,e=new C3.Quad;C3.Plugins.Text.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){if(super(a),this._text="",this._enableBBcode=!0,this._faceName="Arial",this._ptSize=12,this._lineHeightOffset=0,this._isBold=!1,this._isItalic=!1,this._color=C3.New(C3.Color),this._horizontalAlign=0,this._verticalAlign=0,this._wrapByWord=!0,this._typewriterStartTime=-1,this._typewriterEndTime=-1,this._typewriterLength=0,this._webglText=C3.New(C3.Gfx.WebGLText,this._runtime.GetWebGLRenderer(),{timeout:5}),this._webglText.ontextureupdate=()=>this._runtime.UpdateRender(),this._webglText.SetIsAsync(!1),b){this._text=b[0],this._enableBBcode=!!b[1],this._faceName=b[2],this._ptSize=b[3],this._lineHeightOffset=b[4],this._isBold=!!b[5],this._isItalic=!!b[6],this._horizontalAlign=b[8],this._verticalAlign=b[9],this._wrapByWord=0===b[10];const a=b[7];this._color.setRgb(a[0],a[1],a[2]),this.GetWorldInfo().SetVisible(b[11])}this._UpdateTextSettings()}Release(){this._CancelTypewriter(),this._webglText.Release(),this._webglText=null,super.Release()}_UpdateTextSettings(){const a=this._webglText;a.SetText(this._text),a.SetBBCodeEnabled(this._enableBBcode),a.SetFontName(this._faceName),a.SetFontSize(this._ptSize),a.SetLineHeight(this._lineHeightOffset),a.SetBold(this._isBold),a.SetItalic(this._isItalic),a.SetColor(this._color),a.SetHorizontalAlignment(b[this._horizontalAlign]),a.SetVerticalAlignment(c[this._verticalAlign]),a.SetWordWrapMode(this._wrapByWord?"word":"character")}_UpdateTextSize(){const a=this.GetWorldInfo(),b=a.GetLayer(),c=b.GetRenderScale()*b.Get2DScaleFactorToZ(a.GetTotalZElevation());this._webglText.SetSize(a.GetWidth(),a.GetHeight(),c)}Draw(a){var b=Math.round;const c=this.GetWorldInfo();this._UpdateTextSize();const f=this._webglText.GetTexture();if(!f)return;const g=c.GetLayer();let h=c.GetBoundingQuad();if(0===c.GetAngle()&&0===c.GetLayer().GetAngle()&&0===c.GetTotalZElevation()){const[c,i]=g.LayerToDrawSurface(h.getTlx(),h.getTly()),[j,k]=g.LayerToDrawSurface(h.getBrx(),h.getBry()),l=c-b(c),m=i-b(i);d.set(c,i,j,k),d.offset(-l,-m),e.setFromRect(d);const[n,o]=a.GetRenderTargetSize(a.GetRenderTarget());this._runtime.GetCanvasManager().SetDeviceTransform(a,n,o),a.SetTexture(f),a.Quad3(e,this._webglText.GetTexRect()),g._SetTransform(a)}else{let c=0,d=0;this._runtime.IsPixelRoundingEnabled()&&(c=h.getTlx()-b(h.getTlx()),d=h.getTly()-b(h.getTly())),(0!=c||0!=d)&&(e.copy(h),e.offset(-c,-d),h=e),a.SetTexture(f),a.Quad3(h,this._webglText.GetTexRect())}}SaveToJson(){const a={"t":this._text,"c":this._color.toJSON(),"fn":this._faceName,"ps":this._ptSize};return this._enableBBcode&&(a["bbc"]=this._enableBBcode),0!==this._horizontalAlign&&(a["ha"]=this._horizontalAlign),0!==this._verticalAlign&&(a["va"]=this._verticalAlign),this._wrapByWord||(a["wr"]=this._wrapByWord),0!==this._lineHeightOffset&&(a["lho"]=this._lineHeightOffset),this._isBold&&(a["b"]=this._isBold),this._isItalic&&(a["i"]=this._isItalic),-1!==this._typewriterEndTime&&(a["tw"]={"st":this._typewriterStartTime,"en":this._typewriterEndTime,"l":this._typewriterLength}),a}LoadFromJson(a){if(this._CancelTypewriter(),this._text=a["t"],this._color.setFromJSON(a["c"]),this._faceName=a["fn"],this._ptSize=a["ps"],this._enableBBcode=!!a.hasOwnProperty("bbc")&&a["bbc"],this._horizontalAlign=a.hasOwnProperty("ha")?a["ha"]:0,this._verticalAlign=a.hasOwnProperty("va")?a["va"]:0,this._wrapByWord=!a.hasOwnProperty("wr")||a["wr"],this._lineHeightOffset=a.hasOwnProperty("lho")?a["lho"]:0,this._isBold=!!a.hasOwnProperty("b")&&a["b"],this._isItalic=!!a.hasOwnProperty("i")&&a["i"],a.hasOwnProperty("tw")){const b=a["tw"];this._typewriterStartTime=b["st"],this._typewriterEndTime=b["en"],this._typewriterLength=b["l"]}this._UpdateTextSettings(),-1!==this._typewriterEndTime&&this._StartTicking()}GetPropertyValueByIndex(b){return 0===b?this._text:1===b?this._enableBBcode:2===b?this._faceName:3===b?this._ptSize:4===b?this._lineHeightOffset:5===b?this._isBold:6===b?this._isItalic:7===b?(a[0]=this._color.getR(),a[1]=this._color.getG(),a[2]=this._color.getB(),a):8===b?this._horizontalAlign:9===b?this._verticalAlign:10===b?this._wrapByWord?1:0:void 0}SetPropertyValueByIndex(a,b){switch(a){case 0:if(this._text===b)return;this._text=b,this._UpdateTextSettings();break;case 1:if(this._enableBBcode===!!b)return;this._enableBBcode=!!b,this._UpdateTextSettings();break;case 2:if(this._faceName===b)return;this._faceName=b,this._UpdateTextSettings();break;case 3:if(this._ptSize===b)return;this._ptSize=b,this._UpdateTextSettings();break;case 4:if(this._lineHeightOffset===b)return;this._lineHeightOffset=b,this._UpdateTextSettings();break;case 5:if(this._isBold===!!b)return;this._isBold=!!b,this._UpdateTextSettings();break;case 6:if(this._isItalic===!!b)return;this._isItalic=!!b,this._UpdateTextSettings();break;case 7:const d=this._color,c=b;if(d.getR()===c[0]&&d.getG()===c[1]&&d.getB()===c[2])return;this._color.setRgb(c[0],c[1],c[2]),this._UpdateTextSettings();break;case 8:if(this._horizontalAlign===b)return;this._horizontalAlign=b,this._UpdateTextSettings();break;case 9:if(this._verticalAlign===b)return;this._verticalAlign=b,this._UpdateTextSettings();break;case 10:if(this._wrapByWord===(b===0))return;this._wrapByWord=b===0,this._UpdateTextSettings();}}SetPropertyOffsetValueByIndex(a,b){0!==b&&(3===a?(this._ptSize+=b,this._UpdateTextSettings()):4===a?(this._lineHeightOffset+=b,this._UpdateTextSettings()):void 0)}SetPropertyColorOffsetValueByIndex(a,c,d,e){(0!==c||0!==d||0!==e)&&(7===a?(this._color.addRgb(c,d,e),this._UpdateTextSettings()):void 0)}_SetText(a){this._text===a||(this._text=a,this._webglText.SetText(a),this._runtime.UpdateRender())}_StartTypewriter(a,b){this._SetText(a),this._typewriterStartTime=this._runtime.GetGameTime(),this._typewriterEndTime=this._typewriterStartTime+b,this._typewriterLength=C3.BBString.StripAnyTags(a).length,this._webglText.SetDrawMaxCharacterCount(0),this._StartTicking()}_CancelTypewriter(){this._typewriterStartTime=-1,this._typewriterEndTime=-1,this._typewriterLength=0,this._webglText.SetDrawMaxCharacterCount(-1),this._StopTicking()}Tick(){const a=this._runtime.GetGameTime();if(a>=this._typewriterEndTime)this._CancelTypewriter(),this.Trigger(C3.Plugins.Text.Cnds.OnTypewriterTextFinished),this._runtime.UpdateRender();else{let b=C3.relerp(this._typewriterStartTime,this._typewriterEndTime,a,0,this._typewriterLength);b=Math.floor(b),b!==this._webglText.GetDrawMaxCharacterCount()&&(this._webglText.SetDrawMaxCharacterCount(b),this._runtime.UpdateRender())}}GetDebuggerProperties(){return[{title:"plugins.text.name",properties:[{name:"plugins.text.properties.text.name",value:this._text,onedit:(a)=>this._SetText(a)}]}]}}} + +"use strict";C3.Plugins.Text.Cnds={CompareText(a,b){return b?this._text===a:C3.equalsNoCase(this._text,a)},IsRunningTypewriterText(){return-1!==this._typewriterEndTime},OnTypewriterTextFinished(){return!0}}; + +"use strict";{const a=C3.New(C3.Color);C3.Plugins.Text.Acts={SetText(a){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),this._SetText(a.toString())},AppendText(a){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),a=a.toString();a&&this._SetText(this._text+a)},TypewriterText(a,b){this._CancelTypewriter(),"number"==typeof a&&1e9>a&&(a=Math.round(1e10*a)/1e10),this._StartTypewriter(a.toString(),b)},SetFontFace(a,b){let c=!1,d=!1;if(1===b?c=!0:2===b?d=!0:3===b?(c=!0,d=!0):void 0,a===this._faceName&&c===this._isBold&&d===this._isItalic)return!1;this._faceName=a,this._isBold=c,this._isItalic=d;const e=this._webglText;e.SetFontName(this._faceName),e.SetBold(this._isBold),e.SetItalic(this._isItalic),this._runtime.UpdateRender()},SetFontSize(a){this._ptSize===a||(this._ptSize=a,this._webglText.SetFontSize(this._ptSize),this._runtime.UpdateRender())},SetFontColor(b){a.setFromRgbValue(b),a.clamp();this._color.equalsIgnoringAlpha(a)||(this._color.copyRgb(a),this._webglText.SetColor(this._color),this._runtime.UpdateRender())},SetWebFont(){console.warn("[Text] 'Set web font' action is deprecated and no longer has any effect")},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()},TypewriterFinish(){-1===this._typewriterEndTime||(this._CancelTypewriter(),this.Trigger(C3.Plugins.Text.Cnds.OnTypewriterTextFinished),this._runtime.UpdateRender())}}} + +"use strict";C3.Plugins.Text.Exps={Text(){return this._text},PlainText(){return C3.BBString.StripAnyTags(this._text)},FaceName(){return this._faceName},FaceSize(){return this._ptSize},TextWidth(){return this._UpdateTextSize(),this._webglText.GetTextWidth()},TextHeight(){return this._UpdateTextSize(),this._webglText.GetTextHeight()}}; + +"use strict";{C3.Plugins.TextBox=class extends C3.SDKDOMPluginBase{constructor(a){super(a,"text-input"),this.AddElementMessageHandler("click",(a,b)=>a._OnClick(b)),this.AddElementMessageHandler("dblclick",(a,b)=>a._OnDoubleClick(b)),this.AddElementMessageHandler("change",(a,b)=>a._OnChange(b))}Release(){super.Release()}}} + +"use strict";C3.Plugins.TextBox.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{const a=0,b=["text","password","email","number","tel","url","textarea"];C3.Plugins.TextBox.Instance=class extends C3.SDKDOMInstanceBase{constructor(c,d){super(c,"text-input"),this._text="",this._placeholder="",this._title="",this._isEnabled=!0,this._isReadOnly=!1,this._spellCheck=!1,this._type="text",this._autoFontSize=!0,this._id="",d&&(this._text=d[a],this._placeholder=d[1],this._title=d[2],this.GetWorldInfo().SetVisible(d[3]),this._isEnabled=d[4],this._isReadOnly=d[5],this._spellCheck=d[6],this._type=b[d[7]],this._autoFontSize=d[8],this._id=d[9]),this.CreateElement({"type":this._type,"id":this._id})}Release(){super.Release()}GetElementState(){return{"text":this._text,"placeholder":this._placeholder,"title":this._title,"isEnabled":this._isEnabled,"isReadOnly":this._isReadOnly,"spellCheck":this._spellCheck}}async _OnClick(){await this.TriggerAsync(C3.Plugins.TextBox.Cnds.OnClicked)}async _OnDoubleClick(){await this.TriggerAsync(C3.Plugins.TextBox.Cnds.OnDoubleClicked)}async _OnChange(a){this._text=a["text"],await this.TriggerAsync(C3.Plugins.TextBox.Cnds.OnTextChanged)}Draw(){}SaveToJson(){return{"t":this._text,"p":this._placeholder,"ti":this._title,"e":this._isEnabled,"r":this._isReadOnly,"sp":this._spellCheck,"type":this._type,"id":this._id}}LoadFromJson(a){this._text=a["t"],this._placeholder=a["p"],this._title=a["ti"],this._isEnabled=a["e"],this._isReadOnly=a["r"],this._spellCheck=a["sp"],this._type=a["type"],this._id=a["id"],this.UpdateElementState()}GetPropertyValueByIndex(a){return a===0?this._text:1===a?this._placeholder:2===a?this._title:4===a?this._isEnabled:5===a?this._isReadOnly:6===a?this._spellCheck:8===a?this._autoFontSize:9===a?this._id:void 0}SetPropertyValueByIndex(b,c){switch(b){case a:if(this._text===c)return;this._text=c,this.UpdateElementState();break;case 1:if(this._placeholder===c)return;this._placeholder=c,this.UpdateElementState();break;case 2:if(this._title===c)return;this._title=c,this.UpdateElementState();break;case 4:if(this._isEnabled===!!c)return;this._isEnabled=!!c,this.UpdateElementState();break;case 5:if(this._isReadOnly===!!c)return;this._isReadOnly=!!c,this.UpdateElementState();break;case 6:if(this._spellCheck===!!c)return;this._spellCheck=!!c,this.UpdateElementState();break;case 8:this._autoFontSize=!!c;break;case 9:if(this._id===c)return;this._id=c,this.UpdateElementState();}}GetDebuggerProperties(){const a=C3.Plugins.TextBox.Acts;return[{title:"plugins.textbox.name",properties:[{name:"plugins.textbox.properties.text.name",value:this._text,onedit:(b)=>this.CallAction(a.SetText,b)},{name:"plugins.textbox.properties.enabled.name",value:this._isEnabled,onedit:(b)=>this.CallAction(a.SetEnabled,b)},{name:"plugins.textbox.properties.read-only.name",value:this._isReadOnly,onedit:(b)=>this.CallAction(a.SetReadOnly,b)}]}]}}} + +"use strict";C3.Plugins.TextBox.Cnds={CompareText(a,b){return 0===b?C3.equalsNoCase(this._text,a):this._text===a},OnTextChanged(){return!0},OnClicked(){return!0},OnDoubleClicked(){return!0}}; + +"use strict";C3.Plugins.TextBox.Acts={SetText(a){this._text===a||(this._text=a,this.UpdateElementState())},SetPlaceholder(a){this._placeholder===a||(this._placeholder=a,this.UpdateElementState())},SetTooltip(a){this._title===a||(this._title=a,this.UpdateElementState())},SetVisible(a){const b=this.GetWorldInfo();a=0!==a;b.IsVisible()===a||b.SetVisible(a)},SetEnabled(a){a=0!==a;this._isEnabled===a||(this._isEnabled=a,this.UpdateElementState())},SetReadOnly(a){a=0===a;this._isReadOnly===a||(this._isReadOnly=a,this.UpdateElementState())},SetFocus(){this.FocusElement()},SetBlur(){this.BlurElement()},SetCSSStyle(a,b){this.SetElementCSSStyle(a,b)},ScrollToBottom(){this.PostToDOMElement("scroll-to-bottom")}}; + +"use strict";C3.Plugins.TextBox.Exps={Text(){return this._text}}; + +"use strict";C3.Plugins.Mouse=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Mouse.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{C3.Plugins.Mouse.Instance=class extends C3.SDKInstanceBase{constructor(a){super(a,"mouse"),this._buttonMap=[!1,!1,!1],this._mouseXcanvas=0,this._mouseYcanvas=0,this._triggerButton=0,this._triggerType=0,this._triggerDir=0;const b=this.GetRuntime().Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(b,"mousemove",(a)=>this._OnMouseMove(a.data)),C3.Disposable.From(b,"mousedown",(a)=>this._OnMouseDown(a.data)),C3.Disposable.From(b,"mouseup",(a)=>this._OnMouseUp(a.data)),C3.Disposable.From(b,"dblclick",(a)=>this._OnDoubleClick(a.data)),C3.Disposable.From(b,"wheel",(a)=>this._OnMouseWheel(a.data)),C3.Disposable.From(b,"window-blur",()=>this._OnWindowBlur()))}Release(){super.Release()}_OnMouseMove(a){this._mouseXcanvas=a["clientX"]-this._runtime.GetCanvasClientX(),this._mouseYcanvas=a["clientY"]-this._runtime.GetCanvasClientY()}async _OnMouseDown(a){const b=a["button"];this._buttonMap[b]=!0,await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnAnyClick),this._triggerButton=b,this._triggerType=0,await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnClick),await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnObjectClicked)}async _OnMouseUp(a){const b=a["button"];this._buttonMap[b]&&(this._buttonMap[b]=!1,this._triggerButton=b,await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnRelease))}async _OnDoubleClick(a){this._triggerButton=a["button"],this._triggerType=1,await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnClick),await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnObjectClicked)}async _OnMouseWheel(a){this._triggerDir=0>a["deltaY"]?1:0,await this.TriggerAsync(C3.Plugins.Mouse.Cnds.OnWheel)}async _OnWindowBlur(){for(let a=0,b=this._buttonMap.length;a({name:"$"+a.GetName(),value:a.CanvasCssToLayer(this._mouseXcanvas,this._mouseYcanvas).join(", ")}))}]}}} + +"use strict";C3.Plugins.Mouse.Cnds={OnClick(a,b){return this._triggerButton===a&&this._triggerType===b},OnAnyClick(){return!0},IsButtonDown(a){return this._buttonMap[a]},OnRelease(a){return this._triggerButton===a},IsOverObject(a){if(!this._IsMouseOverCanvas())return!1;const b=this._runtime.GetCurrentCondition(),c=b.IsInverted(),d=this._mouseXcanvas,e=this._mouseYcanvas;return C3.xor(this._runtime.GetCollisionEngine().TestAndSelectCanvasPointOverlap(a,d,e,c),c)},OnObjectClicked(a,b,c){if(a!==this._triggerButton||b!==this._triggerType)return!1;if(!this._IsMouseOverCanvas())return!1;const d=this._mouseXcanvas,e=this._mouseYcanvas;return this._runtime.GetCollisionEngine().TestAndSelectCanvasPointOverlap(c,d,e,!1)},OnWheel(a){return this._triggerDir===a}}; + +"use strict";{let a=null;const b=["auto","pointer","text","crosshair","move","help","wait","none"];C3.Plugins.Mouse.Acts={SetCursor(d){const c=b[d];a===c||(a=c,this.PostToDOM("cursor",c))},SetCursorSprite(b){if(C3.Platform.IsMobile||!b)return;const c=b.GetFirstPicked();if(!c)return;const d=c.GetWorldInfo(),e=c.GetCurrentImageInfo();d&&e&&a!==e&&(a=e,e.ExtractImageToCanvas().then((a)=>C3.CanvasToBlob(a)).then((a)=>{var b=Math.round;const c=URL.createObjectURL(a),f=`url(${c}) ${b(d.GetOriginX()*e.GetWidth())} ${b(d.GetOriginY()*e.GetHeight())}, auto`;this.PostToDOM("cursor",""),this.PostToDOM("cursor",f)}))}}} + +"use strict";{function a(a,b,c,d,e){if("undefined"==typeof b){const b=a.GetLayerByIndex(0);return b.CanvasCssToLayer_DefaultTransform(c,d)[e?0:1]}else{const f=a.GetLayer(b);return f?f.CanvasCssToLayer(c,d)[e?0:1]:0}}C3.Plugins.Mouse.Exps={X(b){return a(this._runtime.GetCurrentLayout(),b,this._mouseXcanvas,this._mouseYcanvas,!0)},Y(b){return a(this._runtime.GetCurrentLayout(),b,this._mouseXcanvas,this._mouseYcanvas,!1)},AbsoluteX(){return this._mouseXcanvas},AbsoluteY(){return this._mouseYcanvas}}} + +"use strict";C3.Plugins.Particles=class extends C3.SDKPluginBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Plugins.Particles.Type=class extends C3.SDKTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){this.GetImageInfo().LoadAsset(this._runtime)}LoadTextures(a){return this.GetImageInfo().LoadStaticTexture(a,{sampling:this._runtime.GetSampling(),isTiled:!0})}ReleaseTextures(){this.GetImageInfo().ReleaseTexture()}}; + +"use strict";{const a=C3.New(C3.Rect);C3.Plugins.Particles.Instance=class extends C3.SDKWorldInstanceBase{constructor(a,b){super(a),this._isFirstTick=!0;const c=C3.New(ParticleEngine);this._particleEngine=c,c.ononeshotfinish=()=>this._OnOneShotFinish(),this._spawnObjectClass=null,b&&(c.SetRate(b[0]),c.SetSprayCone(C3.toRadians(b[1])),c.SetSprayType(b[2]?"one-shot":"continuous-spray"),this._spawnObjectClass=this._runtime.GetObjectClassBySID(b[3]),c.SetInitSpeed(b[4]),c.SetInitSize(b[5]),c.SetInitOpacity(b[6]/100),c.SetGrowRate(b[7]),c.SetInitXRandom(b[8]),c.SetInitYRandom(b[9]),c.SetInitSpeedRandom(b[10]),c.SetInitSizeRandom(b[11]),c.SetGrowRandom(b[12]),c.SetAcceleration(b[13]),c.SetGravity(b[14]),c.SetLifeAngleRandom(b[15]),c.SetLifeSpeedRandom(b[16]),c.SetLifeOpacityRandom(b[17]),c.SetDestroyModeIndex(b[18]),c.SetTimeout(b[19])),this._UpdateEngineParameters(),this._spawnObjectClass===this.GetObjectClass()&&(this._spawnObjectClass=null),this._spawnObjectClass&&(c.onparticlecreate=(a)=>this._OnParticleCreate(a),c.onparticleupdate=(a,b,c,d,e,f)=>this._OnParticleUpdate(a,b,c,d,e,f),c.onparticledestroy=(a)=>this._OnParticleDestroy(a)),"one-shot"===c.GetSprayType()?c.CreateOneShotSpray():c.SetSpraying(!0);const d=this.GetWorldInfo();d.SetBboxChangeEventEnabled(!0),this._inst.Dispatcher().addEventListener("bboxchange",()=>{d.OverwriteBoundingBox(this._particleEngine.GetBoundingBox())}),this._StartTicking()}Release(){this._particleEngine.Release(),this._particleEngine=null,super.Release()}_UpdateEngineParameters(){const a=this._particleEngine,b=this.GetWorldInfo();a.SetMasterOpacity(b.GetOpacity()),a.SetPixelRounding(this._runtime.IsPixelRoundingEnabled()),a.SetSpawnX(b.GetX()),a.SetSpawnY(b.GetY()),a.SetSpawnAngle(b.GetAngle())}_OnOneShotFinish(){this._runtime.DestroyInstance(this._inst)}Draw(b){if(!this._spawnObjectClass){const c=this._objectClass.GetImageInfo(),d=c.GetTexture();if(d){const e=this.GetWorldInfo(),f=e.GetLayer(),g=a;f.GetViewportForZ(e.GetTotalZElevation(),g),b.SetTexture(d);const h=f.Get2DScaleFactorToZ(e.GetTotalZElevation());this._particleEngine.SetParticleScale(f.GetRenderScale()*h),this._particleEngine.Draw(b,c.GetTexRect(),g)}}}SaveToJson(){const a=this._particleEngine;return{"r":a.GetRate(),"sc":a.GetSprayCone(),"st":a.GetSprayType(),"isp":a.GetInitSpeed(),"isz":a.GetInitSize(),"io":a.GetInitOpacity(),"gr":a.GetGrowRate(),"xr":a.GetInitXRandom(),"yr":a.GetInitYRandom(),"spr":a.GetInitSpeedRandom(),"szr":a.GetInitSizeRandom(),"grnd":a.GetGrowRandom(),"acc":a.GetAcceleration(),"g":a.GetGravity(),"lar":a.GetLifeAngleRandom(),"lsr":a.GetLifeSpeedRandom(),"lor":a.GetLifeOpacityRandom(),"dm":a.GetDestroyModeIndex(),"to":a.GetTimeout(),"s":a.IsSpraying(),"pcc":a._GetCreateCounter(),"ft":this._isFirstTick,"p":a.GetParticles().map((a)=>a.toJSON())}}LoadFromJson(a){const b=this._particleEngine;b.SetRate(a["r"]),b.SetSprayCone(a["sc"]),b.SetSprayType(a["st"]),b.SetInitSpeed(a["isp"]),b.SetInitSize(a["isz"]),b.SetInitOpacity(a["io"]),b.SetGrowRate(a["gr"]),b.SetInitXRandom(a["xr"]),b.SetInitYRandom(a["yr"]),b.SetInitSpeedRandom(a["spr"]),b.SetInitSizeRandom(a["szr"]),b.SetGrowRandom(a["grnd"]),b.SetAcceleration(a["acc"]),b.SetGravity(a["g"]),b.SetLifeAngleRandom(a["lar"]),b.SetLifeSpeedRandom(a["lsr"]),b.SetLifeOpacityRandom(a["lor"]),b.SetDestroyModeIndex(a["dm"]),b.SetTimeout(a["to"]),b.SetSpraying(a["s"]),b._SetCreateCounter(a["pcc"]),this._isFirstTick=a["ft"];const c=a["p"];b.SetParticleCount(c.length);const d=b.GetParticles();for(let b=0,e=d.length;ba.SetSpraying(b)},{name:"plugins.particles.properties.rate.name",value:a.GetRate(),onedit:(b)=>a.SetRate(b)},{name:"plugins.particles.properties.spray-cone.name",value:C3.toDegrees(a.GetSprayCone()),onedit:(b)=>a.SetSprayCone(C3.toRadians(b))},{name:"plugins.particles.properties.speed.name",value:a.GetInitSpeed(),onedit:(b)=>a.SetInitSpeed(b)},{name:"plugins.particles.properties.size.name",value:a.GetInitSize(),onedit:(b)=>a.SetInitSize(b)},{name:"plugins.particles.properties.opacity.name",value:a.GetInitOpacity(),onedit:(b)=>a.SetInitOpacity(b)},{name:"plugins.particles.properties.grow-rate.name",value:a.GetGrowRate(),onedit:(b)=>a.SetGrowRate(b)},{name:"plugins.particles.properties.x-randomiser.name",value:a.GetInitXRandom(),onedit:(b)=>a.SetInitXRandom(b)},{name:"plugins.particles.properties.y-randomiser.name",value:a.GetInitYRandom(),onedit:(b)=>a.SetInitYRandom(b)},{name:"plugins.particles.properties.initial-speed-randomiser.name",value:a.GetInitSpeedRandom(),onedit:(b)=>a.SetInitSpeedRandom(b)},{name:"plugins.particles.properties.size-randomiser.name",value:a.GetInitSizeRandom(),onedit:(b)=>a.SetInitSizeRandom(b)},{name:"plugins.particles.properties.grow-rate-randomiser.name",value:a.GetGrowRandom(),onedit:(b)=>a.SetGrowRandom(b)},{name:"plugins.particles.properties.acceleration.name",value:a.GetAcceleration(),onedit:(b)=>a.SetAcceleration(b)},{name:"plugins.particles.properties.gravity.name",value:a.GetGravity(),onedit:(b)=>a.SetGravity(b)},{name:"plugins.particles.properties.angle-randomiser.name",value:a.GetLifeAngleRandom(),onedit:(b)=>a.SetLifeAngleRandom(b)},{name:"plugins.particles.properties.life-speed-randomiser.name",value:a.GetLifeSpeedRandom(),onedit:(b)=>a.SetLifeSpeedRandom(b)},{name:"plugins.particles.properties.opacity-randomiser.name",value:a.GetLifeOpacityRandom(),onedit:(b)=>a.SetLifeOpacityRandom(b)},{name:"plugins.particles.properties.timeout.name",value:a.GetTimeout(),onedit:(b)=>a.SetTimeout(b)}]}]}}} + +"use strict";C3.Plugins.Particles.Cnds={IsSpraying(){return this._particleEngine.IsSpraying()}}; + +"use strict";C3.Plugins.Particles.Acts={SetSpraying(a){this._particleEngine.SetSpraying(0!==a)},SetRate(a){this._particleEngine.SetRate(a),"one-shot"===this._particleEngine.GetSprayType()&&this._isFirstTick&&this._particleEngine.SetParticleCount(a)},SetSprayCone(a){this._particleEngine.SetSprayCone(C3.toRadians(a))},SetInitSpeed(a){this._particleEngine.SetInitSpeed(a)},SetInitSize(a){this._particleEngine.SetInitSize(a)},SetInitOpacity(a){this._particleEngine.SetInitOpacity(a/100)},SetGrowRate(a){this._particleEngine.SetGrowRate(a)},SetXRandomiser(a){this._particleEngine.SetInitXRandom(a)},SetYRandomiser(a){this._particleEngine.SetInitYRandom(a)},SetSpeedRandomiser(a){this._particleEngine.SetInitSpeedRandom(a)},SetSizeRandomiser(a){this._particleEngine.SetInitSizeRandom(a)},SetGrowRateRandomiser(a){this._particleEngine.SetGrowRandom(a)},SetParticleAcc(a){this._particleEngine.SetAcceleration(a)},SetGravity(a){this._particleEngine.SetGravity(a)},SetAngleRandomiser(a){this._particleEngine.SetLifeAngleRandom(a)},SetLifeSpeedRandomiser(a){this._particleEngine.SetLifeSpeedRandom(a)},SetOpacityRandomiser(a){this._particleEngine.SetLifeOpacityRandom(a)},SetTimeout(a){this._particleEngine.SetTimeout(a)},SetEffect(a){this.GetWorldInfo().SetBlendMode(a),this._runtime.UpdateRender()}}; + +"use strict";C3.Plugins.Particles.Exps={ParticleCount(){return this._particleEngine.GetParticleCount()},Rate(){return this._particleEngine.GetRate()},SprayCone(){return C3.toDegrees(this._particleEngine.GetSprayCone())},InitSpeed(){return this._particleEngine.GetInitSpeed()},InitSize(){return this._particleEngine.GetInitSize()},InitOpacity(){return 100*this._particleEngine.GetInitOpacity()},InitGrowRate(){return this._particleEngine.GetGrowRate()},XRandom(){return this._particleEngine.GetInitXRandom()},YRandom(){return this._particleEngine.GetInitYRandom()},InitSpeedRandom(){return this._particleEngine.GetInitSpeedRandom()},InitGrowRandom(){return this._particleEngine.GetGrowRandom()},ParticleAcceleration(){return this._particleEngine.GetAcceleration()},Gravity(){return this._particleEngine.GetGravity()},ParticleAngleRandom(){return this._particleEngine.GetLifeAngleRandom()},ParticleSpeedRandom(){return this._particleEngine.GetLifeSpeedRandom()},ParticleOpacityRandom(){return this._particleEngine.GetLifeOpacityRandom()},Timeout(){return this._particleEngine.GetTimeout()}}; + +"use strict";{function b(a){return Math.random()*a-a/2}const a=new C3.Quad,c=new C3.Color,d=self.devicePixelRatio||1;let e=!1;self.Particle=class{constructor(a){this._engine=a,this._isActive=!1,this._x=0,this._y=0,this._speed=0,this._angle=0,this._opacity=1,this._grow=0,this._size=0,this._halfSize=0,this._gs=0,this._age=0,this._bbox=new C3.Rect,this._userData=null,this._lastOpacity=0}SetEngine(a){this._engine=a}Init(a){this._isActive=!0,this._x=this._engine.GetSpawnX()+b(this._engine.GetInitXRandom()),this._y=this._engine.GetSpawnY()+b(this._engine.GetInitYRandom()),this._speed=this._engine.GetInitSpeed()+b(this._engine.GetInitSpeedRandom()),this._angle=this._engine.GetInitAngle()+b(this._engine.GetSprayCone()),this._opacity=this._engine.GetInitOpacity(),this._lastOpacity=this._opacity,this._size=this._engine.GetInitSize()+b(this._engine.GetInitSizeRandom()),this._halfSize=this._size/2,this._grow=this._engine.GetGrowRate()+b(this._engine.GetGrowRandom()),this._gs=0,this._age=0,this._UpdateBoundingBox(),a?!this._userData&&(this._userData=a(this)):this._userData=null}Destroy(a){a&&a(this._userData),this._userData=null}toJSON(){return[this._x,this._y,this._speed,this._angle,this._opacity,this._grow,this._size,this._gs,this._age]}setFromJSON(a){this._x=a[0],this._y=a[1],this._speed=a[2],this._angle=a[3],this._opacity=a[4],this._grow=a[5],this._size=a[6],this._gs=a[7],this._age=a[8],this._halfSize=this._size/2,this._UpdateBoundingBox()}Tick(c,d){const e=this._engine,f=this._speed*c,g=this._angle,a=Math.cos(g)*f,h=Math.sin(g)*f+this._gs*c;this._x+=a,this._y+=h;const i=this._grow*c;this._size+=i,this._halfSize=this._size/2,this._speed+=e.GetAcceleration()*c,this._gs+=e.GetGravity()*c,this._age+=c,this._UpdateBoundingBox();const j=e.GetLifeAngleRandom(),k=e.GetLifeSpeedRandom(),l=e.GetLifeOpacityRandom();let m=0;0!==j&&(m=b(j*c),this._angle+=m);0!==k&&(this._speed+=b(k*c)),0!==l&&(this._opacity=C3.clamp(this._opacity+b(l*c),0,1));const n=1<=this._size&&(2===e.GetDestroyModeIndex()?0=h)return;const i=this._size,j=i*g.GetParticleScale()*d;if(1>j)return;let k=this._x,l=this._y;g.IsPixelRounding()&&(k=0|k+.5,l=0|l+.5),j>b.GetMaxPointSize()||j1000&&C3.truncateArray(a,1000),this._isSpraying=!1}CreateOneShotSpray(){for(let a=0,b=this._rate;a1000&&C3.truncateArray(a,1000)}else if(b>c.length){const a=b-c.length;for(let b=0;b1000&&C3.truncateArray(a,1000)}_MaybeFinishOneShot(){"one-shot"===this._sprayType&&0===this._particles.length&&this._isSpraying&&(this.ononeshotfinish&&this.ononeshotfinish(),this._isSpraying=!1)}Draw(a,b,c){a.SetPointTextureCoords(b),this._color.copy(a.GetColor());const d=this._particles;for(let e=0,f=d.length;ethis._OnUpdateState(a)],["fxstate",(a)=>this._OnUpdateFxState(a)],["trigger",(a)=>this._OnTrigger(a)]]);const e=this.GetRuntime().Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(e,"instancedestroy",(a)=>this._OnInstanceDestroyed(a.instance)),C3.Disposable.From(e,"afterload",()=>this._OnAfterLoad()),C3.Disposable.From(e,"suspend",()=>this._OnSuspend()),C3.Disposable.From(e,"resume",()=>this._OnResume())),this._runtime.AddLoadPromise(this.PostToDOMAsync("create-audio-context",{"preloadList":this._runtime.GetAssetManager().GetAudioToPreload().map((a)=>({"originalUrl":a.originalUrl,"url":a.url,"type":a.type,"fileSize":a.fileSize})),"isWKWebView":this._runtime.IsWKWebView(),"timeScaleMode":this._timeScaleMode,"latencyHint":d,"panningModel":this._panningModel,"distanceModel":this._distanceModel,"refDistance":this._referenceDistance,"maxDistance":this._maxDistance,"rolloffFactor":this._rolloffFactor,"listenerPos":[this._listenerX,this._listenerY,this._listenerZ]}).then((a)=>{this._sampleRate=a["sampleRate"]})),this._StartTicking()}Release(){this._listenerInst=null,super.Release()}_OnInstanceDestroyed(a){this._listenerInst===a&&(this._listenerInst=null)}DbToLinearNoCap(a){return Math.pow(10,a/20)}DbToLinear(a){const b=this.DbToLinearNoCap(a);return isFinite(b)?Math.max(Math.min(b,1),0):0}LinearToDbNoCap(a){return 20*(Math.log(a)/2.302585092994046)}LinearToDb(a){return this.LinearToDbNoCap(Math.max(Math.min(a,1),0))}_OnSuspend(){this._playInBackground||this.PostToDOM("set-suspended",{"isSuspended":!0})}_OnResume(){this._playInBackground||this.PostToDOM("set-suspended",{"isSuspended":!1})}_OnUpdateState(a){const b=a["tickCount"],c=this._lastAIState.filter((a)=>a.hasOwnProperty("placeholder")&&a["placeholder"]>b);this._lastAIState=a["audioInstances"],this._lastAnalysersData=a["analysers"],0C3.equalsNoCase(a,b["tag"])&&b["isPlaying"])}_MaybeMarkAsPlaying(a,b,c,d){this._IsTagPlaying(a)||this._lastAIState.push({"tag":a,"duration":0,"volume":d,"isPlaying":!0,"playbackTime":0,"playbackRate":1,"uid":-1,"bufferOriginalUrl":"","bufferUrl":"","bufferType":"","isMusic":b,"isLooping":c,"isMuted":!1,"resumePosition":0,"pan":null,"placeholder":this._runtime.GetTickCountNoSave()})}async _OnTrigger(a){const b=a["type"];this._triggerTag=a["tag"],"ended"===b?await this.TriggerAsync(C3.Plugins.Audio.Cnds.OnEnded):"fade-ended"===b&&(await this.TriggerAsync(C3.Plugins.Audio.Cnds.OnFadeEnded))}Tick(){const a={"timeScale":this._runtime.GetTimeScale(),"gameTime":this._runtime.GetGameTime(),"instPans":this.GetInstancePans(),"tickCount":this._runtime.GetTickCountNoSave()};if(this._listenerInst){const b=this._listenerInst.GetWorldInfo();this._listenerX=b.GetX(),this._listenerY=b.GetY(),a["listenerPos"]=[this._listenerX,this._listenerY,this._listenerZ]}this.PostToDOM("tick",a)}rotatePtAround(b,c,d,a,e){if(0===d)return[b,c];const f=Math.sin(d),g=Math.cos(d);b-=a,c-=e;const h=b*f,i=c*f,j=b*g,k=c*g;return b=j-i,c=k+h,b+=a,c+=e,[b,c]}GetInstancePans(){return this._lastAIState.filter((a)=>-1!==a["uid"]).map((a)=>this._runtime.GetInstanceByUID(a["uid"])).filter((a)=>a).map((a)=>{const b=a.GetWorldInfo(),c=b.GetLayer().GetAngle(),[d,e]=this.rotatePtAround(b.GetX(),b.GetY(),-c,this._listenerX,this._listenerY);return{"uid":a.GetUID(),"x":d,"y":e,"angle":b.GetAngle()-c}})}GetAnalyserData(a,b){for(const c of this._lastAnalysersData)if(c.index===b&&C3.equalsNoCase(c.tag,a))return c;return null}_IncrementEffectCount(a){this._effectCount.set(a,(this._effectCount.get(a)||0)+1)}_ShouldSave(a){return!a.hasOwnProperty("placeholder")&&3!==this._saveLoadMode&&!(a["isMusic"]&&1===this._saveLoadMode)&&!!(a["isMusic"]||2!==this._saveLoadMode)}SaveToJson(){return{"isSilent":this._isSilent,"masterVolume":this._masterVolume,"listenerZ":this._listenerZ,"listenerUid":this._listenerInst?this._listenerInst.GetUID():-1,"playing":this._lastAIState.filter((a)=>this._ShouldSave(a)),"effects":this._lastFxState,"analysers":this._lastAnalysersData}}LoadFromJson(a){this._isSilent=a["isSilent"],this._masterVolume=a["masterVolume"],this._listenerZ=a["listenerZ"],this._listenerInst=null,this._loadListenerUid=a["listenerUid"],this._lastAIState=a["playing"],this._lastFxState=a["effects"],this._lastAnalysersData=a["analysers"]}_OnAfterLoad(){if(-1!==this._loadListenerUid&&(this._listenerInst=this._runtime.GetInstanceByUID(this._loadListenerUid),this._loadListenerUid=-1,this._listenerInst)){const a=this._listenerInst.GetWorldInfo();this._listenerX=a.GetX(),this._listenerY=a.GetY()}for(const a of this._lastAIState){const b=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a["bufferOriginalUrl"]);b?(a["bufferUrl"]=b.url,a["bufferType"]=b.type):a["bufferUrl"]=null}for(const a of Object.values(this._lastFxState))for(const b of a)if(b.hasOwnProperty("bufferOriginalUrl")){const a=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b["bufferOriginalUrl"]);a&&(b["bufferUrl"]=a.url,b["bufferType"]=a.type)}this.PostToDOM("load-state",{"saveLoadMode":this._saveLoadMode,"timeScale":this._runtime.GetTimeScale(),"gameTime":this._runtime.GetGameTime(),"listenerPos":[this._listenerX,this._listenerY,this._listenerZ],"isSilent":this._isSilent,"masterVolume":this._masterVolume,"playing":this._lastAIState.filter((a)=>null!==a["bufferUrl"]),"effects":this._lastFxState})}GetDebuggerProperties(){var a=Math.round;const b=[];for(const[a,c]of Object.entries(this._lastFxState))b.push({name:"$"+a,value:c.map((a)=>a["type"]).join(", ")});return[{title:"plugins.audio.debugger.tag-effects",properties:b},{title:"plugins.audio.debugger.currently-playing",properties:[{name:"plugins.audio.debugger.currently-playing-count",value:this._lastAIState.length},...this._lastAIState.map((b,c)=>({name:"$#"+c,value:`${b["bufferOriginalUrl"]} ("${b["tag"]}") ${a(10*b["playbackTime"])/10} / ${a(10*b["duration"])/10}`}))]}]}}} + +"use strict";C3.Plugins.Audio.Cnds={OnEnded(a){return C3.equalsNoCase(this._triggerTag,a)},OnFadeEnded(a){return C3.equalsNoCase(this._triggerTag,a)},PreloadsComplete(){return this._preloadCount===this._preloadTotal},AdvancedAudioSupported(){return!0},IsSilent(){return this._isSilent},IsAnyPlaying(){for(const a of this._lastAIState)if(a["isPlaying"])return!0;return!1},IsTagPlaying(a){return this._IsTagPlaying(a)}}; + +"use strict";{const a=["lowpass","highpass","bandpass","lowshelf","highshelf","peaking","notch","allpass"];C3.Plugins.Audio.Acts={Play(a,b,c,d){if(!this._isSilent){const e=a[1],f=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);f&&(this.PostToDOM("play",{"originalUrl":a[0],"url":f.url,"type":f.type,"isMusic":e,"tag":d.toLowerCase(),"isLooping":0!==b,"vol":this.DbToLinear(c),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"]}),this._MaybeMarkAsPlaying(d.toLowerCase(),e,0!==b,this.DbToLinear(c)),this._nextPlayTime=0)}},PlayAtPosition(a,b,c,d,e,f,g,h,i,j){if(!this._isSilent){const k=a[1],l=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);l&&(this.PostToDOM("play",{"originalUrl":a[0],"url":l.url,"type":l.type,"isMusic":k,"tag":j.toLowerCase(),"isLooping":0!==b,"vol":this.DbToLinear(c),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":d,"y":e,"angle":C3.toRadians(f),"innerAngle":C3.toRadians(g),"outerAngle":C3.toRadians(h),"outerGain":this.DbToLinear(i)}}),this._MaybeMarkAsPlaying(j.toLowerCase(),k,0!==b,this.DbToLinear(c)),this._nextPlayTime=0)}},PlayAtObject(a,b,c,d,e,f,g,h){if(!this._isSilent&&d){const i=d.GetFirstPicked();if(i&&i.GetWorldInfo()){const d=i.GetWorldInfo(),j=d.GetLayer().GetAngle(),[k,l]=this.rotatePtAround(d.GetX(),d.GetY(),-j,this._listenerX,this._listenerY),m=a[1],n=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);n&&(this.PostToDOM("play",{"originalUrl":a[0],"url":n.url,"type":n.type,"isMusic":m,"tag":h.toLowerCase(),"isLooping":0!==b,"vol":this.DbToLinear(c),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":k,"y":l,"angle":d.GetAngle()-j,"innerAngle":C3.toRadians(e),"outerAngle":C3.toRadians(f),"outerGain":this.DbToLinear(g),"uid":i.GetUID()}}),this._MaybeMarkAsPlaying(h.toLowerCase(),m,0!==b,this.DbToLinear(c)),this._nextPlayTime=0)}}},PlayByName(a,b,c,d,e){if(!this._isSilent){const f=1===a,g=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);g&&(this.PostToDOM("play",{"originalUrl":b,"url":g.url,"type":g.type,"isMusic":f,"tag":e.toLowerCase(),"isLooping":0!==c,"vol":this.DbToLinear(d),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"]}),this._MaybeMarkAsPlaying(e.toLowerCase(),f,0!==c,this.DbToLinear(d)),this._nextPlayTime=0)}},PlayAtPositionByName(a,b,c,d,e,f,g,h,i,j,k){if(!this._isSilent){const l=1===a,m=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);m&&(this.PostToDOM("play",{"originalUrl":b,"url":m.url,"type":m.type,"isMusic":l,"tag":k.toLowerCase(),"isLooping":0!==c,"vol":this.DbToLinear(d),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":e,"y":f,"angle":C3.toRadians(g),"innerAngle":C3.toRadians(h),"outerAngle":C3.toRadians(i),"outerGain":this.DbToLinear(j)}}),this._MaybeMarkAsPlaying(k.toLowerCase(),l,0!==c,this.DbToLinear(d)),this._nextPlayTime=0)}},PlayAtObjectByName(a,b,c,d,e,f,g,h,i){if(!this._isSilent&&!this._isSilent&&e){const j=e.GetFirstPicked();if(j&&j.GetWorldInfo()){const e=j.GetWorldInfo(),k=e.GetLayer().GetAngle(),[l,m]=this.rotatePtAround(e.GetX(),e.GetY(),-k,this._listenerX,this._listenerY),n=1===a,o=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);o&&(this.PostToDOM("play",{"originalUrl":b,"url":o.url,"type":o.type,"isMusic":n,"tag":i.toLowerCase(),"isLooping":0!==c,"vol":this.DbToLinear(d),"pos":0,"off":this._nextPlayTime,"trueClock":!!self["C3_GetAudioContextCurrentTime"],"panning":{"x":l,"y":m,"angle":e.GetAngle()-k,"innerAngle":C3.toRadians(f),"outerAngle":C3.toRadians(g),"outerGain":this.DbToLinear(h),"uid":j.GetUID()}}),this._MaybeMarkAsPlaying(i.toLowerCase(),n,0!==c,this.DbToLinear(d)),this._nextPlayTime=0)}}},SetLooping(a,b){this.PostToDOM("set-looping",{"tag":a.toLowerCase(),"isLooping":0===b})},SetMuted(a,b){this.PostToDOM("set-muted",{"tag":a.toLowerCase(),"isMuted":0===b})},SetVolume(a,b){this.PostToDOM("set-volume",{"tag":a.toLowerCase(),"vol":this.DbToLinear(b)})},FadeVolume(a,b,c,d){this.PostToDOM("fade-volume",{"tag":a.toLowerCase(),"vol":this.DbToLinear(b),"duration":c,"stopOnEnd":0===d})},Preload(a){const b=a[1],c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);c&&(this._preloadTotal++,this.PostToDOMAsync("preload",{"originalUrl":a[0],"url":c.url,"type":c.type,"isMusic":b}).then(()=>this._preloadCount++))},PreloadByName(a,b){const c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);c&&(this._preloadTotal++,this.PostToDOMAsync("preload",{"originalUrl":b,"url":c.url,"type":c.type,"isMusic":1===a}).then(()=>this._preloadCount++))},SetPlaybackRate(a,b){this.PostToDOM("set-playback-rate",{"tag":a.toLowerCase(),"rate":Math.max(b,0)})},Stop(a){this.PostToDOM("stop",{"tag":a.toLowerCase()})},StopAll(){this.PostToDOM("stop-all")},SetPaused(a,b){this.PostToDOM("set-paused",{"tag":a.toLowerCase(),"paused":0===b})},Seek(a,b){this.PostToDOM("seek",{"tag":a.toLowerCase(),"pos":b})},SetSilent(a){2===a&&(a=this._isSilent?1:0),a=0===a;this._isSilent===a||(this._isSilent=a,this.PostToDOM("set-silent",{"isSilent":a}))},SetMasterVolume(a){const b=this.DbToLinear(a);this._masterVolume===b||(this._masterVolume=b,this.PostToDOM("set-master-volume",{"vol":b}))},AddFilterEffect(b,c,d,e,f,g,h){b=b.toLowerCase();const i=a[c];this._IncrementEffectCount(b),this.PostToDOM("add-effect",{"type":"filter","tag":b,"params":[i,d,e,f,g,C3.clamp(h/100,0,1)]})},AddDelayEffect(a,b,c,d){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"delay","tag":a,"params":[b,this.DbToLinear(c),C3.clamp(d/100,0,1)]})},AddFlangerEffect(a,b,c,d,e,f){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"flanger","tag":a,"params":[b/1e3,c/1e3,d,e/100,C3.clamp(f/100,0,1)]})},AddPhaserEffect(a,b,c,d,e,f,g){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"phaser","tag":a,"params":[b,c,d,e,f,C3.clamp(g/100,0,1)]})},AddConvolutionEffect(a,b,c,d){a=a.toLowerCase();const e=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b[0]);e&&(this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"convolution","tag":a,"bufferOriginalUrl":b[0],"bufferUrl":e.url,"bufferType":e.type,"params":[0===c,C3.clamp(d/100,0,1)]}))},AddGainEffect(a,b){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"gain","tag":a,"params":[this.DbToLinear(b)]})},AddMuteEffect(a){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"gain","tag":a,"params":[0]})},AddTremoloEffect(a,b,c){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"tremolo","tag":a,"params":[b,C3.clamp(c/100,0,1)]})},AddRingModEffect(a,b,c){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"ringmod","tag":a,"params":[b,C3.clamp(c/100,0,1)]})},AddDistortionEffect(a,b,c,d,e,f){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"distortion","tag":a,"params":[this.DbToLinearNoCap(b),this.DbToLinearNoCap(c),d,this.DbToLinearNoCap(e),C3.clamp(f/100,0,1)]})},AddCompressorEffect(a,b,c,d,e,f){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"compressor","tag":a,"params":[b,c,d,e/1e3,f/1e3]})},AddAnalyserEffect(a,b,c){a=a.toLowerCase(),this._IncrementEffectCount(a),this.PostToDOM("add-effect",{"type":"analyser","tag":a,"params":[b,c]})},RemoveEffects(a){a=a.toLowerCase(),this._effectCount.set(a,0),this.PostToDOM("remove-effects",{"tag":a}),this._lastFxState={}},SetEffectParameter(a,b,c,d,e,f){this.PostToDOM("set-effect-param",{"tag":a.toLowerCase(),"index":Math.floor(b),"param":c,"value":d,"ramp":e,"time":f})},SetListenerObject(a){if(a){const b=a.GetFirstPicked();b&&b.GetWorldInfo()&&(this._listenerInst=b)}},SetListenerZ(a){this._listenerZ=a},ScheduleNextPlay(a){this._nextPlayTime=Math.max(a,0)},UnloadAudio(a){const b=a[1],c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(a[0]);c&&this.PostToDOM("unload",{"url":c.url,"type":c.type,"isMusic":b})},UnloadAudioByName(a,b){const c=this._runtime.GetAssetManager().GetProjectAudioFileUrl(b);c&&this.PostToDOM("unload",{"url":c.url,"type":c.type,"isMusic":1===a})},UnloadAll(){this.PostToDOM("unload-all")}}} + +"use strict";C3.Plugins.Audio.Exps={Duration(b){const c=this._GetFirstAudioStateByTag(b);return c?c["duration"]:0},PlaybackTime(b){const c=this._GetFirstAudioStateByTag(b);return c?c["playbackTime"]:0},PlaybackRate(b){const c=this._GetFirstAudioStateByTag(b);return c?c["playbackRate"]:0},Volume(b){const c=this._GetFirstAudioStateByTag(b);return c?this.LinearToDb(c["volume"]):0},MasterVolume(){return this.LinearToDb(this._masterVolume)},EffectCount(a){return this._effectCount.get(a.toLowerCase())||0},AnalyserFreqBinCount(a,b){const c=this.GetAnalyserData(a,Math.floor(b));return c?c["binCount"]:0},AnalyserFreqBinAt(a,b,c){var d=Math.floor;const e=this.GetAnalyserData(a,d(b));return e?(c=d(c),0>c||c>=e["binCount"]?0:e["freqBins"][c]):0},AnalyserPeakLevel(a,b){const c=this.GetAnalyserData(a,Math.floor(b));return c?c["peak"]:0},AnalyserRMSLevel(a,b){const c=this.GetAnalyserData(a,Math.floor(b));return c?c["rms"]:0},SampleRate(){return this._sampleRate},CurrentTime(){return self["C3_GetAudioContextCurrentTime"]?self["C3_GetAudioContextCurrentTime"]():performance.now()/1e3}}; + +"use strict";C3.Behaviors.solid=class extends C3.SDKBehaviorBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Behaviors.solid.Type=class extends C3.SDKBehaviorTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{const a=new Set;C3.Behaviors.solid.Instance=class extends C3.SDKBehaviorInstanceBase{constructor(a,b){super(a),this.SetEnabled(!0),b&&(this.SetEnabled(b[0]),this.SetTags(b[1]))}Release(){super.Release()}SetEnabled(a){this._inst.GetSavedDataMap().set("solidEnabled",!!a)}IsEnabled(){return this._inst.GetSavedDataMap().get("solidEnabled")}SetTags(a){const b=this._inst.GetSavedDataMap();if(!a.trim())return void b.delete("solidTags");let c=b.get("solidTags");c||(c=new Set,b.set("solidTags",c)),c.clear();for(const b of a.split(" "))b&&c.add(b.toLowerCase())}GetTags(){return this._inst.GetSavedDataMap().get("solidTags")||a}SaveToJson(){return{"e":this.IsEnabled()}}LoadFromJson(a){this.SetEnabled(a["e"])}GetPropertyValueByIndex(a){return a===0?this.IsEnabled():void 0}SetPropertyValueByIndex(a,b){a===0?this.SetEnabled(b):void 0}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.solid.properties.enabled.name",value:this.IsEnabled(),onedit:(a)=>this.SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.solid.Cnds={IsEnabled(){return this.IsEnabled()}}; + +"use strict";C3.Behaviors.solid.Acts={SetEnabled(a){this.SetEnabled(a)}}; + +"use strict";C3.Behaviors.solid.Exps={}; + +"use strict";C3.Behaviors.Platform=class extends C3.SDKBehaviorBase{constructor(a){super(a)}Release(){super.Release()}}; + +"use strict";C3.Behaviors.Platform.Type=class extends C3.SDKBehaviorTypeBase{constructor(a){super(a)}Release(){super.Release()}OnCreate(){}}; + +"use strict";{function a(a,b,c,d,e){return C3.clamp(a*e+.5*d*e*e,b*e,c*e)}const b=0;C3.Behaviors.Platform.Instance=class extends C3.SDKBehaviorInstanceBase{constructor(a,c){super(a),this._keyboardDisposables=null,this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1,this._doubleJumped=!1,this._canDoubleJump=!1,this._ignoreInput=!1,this._simLeft=!1,this._simRight=!1,this._simJump=!1,this._lastFloorObject=null,this._loadFloorUid=-1,this._lastFloorX=0,this._lastFloorY=0,this._floorIsJumpthru=!1,this._wasOnFloor=!1,this._wasOverJumpthru=!!this._runtime.GetCollisionEngine().TestOverlapJumpthru(this._inst),this._loadJumpthruUid=-1,this._animMode="stopped",this._fallThrough=0,this._isFirstTick=!0,this._dx=0,this._dy=0,this._downX=0,this._downY=0,this._rightX=0,this._rightY=0,this._g=0,this._g1=0,this._ga=C3.toRadians(90),this._maxSpeed=330,this._acc=1500,this._dec=1500,this._jumpStrength=650,this._maxFall=1e3,this._enableDoubleJump=!1,this._jumpSustain=0,this._sustainTime=0,this._defaultControls=!0,this._ceilingCollisionMode=0,this._isEnabled=!0,c&&(this._maxSpeed=c[b],this._acc=c[1],this._dec=c[2],this._jumpStrength=c[3],this._g=c[4],this._maxFall=c[5],this._enableDoubleJump=!!c[6],this._jumpSustain=c[7]/1e3,this._defaultControls=!!c[8],this._isEnabled=!!c[9]);const d=this._runtime.Dispatcher();this._disposables=new C3.CompositeDisposable(C3.Disposable.From(d,"instancedestroy",(a)=>this._OnInstanceDestroyed(a.instance)),C3.Disposable.From(d,"afterload",()=>this._OnAfterLoad())),this._defaultControls&&this._BindEvents(),this._isEnabled&&this._StartPostTicking(),this._UpdateGravity(),this._inst.GetUnsavedDataMap().set("isPlatformBehavior",!0)}Release(){this._keyboardDisposables&&(this._keyboardDisposables.Release(),this._keyboardDisposables=null),this._lastFloorObject=null,this._wasOverJumpthru=null,super.Release()}_BindEvents(){if(!this._keyboardDisposables){const a=this._runtime.Dispatcher();this._keyboardDisposables=new C3.CompositeDisposable(C3.Disposable.From(a,"keydown",(a)=>this._OnKeyDown(a.data)),C3.Disposable.From(a,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(a,"window-blur",()=>this._OnWindowBlur()))}}_UnBindEvents(){this._keyboardDisposables&&(this._keyboardDisposables.Release(),this._keyboardDisposables=null)}_OnInstanceDestroyed(a){this._lastFloorObject===a&&(this._lastFloorObject=null),this._wasOverJumpthru===a&&(this._wasOverJumpthru=null)}_OnKeyDown(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!0;break;case"ArrowRight":this._rightKey=!0;break;case"ArrowUp":this._jumpKey=!0;}}_OnKeyUp(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!1;break;case"ArrowRight":this._rightKey=!1;break;case"ArrowUp":this._jumpKey=!1,this._jumped=!1;}}_OnWindowBlur(){this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1}SaveToJson(){return{"ii":this._ignoreInput,"lfx":this._lastFloorX,"lfy":this._lastFloorY,"lfo":this._lastFloorObject?this._lastFloorObject.GetUID():-1,"am":this._animMode,"en":this._isEnabled,"fall":this._fallThrough,"ft":this._isFirstTick,"dx":this._dx,"dy":this._dy,"ms":this._maxSpeed,"acc":this._acc,"dec":this._dec,"js":this._jumpStrength,"g":this._g,"g1":this._g1,"mf":this._maxFall,"wof":this._wasOnFloor,"woj":this._wasOverJumpthru?this._wasOverJumpthru.GetUID():-1,"ga":this._ga,"edj":this._enableDoubleJump,"cdj":this._canDoubleJump,"dj":this._doubleJumped,"sus":this._jumpSustain,"dc":this._defaultControls,"cc":this._ceilingCollisionMode}}LoadFromJson(a){this._ignoreInput=a["ii"],this._lastFloorX=a["lfx"],this._lastFloorY=a["lfy"],this._loadFloorUid=a["lfo"],this._animMode=a["am"];const b=a["en"];this._fallThrough=a["fall"],this._isFirstTick=a["ft"],this._dx=a["dx"],this._dy=a["dy"],this._maxSpeed=a["ms"],this._acc=a["acc"],this._dec=a["dec"],this._jumpStrength=a["js"],this._g=a["g"],this._g1=a["g1"],this._maxFall=a["mf"],this._wasOnFloor=a["wof"],this._loadJumpthruUid=a["woj"],this._ga=a["ga"],this._enableDoubleJump=a["edj"],this._canDoubleJump=a["cdj"],this._doubleJumped=a["dj"],this._jumpSustain=a["sus"],this._defaultControls=a["dc"],this._ceilingCollisionMode=a["cc"]||0,this._leftKey=!1,this._rightKey=!1,this._jumpKey=!1,this._jumped=!1,this._simLeft=!1,this._simRight=!1,this._simJump=!1,this._sustainTime=0,this._defaultControls?this._BindEvents():this._UnBindEvents(),this._SetEnabled(b),this._UpdateGravity()}_OnAfterLoad(){this._lastFloorObject=-1===this._loadFloorUid?null:this._runtime.GetInstanceByUID(this._loadFloorUid),this._wasOverJumpthru=-1===this._loadJumpthruUid?null:this._runtime.GetInstanceByUID(this._loadJumpthruUid)}_UpdateGravity(){var a=Math.PI,b=Math.sin,c=Math.cos;this._downX=c(this._ga),this._downY=b(this._ga),this._rightX=c(this._ga-a/2),this._rightY=b(this._ga-a/2),this._downX=C3.round6dp(this._downX),this._downY=C3.round6dp(this._downY),this._rightX=C3.round6dp(this._rightX),this._rightY=C3.round6dp(this._rightY),this._g1=this._g,0>this._g&&(this._downX*=-1,this._downY*=-1,this._g=Math.abs(this._g))}_GetGDir(){return 0>this._g?-1:1}_IsOnFloor(){const a=this._inst.GetWorldInfo(),b=this._runtime.GetCollisionEngine(),c=this._inst,d=this._lastFloorObject,e=a.GetX(),f=a.GetY();if(a.OffsetXY(this._downX,this._downY),a.SetBboxChanged(),d&&b.TestOverlap(c,d)&&(!d.GetObjectClass().HasSolidBehavior()||b.IsSolidCollisionAllowed(d,c)))return a.SetXY(e,f),a.SetBboxChanged(),d;else{let d=b.TestOverlapSolid(c),g=null;if(d||0!==this._fallThrough||(g=b.TestOverlapJumpthru(c,!0)),a.SetXY(e,f),a.SetBboxChanged(),d)return b.TestOverlap(c,d)?null:(this._floorIsJumpthru=!1,d);if(g&&g.length){let a=0;for(let d=0,e=g.length;dthis._maxFall&&(this._dy=this._maxFall)),a&&(this._jumped=!0)}_ApplyHorizontalAcceleration(a,b,c){const d=this._acc,e=this._dec;a===b&&(0>this._dx?(this._dx+=e*c,0this._dx&&(this._dx=0)));let f=0;return a&&!b&&(0this._dx?f=d+e:f=d),this._dx+=f*c,this._dx=C3.clamp(this._dx,-this._maxSpeed,this._maxSpeed),f}_HandleHorizontalMovement(b,c,d,e){var f=Math.abs;const g=this._inst,h=g.GetWorldInfo(),i=this._runtime.GetCollisionEngine(),j=this._downX,k=this._downY,l=this._rightX,m=this._rightY,n=this._maxSpeed;let o=!1,p=h.GetX(),q=h.GetY();const r=a(this._dx,-n,n,c,b)*l,s=a(this._dx,-n,n,c,b)*m;h.OffsetXY(l*(1this._dx?1:-1),m*(0>this._dx?1:-1),a,!1)?d&&!t&&!this._floorIsJumpthru&&(p=h.GetX(),q=h.GetY(),h.OffsetXY(j,k),i.TestOverlapSolid(g)?!i.PushOutSolid(g,-j,-k,3,!1)&&(h.SetXY(p,q),h.SetBboxChanged()):(h.SetXY(p,q),h.SetBboxChanged())):(h.SetXY(p,q),h.SetBboxChanged()),!t&&(this._dx=0)):!u&&!e&&f(this._dy)this._dy?1:-1),i*(0>this._dy?1:-1),a,p,o))f.SetXY(k,l),f.SetBboxChanged(),this._wasOnFloor=!0,p||(this._dy=0);else{this._lastFloorObject=o;const a=o.GetWorldInfo();this._lastFloorX=a.GetX(),this._lastFloorY=a.GetY(),this._floorIsJumpthru=p,p&&(j=!0),(0this._dy&&1===this._ceilingCollisionMode&&g.PushInFractional(e,h,i,o,32)}}return j}_HandleAnimationTriggers(a,b,c){"falling"!==this._animMode&&0this._dx=a},{name:"behaviors.platform.debugger.vector-y",value:this._dy,onedit:(a)=>this._dy=a},{name:"behaviors.platform.properties.max-speed.name",value:this._maxSpeed,onedit:(a)=>this._maxSpeed=a},{name:"behaviors.platform.properties.acceleration.name",value:this._acc,onedit:(a)=>this._acc=a},{name:"behaviors.platform.properties.deceleration.name",value:this._dec,onedit:(a)=>this._dec=a},{name:"behaviors.platform.properties.jump-strength.name",value:this._jumpStrength,onedit:(a)=>this._jumpStrength=a},{name:"behaviors.platform.properties.gravity.name",value:this._g,onedit:(a)=>this._g=a},{name:"behaviors.platform.debugger.gravity-angle",value:C3.toDegrees(this._ga),onedit:(a)=>this._ga=C3.toRadians(a)},{name:"behaviors.platform.properties.max-fall-speed.name",value:this._maxFall,onedit:(a)=>this._maxFall=a},{name:"behaviors.platform.debugger.animation-mode",value:["behaviors.platform.debugger.anim-"+this._animMode]},{name:"behaviors.platform.properties.enabled.name",value:this._isEnabled,onedit:(a)=>this._SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.Platform.Cnds={IsMoving(){return 0!==this._dx||0!==this._dy},CompareSpeed(a,b){return C3.compare(Math.hypot(this._dx,this._dy),a,b)},IsOnFloor(){if(0!==this._dy)return!1;const a=this._inst,b=this.GetWorldInfo(),c=this._runtime.GetCollisionEngine(),d=b.GetX(),e=b.GetY();b.OffsetXY(this._downX,this._downY),b.SetBboxChanged();const f=c.TestOverlapSolid(a);let g=null;if(f||0!==this._fallThrough||(g=c.TestOverlapJumpthru(a,!0)),b.SetXY(d,e),b.SetBboxChanged(),f)return!c.TestOverlap(a,f);if(g&&g.length){let b=0;for(let d=0,e=g.length;dthis._dy},IsFalling(){return 0=b.GetShakeStart()&&h=this._timeLeft)){const a=this._runtime.GetDt(this._inst);return this._timeLeft-=a,0>=this._timeLeft?(this._timeLeft=0,this._inst.GetWorldInfo().SetVisible(!0),this._runtime.UpdateRender(),this.DebugTrigger(C3.Behaviors.Flash.Cnds.OnFlashEnded)):void(this._stageTimeLeft-=a,0>=this._stageTimeLeft&&(0===this._stage?(this._inst.GetWorldInfo().SetVisible(!1),this._stage=1,this._stageTimeLeft+=this._offTime):(this._inst.GetWorldInfo().SetVisible(!0),this._stage=0,this._stageTimeLeft+=this._onTime),this._runtime.UpdateRender()))}}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.flash.debugger.on-time",value:this._onTime,onedit:(a)=>this._onTime=a},{name:"behaviors.flash.debugger.off-time",value:this._offTime,onedit:(a)=>this._offTime=a},{name:"behaviors.flash.debugger.is-flashing",value:0this._OnKeyDown(a.data)),C3.Disposable.From(a,"keyup",(a)=>this._OnKeyUp(a.data)),C3.Disposable.From(a,"window-blur",()=>this._OnWindowBlur()))}}_UnBindEvents(){this._disposables&&(this._disposables.Release(),this._disposables=null)}Release(){super.Release()}SaveToJson(){return{"dx":this._dx,"dy":this._dy,"e":this._isEnabled,"ms":this._maxSpeed,"acc":this._acc,"dec":this._dec,"d":this._directions,"am":this._angleMode,"dc":this._defaultControls,"ii":this._ignoreInput}}LoadFromJson(a){this._dx=a["dx"],this._dy=a["dy"],this._SetEnabled(a["e"]),this._maxSpeed=a["ms"],this._acc=a["acc"],this._dec=a["dec"],this._directions=a["d"],this._angleMode=a["am"],this._defaultControls=a["dc"],this._ignoreInput=a["ii"],this._upKey=!1,this._downKey=!1,this._leftKey=!1,this._rightKey=!1,this._simUp=!1,this._simDown=!1,this._simLeft=!1,this._simRight=!1,this._defaultControls?this._BindEvents():this._UnBindEvents()}_OnKeyDown(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!0;break;case"ArrowUp":this._upKey=!0;break;case"ArrowRight":this._rightKey=!0;break;case"ArrowDown":this._downKey=!0;}}_OnKeyUp(a){switch(a["key"]){case"ArrowLeft":this._leftKey=!1;break;case"ArrowUp":this._upKey=!1;break;case"ArrowRight":this._rightKey=!1;break;case"ArrowDown":this._downKey=!1;}}_OnWindowBlur(){this._upKey=!1,this._downKey=!1,this._leftKey=!1,this._rightKey=!1}Tick(){var b=Math.round,c=Math.floor,d=Math.abs,e=Math.atan2,a=Math.max,f=Math.min;const g=this._runtime.GetDt(this._inst),h=this._runtime.GetCollisionEngine();let i=this._leftKey||this._simLeft,j=this._rightKey||this._simRight,k=this._upKey||this._simUp,l=this._downKey||this._simDown;if(this._simLeft=!1,this._simRight=!1,this._simUp=!1,this._simDown=!1,!this._isEnabled)return;let m=h.TestOverlapSolid(this._inst);if(m&&(h.RegisterCollision(this._inst,m),!h.PushOutSolidNearest(this._inst)))return;this._ignoreInput&&(i=j=k=l=!1),0===this._directions?i=j=!1:1===this._directions&&(k=l=!1),2===this._directions&&(k||l)&&(i=j=!1),i===j&&(0>this._dx?this._dx=f(this._dx+this._dec*g,0):0this._dy?this._dy=f(this._dy+this._dec*g,0):0this._dx?n=this._acc+this._dec:n=this._acc),k&&!l&&(0this._dy?o=this._acc+this._dec:o=this._acc),this._dx+=n*g,this._dy+=o*g,0!==this._dx||0!==this._dy){const f=Math.sqrt(this._dx*this._dx+this._dy*this._dy),i=e(this._dy,this._dx),a=this._maxSpeed*Math.cos(i),j=this._maxSpeed*Math.sin(i);f>this._maxSpeed&&(this._dx=a,this._dy=j);const k=d(a)*g,l=d(j)*g,p=this._inst.GetWorldInfo(),q=p.GetX(),r=p.GetY(),s=p.GetAngle(),t=C3.clamp(this._dx*g+.5*n*g*g,-k,k);p.OffsetX(t),p.SetBboxChanged(),m=h.TestOverlapSolid(this._inst),m&&(!h.PushOutSolid(this._inst,0>this._dx?1:-1,0,d(c(t)))&&(p.SetX(q),p.SetBboxChanged()),this._dx=0,h.RegisterCollision(this._inst,m));const u=C3.clamp(this._dy*g+.5*o*g*g,-l,l);p.OffsetY(u),p.SetBboxChanged(),m=h.TestOverlapSolid(this._inst),m&&(!h.PushOutSolid(this._inst,0,0>this._dy?1:-1,d(c(u)))&&(p.SetY(r),p.SetBboxChanged()),this._dy=0,h.RegisterCollision(this._inst,m));const v=C3.round6dp(this._dx),w=C3.round6dp(this._dy);(0!==v||0!==w)&&this._inst.GetPlugin().IsRotatable()&&(1===this._angleMode?p.SetAngle(C3.toRadians(90*b(C3.toDegrees(e(w,v))/90))):2===this._angleMode?p.SetAngle(C3.toRadians(45*b(C3.toDegrees(e(w,v))/45))):3===this._angleMode&&p.SetAngle(e(w,v))),p.SetBboxChanged(),p.GetAngle()!=s&&(m=h.TestOverlapSolid(this._inst),m&&(p.SetAngle(s),p.SetBboxChanged(),h.RegisterCollision(this._inst,m)))}}GetPropertyValueByIndex(a){return a===0?this._maxSpeed:1===a?this._acc:2===a?this._dec:3===a?this._directions:4===a?this._angleMode:5===a?this._defaultControls:6===a?this._isEnabled:void 0}SetPropertyValueByIndex(a,b){a===0?this._maxSpeed=b:1===a?this._acc=b:2===a?this._dec=b:3===a?this._directions=b:4===a?this._angleMode=b:5===a?(this._defaultControls=!!b,this._defaultControls?this._BindEvents():this._UnBindEvents()):6===a?this._SetEnabled(b):void 0}SetPropertyOffsetValueByIndex(a,b){0!==b&&(0===a?this._maxSpeed+=b:1===a?this._acc+=b:2===a?this._dec+=b:void 0)}_MaybeClampSpeed(){const a=Math.hypot(this._dx,this._dy);a>this._maxSpeed&&this._SetSpeed(a)}_SetSpeed(b){b=C3.clamp(b,0,this._maxSpeed);const c=Math.atan2(this._dy,this._dx);this._dx=b*Math.cos(c),this._dy=b*Math.sin(c)}_SetEnabled(a){this._isEnabled=!!a,this._isEnabled?this._StartTicking():(this._simLeft=!1,this._simRight=!1,this._simUp=!1,this._simDown=!1,this._StopTicking())}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.eightdir.debugger.vector-x",value:this._dx,onedit:(a)=>this._dx=a},{name:"behaviors.eightdir.debugger.vector-y",value:this._dy,onedit:(a)=>this._dy=a},{name:"behaviors.eightdir.debugger.speed",value:Math.hypot(this._dx,this._dy),onedit:(a)=>this._SetSpeed(a)},{name:"behaviors.eightdir.debugger.angle-of-motion",value:C3.toDegrees(Math.atan2(this._dy,this._dx))},{name:"behaviors.eightdir.properties.max-speed.name",value:this._maxSpeed,onedit:(a)=>this._maxSpeed=a},{name:"behaviors.eightdir.properties.acceleration.name",value:this._acc,onedit:(a)=>this._acc=a},{name:"behaviors.eightdir.properties.deceleration.name",value:this._dec,onedit:(a)=>this._dec=a},{name:"behaviors.eightdir.properties.enabled.name",value:this._isEnabled,onedit:(a)=>this._SetEnabled(a)}]}]}}} + +"use strict";C3.Behaviors.EightDir.Cnds={IsMoving(){const a=Math.sqrt(this._dx*this._dx+this._dy*this._dy);return 1e-10=this._maxOpacity&&(b.SetOpacity(this._maxOpacity),this._stage=1,this._stageTime.Reset(),this.Trigger(C3.Behaviors.Fade.Cnds.OnFadeInEnd))),1===this._stage&&this._stageTime.Get()>=this._waitTime&&(this._stage=2,this._stageTime.Reset(),this.Trigger(C3.Behaviors.Fade.Cnds.OnWaitEnd)),2===this._stage&&0!==this._fadeOutTime&&(b.SetOpacity(this._maxOpacity-this._stageTime.Get()/this._fadeOutTime*this._maxOpacity),this._runtime.UpdateRender(),0>=b.GetOpacity()&&(this._stage=3,this._stageTime.Reset(),this.Trigger(C3.Behaviors.Fade.Cnds.OnFadeOutEnd),this._destroy&&this._runtime.DestroyInstance(this._inst)))}Start(){this._stage=0,this._stageTime.Reset(),0===this._fadeInTime?(this._stage=1,0===this._waitTime&&(this._stage=2)):(this._inst.GetWorldInfo().SetOpacity(0),this._runtime.UpdateRender())}GetPropertyValueByIndex(a){return a===0?this._fadeInTime:1===a?this._waitTime:2===a?this._fadeOutTime:3===a?this._destroy:void 0}SetPropertyValueByIndex(a,b){a===0?this._fadeInTime=b:1===a?this._waitTime=b:2===a?this._fadeOutTime=b:3===a?this._destroy=!!b:void 0}SetPropertyOffsetValueByIndex(a,b){0!==b&&(0===a?this._fadeInTime+=b:1===a?this._waitTime+=b:2===a?this._fadeOutTime+=b:void 0)}GetDebuggerProperties(){return[{title:"$"+this.GetBehaviorType().GetName(),properties:[{name:"behaviors.fade.properties.fade-in-time.name",value:this._fadeInTime,onedit:(a)=>this._fadeInTime=a},{name:"behaviors.fade.properties.wait-time.name",value:this._waitTime,onedit:(a)=>this._waitTime=a},{name:"behaviors.fade.properties.fade-out-time.name",value:this._fadeOutTime,onedit:(a)=>this._fadeOutTime=a},{name:"behaviors.fade.debugger.stage",value:["behaviors.fade.debugger."+["fade-in","wait","fade-out","done"][this._stage]]}]}]}}} + +"use strict";C3.Behaviors.Fade.Cnds={OnFadeOutEnd(){return!0},OnFadeInEnd(){return!0},OnWaitEnd(){return!0}}; + +"use strict";C3.Behaviors.Fade.Acts={StartFade(){this._activeAtStart||this._setMaxOpacity||(this._maxOpacity=this._inst.GetWorldInfo().GetOpacity()||1,this._setMaxOpacity=!0),3===this._stage&&this.Start()},RestartFade(){this.Start()},SetFadeInTime(a){0>a&&(a=0),this._fadeInTime=a},SetWaitTime(a){0>a&&(a=0),this._waitTime=a},SetFadeOutTime(a){0>a&&(a=0),this._fadeOutTime=a}}; + +"use strict";C3.Behaviors.Fade.Exps={FadeInTime(){return this._fadeInTime},WaitTime(){return this._waitTime},FadeOutTime(){return this._fadeOutTime}}; + +"use strict" +self.C3_GetObjectRefTable = function () { + return [ + C3.Plugins.Sprite, + C3.Behaviors.solid, + C3.Behaviors.Platform, + C3.Behaviors.scrollto, + C3.Behaviors.Flash, + C3.Plugins.Keyboard, + C3.Plugins.Text, + C3.Behaviors.EightDir, + C3.Plugins.TextBox, + C3.Plugins.Mouse, + C3.Behaviors.Fade, + C3.Plugins.Particles, + C3.Plugins.Audio, + C3.Plugins.System.Cnds.IsGroupActive, + C3.Behaviors.Platform.Cnds.IsMoving, + C3.Behaviors.Platform.Cnds.IsOnFloor, + C3.Plugins.Sprite.Acts.SetInstanceVar, + C3.Plugins.Sprite.Cnds.CompareInstanceVar, + C3.Plugins.Sprite.Acts.SetAnim, + C3.Plugins.Sprite.Acts.SetMirrored, + C3.Behaviors.Platform.Cnds.IsJumping, + C3.Plugins.Sprite.Cnds.OnCollision, + C3.Plugins.System.Acts.SubVar, + C3.Plugins.System.Acts.SetVar, + C3.Plugins.Sprite.Acts.SetOpacity, + C3.Plugins.System.Cnds.OnLayoutStart, + C3.Plugins.System.Cnds.EveryTick, + C3.Plugins.Sprite.Acts.SetPos, + C3.Plugins.Sprite.Exps.X, + C3.Plugins.Sprite.Exps.Y, + C3.Plugins.Keyboard.Cnds.OnKey, + C3.Plugins.System.Exps.dt, + C3.Plugins.System.Cnds.CompareVar, + C3.Plugins.Sprite.Acts.SetBoolInstanceVar, + C3.Plugins.Sprite.Cnds.IsBoolInstanceVarSet, + C3.Plugins.Sprite.Acts.SetVisible, + C3.Behaviors.Platform.Acts.SetIgnoreInput, + C3.Plugins.System.Acts.Wait, + C3.Plugins.System.Acts.RestartLayout, + C3.Plugins.System.Cnds.TriggerOnce, + C3.Plugins.System.Acts.CreateObject, + C3.Behaviors.Platform.Cnds.IsByWall, + C3.Behaviors.Platform.Acts.SetMaxFallSpeed, + C3.Behaviors.Platform.Acts.SetVectorX, + C3.Behaviors.Platform.Acts.SetVectorY, + C3.Plugins.System.Acts.AddVar, + C3.Behaviors.Platform.Acts.SetMaxSpeed, + C3.Plugins.Audio.Acts.Play, + C3.Behaviors.EightDir.Acts.SimulateControl, + C3.Plugins.Sprite.Acts.SetAngle, + C3.Plugins.Sprite.Acts.SetFlipped, + C3.Plugins.Sprite.Cnds.IsOverlapping, + C3.Plugins.System.Cnds.Compare, + C3.Plugins.System.Exps.layoutname, + C3.Plugins.System.Acts.GoToLayout, + C3.Plugins.System.Cnds.OnLayoutEnd, + C3.Plugins.Audio.Acts.Stop, + C3.Plugins.Sprite.Acts.Destroy, + C3.Plugins.Text.Acts.SetText, + C3.Plugins.Text.Acts.SetVisible, + C3.Plugins.Text.Cnds.IsBoolInstanceVarSet, + C3.Plugins.Text.Acts.SetBoolInstanceVar, + C3.Plugins.Text.Cnds.IsVisible, + C3.Plugins.Text.Acts.SetInstanceVar, + C3.Plugins.Text.Acts.AddInstanceVar, + C3.Plugins.Text.Cnds.CompareInstanceVar, + C3.Behaviors.Fade.Acts.SetFadeInTime, + C3.Behaviors.Fade.Acts.RestartFade, + C3.Plugins.TextBox.Cnds.OnTextChanged, + C3.Plugins.TextBox.Exps.Text, + C3.Plugins.TextBox.Cnds.CompareText, + C3.Plugins.Mouse.Cnds.IsOverObject, + C3.Plugins.Text.Acts.SetFontColor, + C3.Plugins.Text.Acts.SetFontSize, + C3.Plugins.Mouse.Cnds.OnObjectClicked, + C3.Plugins.System.Acts.ScrollX, + C3.Plugins.Keyboard.Cnds.OnKeyReleased + ]; +}; + +"use strict"; + +{ + function unaryminus(n) + { + return (typeof n === "number" ? -n : n); + } + + function bothNumbers(a, b) + { + return typeof a === "number" && typeof b === "number"; + } + + function add(l, r) + { + if (bothNumbers(l, r)) + return l + r; + else + return l; + } + + function subtract(l, r) + { + if (bothNumbers(l, r)) + return l - r; + else + return l; + } + + function multiply(l, r) + { + if (bothNumbers(l, r)) + return l * r; + else + return l; + } + + function divide(l, r) + { + if (bothNumbers(l, r)) + return l / r; + else + return l; + } + + function mod(l, r) + { + if (bothNumbers(l, r)) + return l % r; + else + return l; + } + + function pow(l, r) + { + if (bothNumbers(l, r)) + return Math.pow(l, r); + else + return l; + } + + function and(l, r) + { + if (typeof l === "string" || typeof r === "string") + { + // & with either side string does string concatenation + let lstr, rstr; + + if (typeof l === "number") + lstr = (Math.round(l * 1e10) / 1e10).toString(); + else + lstr = l; + + if (typeof r === "number") + rstr = (Math.round(r * 1e10) / 1e10).toString(); + else + rstr = r; + + return lstr + rstr; + } + else + { + // & with neither side a string does logical AND + return (l && r ? 1 : 0); + } + } + + function or(l, r) + { + if (bothNumbers(l, r)) + return (l || r ? 1 : 0); + else + return l; + } + + self.C3_ExpressionFuncs = [ + () => "Player", +() => "walk", +() => "idle", +() => "right", +() => "left", +() => "jump", +() => 1, +() => 0, +() => 70, +() => "System", +p => { +const n0 = p._GetNode(0); +return () => n0.ExpObject(); +}, +() => 100, +p => { +const f0 = p._GetNode(0).GetBoundMethod(); +return () => f0(); +}, +() => "Wall Jump", +() => 75, +() => "wall", +() => -500, +() => 500, +() => 1000, +() => "ground", +() => "Air Dash", +() => 1500, +() => 0.07, +() => 400, +() => -10, +() => "", +() => -1500, +() => "Spotlight_UH_Moonlight_UH", +() => "up", +() => "down", +() => 180, +() => "Layout Changing", +() => "Level 1", +() => "Level 2", +() => "Level 3", +() => "Ghost2", +() => "Music and Sounds", +() => "level1", +() => "level2", +() => "level3", +() => "Coffee", +() => "idleCoffee", +() => "walkCoffee", +() => "Thanks!", +p => { +const v0 = p._GetNode(0).GetVar(); +return () => (v0.GetValue() + ": It's been a long day. I should go home and go to sleep."); +}, +() => "Talking to Customers", +p => { +const v0 = p._GetNode(0).GetVar(); +return () => (("Hey " + v0.GetValue()) + ", I'll have a coffee please."); +}, +() => "Have you heard from Joe lately? I haven't seen him in a few weeks. Last time I saw him he was having some crazy nightmares.", +() => 2, +() => "Leaving the Room", +() => "StartScreen", +() => "hover", +() => -512113514266623, +() => 14, +() => -697957270212607, +() => 12, +() => "ShopScene", +() => "shop1", +() => "MainMenu", +() => "Coffee2", +() => "Damien: Appreciate it.", +p => { +const v0 = p._GetNode(0).GetVar(); +return () => (v0.GetValue() + ": I hope I don't have that nightmare again..."); +}, +() => "Talking to Customers2", +p => { +const v0 = p._GetNode(0).GetVar(); +return () => (("Damien: Oh... hi " + v0.GetValue()) + "... I'm exhausted, I'm going to need all your coffee."); +}, +() => "Damien: I haven't slept in days, I keep having this recurring dream I'm being chased by something.", +() => "Leaving the Room2", +() => "ShopScene2", +() => "shop2" + ]; +} + + diff --git a/DreamBeanFinal/scripts/dispatchWorker.js b/DreamBeanFinal/scripts/dispatchWorker.js new file mode 100644 index 0000000..8f92f7b --- /dev/null +++ b/DreamBeanFinal/scripts/dispatchWorker.js @@ -0,0 +1 @@ +"use strict";self.inputPort=null,self.jobQueue=[],self.jobWorkers=[],self.sentBlobs=[],self.sentBuffers=[],self.importedScripts=[],self.lastBroadcasts=new Map;class JobWorker{constructor(a,b){this._port=a,this._number=b,this._isReady=!1,this._isBusy=!1,this._port.onmessage=(a)=>this._OnMessage(a.data)}ImportScripts(a){this._port.postMessage({"type":"_import_scripts","scripts":a})}SendBlob(a,b){this._port.postMessage({"type":"_send_blob","blob":a,"id":b})}SendBuffer(a,b){this._port.postMessage({"type":"_send_buffer","buffer":a,"id":b})}SendJob(a){if(this._isBusy||!this._isReady)throw new Error("cannot take job");this._isBusy=!0,this._port.postMessage(a,a["transferables"])}_InitBroadcast(a){this._port.postMessage(a,a["transferables"])}SendReady(){this._port.postMessage({"type":"_ready"})}IsReady(){return this._isReady}_OnReady(){this._isReady=!0,this.MaybeStartNextJob()}IsBusy(){return this._isBusy}GetNumber(){return this._number}_OnMessage(a){const b=a["type"];return"ready"===b?void this._OnReady():"done"===b?void this._OnJobDone():void console.error("unknown message from worker '"+b+"'")}_OnJobDone(){this._isBusy=!1,this.MaybeStartNextJob()}MaybeStartNextJob(){if(!this._isBusy&&this._isReady){const a=this._FindAvailableJob();if(-1!==a){const b=self.jobQueue[a],c=b["isBroadcast"];c?(b["doneFlags"][this._number]=!0,b["doneFlags"].every((a)=>a)&&self.jobQueue.splice(a,1)):self.jobQueue.splice(a,1),this.SendJob(b)}}}_FindAvailableJob(){for(let a=0,b=self.jobQueue.length;a{const b=a.data,c=b["type"];"_init"===c?(self.inputPort=b["in-port"],self.inputPort.onmessage=OnInputPortMessage):"_addJobWorker"===c&&AddJobWorker(b["port"])});function OnInputPortMessage(a){const b=a.data,c=b["type"];if("_cancel"===c)return void CancelJob(b.jobId);if("_import_scripts"===c){const a=b["scripts"];for(const b of self.jobWorkers)b.ImportScripts(a);return void self.importedScripts.push(a)}if("_send_blob"===c){const a=b["blob"],c=b["id"];for(const b of self.jobWorkers)b.SendBlob(a,c);return void self.sentBlobs.push([a,c])}if("_send_buffer"===c){const a=b["buffer"],c=b["id"];for(const b of self.jobWorkers)b.SendBuffer(a,c);return void self.sentBuffers.push([a,c])}if("_no_more_workers"===c)return self.sentBlobs.length=0,self.sentBuffers.length=0,self.importedScripts.length=0,void self.lastBroadcasts.clear();if("_testMessageChannel"===c)return void self.jobWorkers[0].TestMessageChannel();self.jobQueue.push(b),b["isBroadcast"]&&(b["doneFlags"]=Array(self.jobWorkers.length).fill(!1),b["transferables"]=[],self.lastBroadcasts.set(b["type"],b));for(const b of self.jobWorkers)b.MaybeStartNextJob()} \ No newline at end of file diff --git a/DreamBeanFinal/scripts/jobWorker.js b/DreamBeanFinal/scripts/jobWorker.js new file mode 100644 index 0000000..936a7ef --- /dev/null +++ b/DreamBeanFinal/scripts/jobWorker.js @@ -0,0 +1 @@ +"use strict";self.dispatchPort=null,self.outputPort=null,self.workerNumber=-1,self.activeJobId=null,self.sentBlobs=new Map,self.sentBuffers=new Map,self.JobHandlers={};function FlipImageData(a,b,c){const d=4*b,e=new Uint8Array(d),f=a.buffer;for(let g=0,h=Math.floor(c/2);g{const b=a.data,c=b["type"];return"init"===c?(self.workerNumber=b["number"],self.dispatchPort=b["dispatch-port"],self.dispatchPort.onmessage=OnDispatchWorkerMessage,void(self.outputPort=b["output-port"])):"terminate"===c?void self.close():void console.error("unknown message '"+c+"'")});function SendReady(){self.dispatchPort.postMessage({"type":"ready"}),self.outputPort.postMessage({"type":"ready"})}function SendError(a,b){a||self.outputPort.postMessage({"type":"error","jobId":self.activeJobId,"error":b.toString()}),SendDone()}function SendResult(a,b){if(!a){const a=b.transferables||[];self.outputPort.postMessage({"type":"result","jobId":self.activeJobId,"result":b.result},a)}SendDone()}function SendDone(){self.activeJobId=null,self.dispatchPort.postMessage({"type":"done"})}function SendProgress(a){self.outputPort.postMessage({"type":"progress","jobId":self.activeJobId,"progress":a})}function OnDispatchWorkerMessage(a){const b=a.data,c=b["type"];if("_import_scripts"===c)return void importScripts(...b["scripts"]);if("_send_blob"===c)return void self.sentBlobs.set(b["id"],b["blob"]);if("_send_buffer"===c)return void self.sentBuffers.set(b["id"],b["buffer"]);if("_testMessageChannel"===c)return void self.outputPort.postMessage({"type":"_testMessageChannelOk"});if("_ready"===c)return void SendReady();const d=b["jobId"],f=b["isBroadcast"],e=b["params"];let g;if(self.activeJobId=d,!self.JobHandlers.hasOwnProperty(c))return void console.error(`no handler for message type '${c}'`);try{g=self.JobHandlers[c](e)}catch(a){return void SendError(f,"Exception in job handler: "+a)}g&&g.then?g.then((a)=>SendResult(f,a)).catch((a)=>SendError(f,"Rejection in job handler: "+a)):SendResult(f,g)} \ No newline at end of file diff --git a/DreamBeanFinal/scripts/main.js b/DreamBeanFinal/scripts/main.js new file mode 100644 index 0000000..481d43b --- /dev/null +++ b/DreamBeanFinal/scripts/main.js @@ -0,0 +1,11 @@ +"use strict";window.DOMHandler=class{constructor(a,b){this._iRuntime=a,this._componentId=b,this._hasTickCallback=!1,this._tickCallback=()=>this.Tick()}Attach(){}PostToRuntime(a,b,c,d){this._iRuntime.PostToRuntimeComponent(this._componentId,a,b,!!c,d)}PostToRuntimeAsync(a,b,c,d){return this._iRuntime.PostToRuntimeComponentAsync(this._componentId,a,b,!!c,d)}_PostToRuntimeMaybeSync(a,b,c){this._iRuntime.UsesWorker()?this.PostToRuntime(a,b,c):this._iRuntime._GetLocalRuntime()["_OnMessageFromDOM"]({"type":"event","component":this._componentId,"handler":a,"dispatchRuntimeEvent":c,"data":b,"responseId":null})}AddRuntimeMessageHandler(a,b){this._iRuntime.AddRuntimeComponentMessageHandler(this._componentId,a,b)}AddRuntimeMessageHandlers(a){for(const[b,c]of a)this.AddRuntimeMessageHandler(b,c)}GetRuntimeInterface(){return this._iRuntime}GetComponentID(){return this._componentId}_StartTicking(){this._hasTickCallback||(this._iRuntime._AddRAFCallback(this._tickCallback),this._hasTickCallback=!0)}_StopTicking(){this._hasTickCallback&&(this._iRuntime._RemoveRAFCallback(this._tickCallback),this._hasTickCallback=!1)}Tick(){}}; + +"use strict";window.DOMElementHandler=class extends DOMHandler{constructor(a,b){super(a,b),this._elementMap=new Map,this._autoAttach=!0,this.AddRuntimeMessageHandler("create",(a)=>this._OnCreate(a)),this.AddRuntimeMessageHandler("destroy",(a)=>this._OnDestroy(a)),this.AddRuntimeMessageHandler("set-visible",(a)=>this._OnSetVisible(a)),this.AddRuntimeMessageHandler("update-position",(a)=>this._OnUpdatePosition(a)),this.AddRuntimeMessageHandler("update-state",(a)=>this._OnUpdateState(a)),this.AddRuntimeMessageHandler("focus",(a)=>this._OnSetFocus(a)),this.AddRuntimeMessageHandler("set-css-style",(a)=>this._OnSetCssStyle(a))}SetAutoAttach(a){this._autoAttach=!!a}AddDOMElementMessageHandler(a,b){this.AddRuntimeMessageHandler(a,(a)=>{const c=a["elementId"],d=this._elementMap.get(c);return b(d,a)})}_OnCreate(a){const b=a["elementId"],c=this.CreateElement(b,a);this._elementMap.set(b,c),a["isVisible"]||(c.style.display="none"),this._autoAttach&&document.body.appendChild(c)}CreateElement(){throw new Error("required override")}DestroyElement(){}_OnDestroy(a){const b=a["elementId"],c=this._elementMap.get(b);this.DestroyElement(c),this._autoAttach&&c.parentElement.removeChild(c),this._elementMap.delete(b)}PostToRuntimeElement(a,b,c){c||(c={}),c["elementId"]=b,this.PostToRuntime(a,c)}_PostToRuntimeElementMaybeSync(a,b,c){c||(c={}),c["elementId"]=b,this._PostToRuntimeMaybeSync(a,c)}_OnSetVisible(a){if(this._autoAttach){const b=this._elementMap.get(a["elementId"]);b.style.display=a["isVisible"]?"":"none"}}_OnUpdatePosition(a){if(this._autoAttach){const b=this._elementMap.get(a["elementId"]);b.style.left=a["left"]+"px",b.style.top=a["top"]+"px",b.style.width=a["width"]+"px",b.style.height=a["height"]+"px";const c=a["fontSize"];null!==c&&(b.style.fontSize=c+"em")}}_OnUpdateState(a){const b=this._elementMap.get(a["elementId"]);this.UpdateState(b,a)}UpdateState(){throw new Error("required override")}_OnSetFocus(a){const b=this._elementMap.get(a["elementId"]);a["focus"]?b.focus():b.blur()}_OnSetCssStyle(a){const b=this._elementMap.get(a["elementId"]);b.style[a["prop"]]=a["val"]}GetElementById(a){return this._elementMap.get(a)}}; + +"use strict";{function a(a){return new Promise((b,c)=>{const d=document.createElement("script");d.onload=b,d.onerror=c,d.async=!1,d.src=a,document.head.appendChild(d)})}async function b(a){const b=await c(a),d=new TextDecoder("utf-8");return d.decode(b)}function c(a){return new Promise((b,c)=>{const d=new FileReader;d.onload=(a)=>b(a.target.result),d.onerror=(a)=>c(a),d.readAsArrayBuffer(a)})}const d=/(iphone|ipod|ipad)/i.test(navigator.userAgent);let e=new Audio;const f={"audio/webm; codecs=opus":!!e.canPlayType("audio/webm; codecs=opus"),"audio/ogg; codecs=opus":!!e.canPlayType("audio/ogg; codecs=opus"),"audio/webm; codecs=vorbis":!!e.canPlayType("audio/webm; codecs=vorbis"),"audio/ogg; codecs=vorbis":!!e.canPlayType("audio/ogg; codecs=vorbis"),"audio/mp4":!!e.canPlayType("audio/mp4"),"audio/mpeg":!!e.canPlayType("audio/mpeg")};e=null;const g=[];let h=0;window["RealFile"]=window["File"];const i=[],j=new Map,k=new Map;let l=0;window.RuntimeInterface=class e{constructor(a){this._useWorker=a.useWorker,this._messageChannelPort=null,this._baseUrl="",this._scriptFolder=a.scriptFolder,this._workerScriptBlobURLs={},this._worker=null,this._localRuntime=null,this._domHandlers=[],this._runtimeDomHandler=null,this._canvas=null,this._jobScheduler=null,this._rafId=-1,this._rafFunc=()=>this._OnRAFCallback(),this._rafCallbacks=[],this._exportType=a.exportType,"cordova"===this._exportType&&this._useWorker&&(console.warn("[C3 runtime] Worker mode is enabled and supported, but is disabled in Cordova due to crbug.com/939775. Reverting to DOM mode."),this._useWorker=!1),this._transferablesBroken=!1,this._localFileBlobs=null,("html5"===this._exportType||"playable-ad"===this._exportType)&&"file"===location.protocol.substr(0,4)&&alert("Exported games won't work until you upload them. (When running on the file: protocol, browsers block many features from working for security reasons.)"),this.AddRuntimeComponentMessageHandler("runtime","cordova-fetch-local-file",(a)=>this._OnCordovaFetchLocalFile(a)),this.AddRuntimeComponentMessageHandler("runtime","create-job-worker",(a)=>this._OnCreateJobWorker(a)),"cordova"===this._exportType?document.addEventListener("deviceready",()=>this._Init(a)):this._Init(a)}Release(){this._CancelAnimationFrame(),this._messageChannelPort&&(this._messageChannelPort.onmessage=null,this._messageChannelPort=null),this._worker&&(this._worker.terminate(),this._worker=null),this._localRuntime&&(this._localRuntime.Release(),this._localRuntime=null),this._canvas&&(this._canvas.parentElement.removeChild(this._canvas),this._canvas=null)}GetCanvas(){return this._canvas}GetBaseURL(){return this._baseUrl}UsesWorker(){return this._useWorker}GetExportType(){return this._exportType}IsWKWebView(){return"cordova"===this._exportType&&d}IsiPhoneX(){if(!this.IsWKWebView())return!1;const a=window["devicePixelRatio"],b=window["screen"]["width"]*a,c=window["screen"]["height"]*a;return 1125==b&&2436==c}async _Init(a){if("playable-ad"===this._exportType){this._localFileBlobs=self["c3_base64files"],await this._ConvertDataUrisToBlobs();for(let b=0,c=a.engineScripts.length;bthis["_OnMessageFromRuntime"](a.data),window["c3_addPortMessageHandler"]&&window["c3_addPortMessageHandler"]((a)=>this._OnMessageFromDebugger(a)),this._jobScheduler=new self.JobSchedulerDOM(this),await this._jobScheduler.Init(),this.MaybeForceBodySize(),"object"==typeof window["StatusBar"]&&window["StatusBar"]["hide"](),await this._TestTransferablesWork(),this._useWorker?await this._InitWorker(a,b.port2):await this._InitDOM(a,b.port2)}_GetWorkerURL(a){return this._workerScriptBlobURLs.hasOwnProperty(a)?this._workerScriptBlobURLs[a]:a.endsWith("/workerMain.js")&&this._workerScriptBlobURLs.hasOwnProperty("workerMain.js")?this._workerScriptBlobURLs["workerMain.js"]:"playable-ad"===this._exportType&&this._localFileBlobs.hasOwnProperty(a.toLowerCase())?URL.createObjectURL(this._localFileBlobs[a.toLowerCase()]):a}async CreateWorker(a,b,c){if(a.startsWith("blob:"))return new Worker(a,c);if(this.IsWKWebView()){const b=await this.CordovaFetchLocalFileAsArrayBuffer(this._scriptFolder+a),d=new Blob([b],{type:"application/javascript"});return new Worker(URL.createObjectURL(d),c)}const d=new URL(a,b),e=location.origin!==d.origin;if(e){const a=await fetch(d);if(!a.ok)throw new Error("failed to fetch worker script");const b=await a.blob();return new Worker(URL.createObjectURL(b),c)}return new Worker(d,c)}MaybeForceBodySize(){if(this.IsiPhoneX()){const a=window.innerWidth>window.innerHeight,b=document["documentElement"].style,c=document["body"].style;a?(c["height"]=b["height"]="375px",c["width"]=b["width"]="812px"):(c["width"]=b["width"]="375px",c["height"]=b["height"]="812px")}}_GetCommonRuntimeOptions(a){return{"baseUrl":this._baseUrl,"windowInnerWidth":window.innerWidth,"windowInnerHeight":window.innerHeight,"devicePixelRatio":window.devicePixelRatio,"isFullscreen":e.IsDocumentFullscreen(),"projectData":a.projectData,"previewImageBlobs":window["cr_previewImageBlobs"]||this._localFileBlobs,"previewProjectFileBlobs":window["cr_previewProjectFileBlobs"],"shaders":self["C3_Shaders"],"exportType":a.exportType,"isDebug":-1new a(this)),this._FindRuntimeDOMHandler(),self["c3_callFunction"]=(a,b)=>this._runtimeDomHandler._InvokeFunctionFromJS(a,b)}async _InitDOM(b,c){this._canvas=document.createElement("canvas"),this._canvas.style.display="none",document.body.appendChild(this._canvas),window["c3canvas"]=this._canvas,this._domHandlers=i.map((a)=>new a(this)),this._FindRuntimeDOMHandler();const d=b.engineScripts.map((a)=>new URL(a,this._baseUrl).toString());await Promise.all(d.map((b)=>a(b)));const e=Object.assign(this._GetCommonRuntimeOptions(b),{"isInWorker":!1,"messagePort":c,"canvas":this._canvas});this._localRuntime=self["C3_CreateRuntime"](e),await self["C3_InitRuntime"](this._localRuntime,e)}async _OnCreateJobWorker(){const a=await this._jobScheduler._CreateJobWorker();return{"outputPort":a,"transferables":[a]}}_GetLocalRuntime(){if(this._useWorker)throw new Error("not available in worker mode");return this._localRuntime}PostToRuntimeComponent(a,b,c,d,e){this._messageChannelPort.postMessage({"type":"event","component":a,"handler":b,"dispatchRuntimeEvent":d,"data":c,"responseId":null},this._transferablesBroken?void 0:e)}PostToRuntimeComponentAsync(a,b,c,d,e){const f=l++,g=new Promise((a,b)=>{k.set(f,{resolve:a,reject:b})});return this._messageChannelPort.postMessage({"type":"event","component":a,"handler":b,"dispatchRuntimeEvent":d,"data":c,"responseId":f},this._transferablesBroken?void 0:e),g}["_OnMessageFromRuntime"](a){const b=a["type"];if("event"===b)this._OnEventFromRuntime(a);else if("result"===b)this._OnResultFromRuntime(a);else if("runtime-ready"===b)this._OnRuntimeReady();else throw new Error(`unknown message '${b}'`)}_OnEventFromRuntime(a){const b=a["component"],c=a["handler"],d=a["data"],e=a["responseId"],f=j.get(b);if(!f)return void console.warn(`[DOM] No event handlers for component '${b}'`);const g=f.get(c);if(!g)return void console.warn(`[DOM] No handler '${c}' for component '${b}'`);let h=null;try{h=g(d)}catch(a){return console.error(`Exception in '${b}' handler '${c}':`,a),void(null!==e&&this._PostResultToRuntime(e,!1,a.toString()))}null!==e&&(h&&h.then?h.then((a)=>this._PostResultToRuntime(e,!0,a)).catch((a)=>{console.error(`Rejection from '${b}' handler '${c}':`,a),this._PostResultToRuntime(e,!1,a.toString())}):this._PostResultToRuntime(e,!0,h))}_PostResultToRuntime(a,b,c){let d;c&&c["transferables"]&&(d=c["transferables"]),this._messageChannelPort.postMessage({"type":"result","responseId":a,"isOk":b,"result":c},d)}_OnResultFromRuntime(a){const b=a["responseId"],c=a["isOk"],d=a["result"],e=k.get(b);c?e.resolve(d):e.reject(d),k.delete(b)}AddRuntimeComponentMessageHandler(a,b,c){let d=j.get(a);if(d||(d=new Map,j.set(a,d)),d.has(b))throw new Error(`[DOM] Component '${a}' already has handler '${b}'`);d.set(b,c)}static AddDOMHandlerClass(a){if(i.includes(a))throw new Error("DOM handler already added");i.push(a)}_FindRuntimeDOMHandler(){for(const a of this._domHandlers)if("runtime"===a.GetComponentID())return void(this._runtimeDomHandler=a);throw new Error("cannot find runtime DOM handler")}_OnMessageFromDebugger(a){this.PostToRuntimeComponent("debugger","message",a)}_OnRuntimeReady(){for(const a of this._domHandlers)a.Attach()}static IsDocumentFullscreen(){return!!(document["fullscreenElement"]||document["webkitFullscreenElement"]||document["mozFullScreenElement"])}async GetRemotePreviewStatusInfo(){return await this.PostToRuntimeComponentAsync("runtime","get-remote-preview-status-info")}_AddRAFCallback(a){this._rafCallbacks.push(a),this._RequestAnimationFrame()}_RemoveRAFCallback(a){const b=this._rafCallbacks.indexOf(a);if(-1===b)throw new Error("invalid callback");this._rafCallbacks.splice(b,1),this._rafCallbacks.length||this._CancelAnimationFrame()}_RequestAnimationFrame(){-1===this._rafId&&this._rafCallbacks.length&&(this._rafId=requestAnimationFrame(this._rafFunc))}_CancelAnimationFrame(){-1!==this._rafId&&(cancelAnimationFrame(this._rafId),this._rafId=-1)}_OnRAFCallback(){this._rafId=-1;for(const a of this._rafCallbacks)a();this._RequestAnimationFrame()}TryPlayMedia(a){this._runtimeDomHandler.TryPlayMedia(a)}RemovePendingPlay(a){this._runtimeDomHandler.RemovePendingPlay(a)}_PlayPendingMedia(){this._runtimeDomHandler._PlayPendingMedia()}SetSilent(a){this._runtimeDomHandler.SetSilent(a)}IsAudioFormatSupported(a){return!!f[a]}async _WasmDecodeWebMOpus(a){const b=await this.PostToRuntimeComponentAsync("runtime","opus-decode",{"arrayBuffer":a},!1,[a]);return new Float32Array(b)}IsAbsoluteURL(a){return /^(?:[a-z]+:)?\/\//.test(a)||"data:"===a.substr(0,5)||"blob:"===a.substr(0,5)}IsRelativeURL(a){return!this.IsAbsoluteURL(a)}async _OnCordovaFetchLocalFile(a){const b=a["filename"];switch(a["as"]){case"text":return await this.CordovaFetchLocalFileAsText(b);case"buffer":return await this.CordovaFetchLocalFileAsArrayBuffer(b);default:throw new Error("unsupported type");}}CordovaFetchLocalFile(a){const b=window["cordova"]["file"]["applicationDirectory"]+"www/"+a;return new Promise((a,c)=>{window["resolveLocalFileSystemURL"](b,(b)=>{b["file"](a,c)},c)})}async CordovaFetchLocalFileAsText(a){const c=await this.CordovaFetchLocalFile(a);return await b(c)}_CordovaMaybeStartNextArrayBufferRead(){if(g.length&&!(h>=8)){h++;const a=g.shift();this._CordovaDoFetchLocalFileAsAsArrayBuffer(a.filename,a.successCallback,a.errorCallback)}}CordovaFetchLocalFileAsArrayBuffer(a){return new Promise((b,c)=>{g.push({filename:a,successCallback:(a)=>{h--,this._CordovaMaybeStartNextArrayBufferRead(),b(a)},errorCallback:(a)=>{h--,this._CordovaMaybeStartNextArrayBufferRead(),c(a)}}),this._CordovaMaybeStartNextArrayBufferRead()})}async _CordovaDoFetchLocalFileAsAsArrayBuffer(a,b,d){try{const d=await this.CordovaFetchLocalFile(a),e=await c(d);b(e)}catch(a){d(a)}}async _ConvertDataUrisToBlobs(){const a=[];for(const[b,c]of Object.entries(this._localFileBlobs))a.push(this._ConvertDataUriToBlobs(b,c));await Promise.all(a)}async _ConvertDataUriToBlobs(a,b){if("object"==typeof b)this._localFileBlobs[a]=new Blob([b["str"]],{"type":b["type"]});else{const c=await fetch(b),d=await c.blob();this._localFileBlobs[a]=d}}_TestTransferablesWork(){let a=null;const b=new Promise((b)=>a=b),c=new ArrayBuffer(1),d=new MessageChannel;return d.port2.onmessage=(b)=>{b.data&&b.data["arrayBuffer"]||(this._transferablesBroken=!0,console.warn("MessageChannel transfers determined to be broken. Disabling transferables.")),a()},d.port1.postMessage({"arrayBuffer":c},[c]),b}}} + +"use strict";{function a(a){return a["sourceCapabilities"]&&a["sourceCapabilities"]["firesTouchEvents"]||a["originalEvent"]&&a["originalEvent"]["sourceCapabilities"]&&a["originalEvent"]["sourceCapabilities"]["firesTouchEvents"]}function b(a){return new Promise((b,c)=>{const d=new Image;d.onload=()=>b(d),d.onerror=(a)=>c(a),d.src=a})}async function c(a){const c=URL.createObjectURL(a);try{return await b(c)}finally{URL.revokeObjectURL(c)}}function d(){try{return window.parent&&window.parent.document.hasFocus()}catch(a){return!1}}self["C3_RasterSvgImage"]=async function(a,b,c){const d=document.createElement("canvas");d.width=b,d.height=c;const e=d.getContext("2d");return e.drawImage(a,0,0,b,c),d};let e=!1;document.addEventListener("pause",()=>e=!0),document.addEventListener("resume",()=>e=!1);const f=class extends DOMHandler{constructor(a){super(a,"runtime"),this._isFirstSizeUpdate=!0,this._targetOrientation="any",this._attachedDeviceOrientationEvent=!1,this._attachedDeviceMotionEvent=!1,this._debugHighlightElem=null,a.AddRuntimeComponentMessageHandler("canvas","update-size",(a)=>this._OnUpdateCanvasSize(a)),a.AddRuntimeComponentMessageHandler("runtime","invoke-download",(a)=>this._OnInvokeDownload(a)),a.AddRuntimeComponentMessageHandler("runtime","raster-svg-image",(a)=>this._OnRasterSvgImage(a)),a.AddRuntimeComponentMessageHandler("runtime","set-target-orientation",(a)=>this._OnSetTargetOrientation(a)),a.AddRuntimeComponentMessageHandler("runtime","register-sw",()=>this._OnRegisterSW()),a.AddRuntimeComponentMessageHandler("runtime","post-to-debugger",(a)=>this._OnPostToDebugger(a)),a.AddRuntimeComponentMessageHandler("runtime","before-start-ticking",()=>this._OnBeforeStartTicking()),a.AddRuntimeComponentMessageHandler("runtime","debug-highlight",(a)=>this._OnDebugHighlight(a)),a.AddRuntimeComponentMessageHandler("runtime","enable-device-orientation",()=>this._AttachDeviceOrientationEvent()),a.AddRuntimeComponentMessageHandler("runtime","enable-device-motion",()=>this._AttachDeviceMotionEvent());const b=a.GetCanvas();b.addEventListener("contextmenu",(a)=>a.preventDefault()),b.addEventListener("selectstart",(a)=>a.preventDefault()),b.addEventListener("gesturehold",(a)=>a.preventDefault()),b.addEventListener("touchstart",(a)=>a.preventDefault()),window.addEventListener("mousedown",(a)=>{1===a.button&&a.preventDefault()}),window.addEventListener("resize",()=>this._OnWindowResize()),this._mediaPendingPlay=new Set,this._mediaRemovedPendingPlay=new WeakSet,this._isSilent=!1}_OnBeforeStartTicking(){return document.addEventListener("visibilitychange",()=>this._OnVisibilityChange(document.hidden)),document.addEventListener("pause",()=>this._OnVisibilityChange(!0)),document.addEventListener("resume",()=>this._OnVisibilityChange(!1)),{"isSuspended":!!(document.hidden||e)}}Attach(){window.addEventListener("focus",()=>this._PostRuntimeEvent("window-focus")),window.addEventListener("blur",()=>this._PostRuntimeEvent("window-blur",{"parentHasFocus":d()})),window.addEventListener("fullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("webkitfullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("mozfullscreenchange",()=>this._OnFullscreenChange()),window.addEventListener("fullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("webkitfullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("mozfullscreenerror",(a)=>this._OnFullscreenError(a)),window.addEventListener("keydown",(a)=>this._OnKeyEvent("keydown",a)),window.addEventListener("keyup",(a)=>this._OnKeyEvent("keyup",a)),window.addEventListener("mousemove",(a)=>this._OnMouseEvent("mousemove",a)),window.addEventListener("mousedown",(a)=>this._OnMouseEvent("mousedown",a)),window.addEventListener("mouseup",(a)=>this._OnMouseEvent("mouseup",a)),window.addEventListener("dblclick",(a)=>this._OnMouseEvent("dblclick",a)),window.addEventListener("wheel",(a)=>this._OnMouseWheelEvent("wheel",a)),"undefined"==typeof PointerEvent?(window.addEventListener("touchstart",(a)=>this._OnTouchEvent("pointerdown",a)),window.addEventListener("touchmove",(a)=>this._OnTouchEvent("pointermove",a)),window.addEventListener("touchend",(a)=>this._OnTouchEvent("pointerup",a)),window.addEventListener("touchcancel",(a)=>this._OnTouchEvent("pointercancel",a))):(window.addEventListener("pointerdown",(a)=>this._OnPointerEvent("pointerdown",a)),window.addEventListener("pointermove",(a)=>this._OnPointerEvent("pointermove",a)),window.addEventListener("pointerup",(a)=>this._OnPointerEvent("pointerup",a)),window.addEventListener("pointercancel",(a)=>this._OnPointerEvent("pointercancel",a)));const a=()=>this._PlayPendingMedia();window.addEventListener("pointerup",a,!0),window.addEventListener("touchend",a,!0),window.addEventListener("click",a,!0),window.addEventListener("keydown",a,!0),window.addEventListener("gamepadconnected",a,!0)}_AttachDeviceOrientationEvent(){this._attachedDeviceOrientationEvent||(this._attachedDeviceOrientationEvent=!0,window.addEventListener("deviceorientation",(a)=>this._OnDeviceOrientation(a)))}_AttachDeviceMotionEvent(){this._attachedDeviceMotionEvent||(this._attachedDeviceMotionEvent=!0,window.addEventListener("devicemotion",(a)=>this._OnDeviceMotion(a)))}_PostRuntimeEvent(a,b){this.PostToRuntime(a,b||null,!0)}_OnWindowResize(){this.PostToRuntime("window-resize",{"innerWidth":window.innerWidth,"innerHeight":window.innerHeight,"devicePixelRatio":window.devicePixelRatio},!0)}_OnSetTargetOrientation(a){this._targetOrientation=a["targetOrientation"]}_TrySetTargetOrientation(){const a=this._targetOrientation;if(screen["orientation"]&&screen["orientation"]["lock"])screen["orientation"]["lock"](a).catch((a)=>console.warn("[Construct 3] Failed to lock orientation: ",a));else try{let b=!1;screen["lockOrientation"]?b=screen["lockOrientation"](a):screen["webkitLockOrientation"]?b=screen["webkitLockOrientation"](a):screen["mozLockOrientation"]?b=screen["mozLockOrientation"](a):screen["msLockOrientation"]&&(b=screen["msLockOrientation"](a)),b||console.warn("[Construct 3] Failed to lock orientation")}catch(a){console.warn("[Construct 3] Failed to lock orientation: ",a)}}_OnFullscreenChange(){const a=RuntimeInterface.IsDocumentFullscreen();a&&"any"!==this._targetOrientation&&this._TrySetTargetOrientation(),this.PostToRuntime("fullscreenchange",{"isFullscreen":a,"innerWidth":window.innerWidth,"innerHeight":window.innerHeight})}_OnFullscreenError(a){console.warn("[Construct 3] Fullscreen request failed: ",a),this.PostToRuntime("fullscreenerror",{"isFullscreen":RuntimeInterface.IsDocumentFullscreen(),"innerWidth":window.innerWidth,"innerHeight":window.innerHeight})}_OnVisibilityChange(a){a?this._iRuntime._CancelAnimationFrame():this._iRuntime._RequestAnimationFrame(),this.PostToRuntime("visibilitychange",{"hidden":a})}_OnKeyEvent(a,b){this._PostToRuntimeMaybeSync(a,{"code":b.code,"key":b.key,"which":b.which,"repeat":b.repeat,"altKey":b.altKey,"ctrlKey":b.ctrlKey,"metaKey":b.metaKey,"shiftKey":b.shiftKey,"timeStamp":b.timeStamp},!0)}_OnMouseEvent(b,c){a(c)||("mousedown"===b&&window!==window.top&&window.focus(),this._PostToRuntimeMaybeSync(b,{"button":c.button,"clientX":c.clientX,"clientY":c.clientY,"timeStamp":c.timeStamp},!0))}_OnMouseWheelEvent(a,b){this.PostToRuntime(a,{"clientX":b.clientX,"clientY":b.clientY,"deltaX":b.deltaX,"deltaY":b.deltaY,"deltaZ":b.deltaZ,"deltaMode":b.deltaMode,"timeStamp":b.timeStamp},!0)}_OnPointerEvent(a,b){"pointerdown"===a&&window!==window.top&&window.focus(),this._PostToRuntimeMaybeSync(a,{"pointerId":b.pointerId,"pointerType":b.pointerType,"clientX":b.clientX,"clientY":b.clientY,"width":b.width||0,"height":b.height||0,"pressure":b.pressure||0,"tangentialPressure":b["tangentialPressure"]||0,"tiltX":b.tiltX||0,"tiltY":b.tiltY||0,"twist":b["twist"]||0,"timeStamp":b.timeStamp},!0)}_OnTouchEvent(a,b){"pointerdown"===a&&window!==window.top&&window.focus();for(let c=0,d=b.changedTouches.length;c{this._mediaRemovedPendingPlay.has(b)||this._mediaPendingPlay.add(b)})}}TryPlayMedia(a){if("function"!=typeof a.play)throw new Error("missing play function");this._mediaRemovedPendingPlay.delete(a);let b;try{b=a.play()}catch(b){return void this._mediaPendingPlay.add(a)}b&&b.catch(()=>{this._mediaRemovedPendingPlay.has(a)||this._mediaPendingPlay.add(a)})}RemovePendingPlay(a){this._mediaPendingPlay.delete(a),this._mediaRemovedPendingPlay.add(a)}SetSilent(a){this._isSilent=!!a}_OnDebugHighlight(a){const b=a["show"];if(!b)return void(this._debugHighlightElem&&(this._debugHighlightElem.style.display="none"));this._debugHighlightElem||(this._debugHighlightElem=document.createElement("div"),this._debugHighlightElem.id="inspectOutline",document.body.appendChild(this._debugHighlightElem));const c=this._debugHighlightElem;c.style.display="",c.style.left=a["left"]-1+"px",c.style.top=a["top"]-1+"px",c.style.width=a["width"]+2+"px",c.style.height=a["height"]+2+"px",c.textContent=a["name"]}_OnRegisterSW(){window["C3_RegisterSW"]&&window["C3_RegisterSW"]()}_OnPostToDebugger(a){window["c3_postToMessagePort"]&&(a["from"]="runtime",window["c3_postToMessagePort"](a))}_InvokeFunctionFromJS(a,b){return this.PostToRuntimeAsync("js-invoke-function",{"name":a,"params":b})}};RuntimeInterface.AddDOMHandlerClass(f)} + +"use strict";{const a=document.currentScript.src;self.JobSchedulerDOM=class{constructor(b){this._runtimeInterface=b,this._baseUrl=a?a.substr(0,a.lastIndexOf("/")+1):b.GetBaseURL(),this._maxNumWorkers=Math.min(navigator.hardwareConcurrency||2,16),this._dispatchWorker=null,this._jobWorkers=[],this._inputPort=null,this._outputPort=null}async Init(){if(this._hasInitialised)throw new Error("already initialised");this._hasInitialised=!0;const a=this._runtimeInterface._GetWorkerURL("dispatchWorker.js");this._dispatchWorker=await this._runtimeInterface.CreateWorker(a,this._baseUrl,{name:"DispatchWorker"});const b=new MessageChannel;this._inputPort=b.port1,this._dispatchWorker.postMessage({"type":"_init","in-port":b.port2},[b.port2]),this._outputPort=await this._CreateJobWorker()}async _CreateJobWorker(){const a=this._jobWorkers.length,b=this._runtimeInterface._GetWorkerURL("jobWorker.js"),c=await this._runtimeInterface.CreateWorker(b,this._baseUrl,{name:"JobWorker"+a}),d=new MessageChannel,e=new MessageChannel;return this._dispatchWorker.postMessage({"type":"_addJobWorker","port":d.port1},[d.port1]),c.postMessage({"type":"init","number":a,"dispatch-port":d.port2,"output-port":e.port2},[d.port2,e.port2]),this._jobWorkers.push(c),e.port1}GetPortData(){return{"inputPort":this._inputPort,"outputPort":this._outputPort,"maxNumWorkers":this._maxNumWorkers}}GetPortTransferables(){return[this._inputPort,this._outputPort]}}} + +"use strict";if(window["C3_IsSupported"]){const a=false,b="undefined"!=typeof OffscreenCanvas;window["c3_runtimeInterface"]=new RuntimeInterface({useWorker:a&&b,workerMainUrl:"workerMain.js",engineScripts:["scripts/c3runtime.js"],scriptFolder:"scripts/",exportType:"html5"})}"use strict";{function a(a){a.stopPropagation()}function b(a){13!==a.which&&27!==a.which&&a.stopPropagation()}const c=class extends DOMElementHandler{constructor(a){super(a,"text-input"),this.AddDOMElementMessageHandler("scroll-to-bottom",(a)=>this._OnScrollToBottom(a))}CreateElement(c,d){let e;const f=d["type"];return"textarea"===f?(e=document.createElement("textarea"),e.style.resize="none"):(e=document.createElement("input"),e.type=f),e.style.position="absolute",e.autocomplete="off",e.addEventListener("touchstart",a),e.addEventListener("touchmove",a),e.addEventListener("touchend",a),e.addEventListener("mousedown",a),e.addEventListener("mouseup",a),e.addEventListener("keydown",b),e.addEventListener("keyup",b),e.addEventListener("click",(a)=>{a.stopPropagation(),this._PostToRuntimeElementMaybeSync("click",c)}),e.addEventListener("dblclick",(a)=>{a.stopPropagation(),this._PostToRuntimeElementMaybeSync("dblclick",c)}),e.addEventListener("input",()=>this.PostToRuntimeElement("change",c,{"text":e.value})),e.id=d["id"],this.UpdateState(e,d),e}UpdateState(a,b){a.value=b["text"],a.placeholder=b["placeholder"],a.title=b["title"],a.disabled=!b["isEnabled"],a.readOnly=b["isReadOnly"],a.spellcheck=b["spellCheck"]}_OnScrollToBottom(a){a.scrollTop=a.scrollHeight}};RuntimeInterface.AddDOMHandlerClass(c)}"use strict";{const a=class extends DOMHandler{constructor(a){super(a,"mouse"),this.AddRuntimeMessageHandler("cursor",(a)=>this._OnChangeCursorStyle(a))}_OnChangeCursorStyle(a){document.body.style.cursor=a}};RuntimeInterface.AddDOMHandlerClass(a)}"use strict";{function a(c,a){return!(c.length!==a.length)&&(!(c!==a)||c.toLowerCase()===a.toLowerCase())}const b=class extends DOMHandler{constructor(a){super(a,"audio"),this._audioContext=null,this._destinationNode=null,this._hasUnblocked=!1,this._unblockFunc=()=>this._UnblockAudioContext(),this._audioBuffers=[],this._audioInstances=[],this._lastAudioInstance=null,this._lastPlayedTag="",this._lastTickCount=-1,this._pendingTags=new Map,this._masterVolume=1,this._isSilent=!1,this._timeScaleMode=0,this._timeScale=1,this._gameTime=0,this._panningModel="HRTF",this._distanceModel="inverse",this._refDistance=600,this._maxDistance=1e4,this._rolloffFactor=1,this._playMusicAsSound=!1,this._hasAnySoftwareDecodedMusic=!1,this._supportsWebMOpus=this._iRuntime.IsAudioFormatSupported("audio/webm; codecs=opus"),this._effects=new Map,this._analysers=new Set,this._isPendingPostFxState=!1,this._microphoneTag="",this._microphoneSource=null,self["C3Audio_OnMicrophoneStream"]=(a,b)=>this._OnMicrophoneStream(a,b),this._destMediaStreamNode=null,self["C3Audio_GetOutputStream"]=()=>this._OnGetOutputStream(),this.AddRuntimeMessageHandlers([["create-audio-context",(a)=>this._CreateAudioContext(a)],["play",(a)=>this._Play(a)],["stop",(a)=>this._Stop(a)],["stop-all",()=>this._StopAll()],["set-paused",(a)=>this._SetPaused(a)],["set-volume",(a)=>this._SetVolume(a)],["fade-volume",(a)=>this._FadeVolume(a)],["set-master-volume",(a)=>this._SetMasterVolume(a)],["set-muted",(a)=>this._SetMuted(a)],["set-silent",(a)=>this._SetSilent(a)],["set-looping",(a)=>this._SetLooping(a)],["set-playback-rate",(a)=>this._SetPlaybackRate(a)],["seek",(a)=>this._Seek(a)],["preload",(a)=>this._Preload(a)],["unload",(a)=>this._Unload(a)],["unload-all",()=>this._UnloadAll()],["set-suspended",(a)=>this._SetSuspended(a)],["add-effect",(a)=>this._AddEffect(a)],["set-effect-param",(a)=>this._SetEffectParam(a)],["remove-effects",(a)=>this._RemoveEffects(a)],["tick",(a)=>this._OnTick(a)],["load-state",(a)=>this._OnLoadState(a)]])}async _CreateAudioContext(a){a["isWKWebView"]&&(this._playMusicAsSound=!0),this._timeScaleMode=a["timeScaleMode"],this._panningModel=["equalpower","HRTF","soundfield"][a["panningModel"]],this._distanceModel=["linear","inverse","exponential"][a["distanceModel"]],this._refDistance=a["refDistance"],this._maxDistance=a["maxDistance"],this._rolloffFactor=a["rolloffFactor"];const b={"latencyHint":a["latencyHint"]};if("undefined"!=typeof AudioContext)this._audioContext=new AudioContext(b);else if("undefined"!=typeof webkitAudioContext)this._audioContext=new webkitAudioContext(b);else throw new Error("Web Audio API not supported");this._destinationNode=this._audioContext["createGain"](),this._destinationNode["connect"](this._audioContext["destination"]);const c=a["listenerPos"];this._audioContext["listener"]["setPosition"](c[0],c[1],c[2]),this._audioContext["listener"]["setOrientation"](0,0,1,0,-1,0),window.addEventListener("pointerup",this._unblockFunc,!0),window.addEventListener("touchend",this._unblockFunc,!0),window.addEventListener("click",this._unblockFunc,!0),window.addEventListener("keydown",this._unblockFunc,!0),self["C3_GetAudioContextCurrentTime"]=()=>this.GetAudioCurrentTime();try{await Promise.all(a["preloadList"].map((a)=>this._GetAudioBuffer(a["originalUrl"],a["url"],a["type"],!1)))}catch(a){console.error("[Construct 3] Preloading sounds failed: ",a)}return{"sampleRate":this._audioContext["sampleRate"]}}_UnblockAudioContext(){if(!this._hasUnblocked){const a=this._audioContext;"suspended"===a["state"]&&a["resume"]&&a["resume"]();const b=a["createBuffer"](1,220,22050),c=a["createBufferSource"]();c["buffer"]=b,c["connect"](a["destination"]),c["start"](0),"running"===a["state"]&&(this._hasUnblocked=!0,window.removeEventListener("pointerup",this._unblockFunc,!0),window.removeEventListener("touchend",this._unblockFunc,!0),window.removeEventListener("click",this._unblockFunc,!0),window.removeEventListener("keydown",this._unblockFunc,!0),this._unblockFunc=null)}}GetAudioContext(){return this._audioContext}GetAudioCurrentTime(){return this._audioContext["currentTime"]}GetDestinationNode(){return this._destinationNode}GetDestinationForTag(a){const b=this._effects.get(a.toLowerCase());return b?b[0].GetInputNode():this.GetDestinationNode()}AddEffectForTag(a,b){a=a.toLowerCase();let c=this._effects.get(a);c||(c=[],this._effects.set(a,c)),b._SetIndex(c.length),b._SetTag(a),c.push(b),this._ReconnectEffects(a)}_ReconnectEffects(a){let b=this.GetDestinationNode();const c=this._effects.get(a);if(c&&c.length){b=c[0].GetInputNode();for(let a=0,b=c.length;a{const b=this._audioContext["createBuffer"](1,a.length,48e3),c=b["getChannelData"](0);return c.set(a),b}):new Promise((b,c)=>{this._audioContext["decodeAudioData"](a,b,c)})}TryPlayMedia(a){this._iRuntime.TryPlayMedia(a)}RemovePendingPlay(a){this._iRuntime.RemovePendingPlay(a)}ReleaseInstancesForBuffer(b){let c=0;for(let d=0,a=this._audioInstances.length;dc=a);b={pendingCount:0,promise:d,resolve:c},this._pendingTags.set(a,b)}b.pendingCount++}_RemovePendingTag(a){const b=this._pendingTags.get(a);if(!b)throw new Error("expected pending tag");b.pendingCount--,0===b.pendingCount&&(b.resolve(),this._pendingTags.delete(a))}TagReady(a){a||(a=this._lastPlayedTag);const b=this._pendingTags.get(a);return b?b.promise:Promise.resolve()}_MaybeStartTicking(){if(0b.IsActive()).map((b)=>b.GetState());this.PostToRuntime("state",{"tickCount":this._lastTickCount,"audioInstances":b,"analysers":[...this._analysers].map((b)=>b.GetData())}),0===b.length&&0===this._analysers.size&&this._StopTicking()}PostTrigger(a,b){this.PostToRuntime("trigger",{"type":a,"tag":b})}async _Play(a){const b=a["originalUrl"],c=a["url"],d=a["type"],e=a["isMusic"],f=a["tag"],g=a["isLooping"],h=a["vol"],i=a["pos"],j=a["panning"];let k=a["off"];if(0c||c>=h.length||(h[c].SetParam(d,e,f,g),this._PostUpdatedFxState())}_RemoveEffects(a){const b=a["tag"].toLowerCase(),c=this._effects.get(b);if(c&&c.length){for(const a of c)a.Release();this._effects.delete(b),this._ReconnectEffects(b)}}_AddAnalyser(a){this._analysers.add(a),this._MaybeStartTicking()}_RemoveAnalyser(a){this._analysers.delete(a)}_PostUpdatedFxState(){this._isPendingPostFxState||(this._isPendingPostFxState=!0,Promise.resolve().then(()=>this._DoPostUpdatedFxState()))}_DoPostUpdatedFxState(){const a={};for(const[b,c]of this._effects)a[b]=c.map((a)=>a.GetState());this.PostToRuntime("fxstate",{"fxstate":a}),this._isPendingPostFxState=!1}async _OnLoadState(a){const b=a["saveLoadMode"];if(3!==b)for(const a of this._audioInstances)a.IsMusic()&&1===b||!a.IsMusic()&&2===b||a.Stop();for(const b of this._effects.values())for(const a of b)a.Release();this._effects.clear(),this._timeScale=a["timeScale"],this._gameTime=a["gameTime"];const c=a["listenerPos"];this._audioContext["listener"]["setPosition"](c[0],c[1],c[2]),this._isSilent=a["isSilent"],this._iRuntime.SetSilent(this._isSilent),this._masterVolume=a["masterVolume"];const d=[];for(const b of Object.values(a["effects"]))d.push(Promise.all(b.map((a)=>this._AddEffect(a))));await Promise.all(d),await Promise.all(a["playing"].map((a)=>this._LoadAudioInstance(a,b))),this._MaybeStartTicking()}async _LoadAudioInstance(a,b){if(3===b)return;const c=a["bufferOriginalUrl"],d=a["bufferUrl"],e=a["bufferType"],f=a["isMusic"],g=a["tag"],h=a["isLooping"],i=a["volume"],j=a["playbackTime"];if(f&&1===b)return;if(!f&&2===b)return;let k=null;try{k=await this._GetAudioInstance(c,d,e,g,f)}catch(a){return void console.error("[Construct 3] Audio: error loading audio state: ",a)}k.LoadPanState(a["pan"]),k.Play(h,i,j,0),a["isPlaying"]||k.Pause(),k._LoadAdditionalState(a)}_OnMicrophoneStream(a,b){this._microphoneSource&&this._microphoneSource["disconnect"](),this._microphoneTag=b.toLowerCase(),this._microphoneSource=this._audioContext["createMediaStreamSource"](a),this._microphoneSource["connect"](this.GetDestinationForTag(this._microphoneTag))}_OnGetOutputStream(){return this._destMediaStreamNode||(this._destMediaStreamNode=this._audioContext["createMediaStreamDestination"](),this._destinationNode["connect"](this._destMediaStreamNode)),this._destMediaStreamNode["stream"]}};RuntimeInterface.AddDOMHandlerClass(b)}"use strict";self.C3AudioBuffer=class{constructor(a,b,c,d,e){this._audioDomHandler=a,this._originalUrl=b,this._url=c,this._type=d,this._isMusic=e,this._api="",this._loadState="not-loaded",this._loadPromise=null}Release(){this._loadState="not-loaded",this._audioDomHandler=null,this._loadPromise=null}static Create(a,b,c,d,e){const f="audio/webm; codecs=opus"===d&&!a.SupportsWebMOpus();return e&&f&&a._SetHasAnySoftwareDecodedMusic(),!e||a.IsPlayMusicAsSound()||f?new C3WebAudioBuffer(a,b,c,d,e,f):new C3Html5AudioBuffer(a,b,c,d,e)}CreateInstance(a){return"html5"===this._api?new C3Html5AudioInstance(this._audioDomHandler,this,a):new C3WebAudioInstance(this._audioDomHandler,this,a)}_Load(){}Load(){return this._loadPromise||(this._loadPromise=this._Load()),this._loadPromise}IsLoaded(){}IsLoadedAndDecoded(){}HasFailedToLoad(){return"failed"===this._loadState}GetAudioContext(){return this._audioDomHandler.GetAudioContext()}GetApi(){return this._api}GetOriginalUrl(){return this._originalUrl}GetUrl(){return this._url}GetContentType(){return this._type}IsMusic(){return this._isMusic}GetDuration(){}};"use strict";self.C3Html5AudioBuffer=class extends C3AudioBuffer{constructor(a,b,c,d,e){super(a,b,c,d,e),this._api="html5",this._audioElem=new Audio,this._audioElem.crossOrigin="anonymous",this._audioElem.autoplay=!1,this._audioElem.preload="auto",this._loadResolve=null,this._loadReject=null,this._reachedCanPlayThrough=!1,this._audioElem.addEventListener("canplaythrough",()=>this._reachedCanPlayThrough=!0),this._outNode=this.GetAudioContext()["createGain"](),this._mediaSourceNode=null,this._audioElem.addEventListener("canplay",()=>{this._loadResolve&&(this._loadState="loaded",this._loadResolve(),this._loadResolve=null,this._loadReject=null);this._mediaSourceNode||!this._audioElem||(this._mediaSourceNode=this.GetAudioContext()["createMediaElementSource"](this._audioElem),this._mediaSourceNode["connect"](this._outNode))}),this.onended=null,this._audioElem.addEventListener("ended",()=>{this.onended&&this.onended()}),this._audioElem.addEventListener("error",(a)=>this._OnError(a))}Release(){this._audioDomHandler.ReleaseInstancesForBuffer(this),this._outNode["disconnect"](),this._outNode=null,this._mediaSourceNode["disconnect"](),this._mediaSourceNode=null,this._audioElem&&!this._audioElem.paused&&this._audioElem.pause(),this.onended=null,this._audioElem=null,super.Release()}_Load(){return this._loadState="loading",new Promise((a,b)=>{this._loadResolve=a,this._loadReject=b,this._audioElem.src=this._url})}_OnError(a){console.error(`[Construct 3] Audio '${this._url}' error: `,a),this._loadReject&&(this._loadState="failed",this._loadReject(a),this._loadResolve=null,this._loadReject=null)}IsLoaded(){const a=4<=this._audioElem["readyState"];return a&&(this._reachedCanPlayThrough=!0),a||this._reachedCanPlayThrough}IsLoadedAndDecoded(){return this.IsLoaded()}GetAudioElement(){return this._audioElem}GetOutputNode(){return this._outNode}GetDuration(){return this._audioElem["duration"]}};"use strict";self.C3WebAudioBuffer=class extends C3AudioBuffer{constructor(a,b,c,d,e,f){super(a,b,c,d,e),this._api="webaudio",this._audioData=null,this._audioBuffer=null,this._needsSoftwareDecode=!!f}Release(){this._audioDomHandler.ReleaseInstancesForBuffer(this),this._audioData=null,this._audioBuffer=null,super.Release()}async _Fetch(){if(this._audioData)return this._audioData;const a=this._audioDomHandler.GetRuntimeInterface();if("cordova"===a.GetExportType()&&a.IsRelativeURL(this._url))this._audioData=await a.CordovaFetchLocalFileAsArrayBuffer(this._url);else{const a=await fetch(this._url);if(!a.ok)throw new Error(`error fetching audio data: ${a.status} ${a.statusText}`);this._audioData=await a.arrayBuffer()}}async _Decode(){return this._audioBuffer?this._audioBuffer:void(this._audioBuffer=await this._audioDomHandler.DecodeAudioData(this._audioData,this._needsSoftwareDecode),this._audioData=null)}async _Load(){try{this._loadState="loading",await this._Fetch(),await this._Decode(),this._loadState="loaded"}catch(a){this._loadState="failed",console.error(`[Construct 3] Failed to load audio '${this._url}': `,a)}}IsLoaded(){return!!(this._audioData||this._audioBuffer)}IsLoadedAndDecoded(){return!!this._audioBuffer}GetAudioBuffer(){return this._audioBuffer}GetDuration(){return this._audioBuffer?this._audioBuffer["duration"]:0}};"use strict";{function a(a){return a*b}const b=180/Math.PI;self.C3AudioInstance=class{constructor(a,b,c){this._audioDomHandler=a,this._buffer=b,this._tag=c,this._gainNode=this.GetAudioContext()["createGain"](),this._gainNode["connect"](this.GetDestinationNode()),this._pannerNode=null,this._isPannerEnabled=!1,this._isStopped=!0,this._isPaused=!1,this._resumeMe=!1,this._isLooping=!1,this._volume=1,this._isMuted=!1,this._playbackRate=1;const d=this._audioDomHandler.GetTimeScaleMode();this._isTimescaled=1===d&&!this.IsMusic()||2===d,this._instUid=-1,this._fadeEndTime=-1,this._stopOnFadeEnd=!1}Release(){this._audioDomHandler=null,this._buffer=null,this._pannerNode&&(this._pannerNode["disconnect"](),this._pannerNode=null),this._gainNode["disconnect"](),this._gainNode=null}GetAudioContext(){return this._audioDomHandler.GetAudioContext()}GetDestinationNode(){return this._audioDomHandler.GetDestinationForTag(this._tag)}GetMasterVolume(){return this._audioDomHandler.GetMasterVolume()}GetCurrentTime(){return this._isTimescaled?this._audioDomHandler.GetGameTime():performance.now()/1e3}GetOriginalUrl(){return this._buffer.GetOriginalUrl()}GetUrl(){return this._buffer.GetUrl()}GetContentType(){return this._buffer.GetContentType()}GetBuffer(){return this._buffer}IsMusic(){return this._buffer.IsMusic()}SetTag(a){this._tag=a}GetTag(){return this._tag}HasEnded(){}CanBeRecycled(){}IsPlaying(){return!this._isStopped&&!this._isPaused&&!this.HasEnded()}IsActive(){return!this._isStopped&&!this.HasEnded()}GetPlaybackTime(){}GetDuration(a){let b=this._buffer.GetDuration();return a&&(b/=this._playbackRate||.001),b}Play(){}Stop(){}Pause(){}IsPaused(){return this._isPaused}Resume(){}SetVolume(a){this._volume=a,this._gainNode["gain"]["cancelScheduledValues"](0),this._fadeEndTime=-1,this._gainNode["gain"]["value"]=this.GetOverallVolume()}FadeVolume(a,b,c){if(!this.IsMuted()){const d=this._gainNode["gain"];d["cancelScheduledValues"](0);const e=this._audioDomHandler.GetAudioCurrentTime(),f=e+b;d["setValueAtTime"](this._volume,e),d["linearRampToValueAtTime"](a,f),this._volume=a,this._fadeEndTime=f,this._stopOnFadeEnd=c}}_UpdateVolume(){this.SetVolume(this._volume)}Tick(a){-1!==this._fadeEndTime&&a>=this._fadeEndTime&&(this._fadeEndTime=-1,this._stopOnFadeEnd&&this.Stop(),this._audioDomHandler.PostTrigger("fade-ended",this._tag))}GetOverallVolume(){const a=this._volume*this.GetMasterVolume();return isFinite(a)?a:0}SetMuted(a){a=!!a;this._isMuted===a||(this._isMuted=a,this._UpdateMuted())}IsMuted(){return this._isMuted}IsSilent(){return this._audioDomHandler.IsSilent()}_UpdateMuted(){}SetLooping(){}IsLooping(){return this._isLooping}SetPlaybackRate(a){this._playbackRate===a||(this._playbackRate=a,this._UpdatePlaybackRate())}_UpdatePlaybackRate(){}GetPlaybackRate(){return this._playbackRate}Seek(){}SetSuspended(){}SetPannerEnabled(a){a=!!a;this._isPannerEnabled===a||(this._isPannerEnabled=a,this._isPannerEnabled?(!this._pannerNode&&(this._pannerNode=this.GetAudioContext()["createPanner"](),this._pannerNode["panningModel"]=this._audioDomHandler.GetPanningModel(),this._pannerNode["distanceModel"]=this._audioDomHandler.GetDistanceModel(),this._pannerNode["refDistance"]=this._audioDomHandler.GetReferenceDistance(),this._pannerNode["maxDistance"]=this._audioDomHandler.GetMaxDistance(),this._pannerNode["rolloffFactor"]=this._audioDomHandler.GetRolloffFactor()),this._gainNode["disconnect"](),this._gainNode["connect"](this._pannerNode),this._pannerNode["connect"](this.GetDestinationNode())):(this._pannerNode["disconnect"](),this._gainNode["disconnect"](),this._gainNode["connect"](this.GetDestinationNode())))}SetPan(b,c,d,e,f,g){this._isPannerEnabled&&(this.SetPanXYA(b,c,d),this._pannerNode["coneInnerAngle"]=a(e),this._pannerNode["coneOuterAngle"]=a(f),this._pannerNode["coneOuterGain"]=g)}SetPanXYA(a,b,c){this._isPannerEnabled&&(this._pannerNode["setPosition"](a,b,0),this._pannerNode["setOrientation"](Math.cos(c),Math.sin(c),0))}SetUID(a){this._instUid=a}GetUID(){return this._instUid}GetResumePosition(){}Reconnect(a){const b=this._pannerNode||this._gainNode;b["disconnect"](),b["connect"](a)}GetState(){return{"tag":this._tag,"duration":this.GetDuration(),"volume":this._volume,"isPlaying":this.IsPlaying(),"playbackTime":this.GetPlaybackTime(),"playbackRate":this.GetPlaybackRate(),"uid":this._instUid,"bufferOriginalUrl":this.GetOriginalUrl(),"bufferUrl":"","bufferType":this.GetContentType(),"isMusic":this.IsMusic(),"isLooping":this.IsLooping(),"isMuted":this.IsMuted(),"resumePosition":this.GetResumePosition(),"pan":this.GetPanState()}}_LoadAdditionalState(a){this.SetPlaybackRate(a["playbackRate"]),this.SetMuted(a["isMuted"])}GetPanState(){if(!this._pannerNode)return null;const a=this._pannerNode;return{"pos":[a["positionX"]["value"],a["positionY"]["value"],a["positionZ"]["value"]],"orient":[a["orientationX"]["value"],a["orientationY"]["value"],a["orientationZ"]["value"]],"cia":a["coneInnerAngle"],"coa":a["coneOuterAngle"],"cog":a["coneOuterGain"],"uid":this._instUid}}LoadPanState(a){if(!a)return void this.SetPannerEnabled(!1);this.SetPannerEnabled(!0);const b=this._pannerNode;b["setPosition"](...b["pos"]),b["setOrientation"](...b["orient"]),b["coneInnerAngle"]=b["cia"],b["coneOuterAngle"]=b["coa"],b["coneOuterGain"]=b["cog"],this._instUid=b["uid"]}}}"use strict";self.C3Html5AudioInstance=class extends C3AudioInstance{constructor(a,b,c){super(a,b,c),this._buffer.GetOutputNode()["connect"](this._gainNode),this._buffer.onended=()=>this._OnEnded()}Release(){this.Stop(),this._buffer.GetOutputNode()["disconnect"](),super.Release()}GetAudioElement(){return this._buffer.GetAudioElement()}_OnEnded(){this._isStopped=!0,this._instUid=-1,this._audioDomHandler.PostTrigger("ended",this._tag)}HasEnded(){return this.GetAudioElement()["ended"]}CanBeRecycled(){return!!this._isStopped||this.HasEnded()}GetPlaybackTime(a){let b=this.GetAudioElement()["currentTime"];return a&&(b*=this._playbackRate),this._isLooping||(b=Math.min(b,this.GetDuration())),b}Play(a,b,c){const d=this.GetAudioElement();if(1!==d.playbackRate&&(d.playbackRate=1),d.loop!==a&&(d.loop=a),this.SetVolume(b),d.muted&&(d.muted=!1),d.currentTime!==c)try{d.currentTime=c}catch(a){console.warn(`[Construct 3] Exception seeking audio '${this._buffer.GetUrl()}' to position '${c}': `,a)}this._audioDomHandler.TryPlayMedia(d),this._isStopped=!1,this._isPaused=!1,this._isLooping=a,this._playbackRate=1}Stop(){const a=this.GetAudioElement();a.paused||a.pause(),this._audioDomHandler.RemovePendingPlay(a),this._isStopped=!0,this._isPaused=!1,this._instUid=-1}Pause(){if(!(this._isPaused||this._isStopped||this.HasEnded())){const a=this.GetAudioElement();a.paused||a.pause(),this._audioDomHandler.RemovePendingPlay(a),this._isPaused=!0}}Resume(){!this._isPaused||this._isStopped||this.HasEnded()||(this._audioDomHandler.TryPlayMedia(this.GetAudioElement()),this._isPaused=!1)}_UpdateMuted(){this.GetAudioElement().muted=this._isMuted||this.IsSilent()}SetLooping(a){a=!!a;this._isLooping===a||(this._isLooping=a,this.GetAudioElement().loop=a)}_UpdatePlaybackRate(){let a=this._playbackRate;this._isTimescaled&&(a*=this._audioDomHandler.GetTimeScale());try{this.GetAudioElement()["playbackRate"]=a}catch(b){console.warn(`[Construct 3] Unable to set playback rate '${a}':`,b)}}Seek(a){if(!(this._isStopped||this.HasEnded()))try{this.GetAudioElement()["currentTime"]=a}catch(b){console.warn(`[Construct 3] Error seeking audio to '${a}': `,b)}}GetResumePosition(){return this.GetPlaybackTime()}SetSuspended(a){a?this.IsPlaying()?(this.GetAudioElement()["pause"](),this._resumeMe=!0):this._resumeMe=!1:this._resumeMe&&(this._audioDomHandler.TryPlayMedia(this.GetAudioElement()),this._resumeMe=!1)}};"use strict";self.C3WebAudioInstance=class extends C3AudioInstance{constructor(a,b,c){super(a,b,c),this._bufferSource=null,this._onended_handler=(a)=>this._OnEnded(a),this._hasPlaybackEnded=!0,this._activeSource=null,this._startTime=0,this._resumePosition=0,this._muteVol=1}Release(){this.Stop(),this._ReleaseBufferSource(),this._onended_handler=null,super.Release()}_ReleaseBufferSource(){this._bufferSource&&this._bufferSource["disconnect"](),this._bufferSource=null,this._activeSource=null}_OnEnded(a){this._isPaused||this._resumeMe||a.target!==this._activeSource||(this._hasPlaybackEnded=!0,this._isStopped=!0,this._instUid=-1,this._ReleaseBufferSource(),this._audioDomHandler.PostTrigger("ended",this._tag))}HasEnded(){return!(!this._isStopped&&this._bufferSource&&this._bufferSource["loop"])&&!this._isPaused&&this._hasPlaybackEnded}CanBeRecycled(){return!(this._bufferSource&&!this._isStopped)||this.HasEnded()}GetPlaybackTime(a){let b=0;return b=this._isPaused?this._resumePosition:this.GetCurrentTime()-this._startTime,a&&(b*=this._playbackRate),this._isLooping||(b=Math.min(b,this.GetDuration())),b}Play(a,b,c,d){this._muteVol=1,this.SetVolume(b),this._ReleaseBufferSource(),this._bufferSource=this.GetAudioContext()["createBufferSource"](),this._bufferSource["buffer"]=this._buffer.GetAudioBuffer(),this._bufferSource["connect"](this._gainNode),this._activeSource=this._bufferSource,this._bufferSource["onended"]=this._onended_handler,this._bufferSource["loop"]=a,this._bufferSource["start"](d,c),this._hasPlaybackEnded=!1,this._isStopped=!1,this._isPaused=!1,this._isLooping=a,this._playbackRate=1,this._startTime=this.GetCurrentTime()-c}Stop(){this._bufferSource&&this._bufferSource["stop"](0),this._isStopped=!0,this._isPaused=!1,this._instUid=-1}Pause(){this._isPaused||this._isStopped||this.HasEnded()||(this._resumePosition=this.GetPlaybackTime(!0),this._isLooping&&(this._resumePosition%=this.GetDuration()),this._isPaused=!0,this._bufferSource["stop"](0))}Resume(){!this._isPaused||this._isStopped||this.HasEnded()||(this._ReleaseBufferSource(),this._bufferSource=this.GetAudioContext()["createBufferSource"](),this._bufferSource["buffer"]=this._buffer.GetAudioBuffer(),this._bufferSource["connect"](this._gainNode),this._activeSource=this._bufferSource,this._bufferSource["onended"]=this._onended_handler,this._bufferSource["loop"]=this._isLooping,this._UpdateVolume(),this._UpdatePlaybackRate(),this._startTime=this.GetCurrentTime()-this._resumePosition/(this._playbackRate||.001),this._bufferSource["start"](0,this._resumePosition),this._isPaused=!1)}GetOverallVolume(){return super.GetOverallVolume()*this._muteVol}_UpdateMuted(){this._muteVol=this._isMuted||this.IsSilent()?0:1,this._UpdateVolume()}SetLooping(a){a=!!a;this._isLooping===a||(this._isLooping=a,this._bufferSource&&(this._bufferSource["loop"]=a))}_UpdatePlaybackRate(){let a=this._playbackRate;this._isTimescaled&&(a*=this._audioDomHandler.GetTimeScale()),this._bufferSource&&(this._bufferSource["playbackRate"]["value"]=a)}Seek(a){this._isStopped||this.HasEnded()||(this._isPaused?this._resumePosition=a:(this.Pause(),this._resumePosition=a,this.Resume()))}GetResumePosition(){return this._resumePosition}SetSuspended(a){a?this.IsPlaying()?(this._resumeMe=!0,this._resumePosition=this.GetPlaybackTime(!0),this._isLooping&&(this._resumePosition%=this.GetDuration()),this._bufferSource["stop"](0)):this._resumeMe=!1:this._resumeMe&&(this._ReleaseBufferSource(),this._bufferSource=this.GetAudioContext()["createBufferSource"](),this._bufferSource["buffer"]=this._buffer.GetAudioBuffer(),this._bufferSource["connect"](this._gainNode),this._activeSource=this._bufferSource,this._bufferSource["onended"]=this._onended_handler,this._bufferSource["loop"]=this._isLooping,this._UpdateVolume(),this._UpdatePlaybackRate(),this._startTime=this.GetCurrentTime()-this._resumePosition/(this._playbackRate||.001),this._bufferSource["start"](0,this._resumePosition),this._resumeMe=!1)}_LoadAdditionalState(a){super._LoadAdditionalState(a),this._resumePosition=a["resumePosition"]}};"use strict";{function a(a){return Math.pow(10,a/20)}function b(b){return Math.max(Math.min(a(b),1),0)}function c(a){return 20*(Math.log(a)/2.302585092994046)}function d(a){return c(Math.max(Math.min(a,1),0))}function e(a,b){return 1-Math.exp(-b*a)}class f{constructor(a){this._audioDomHandler=a,this._audioContext=a.GetAudioContext(),this._index=-1,this._tag="",this._type="",this._params=null}Release(){this._audioContext=null}_SetIndex(a){this._index=a}GetIndex(){return this._index}_SetTag(a){this._tag=a}GetTag(){return this._tag}CreateGain(){return this._audioContext["createGain"]()}GetInputNode(){}ConnectTo(){}SetAudioParam(a,b,c,d){if(a["cancelScheduledValues"](0),0===d)return void(a["value"]=b);const e=this._audioContext["currentTime"];d+=e,0===c?a["setValueAtTime"](b,d):1===c?(a["setValueAtTime"](a["value"],e),a["linearRampToValueAtTime"](b,d)):2===c?(a["setValueAtTime"](a["value"],e),a["exponentialRampToValueAtTime"](b,d)):void 0}GetState(){return{"type":this._type,"tag":this._tag,"params":this._params}}}self.C3AudioFilterFX=class extends f{constructor(a,b,c,d,e,f,g){super(a),this._type="filter",this._params=[b,c,d,e,f,g],this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=g,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-g,this._filterNode=this._audioContext["createBiquadFilter"](),this._filterNode["type"]=b,this._filterNode["frequency"]["value"]=c,this._filterNode["detune"]["value"]=d,this._filterNode["Q"]["value"]=e,this._filterNode["gain"]["vlaue"]=f,this._inputNode["connect"](this._filterNode),this._inputNode["connect"](this._dryNode),this._filterNode["connect"](this._wetNode)}Release(){this._inputNode["disconnect"](),this._filterNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[5]=b,this.SetAudioParam(this._wetNode["gain"],b,c,d),this.SetAudioParam(this._dryNode["gain"],1-b,c,d)):1===a?(this._params[1]=b,this.SetAudioParam(this._filterNode["frequency"],b,c,d)):2===a?(this._params[2]=b,this.SetAudioParam(this._filterNode["detune"],b,c,d)):3===a?(this._params[3]=b,this.SetAudioParam(this._filterNode["Q"],b,c,d)):4===a?(this._params[4]=b,this.SetAudioParam(this._filterNode["gain"],b,c,d)):void 0}},self.C3AudioDelayFX=class extends f{constructor(a,b,c,d){super(a),this._type="delay",this._params=[b,c,d],this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=d,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-d,this._mainNode=this.CreateGain(),this._delayNode=this._audioContext["createDelay"](b),this._delayNode["delayTime"]["value"]=b,this._delayGainNode=this.CreateGain(),this._delayGainNode["gain"]["value"]=c,this._inputNode["connect"](this._mainNode),this._inputNode["connect"](this._dryNode),this._mainNode["connect"](this._wetNode),this._mainNode["connect"](this._delayNode),this._delayNode["connect"](this._delayGainNode),this._delayGainNode["connect"](this._mainNode)}Release(){this._inputNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),this._mainNode["disconnect"](),this._delayNode["disconnect"](),this._delayGainNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,c,d,e){0===a?(c=Math.max(Math.min(c/100,1),0),this._params[2]=c,this.SetAudioParam(this._wetNode["gain"],c,d,e),this.SetAudioParam(this._dryNode["gain"],1-c,d,e)):4===a?(this._params[1]=b(c),this.SetAudioParam(this._delayGainNode["gain"],b(c),d,e)):5===a?(this._params[0]=c,this.SetAudioParam(this._delayNode["delayTime"],c,d,e)):void 0}},self.C3AudioConvolveFX=class extends f{constructor(a,b,c,d){super(a),this._type="convolution",this._params=[c,d],this._bufferOriginalUrl="",this._bufferUrl="",this._bufferType="",this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=d,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-d,this._convolveNode=this._audioContext["createConvolver"](),this._convolveNode["normalize"]=c,this._convolveNode["buffer"]=b,this._inputNode["connect"](this._convolveNode),this._inputNode["connect"](this._dryNode),this._convolveNode["connect"](this._wetNode)}Release(){this._inputNode["disconnect"](),this._convolveNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[1]=b,this.SetAudioParam(this._wetNode["gain"],b,c,d),this.SetAudioParam(this._dryNode["gain"],1-b,c,d)):void 0}_SetBufferInfo(a,b,c){this._bufferOriginalUrl=a,this._bufferUrl=b,this._bufferType=c}GetState(){const a=super.GetState();return a["bufferOriginalUrl"]=this._bufferOriginalUrl,a["bufferUrl"]="",a["bufferType"]=this._bufferType,a}},self.C3AudioFlangerFX=class extends f{constructor(a,b,c,d,e,f){super(a),this._type="flanger",this._params=[b,c,d,e,f],this._inputNode=this.CreateGain(),this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-f/2,this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=f/2,this._feedbackNode=this.CreateGain(),this._feedbackNode["gain"]["value"]=e,this._delayNode=this._audioContext["createDelay"](b+c),this._delayNode["delayTime"]["value"]=b,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=d,this._oscGainNode=this.CreateGain(),this._oscGainNode["gain"]["value"]=c,this._inputNode["connect"](this._delayNode),this._inputNode["connect"](this._dryNode),this._delayNode["connect"](this._wetNode),this._delayNode["connect"](this._feedbackNode),this._feedbackNode["connect"](this._delayNode),this._oscNode["connect"](this._oscGainNode),this._oscGainNode["connect"](this._delayNode["delayTime"]),this._oscNode["start"](0)}Release(){this._oscNode["stop"](0),this._inputNode["disconnect"](),this._delayNode["disconnect"](),this._oscNode["disconnect"](),this._oscGainNode["disconnect"](),this._dryNode["disconnect"](),this._wetNode["disconnect"](),this._feedbackNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[4]=b,this.SetAudioParam(this._wetNode["gain"],b/2,c,d),this.SetAudioParam(this._dryNode["gain"],1-b/2,c,d)):6===a?(this._params[1]=b/1e3,this.SetAudioParam(this._oscGainNode["gain"],b/1e3,c,d)):7===a?(this._params[2]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):8===a?(this._params[3]=b/100,this.SetAudioParam(this._feedbackNode["gain"],b/100,c,d)):void 0}},self.C3AudioPhaserFX=class extends f{constructor(a,b,c,d,e,f,g){super(a),this._type="phaser",this._params=[b,c,d,e,f,g],this._inputNode=this.CreateGain(),this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-g/2,this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=g/2,this._filterNode=this._audioContext["createBiquadFilter"](),this._filterNode["type"]="allpass",this._filterNode["frequency"]["value"]=b,this._filterNode["detune"]["value"]=c,this._filterNode["Q"]["value"]=d,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=f,this._oscGainNode=this.CreateGain(),this._oscGainNode["gain"]["value"]=e,this._inputNode["connect"](this._filterNode),this._inputNode["connect"](this._dryNode),this._filterNode["connect"](this._wetNode),this._oscNode["connect"](this._oscGainNode),this._oscGainNode["connect"](this._filterNode["frequency"]),this._oscNode["start"](0)}Release(){this._oscNode["stop"](0),this._inputNode["disconnect"](),this._filterNode["disconnect"](),this._oscNode["disconnect"](),this._oscGainNode["disconnect"](),this._dryNode["disconnect"](),this._wetNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[5]=b,this.SetAudioParam(this._wetNode["gain"],b/2,c,d),this.SetAudioParam(this._dryNode["gain"],1-b/2,c,d)):1===a?(this._params[0]=b,this.SetAudioParam(this._filterNode["frequency"],b,c,d)):2===a?(this._params[1]=b,this.SetAudioParam(this._filterNode["detune"],b,c,d)):3===a?(this._params[2]=b,this.SetAudioParam(this._filterNode["Q"],b,c,d)):6===a?(this._params[3]=b,this.SetAudioParam(this._oscGainNode["gain"],b,c,d)):7===a?(this._params[4]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):void 0}},self.C3AudioGainFX=class extends f{constructor(a,b){super(a),this._type="gain",this._params=[b],this._node=this.CreateGain(),this._node["gain"]["value"]=b}Release(){this._node["disconnect"](),super.Release()}ConnectTo(a){this._node["disconnect"](),this._node["connect"](a)}GetInputNode(){return this._node}SetParam(a,c,d,e){4===a?(this._params[0]=b(c),this.SetAudioParam(this._node["gain"],b(c),d,e)):void 0}},self.C3AudioTremoloFX=class extends f{constructor(a,b,c){super(a),this._type="tremolo",this._params=[b,c],this._node=this.CreateGain(),this._node["gain"]["value"]=1-c/2,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=b,this._oscGainNode=this.CreateGain(),this._oscGainNode["gain"]["value"]=c/2,this._oscNode["connect"](this._oscGainNode),this._oscGainNode["connect"](this._node["gain"]),this._oscNode["start"](0)}Release(){this._oscNode["stop"](0),this._oscNode["disconnect"](),this._oscGainNode["disconnect"](),this._node["disconnect"](),super.Release()}ConnectTo(a){this._node["disconnect"](),this._node["connect"](a)}GetInputNode(){return this._node}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[1]=b,this.SetAudioParam(this._node["gain"]["value"],1-b/2,c,d),this.SetAudioParam(this._oscGainNode["gain"]["value"],b/2,c,d)):7===a?(this._params[0]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):void 0}},self.C3AudioRingModFX=class extends f{constructor(a,b,c){super(a),this._type="ringmod",this._params=[b,c],this._inputNode=this.CreateGain(),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=c,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-c,this._ringNode=this.CreateGain(),this._ringNode["gain"]["value"]=0,this._oscNode=this._audioContext["createOscillator"](),this._oscNode["frequency"]["value"]=b,this._oscNode["connect"](this._ringNode["gain"]),this._oscNode["start"](0),this._inputNode["connect"](this._ringNode),this._inputNode["connect"](this._dryNode),this._ringNode["connect"](this._wetNode)}Release(){this._oscNode["stop"](0),this._oscNode["disconnect"](),this._ringNode["disconnect"](),this._inputNode["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}ConnectTo(a){this._wetNode["disconnect"](),this._wetNode["connect"](a),this._dryNode["disconnect"](),this._dryNode["connect"](a)}GetInputNode(){return this._inputNode}SetParam(a,b,c,d){0===a?(b=Math.max(Math.min(b/100,1),0),this._params[1]=b,this.SetAudioParam(this._wetNode["gain"],b,c,d),this.SetAudioParam(this._dryNode["gain"],1-b,c,d)):7===a?(this._params[0]=b,this.SetAudioParam(this._oscNode["frequency"],b,c,d)):void 0}},self.C3AudioDistortionFX=class extends f{constructor(a,b,c,d,e,f){super(a),this._type="distortion",this._params=[b,c,d,e,f],this._inputNode=this.CreateGain(),this._preGain=this.CreateGain(),this._postGain=this.CreateGain(),this._SetDrive(d,e),this._wetNode=this.CreateGain(),this._wetNode["gain"]["value"]=f,this._dryNode=this.CreateGain(),this._dryNode["gain"]["value"]=1-f,this._waveShaper=this._audioContext["createWaveShaper"](),this._curve=new Float32Array(65536),this._GenerateColortouchCurve(b,c),this._waveShaper.curve=this._curve,this._inputNode["connect"](this._preGain),this._inputNode["connect"](this._dryNode),this._preGain["connect"](this._waveShaper),this._waveShaper["connect"](this._postGain),this._postGain["connect"](this._wetNode)}Release(){this._inputNode["disconnect"](),this._preGain["disconnect"](),this._waveShaper["disconnect"](),this._postGain["disconnect"](),this._wetNode["disconnect"](),this._dryNode["disconnect"](),super.Release()}_SetDrive(a,b){.01>a&&(a=.01),this._preGain["gain"]["value"]=a,this._postGain["gain"]["value"]=Math.pow(1/a,.6)*b}_GenerateColortouchCurve(a,b){for(let c,d=0;d<32768;++d)c=d/32768,c=this._Shape(c,a,b),this._curve[32768+d]=c,this._curve[32768-d-1]=-c}_Shape(a,b,c){const d=1.05*c*b-b,f=0>a?-1:1,g=0>a?-a:a;let h=gc&&(c=-c),this._peak readyPromiseResolve = resolve); + + Module = { + // When WASM has finished loading, resolve the ready promise + onRuntimeInitialized: readyPromiseResolve + }; + + function ReadVInt(data, position, length, initialMask) { + var value = data.getUint8(position) & initialMask; + for (var i = 1; i < length; i++) value = (value << 8) + data.getUint8(position + i); + return value + } + + function CalculateAudioBufferSize(rate, channels, duration) { + return rate / 1e3 * channels * duration + } + + function CreateDecoder(duration) { + var frequency = 48e3; + var channels = 1; + var bufferSize = 2048; + var length = CalculateAudioBufferSize(frequency, channels, duration); + _audioBuffer = new Float32Array(length); + if (!_outputBuffer) { + _outputPointer = Module._malloc(bufferSize << 2); + _outputBuffer = new Float32Array(Module.HEAPU8.buffer, _outputPointer, bufferSize) + } + if (!_inputPointer) { + _inputPointer = Module._malloc(bufferSize) + } + _decoder = Module._create_decoder(frequency, channels); + if (_decoder < 0) throw new Error("Failed to create decoder") + } + + function DestroyDecoder() { + Module._destroy_decoder(_decoder); + _decoder = null; + _outputOffset = 0 + } + + ///////////////////////////////////////////////////////// + // Main job handler + self.JobHandlers["OpusDecode"] = async function OpusDecode(params) + { + // Wait for WASM to finish loading if necessary + await readyPromise; + + // Decode the Opus compressed audio to a float sample buffer and return the ArrayBuffer + const arrayBuffer = params["arrayBuffer"]; + ParseMaster(new DataView(arrayBuffer), 0, arrayBuffer.byteLength) + DestroyDecoder(); + const outputBuffer = _audioBuffer.buffer; + _audioBuffer = null; + return { + result: outputBuffer, + transferables: [outputBuffer] + }; + }; + + function ParseFrame(data) { + var length = data.length; + Module.HEAPU8.set(data, _inputPointer); + var ret = Module._decode_frame(_decoder, _inputPointer, length, _outputPointer, 4096); + if (ret > 0) { + _audioBuffer.set(new Float32Array(Module.HEAPU8.buffer, _outputPointer, ret), _outputOffset); + _outputOffset += ret + } else { + throw new Error("Failed to parse frame") + } + } + + function ParseBlock(data, position, size) { + var firstByte, tagLength, mask, trackEntry, timeCode, flags, lacing; + firstByte = data.getUint8(position); + tagLength = VINT_SIZES[firstByte]; + mask = VINT_MASKS[tagLength]; + trackEntry = ReadVInt(data, position, tagLength, mask); + position += tagLength; + timeCode = data.getInt16(position); + position += 2; + flags = data.getUint8(position); + position += 1; + size -= tagLength + 3; + lacing = flags & 6; + if (lacing) throw "Lacing not supported"; + ParseFrame(new Uint8Array(data.buffer, position, size)) + } + + function ParseDuration(data, position, size) { + var duration; + if (size == 4) duration = data.getFloat32(position); + else if (size == 8) duration = data.getFloat64(position); + else throw new Error("Invalid size"); + CreateDecoder(duration) + } + + function TestOpus(data, position) { + for (var i = 0, l = 6; i < l; i++) { + if (data.getUint8(position + i) != OPUS_SIG[i]) throw new Error("Contains non opus data") + } + } + + function ParseMaster(data, position, length) { + var firstByte, tagLength, id, sizeLength, mask, size; + var end = position + length; + while (position < end) { + firstByte = data.getUint8(position); + tagLength = VINT_SIZES[firstByte]; + if (tagLength > 4 || tagLength == 0) throw "Invalid tag length " + tagLength; + id = ReadVInt(data, position, tagLength, 255); + position += tagLength; + firstByte = data.getUint8(position); + sizeLength = VINT_SIZES[firstByte]; + mask = VINT_MASKS[sizeLength]; + if (sizeLength == 0) throw "Invalid size length"; + size = ReadVInt(data, position, sizeLength, mask); + position += sizeLength; + switch (id) { + case 408125543: + case 357149030: + case 524531317: + case 374648427: + case 174: + ParseMaster(data, position, size); + break; + case 17545: + ParseDuration(data, position, size); + break; + case 134: + TestOpus(data, position, size); + break; + case 163: + ParseBlock(data, position, size); + break + } + position += size + } + } +}))(); +var Module; +if (!Module) Module = (typeof Module !== "undefined" ? Module : null) || {}; +var moduleOverrides = {}; +for (var key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key] + } +} +var ENVIRONMENT_IS_WEB = false; +var ENVIRONMENT_IS_WORKER = false; +var ENVIRONMENT_IS_NODE = false; +var ENVIRONMENT_IS_SHELL = false; +if (Module["ENVIRONMENT"]) { + if (Module["ENVIRONMENT"] === "WEB") { + ENVIRONMENT_IS_WEB = true + } else if (Module["ENVIRONMENT"] === "WORKER") { + ENVIRONMENT_IS_WORKER = true + } else if (Module["ENVIRONMENT"] === "NODE") { + ENVIRONMENT_IS_NODE = true + } else if (Module["ENVIRONMENT"] === "SHELL") { + ENVIRONMENT_IS_SHELL = true + } else { + throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.") + } +} else { + ENVIRONMENT_IS_WEB = typeof window === "object"; + ENVIRONMENT_IS_WORKER = typeof importScripts === "function"; + ENVIRONMENT_IS_NODE = typeof process === "object" && typeof require === "function" && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER; + ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER +} +if (ENVIRONMENT_IS_NODE) { + if (!Module["print"]) Module["print"] = console.log; + if (!Module["printErr"]) Module["printErr"] = console.warn; + var nodeFS; + var nodePath; + Module["read"] = function shell_read(filename, binary) { + if (!nodeFS) nodeFS = require("fs"); + if (!nodePath) nodePath = require("path"); + filename = nodePath["normalize"](filename); + var ret = nodeFS["readFileSync"](filename); + return binary ? ret : ret.toString() + }; + Module["readBinary"] = function readBinary(filename) { + var ret = Module["read"](filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret) + } + assert(ret.buffer); + return ret + }; + Module["load"] = function load(f) { + globalEval(read(f)) + }; + if (!Module["thisProgram"]) { + if (process["argv"].length > 1) { + Module["thisProgram"] = process["argv"][1].replace(/\\/g, "/") + } else { + Module["thisProgram"] = "unknown-program" + } + } + Module["arguments"] = process["argv"].slice(2); + if (typeof module !== "undefined") { + module["exports"] = Module + } + process["on"]("uncaughtException", (function(ex) { + if (!(ex instanceof ExitStatus)) { + throw ex + } + })); + Module["inspect"] = (function() { + return "[Emscripten Module object]" + }) +} else if (ENVIRONMENT_IS_SHELL) { + if (!Module["print"]) Module["print"] = print; + if (typeof printErr != "undefined") Module["printErr"] = printErr; + if (typeof read != "undefined") { + Module["read"] = read + } else { + Module["read"] = function shell_read() { + throw "no read() available" + } + } + Module["readBinary"] = function readBinary(f) { + if (typeof readbuffer === "function") { + return new Uint8Array(readbuffer(f)) + } + var data = read(f, "binary"); + assert(typeof data === "object"); + return data + }; + if (typeof scriptArgs != "undefined") { + Module["arguments"] = scriptArgs + } else if (typeof arguments != "undefined") { + Module["arguments"] = arguments + } + if (typeof quit === "function") { + Module["quit"] = (function(status, toThrow) { + quit(status) + }) + } +} else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) { + Module["read"] = function shell_read(url) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.send(null); + return xhr.responseText + }; + if (ENVIRONMENT_IS_WORKER) { + Module["readBinary"] = function readBinary(url) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, false); + xhr.responseType = "arraybuffer"; + xhr.send(null); + return new Uint8Array(xhr.response) + } + } + Module["readAsync"] = function readAsync(url, onload, onerror) { + var xhr = new XMLHttpRequest; + xhr.open("GET", url, true); + xhr.responseType = "arraybuffer"; + xhr.onload = function xhr_onload() { + if (xhr.status == 200 || xhr.status == 0 && xhr.response) { + onload(xhr.response) + } else { + onerror() + } + }; + xhr.onerror = onerror; + xhr.send(null) + }; + if (typeof arguments != "undefined") { + Module["arguments"] = arguments + } + if (typeof console !== "undefined") { + if (!Module["print"]) Module["print"] = function shell_print(x) { + console.log(x) + }; + if (!Module["printErr"]) Module["printErr"] = function shell_printErr(x) { + console.warn(x) + } + } else { + var TRY_USE_DUMP = false; + if (!Module["print"]) Module["print"] = TRY_USE_DUMP && typeof dump !== "undefined" ? (function(x) { + dump(x) + }) : (function(x) {}) + } + if (ENVIRONMENT_IS_WORKER) { + Module["load"] = importScripts + } + if (typeof Module["setWindowTitle"] === "undefined") { + Module["setWindowTitle"] = (function(title) { + document.title = title + }) + } +} else { + throw "Unknown runtime environment. Where are we?" +} + +function globalEval(x) { + eval.call(null, x) +} +if (!Module["load"] && Module["read"]) { + Module["load"] = function load(f) { + globalEval(Module["read"](f)) + } +} +if (!Module["print"]) { + Module["print"] = (function() {}) +} +if (!Module["printErr"]) { + Module["printErr"] = Module["print"] +} +if (!Module["arguments"]) { + Module["arguments"] = [] +} +if (!Module["thisProgram"]) { + Module["thisProgram"] = "./this.program" +} +if (!Module["quit"]) { + Module["quit"] = (function(status, toThrow) { + throw toThrow + }) +} +Module.print = Module["print"]; +Module.printErr = Module["printErr"]; +Module["preRun"] = []; +Module["postRun"] = []; +for (var key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key] + } +} +moduleOverrides = undefined; +var Runtime = { + setTempRet0: (function(value) { + tempRet0 = value; + return value + }), + getTempRet0: (function() { + return tempRet0 + }), + stackSave: (function() { + return STACKTOP + }), + stackRestore: (function(stackTop) { + STACKTOP = stackTop + }), + getNativeTypeSize: (function(type) { + switch (type) { + case "i1": + case "i8": + return 1; + case "i16": + return 2; + case "i32": + return 4; + case "i64": + return 8; + case "float": + return 4; + case "double": + return 8; + default: + { + if (type[type.length - 1] === "*") { + return Runtime.QUANTUM_SIZE + } else if (type[0] === "i") { + var bits = parseInt(type.substr(1)); + assert(bits % 8 === 0); + return bits / 8 + } else { + return 0 + } + } + } + }), + getNativeFieldSize: (function(type) { + return Math.max(Runtime.getNativeTypeSize(type), Runtime.QUANTUM_SIZE) + }), + STACK_ALIGN: 16, + prepVararg: (function(ptr, type) { + if (type === "double" || type === "i64") { + if (ptr & 7) { + assert((ptr & 7) === 4); + ptr += 4 + } + } else { + assert((ptr & 3) === 0) + } + return ptr + }), + getAlignSize: (function(type, size, vararg) { + if (!vararg && (type == "i64" || type == "double")) return 8; + if (!type) return Math.min(size, 8); + return Math.min(size || (type ? Runtime.getNativeFieldSize(type) : 0), Runtime.QUANTUM_SIZE) + }), + dynCall: (function(sig, ptr, args) { + if (args && args.length) { + return Module["dynCall_" + sig].apply(null, [ptr].concat(args)) + } else { + return Module["dynCall_" + sig].call(null, ptr) + } + }), + functionPointers: [], + addFunction: (function(func) { + for (var i = 0; i < Runtime.functionPointers.length; i++) { + if (!Runtime.functionPointers[i]) { + Runtime.functionPointers[i] = func; + return 2 * (1 + i) + } + } + throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS." + }), + removeFunction: (function(index) { + Runtime.functionPointers[(index - 2) / 2] = null + }), + warnOnce: (function(text) { + if (!Runtime.warnOnce.shown) Runtime.warnOnce.shown = {}; + if (!Runtime.warnOnce.shown[text]) { + Runtime.warnOnce.shown[text] = 1; + Module.printErr(text) + } + }), + funcWrappers: {}, + getFuncWrapper: (function(func, sig) { + assert(sig); + if (!Runtime.funcWrappers[sig]) { + Runtime.funcWrappers[sig] = {} + } + var sigCache = Runtime.funcWrappers[sig]; + if (!sigCache[func]) { + if (sig.length === 1) { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func) + } + } else if (sig.length === 2) { + sigCache[func] = function dynCall_wrapper(arg) { + return Runtime.dynCall(sig, func, [arg]) + } + } else { + sigCache[func] = function dynCall_wrapper() { + return Runtime.dynCall(sig, func, Array.prototype.slice.call(arguments)) + } + } + } + return sigCache[func] + }), + getCompilerSetting: (function(name) { + throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work" + }), + stackAlloc: (function(size) { + var ret = STACKTOP; + STACKTOP = STACKTOP + size | 0; + STACKTOP = STACKTOP + 15 & -16; + return ret + }), + staticAlloc: (function(size) { + var ret = STATICTOP; + STATICTOP = STATICTOP + size | 0; + STATICTOP = STATICTOP + 15 & -16; + return ret + }), + dynamicAlloc: (function(size) { + var ret = HEAP32[DYNAMICTOP_PTR >> 2]; + var end = (ret + size + 15 | 0) & -16; + HEAP32[DYNAMICTOP_PTR >> 2] = end; + if (end >= TOTAL_MEMORY) { + var success = enlargeMemory(); + if (!success) { + HEAP32[DYNAMICTOP_PTR >> 2] = ret; + return 0 + } + } + return ret + }), + alignMemory: (function(size, quantum) { + var ret = size = Math.ceil(size / (quantum ? quantum : 16)) * (quantum ? quantum : 16); + return ret + }), + makeBigInt: (function(low, high, unsigned) { + var ret = unsigned ? +(low >>> 0) + +(high >>> 0) * 4294967296 : +(low >>> 0) + +(high | 0) * 4294967296; + return ret + }), + GLOBAL_BASE: 1024, + QUANTUM_SIZE: 4, + __dummy__: 0 +}; +Module["Runtime"] = Runtime; +var ABORT = 0; +var EXITSTATUS = 0; + +function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text) + } +} + +function getCFunc(ident) { + var func = Module["_" + ident]; + if (!func) { + try { + func = eval("_" + ident) + } catch (e) {} + } + assert(func, "Cannot call unknown function " + ident + " (perhaps LLVM optimizations or closure removed it?)"); + return func +} +var cwrap, ccall; +((function() { + var JSfuncs = { + "stackSave": (function() { + Runtime.stackSave() + }), + "stackRestore": (function() { + Runtime.stackRestore() + }), + "arrayToC": (function(arr) { + var ret = Runtime.stackAlloc(arr.length); + writeArrayToMemory(arr, ret); + return ret + }), + "stringToC": (function(str) { + var ret = 0; + if (str !== null && str !== undefined && str !== 0) { + var len = (str.length << 2) + 1; + ret = Runtime.stackAlloc(len); + stringToUTF8(str, ret, len) + } + return ret + }) + }; + var toC = { + "string": JSfuncs["stringToC"], + "array": JSfuncs["arrayToC"] + }; + ccall = function ccallFunc(ident, returnType, argTypes, args, opts) { + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = Runtime.stackSave(); + cArgs[i] = converter(args[i]) + } else { + cArgs[i] = args[i] + } + } + } + var ret = func.apply(null, cArgs); + if (returnType === "string") ret = Pointer_stringify(ret); + if (stack !== 0) { + if (opts && opts.async) { + EmterpreterAsync.asyncFinalizers.push((function() { + Runtime.stackRestore(stack) + })); + return + } + Runtime.stackRestore(stack) + } + return ret + }; + var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/; + + function parseJSFunc(jsfunc) { + var parsed = jsfunc.toString().match(sourceRegex).slice(1); + return { + arguments: parsed[0], + body: parsed[1], + returnValue: parsed[2] + } + } + var JSsource = null; + + function ensureJSsource() { + if (!JSsource) { + JSsource = {}; + for (var fun in JSfuncs) { + if (JSfuncs.hasOwnProperty(fun)) { + JSsource[fun] = parseJSFunc(JSfuncs[fun]) + } + } + } + } + cwrap = function cwrap(ident, returnType, argTypes) { + argTypes = argTypes || []; + var cfunc = getCFunc(ident); + var numericArgs = argTypes.every((function(type) { + return type === "number" + })); + var numericRet = returnType !== "string"; + if (numericRet && numericArgs) { + return cfunc + } + var argNames = argTypes.map((function(x, i) { + return "$" + i + })); + var funcstr = "(function(" + argNames.join(",") + ") {"; + var nargs = argTypes.length; + if (!numericArgs) { + ensureJSsource(); + funcstr += "var stack = " + JSsource["stackSave"].body + ";"; + for (var i = 0; i < nargs; i++) { + var arg = argNames[i], + type = argTypes[i]; + if (type === "number") continue; + var convertCode = JSsource[type + "ToC"]; + funcstr += "var " + convertCode.arguments + " = " + arg + ";"; + funcstr += convertCode.body + ";"; + funcstr += arg + "=(" + convertCode.returnValue + ");" + } + } + var cfuncname = parseJSFunc((function() { + return cfunc + })).returnValue; + funcstr += "var ret = " + cfuncname + "(" + argNames.join(",") + ");"; + if (!numericRet) { + var strgfy = parseJSFunc((function() { + return Pointer_stringify + })).returnValue; + funcstr += "ret = " + strgfy + "(ret);" + } + if (!numericArgs) { + ensureJSsource(); + funcstr += JSsource["stackRestore"].body.replace("()", "(stack)") + ";" + } + funcstr += "return ret})"; + return eval(funcstr) + } +}))(); +Module["ccall"] = ccall; +Module["cwrap"] = cwrap; + +function setValue(ptr, value, type, noSafe) { + type = type || "i8"; + if (type.charAt(type.length - 1) === "*") type = "i32"; + switch (type) { + case "i1": + HEAP8[ptr >> 0] = value; + break; + case "i8": + HEAP8[ptr >> 0] = value; + break; + case "i16": + HEAP16[ptr >> 1] = value; + break; + case "i32": + HEAP32[ptr >> 2] = value; + break; + case "i64": + tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1 ? tempDouble > 0 ? (Math_min(+Math_floor(tempDouble / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1]; + break; + case "float": + HEAPF32[ptr >> 2] = value; + break; + case "double": + HEAPF64[ptr >> 3] = value; + break; + default: + abort("invalid type for setValue: " + type) + } +} +Module["setValue"] = setValue; + +function getValue(ptr, type, noSafe) { + type = type || "i8"; + if (type.charAt(type.length - 1) === "*") type = "i32"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return HEAP16[ptr >> 1]; + case "i32": + return HEAP32[ptr >> 2]; + case "i64": + return HEAP32[ptr >> 2]; + case "float": + return HEAPF32[ptr >> 2]; + case "double": + return HEAPF64[ptr >> 3]; + default: + abort("invalid type for setValue: " + type) + } + return null +} +Module["getValue"] = getValue; +var ALLOC_NORMAL = 0; +var ALLOC_STACK = 1; +var ALLOC_STATIC = 2; +var ALLOC_DYNAMIC = 3; +var ALLOC_NONE = 4; +Module["ALLOC_NORMAL"] = ALLOC_NORMAL; +Module["ALLOC_STACK"] = ALLOC_STACK; +Module["ALLOC_STATIC"] = ALLOC_STATIC; +Module["ALLOC_DYNAMIC"] = ALLOC_DYNAMIC; +Module["ALLOC_NONE"] = ALLOC_NONE; + +function allocate(slab, types, allocator, ptr) { + var zeroinit, size; + if (typeof slab === "number") { + zeroinit = true; + size = slab + } else { + zeroinit = false; + size = slab.length + } + var singleType = typeof types === "string" ? types : null; + var ret; + if (allocator == ALLOC_NONE) { + ret = ptr + } else { + ret = [typeof _malloc === "function" ? _malloc : Runtime.staticAlloc, Runtime.stackAlloc, Runtime.staticAlloc, Runtime.dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length)) + } + if (zeroinit) { + var ptr = ret, + stop; + assert((ret & 3) == 0); + stop = ret + (size & ~3); + for (; ptr < stop; ptr += 4) { + HEAP32[ptr >> 2] = 0 + } + stop = ret + size; + while (ptr < stop) { + HEAP8[ptr++ >> 0] = 0 + } + return ret + } + if (singleType === "i8") { + if (slab.subarray || slab.slice) { + HEAPU8.set(slab, ret) + } else { + HEAPU8.set(new Uint8Array(slab), ret) + } + return ret + } + var i = 0, + type, typeSize, previousType; + while (i < size) { + var curr = slab[i]; + if (typeof curr === "function") { + curr = Runtime.getFunctionIndex(curr) + } + type = singleType || types[i]; + if (type === 0) { + i++; + continue + } + if (type == "i64") type = "i32"; + setValue(ret + i, curr, type); + if (previousType !== type) { + typeSize = Runtime.getNativeTypeSize(type); + previousType = type + } + i += typeSize + } + return ret +} +Module["allocate"] = allocate; + +function getMemory(size) { + if (!staticSealed) return Runtime.staticAlloc(size); + if (!runtimeInitialized) return Runtime.dynamicAlloc(size); + return _malloc(size) +} +Module["getMemory"] = getMemory; + +function Pointer_stringify(ptr, length) { + if (length === 0 || !ptr) return ""; + var hasUtf = 0; + var t; + var i = 0; + while (1) { + t = HEAPU8[ptr + i >> 0]; + hasUtf |= t; + if (t == 0 && !length) break; + i++; + if (length && i == length) break + } + if (!length) length = i; + var ret = ""; + if (hasUtf < 128) { + var MAX_CHUNK = 1024; + var curr; + while (length > 0) { + curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK))); + ret = ret ? ret + curr : curr; + ptr += MAX_CHUNK; + length -= MAX_CHUNK + } + return ret + } + return Module["UTF8ToString"](ptr) +} +Module["Pointer_stringify"] = Pointer_stringify; + +function AsciiToString(ptr) { + var str = ""; + while (1) { + var ch = HEAP8[ptr++ >> 0]; + if (!ch) return str; + str += String.fromCharCode(ch) + } +} +Module["AsciiToString"] = AsciiToString; + +function stringToAscii(str, outPtr) { + return writeAsciiToMemory(str, outPtr, false) +} +Module["stringToAscii"] = stringToAscii; +var UTF8Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf8") : undefined; + +function UTF8ArrayToString(u8Array, idx) { + var endPtr = idx; + while (u8Array[endPtr]) ++endPtr; + if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) { + return UTF8Decoder.decode(u8Array.subarray(idx, endPtr)) + } else { + var u0, u1, u2, u3, u4, u5; + var str = ""; + while (1) { + u0 = u8Array[idx++]; + if (!u0) return str; + if (!(u0 & 128)) { + str += String.fromCharCode(u0); + continue + } + u1 = u8Array[idx++] & 63; + if ((u0 & 224) == 192) { + str += String.fromCharCode((u0 & 31) << 6 | u1); + continue + } + u2 = u8Array[idx++] & 63; + if ((u0 & 240) == 224) { + u0 = (u0 & 15) << 12 | u1 << 6 | u2 + } else { + u3 = u8Array[idx++] & 63; + if ((u0 & 248) == 240) { + u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3 + } else { + u4 = u8Array[idx++] & 63; + if ((u0 & 252) == 248) { + u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4 + } else { + u5 = u8Array[idx++] & 63; + u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5 + } + } + } + if (u0 < 65536) { + str += String.fromCharCode(u0) + } else { + var ch = u0 - 65536; + str += String.fromCharCode(55296 | ch >> 10, 56320 | ch & 1023) + } + } + } +} +Module["UTF8ArrayToString"] = UTF8ArrayToString; + +function UTF8ToString(ptr) { + return UTF8ArrayToString(HEAPU8, ptr) +} +Module["UTF8ToString"] = UTF8ToString; + +function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; + if (u <= 127) { + if (outIdx >= endIdx) break; + outU8Array[outIdx++] = u + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + outU8Array[outIdx++] = 192 | u >> 6; + outU8Array[outIdx++] = 128 | u & 63 + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + outU8Array[outIdx++] = 224 | u >> 12; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63 + } else if (u <= 2097151) { + if (outIdx + 3 >= endIdx) break; + outU8Array[outIdx++] = 240 | u >> 18; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63 + } else if (u <= 67108863) { + if (outIdx + 4 >= endIdx) break; + outU8Array[outIdx++] = 248 | u >> 24; + outU8Array[outIdx++] = 128 | u >> 18 & 63; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63 + } else { + if (outIdx + 5 >= endIdx) break; + outU8Array[outIdx++] = 252 | u >> 30; + outU8Array[outIdx++] = 128 | u >> 24 & 63; + outU8Array[outIdx++] = 128 | u >> 18 & 63; + outU8Array[outIdx++] = 128 | u >> 12 & 63; + outU8Array[outIdx++] = 128 | u >> 6 & 63; + outU8Array[outIdx++] = 128 | u & 63 + } + } + outU8Array[outIdx] = 0; + return outIdx - startIdx +} +Module["stringToUTF8Array"] = stringToUTF8Array; + +function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite) +} +Module["stringToUTF8"] = stringToUTF8; + +function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; + if (u <= 127) { + ++len + } else if (u <= 2047) { + len += 2 + } else if (u <= 65535) { + len += 3 + } else if (u <= 2097151) { + len += 4 + } else if (u <= 67108863) { + len += 5 + } else { + len += 6 + } + } + return len +} +Module["lengthBytesUTF8"] = lengthBytesUTF8; +var UTF16Decoder = typeof TextDecoder !== "undefined" ? new TextDecoder("utf-16le") : undefined; + +function demangle(func) { + var __cxa_demangle_func = Module["___cxa_demangle"] || Module["__cxa_demangle"]; + if (__cxa_demangle_func) { + try { + var s = func.substr(1); + var len = lengthBytesUTF8(s) + 1; + var buf = _malloc(len); + stringToUTF8(s, buf, len); + var status = _malloc(4); + var ret = __cxa_demangle_func(buf, 0, 0, status); + if (getValue(status, "i32") === 0 && ret) { + return Pointer_stringify(ret) + } + } catch (e) {} finally { + if (buf) _free(buf); + if (status) _free(status); + if (ret) _free(ret) + } + return func + } + Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"); + return func +} + +function demangleAll(text) { + var regex = /__Z[\w\d_]+/g; + return text.replace(regex, (function(x) { + var y = demangle(x); + return x === y ? x : x + " [" + y + "]" + })) +} + +function jsStackTrace() { + var err = new Error; + if (!err.stack) { + try { + throw new Error(0) + } catch (e) { + err = e + } + if (!err.stack) { + return "(no stack trace available)" + } + } + return err.stack.toString() +} + +function stackTrace() { + var js = jsStackTrace(); + if (Module["extraStackTrace"]) js += "\n" + Module["extraStackTrace"](); + return demangleAll(js) +} +Module["stackTrace"] = stackTrace; +var WASM_PAGE_SIZE = 65536; +var ASMJS_PAGE_SIZE = 16777216; + +function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - x % multiple + } + return x +} +var HEAP, buffer, HEAP8, HEAPU8, HEAP16, HEAPU16, HEAP32, HEAPU32, HEAPF32, HEAPF64; + +function updateGlobalBuffer(buf) { + Module["buffer"] = buffer = buf +} + +function updateGlobalBufferViews() { + Module["HEAP8"] = HEAP8 = new Int8Array(buffer); + Module["HEAP16"] = HEAP16 = new Int16Array(buffer); + Module["HEAP32"] = HEAP32 = new Int32Array(buffer); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buffer); + Module["HEAPU16"] = HEAPU16 = new Uint16Array(buffer); + Module["HEAPU32"] = HEAPU32 = new Uint32Array(buffer); + Module["HEAPF32"] = HEAPF32 = new Float32Array(buffer); + Module["HEAPF64"] = HEAPF64 = new Float64Array(buffer) +} +var STATIC_BASE, STATICTOP, staticSealed; +var STACK_BASE, STACKTOP, STACK_MAX; +var DYNAMIC_BASE, DYNAMICTOP_PTR; +STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0; +staticSealed = false; + +function abortOnCannotGrowMemory() { + abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value " + TOTAL_MEMORY + ", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ") +} + +function enlargeMemory() { + abortOnCannotGrowMemory() +} +var TOTAL_STACK = Module["TOTAL_STACK"] || 5242880; +var TOTAL_MEMORY = Module["TOTAL_MEMORY"] || 67108864; +if (TOTAL_MEMORY < TOTAL_STACK) Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was " + TOTAL_MEMORY + "! (TOTAL_STACK=" + TOTAL_STACK + ")"); +if (Module["buffer"]) { + buffer = Module["buffer"] +} else { + if (typeof WebAssembly === "object" && typeof WebAssembly.Memory === "function") { + Module["wasmMemory"] = new WebAssembly.Memory({ + "initial": TOTAL_MEMORY / WASM_PAGE_SIZE, + "maximum": TOTAL_MEMORY / WASM_PAGE_SIZE + }); + buffer = Module["wasmMemory"].buffer + } else { + buffer = new ArrayBuffer(TOTAL_MEMORY) + } +} +updateGlobalBufferViews(); + +function getTotalMemory() { + return TOTAL_MEMORY +} +HEAP32[0] = 1668509029; +HEAP16[1] = 25459; +if (HEAPU8[2] !== 115 || HEAPU8[3] !== 99) throw "Runtime error: expected the system to be little-endian!"; +Module["HEAP"] = HEAP; +Module["buffer"] = buffer; +Module["HEAP8"] = HEAP8; +Module["HEAP16"] = HEAP16; +Module["HEAP32"] = HEAP32; +Module["HEAPU8"] = HEAPU8; +Module["HEAPU16"] = HEAPU16; +Module["HEAPU32"] = HEAPU32; +Module["HEAPF32"] = HEAPF32; +Module["HEAPF64"] = HEAPF64; + +function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(); + continue + } + var func = callback.func; + if (typeof func === "number") { + if (callback.arg === undefined) { + Module["dynCall_v"](func) + } else { + Module["dynCall_vi"](func, callback.arg) + } + } else { + func(callback.arg === undefined ? null : callback.arg) + } + } +} +var __ATPRERUN__ = []; +var __ATINIT__ = []; +var __ATMAIN__ = []; +var __ATEXIT__ = []; +var __ATPOSTRUN__ = []; +var runtimeInitialized = false; +var runtimeExited = false; + +function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()) + } + } + callRuntimeCallbacks(__ATPRERUN__) +} + +function ensureInitRuntime() { + if (runtimeInitialized) return; + runtimeInitialized = true; + callRuntimeCallbacks(__ATINIT__) +} + +function preMain() { + callRuntimeCallbacks(__ATMAIN__) +} + +function exitRuntime() { + callRuntimeCallbacks(__ATEXIT__); + runtimeExited = true +} + +function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()) + } + } + callRuntimeCallbacks(__ATPOSTRUN__) +} + +function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb) +} +Module["addOnPreRun"] = addOnPreRun; + +function addOnInit(cb) { + __ATINIT__.unshift(cb) +} +Module["addOnInit"] = addOnInit; + +function addOnPreMain(cb) { + __ATMAIN__.unshift(cb) +} +Module["addOnPreMain"] = addOnPreMain; + +function addOnExit(cb) { + __ATEXIT__.unshift(cb) +} +Module["addOnExit"] = addOnExit; + +function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb) +} +Module["addOnPostRun"] = addOnPostRun; + +function intArrayFromString(stringy, dontAddNull, length) { + var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1; + var u8array = new Array(len); + var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length); + if (dontAddNull) u8array.length = numBytesWritten; + return u8array +} +Module["intArrayFromString"] = intArrayFromString; + +function intArrayToString(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + var chr = array[i]; + if (chr > 255) { + chr &= 255 + } + ret.push(String.fromCharCode(chr)) + } + return ret.join("") +} +Module["intArrayToString"] = intArrayToString; + +function writeStringToMemory(string, buffer, dontAddNull) { + Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!"); + var lastChar, end; + if (dontAddNull) { + end = buffer + lengthBytesUTF8(string); + lastChar = HEAP8[end] + } + stringToUTF8(string, buffer, Infinity); + if (dontAddNull) HEAP8[end] = lastChar +} +Module["writeStringToMemory"] = writeStringToMemory; + +function writeArrayToMemory(array, buffer) { + HEAP8.set(array, buffer) +} +Module["writeArrayToMemory"] = writeArrayToMemory; + +function writeAsciiToMemory(str, buffer, dontAddNull) { + for (var i = 0; i < str.length; ++i) { + HEAP8[buffer++ >> 0] = str.charCodeAt(i) + } + if (!dontAddNull) HEAP8[buffer >> 0] = 0 +} +Module["writeAsciiToMemory"] = writeAsciiToMemory; +if (!Math["imul"] || Math["imul"](4294967295, 5) !== -5) Math["imul"] = function imul(a, b) { + var ah = a >>> 16; + var al = a & 65535; + var bh = b >>> 16; + var bl = b & 65535; + return al * bl + (ah * bl + al * bh << 16) | 0 +}; +Math.imul = Math["imul"]; +if (!Math["fround"]) { + var froundBuffer = new Float32Array(1); + Math["fround"] = (function(x) { + froundBuffer[0] = x; + return froundBuffer[0] + }) +} +Math.fround = Math["fround"]; +if (!Math["clz32"]) Math["clz32"] = (function(x) { + x = x >>> 0; + for (var i = 0; i < 32; i++) { + if (x & 1 << 31 - i) return i + } + return 32 +}); +Math.clz32 = Math["clz32"]; +if (!Math["trunc"]) Math["trunc"] = (function(x) { + return x < 0 ? Math.ceil(x) : Math.floor(x) +}); +Math.trunc = Math["trunc"]; +var Math_abs = Math.abs; +var Math_cos = Math.cos; +var Math_sin = Math.sin; +var Math_tan = Math.tan; +var Math_acos = Math.acos; +var Math_asin = Math.asin; +var Math_atan = Math.atan; +var Math_atan2 = Math.atan2; +var Math_exp = Math.exp; +var Math_log = Math.log; +var Math_sqrt = Math.sqrt; +var Math_ceil = Math.ceil; +var Math_floor = Math.floor; +var Math_pow = Math.pow; +var Math_imul = Math.imul; +var Math_fround = Math.fround; +var Math_round = Math.round; +var Math_min = Math.min; +var Math_clz32 = Math.clz32; +var Math_trunc = Math.trunc; +var runDependencies = 0; +var runDependencyWatcher = null; +var dependenciesFulfilled = null; + +function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies) + } +} +Module["addRunDependency"] = addRunDependency; + +function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies) + } + if (runDependencies == 0) { + if (runDependencyWatcher !== null) { + clearInterval(runDependencyWatcher); + runDependencyWatcher = null + } + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback() + } + } +} +Module["removeRunDependency"] = removeRunDependency; +Module["preloadedImages"] = {}; +Module["preloadedAudios"] = {}; +var memoryInitializer = null; + +function integrateWasmJS(Module) { + var method = Module["wasmJSMethod"] || "native-wasm"; + Module["wasmJSMethod"] = method; + var wasmTextFile = Module["wasmTextFile"] || "opus.wasm.wast"; + var wasmBinaryFile = Module["wasmBinaryFile"] || self["cr_opusWasmBinaryUrl"] || "opus.wasm.wasm"; + var asmjsCodeFile = Module["asmjsCodeFile"] || "opus.wasm.temp.asm.js"; + if (typeof Module["locateFile"] === "function") { + wasmTextFile = Module["locateFile"](wasmTextFile); + wasmBinaryFile = Module["locateFile"](wasmBinaryFile); + asmjsCodeFile = Module["locateFile"](asmjsCodeFile) + } + var wasmPageSize = 64 * 1024; + var asm2wasmImports = { + "f64-rem": (function(x, y) { + return x % y + }), + "f64-to-int": (function(x) { + return x | 0 + }), + "i32s-div": (function(x, y) { + return (x | 0) / (y | 0) | 0 + }), + "i32u-div": (function(x, y) { + return (x >>> 0) / (y >>> 0) >>> 0 + }), + "i32s-rem": (function(x, y) { + return (x | 0) % (y | 0) | 0 + }), + "i32u-rem": (function(x, y) { + return (x >>> 0) % (y >>> 0) >>> 0 + }), + "debugger": (function() { + debugger + }) + }; + var info = { + "global": null, + "env": null, + "asm2wasm": asm2wasmImports, + "parent": Module + }; + var exports = null; + + function lookupImport(mod, base) { + var lookup = info; + if (mod.indexOf(".") < 0) { + lookup = (lookup || {})[mod] + } else { + var parts = mod.split("."); + lookup = (lookup || {})[parts[0]]; + lookup = (lookup || {})[parts[1]] + } + if (base) { + lookup = (lookup || {})[base] + } + if (lookup === undefined) { + abort("bad lookupImport to (" + mod + ")." + base) + } + return lookup + } + + function mergeMemory(newBuffer) { + var oldBuffer = Module["buffer"]; + if (newBuffer.byteLength < oldBuffer.byteLength) { + Module["printErr"]("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here") + } + var oldView = new Int8Array(oldBuffer); + var newView = new Int8Array(newBuffer); + if (!memoryInitializer) { + oldView.set(newView.subarray(Module["STATIC_BASE"], Module["STATIC_BASE"] + Module["STATIC_BUMP"]), Module["STATIC_BASE"]) + } + newView.set(oldView); + updateGlobalBuffer(newBuffer); + updateGlobalBufferViews() + } + var WasmTypes = { + none: 0, + i32: 1, + i64: 2, + f32: 3, + f64: 4 + }; + + function fixImports(imports) { + if (!0) return imports; + var ret = {}; + for (var i in imports) { + var fixed = i; + if (fixed[0] == "_") fixed = fixed.substr(1); + ret[fixed] = imports[i] + } + return ret + } + + function getBinary() { + try { + var binary; + if (Module["wasmBinary"]) { + binary = Module["wasmBinary"]; + binary = new Uint8Array(binary) + } else if (Module["readBinary"]) { + binary = Module["readBinary"](wasmBinaryFile) + } else { + throw "on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)" + } + return binary + } catch (err) { + abort(err) + } + } + + function getBinaryPromise() { + return new Promise((resolve, reject) => + { + const buffer = self.sentBuffers.get("opus-decoder-wasm"); + if (buffer) + return resolve(new Uint8Array(buffer)); + + const blob = self.sentBlobs.get("opus-decoder-wasm"); + if (!blob) + return reject("not yet received opus blob"); + + const fileReader = new FileReader(); + fileReader.onload = () => resolve(new Uint8Array(fileReader["result"])); + fileReader.onerror = () => reject(fileReader["error"]); + fileReader.readAsArrayBuffer(blob); + }); + } + + function doJustAsm(global, env, providedBuffer) { + if (typeof Module["asm"] !== "function" || Module["asm"] === methodHandler) { + if (!Module["asmPreload"]) { + eval(Module["read"](asmjsCodeFile)) + } else { + Module["asm"] = Module["asmPreload"] + } + } + if (typeof Module["asm"] !== "function") { + Module["printErr"]("asm evalling did not set the module properly"); + return false + } + return Module["asm"](global, env, providedBuffer) + } + + function doNativeWasm(global, env, providedBuffer) { + if (typeof WebAssembly !== "object") { + Module["printErr"]("no native wasm support detected"); + return false + } + if (!(Module["wasmMemory"] instanceof WebAssembly.Memory)) { + Module["printErr"]("no native wasm Memory in use"); + return false + } + env["memory"] = Module["wasmMemory"]; + info["global"] = { + "NaN": NaN, + "Infinity": Infinity + }; + info["global.Math"] = global.Math; + info["env"] = env; + + function receiveInstance(instance) { + exports = instance.exports; + if (exports.memory) mergeMemory(exports.memory); + Module["asm"] = exports; + Module["usingWasm"] = true; + removeRunDependency("wasm-instantiate") + } + addRunDependency("wasm-instantiate"); + if (Module["instantiateWasm"]) { + try { + return Module["instantiateWasm"](info, receiveInstance) + } catch (e) { + Module["printErr"]("Module.instantiateWasm callback failed with error: " + e); + return false + } + } + getBinaryPromise().then((function(binary) { + return WebAssembly.instantiate(binary, info) + })).then((function(output) { + receiveInstance(output["instance"]) + })).catch((function(reason) { + Module["printErr"]("failed to asynchronously prepare wasm: " + reason); + abort(reason) + })); + return {} + } + + function doWasmPolyfill(global, env, providedBuffer, method) { + if (typeof WasmJS !== "function") { + Module["printErr"]("WasmJS not detected - polyfill not bundled?"); + return false + } + var wasmJS = WasmJS({}); + wasmJS["outside"] = Module; + wasmJS["info"] = info; + wasmJS["lookupImport"] = lookupImport; + assert(providedBuffer === Module["buffer"]); + info.global = global; + info.env = env; + assert(providedBuffer === Module["buffer"]); + env["memory"] = providedBuffer; + assert(env["memory"] instanceof ArrayBuffer); + wasmJS["providedTotalMemory"] = Module["buffer"].byteLength; + var code; + if (method === "interpret-binary") { + code = getBinary() + } else { + code = Module["read"](method == "interpret-asm2wasm" ? asmjsCodeFile : wasmTextFile) + } + var temp; + if (method == "interpret-asm2wasm") { + temp = wasmJS["_malloc"](code.length + 1); + wasmJS["writeAsciiToMemory"](code, temp); + wasmJS["_load_asm2wasm"](temp) + } else if (method === "interpret-s-expr") { + temp = wasmJS["_malloc"](code.length + 1); + wasmJS["writeAsciiToMemory"](code, temp); + wasmJS["_load_s_expr2wasm"](temp) + } else if (method === "interpret-binary") { + temp = wasmJS["_malloc"](code.length); + wasmJS["HEAPU8"].set(code, temp); + wasmJS["_load_binary2wasm"](temp, code.length) + } else { + throw "what? " + method + } + wasmJS["_free"](temp); + wasmJS["_instantiate"](temp); + if (Module["newBuffer"]) { + mergeMemory(Module["newBuffer"]); + Module["newBuffer"] = null + } + exports = wasmJS["asmExports"]; + return exports + } + Module["asmPreload"] = Module["asm"]; + var asmjsReallocBuffer = Module["reallocBuffer"]; + var wasmReallocBuffer = (function(size) { + var PAGE_MULTIPLE = Module["usingWasm"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; + size = alignUp(size, PAGE_MULTIPLE); + var old = Module["buffer"]; + var oldSize = old.byteLength; + if (Module["usingWasm"]) { + try { + var result = Module["wasmMemory"].grow((size - oldSize) / wasmPageSize); + if (result !== (-1 | 0)) { + return Module["buffer"] = Module["wasmMemory"].buffer + } else { + return null + } + } catch (e) { + return null + } + } else { + exports["__growWasmMemory"]((size - oldSize) / wasmPageSize); + return Module["buffer"] !== old ? Module["buffer"] : null + } + }); + Module["reallocBuffer"] = (function(size) { + if (finalMethod === "asmjs") { + return asmjsReallocBuffer(size) + } else { + return wasmReallocBuffer(size) + } + }); + var finalMethod = ""; + Module["asm"] = (function(global, env, providedBuffer) { + global = fixImports(global); + env = fixImports(env); + if (!env["table"]) { + var TABLE_SIZE = Module["wasmTableSize"]; + if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; + var MAX_TABLE_SIZE = Module["wasmMaxTableSize"]; + if (typeof WebAssembly === "object" && typeof WebAssembly.Table === "function") { + if (MAX_TABLE_SIZE !== undefined) { + env["table"] = new WebAssembly.Table({ + "initial": TABLE_SIZE, + "maximum": MAX_TABLE_SIZE, + "element": "anyfunc" + }) + } else { + env["table"] = new WebAssembly.Table({ + "initial": TABLE_SIZE, + element: "anyfunc" + }) + } + } else { + env["table"] = new Array(TABLE_SIZE) + } + Module["wasmTable"] = env["table"] + } + if (!env["memoryBase"]) { + env["memoryBase"] = Module["STATIC_BASE"] + } + if (!env["tableBase"]) { + env["tableBase"] = 0 + } + var exports; + var methods = method.split(","); + for (var i = 0; i < methods.length; i++) { + var curr = methods[i]; + finalMethod = curr; + if (curr === "native-wasm") { + if (exports = doNativeWasm(global, env, providedBuffer)) break + } else if (curr === "asmjs") { + if (exports = doJustAsm(global, env, providedBuffer)) break + } else if (curr === "interpret-asm2wasm" || curr === "interpret-s-expr" || curr === "interpret-binary") { + if (exports = doWasmPolyfill(global, env, providedBuffer, curr)) break + } else { + abort("bad method: " + curr) + } + } + if (!exports) throw "no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods"; + return exports + }); + var methodHandler = Module["asm"] +} +integrateWasmJS(Module); +var ASM_CONSTS = []; +STATIC_BASE = Runtime.GLOBAL_BASE; +STATICTOP = STATIC_BASE + 28816; +__ATINIT__.push(); +memoryInitializer = Module["wasmJSMethod"].indexOf("asmjs") >= 0 || Module["wasmJSMethod"].indexOf("interpret-asm2wasm") >= 0 ? "opus.wasm.js.mem" : null; +var STATIC_BUMP = 28816; +Module["STATIC_BASE"] = STATIC_BASE; +Module["STATIC_BUMP"] = STATIC_BUMP; +var tempDoublePtr = STATICTOP; +STATICTOP += 16; + +function _llvm_stackrestore(p) { + var self = _llvm_stacksave; + var ret = self.LLVM_SAVEDSTACKS[p]; + self.LLVM_SAVEDSTACKS.splice(p, 1); + Runtime.stackRestore(ret) +} + +function ___setErrNo(value) { + if (Module["___errno_location"]) HEAP32[Module["___errno_location"]() >> 2] = value; + return value +} +Module["_sbrk"] = _sbrk; +Module["_memset"] = _memset; + +function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.set(HEAPU8.subarray(src, src + num), dest); + return dest +} +Module["_memcpy"] = _memcpy; +Module["_memmove"] = _memmove; + +function _llvm_stacksave() { + var self = _llvm_stacksave; + if (!self.LLVM_SAVEDSTACKS) { + self.LLVM_SAVEDSTACKS = [] + } + self.LLVM_SAVEDSTACKS.push(Runtime.stackSave()); + return self.LLVM_SAVEDSTACKS.length - 1 +} +DYNAMICTOP_PTR = allocate(1, "i32", ALLOC_STATIC); +STACK_BASE = STACKTOP = Runtime.alignMemory(STATICTOP); +STACK_MAX = STACK_BASE + TOTAL_STACK; +DYNAMIC_BASE = Runtime.alignMemory(STACK_MAX); +HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE; +staticSealed = true; +Module["wasmTableSize"] = 0; +Module["wasmMaxTableSize"] = 0; +Module.asmGlobalArg = { + "Math": Math, + "Int8Array": Int8Array, + "Int16Array": Int16Array, + "Int32Array": Int32Array, + "Uint8Array": Uint8Array, + "Uint16Array": Uint16Array, + "Uint32Array": Uint32Array, + "Float32Array": Float32Array, + "Float64Array": Float64Array, + "NaN": NaN, + "Infinity": Infinity +}; +Module.asmLibraryArg = { + "abort": abort, + "assert": assert, + "enlargeMemory": enlargeMemory, + "getTotalMemory": getTotalMemory, + "abortOnCannotGrowMemory": abortOnCannotGrowMemory, + "_llvm_stackrestore": _llvm_stackrestore, + "_llvm_stacksave": _llvm_stacksave, + "_emscripten_memcpy_big": _emscripten_memcpy_big, + "___setErrNo": ___setErrNo, + "DYNAMICTOP_PTR": DYNAMICTOP_PTR, + "tempDoublePtr": tempDoublePtr, + "ABORT": ABORT, + "STACKTOP": STACKTOP, + "STACK_MAX": STACK_MAX +}; +var asm = Module["asm"](Module.asmGlobalArg, Module.asmLibraryArg, buffer); +Module["asm"] = asm; +var _malloc = Module["_malloc"] = (function() { + return Module["asm"]["_malloc"].apply(null, arguments) +}); +var _destroy_decoder = Module["_destroy_decoder"] = (function() { + return Module["asm"]["_destroy_decoder"].apply(null, arguments) +}); +var getTempRet0 = Module["getTempRet0"] = (function() { + return Module["asm"]["getTempRet0"].apply(null, arguments) +}); +var _free = Module["_free"] = (function() { + return Module["asm"]["_free"].apply(null, arguments) +}); +var runPostSets = Module["runPostSets"] = (function() { + return Module["asm"]["runPostSets"].apply(null, arguments) +}); +var setTempRet0 = Module["setTempRet0"] = (function() { + return Module["asm"]["setTempRet0"].apply(null, arguments) +}); +var establishStackSpace = Module["establishStackSpace"] = (function() { + return Module["asm"]["establishStackSpace"].apply(null, arguments) +}); +var _memmove = Module["_memmove"] = (function() { + return Module["asm"]["_memmove"].apply(null, arguments) +}); +var _decode_frame = Module["_decode_frame"] = (function() { + return Module["asm"]["_decode_frame"].apply(null, arguments) +}); +var stackSave = Module["stackSave"] = (function() { + return Module["asm"]["stackSave"].apply(null, arguments) +}); +var _memset = Module["_memset"] = (function() { + return Module["asm"]["_memset"].apply(null, arguments) +}); +var _sbrk = Module["_sbrk"] = (function() { + return Module["asm"]["_sbrk"].apply(null, arguments) +}); +var _emscripten_get_global_libc = Module["_emscripten_get_global_libc"] = (function() { + return Module["asm"]["_emscripten_get_global_libc"].apply(null, arguments) +}); +var _memcpy = Module["_memcpy"] = (function() { + return Module["asm"]["_memcpy"].apply(null, arguments) +}); +var _create_decoder = Module["_create_decoder"] = (function() { + return Module["asm"]["_create_decoder"].apply(null, arguments) +}); +var setThrew = Module["setThrew"] = (function() { + return Module["asm"]["setThrew"].apply(null, arguments) +}); +var stackRestore = Module["stackRestore"] = (function() { + return Module["asm"]["stackRestore"].apply(null, arguments) +}); +var ___errno_location = Module["___errno_location"] = (function() { + return Module["asm"]["___errno_location"].apply(null, arguments) +}); +var stackAlloc = Module["stackAlloc"] = (function() { + return Module["asm"]["stackAlloc"].apply(null, arguments) +}); +Runtime.stackAlloc = Module["stackAlloc"]; +Runtime.stackSave = Module["stackSave"]; +Runtime.stackRestore = Module["stackRestore"]; +Runtime.establishStackSpace = Module["establishStackSpace"]; +Runtime.setTempRet0 = Module["setTempRet0"]; +Runtime.getTempRet0 = Module["getTempRet0"]; +Module["asm"] = asm; +if (memoryInitializer) { + if (typeof Module["locateFile"] === "function") { + memoryInitializer = Module["locateFile"](memoryInitializer) + } else if (Module["memoryInitializerPrefixURL"]) { + memoryInitializer = Module["memoryInitializerPrefixURL"] + memoryInitializer + } + if (ENVIRONMENT_IS_NODE || ENVIRONMENT_IS_SHELL) { + var data = Module["readBinary"](memoryInitializer); + HEAPU8.set(data, Runtime.GLOBAL_BASE) + } else { + addRunDependency("memory initializer"); + var applyMemoryInitializer = (function(data) { + if (data.byteLength) data = new Uint8Array(data); + HEAPU8.set(data, Runtime.GLOBAL_BASE); + if (Module["memoryInitializerRequest"]) delete Module["memoryInitializerRequest"].response; + removeRunDependency("memory initializer") + }); + + function doBrowserLoad() { + Module["readAsync"](memoryInitializer, applyMemoryInitializer, (function() { + throw "could not load memory initializer " + memoryInitializer + })) + } + if (Module["memoryInitializerRequest"]) { + function useRequest() { + var request = Module["memoryInitializerRequest"]; + if (request.status !== 200 && request.status !== 0) { + console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: " + request.status + ", retrying " + memoryInitializer); + doBrowserLoad(); + return + } + applyMemoryInitializer(request.response) + } + if (Module["memoryInitializerRequest"].response) { + setTimeout(useRequest, 0) + } else { + Module["memoryInitializerRequest"].addEventListener("load", useRequest) + } + } else { + doBrowserLoad() + } + } +} + +function ExitStatus(status) { + this.name = "ExitStatus"; + this.message = "Program terminated with exit(" + status + ")"; + this.status = status +} +ExitStatus.prototype = new Error; +ExitStatus.prototype.constructor = ExitStatus; +var initialStackTop; +var preloadStartTime = null; +var calledMain = false; +dependenciesFulfilled = function runCaller() { + if (!Module["calledRun"]) run(); + if (!Module["calledRun"]) dependenciesFulfilled = runCaller +}; +Module["callMain"] = Module.callMain = function callMain(args) { + args = args || []; + ensureInitRuntime(); + var argc = args.length + 1; + + function pad() { + for (var i = 0; i < 4 - 1; i++) { + argv.push(0) + } + } + var argv = [allocate(intArrayFromString(Module["thisProgram"]), "i8", ALLOC_NORMAL)]; + pad(); + for (var i = 0; i < argc - 1; i = i + 1) { + argv.push(allocate(intArrayFromString(args[i]), "i8", ALLOC_NORMAL)); + pad() + } + argv.push(0); + argv = allocate(argv, "i32", ALLOC_NORMAL); + try { + var ret = Module["_main"](argc, argv, 0); + exit(ret, true) + } catch (e) { + if (e instanceof ExitStatus) { + return + } else if (e == "SimulateInfiniteLoop") { + Module["noExitRuntime"] = true; + return + } else { + var toLog = e; + if (e && typeof e === "object" && e.stack) { + toLog = [e, e.stack] + } + Module.printErr("exception thrown: " + toLog); + Module["quit"](1, e) + } + } finally { + calledMain = true + } +}; + +function run(args) { + args = args || Module["arguments"]; + if (preloadStartTime === null) preloadStartTime = Date.now(); + if (runDependencies > 0) { + return + } + preRun(); + if (runDependencies > 0) return; + if (Module["calledRun"]) return; + + function doRun() { + if (Module["calledRun"]) return; + Module["calledRun"] = true; + if (ABORT) return; + ensureInitRuntime(); + preMain(); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + if (Module["_main"] && shouldRunNow) Module["callMain"](args); + postRun() + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout((function() { + setTimeout((function() { + Module["setStatus"]("") + }), 1); + doRun() + }), 1) + } else { + doRun() + } +} +Module["run"] = Module.run = run; + +function exit(status, implicit) { + if (implicit && Module["noExitRuntime"]) { + return + } + if (Module["noExitRuntime"]) {} else { + ABORT = true; + EXITSTATUS = status; + STACKTOP = initialStackTop; + exitRuntime(); + if (Module["onExit"]) Module["onExit"](status) + } + if (ENVIRONMENT_IS_NODE) { + process["exit"](status) + } + Module["quit"](status, new ExitStatus(status)) +} +Module["exit"] = Module.exit = exit; +var abortDecorators = []; + +function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what) + } + if (what !== undefined) { + Module.print(what); + Module.printErr(what); + what = JSON.stringify(what) + } else { + what = "" + } + ABORT = true; + EXITSTATUS = 1; + var extra = "\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."; + var output = "abort(" + what + ") at " + stackTrace() + extra; + if (abortDecorators) { + abortDecorators.forEach((function(decorator) { + output = decorator(output, what) + })) + } + throw output +} +Module["abort"] = Module.abort = abort; +if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()() + } +} +var shouldRunNow = true; +if (Module["noInitialRun"]) { + shouldRunNow = false +} +Module["noExitRuntime"] = true; +run() \ No newline at end of file diff --git a/DreamBeanFinal/scripts/opus.wasm.wasm b/DreamBeanFinal/scripts/opus.wasm.wasm new file mode 100644 index 0000000..09afb5b Binary files /dev/null and b/DreamBeanFinal/scripts/opus.wasm.wasm differ diff --git a/DreamBeanFinal/scripts/register-sw.js b/DreamBeanFinal/scripts/register-sw.js new file mode 100644 index 0000000..aeb70f5 --- /dev/null +++ b/DreamBeanFinal/scripts/register-sw.js @@ -0,0 +1 @@ +"use strict";window.C3_RegisterSW=async function(){if(navigator.serviceWorker)try{const a=await navigator.serviceWorker.register("sw.js",{scope:"./"});console.info("Registered service worker on "+a.scope)}catch(a){console.warn("Failed to register service worker: ",a)}}; \ No newline at end of file diff --git a/DreamBeanFinal/scripts/supportCheck.js b/DreamBeanFinal/scripts/supportCheck.js new file mode 100644 index 0000000..a1fcc06 --- /dev/null +++ b/DreamBeanFinal/scripts/supportCheck.js @@ -0,0 +1 @@ +"use strict";(function(){const a=!!document.querySelector("script[src*=\"kaspersky\" i]");var b=document.createElement("canvas"),c=!!(b.getContext("webgl")||b.getContext("experimental-webgl")),d=[];if(c||d.push("WebGL"),"undefined"==typeof WebAssembly&&d.push("WebAssembly"),0===d.length&&!a)window["C3_IsSupported"]=!0;else{var e=document.createElement("div");e.id="notSupportedWrap",document.body.appendChild(e);var f=document.createElement("h2");f.id="notSupportedTitle",f.textContent=a?"Kaspersky Internet Security broke this export":"Software update needed",e.appendChild(f);var g=document.createElement("p");g.className="notSupportedMessage";var h="This content is not supported because your device's software is out-of-date. ",i=navigator.userAgent;/android/i.test(i)?h+="

On Android, fix this by making sure the
Android System Webview app has updates enabled and is up-to-date.":/iphone|ipad|ipod/i.test(i)?h+="

Note: the iOS simulator is not currently supported due to an Apple bug. If you are using the simulator, try testing on a real device instead.":(/msie/i.test(i)||/trident/i.test(i))&&!/edge\//i.test(i)?h+="

Note: Internet Explorer is not supported. Try using Chrome or Firefox instead.":a?h="It appears a script was added to this export by Kaspersky software. This prevents the exported project from working. Try disabling Kaspersky and exporting again.":h+="Try installing any available software updates. Alternatively try on a different device.",h+="

Missing features: "+d.join(", ")+"
User agent: "+navigator.userAgent+"
",g.innerHTML=h,e.appendChild(g)}})(); \ No newline at end of file diff --git a/DreamBeanFinal/scripts/workerMain.js b/DreamBeanFinal/scripts/workerMain.js new file mode 100644 index 0000000..d11dbb2 --- /dev/null +++ b/DreamBeanFinal/scripts/workerMain.js @@ -0,0 +1 @@ +"use strict";{async function a(a){if(b)throw new Error("already initialised");b=!0;const d=a["baseUrl"];self.devicePixelRatio=a["devicePixelRatio"];const e=a["workerDependencyScripts"].map((a)=>{let b=a;return b=a instanceof Blob?URL.createObjectURL(a):new URL(b,d).toString(),b}),f=a["engineScripts"].map((a)=>new URL(a,d).toString());importScripts(...[...e,...f]),c=self["C3_CreateRuntime"](a),await self["C3_InitRuntime"](c,a)}let b=!1,c=null;self.addEventListener("message",(b)=>{const c=b.data,d=c["type"];if("init-runtime"===d)a(c);else throw new Error(`unknown message '${d}'`)})} \ No newline at end of file diff --git a/DreamBeanFinal/style.css b/DreamBeanFinal/style.css new file mode 100644 index 0000000..b06f96f --- /dev/null +++ b/DreamBeanFinal/style.css @@ -0,0 +1,39 @@ +html, body { + padding: 0; + margin: 0; + overflow: hidden; + + background: #09142c; + color: white; +} + +html, body, canvas { + touch-action: none; + touch-action-delay: none; +} + +#notSupportedWrap { + margin: 2em auto 1em auto; + width: 75%; + max-width: 45em; + border: 2px solid #aaa; + border-radius: 1em; + padding: 2em; + background-color: #f0f0f0; + font-family: "Segoe UI", Frutiger, "Frutiger Linotype", "Dejavu Sans", "Helvetica Neue", Arial, sans-serif; + color: black; +} + +#notSupportedTitle { + font-size: 1.8em; +} + +.notSupportedMessage { + font-size: 1.2em; +} + +.notSupportedMessage em { + color: #888; +} + + diff --git a/DreamBeanFinal/sw.js b/DreamBeanFinal/sw.js new file mode 100644 index 0000000..4366997 --- /dev/null +++ b/DreamBeanFinal/sw.js @@ -0,0 +1 @@ +"use strict";const OFFLINE_DATA_FILE="offline.json",CACHE_NAME_PREFIX="c3offline",BROADCASTCHANNEL_NAME="offline",CONSOLE_PREFIX="[SW] ",LAZYLOAD_KEYNAME="",broadcastChannel="undefined"==typeof BroadcastChannel?null:new BroadcastChannel("offline");function PostBroadcastMessage(a){broadcastChannel&&setTimeout(()=>broadcastChannel.postMessage(a),3e3)}function Broadcast(a){PostBroadcastMessage({"type":a})}function BroadcastDownloadingUpdate(a){PostBroadcastMessage({"type":"downloading-update","version":a})}function BroadcastUpdateReady(a){PostBroadcastMessage({"type":"update-ready","version":a})}function IsUrlInLazyLoadList(a,b){if(!b)return!1;try{for(const c of b)if(new RegExp(c).test(a))return!0}catch(a){console.error("[SW] Error matching in lazy-load list: ",a)}return!1}function WriteLazyLoadListToStorage(a){return"undefined"==typeof localforage?Promise.resolve():localforage.setItem(LAZYLOAD_KEYNAME,a)}function ReadLazyLoadListFromStorage(){return"undefined"==typeof localforage?Promise.resolve([]):localforage.getItem(LAZYLOAD_KEYNAME)}function GetCacheBaseName(){return"c3offline-"+self.registration.scope}function GetCacheVersionName(a){return GetCacheBaseName()+"-v"+a}async function GetAvailableCacheNames(){const a=await caches.keys(),b=GetCacheBaseName();return a.filter((a)=>a.startsWith(b))}async function IsUpdatePending(){const a=await GetAvailableCacheNames();return 2<=a.length}async function GetMainPageUrl(){const a=await clients.matchAll({includeUncontrolled:!0,type:"window"});for(const b of a){let a=b.url;if(a.startsWith(self.registration.scope)&&(a=a.substring(self.registration.scope.length)),a&&"/"!==a)return a.startsWith("?")&&(a="/"+a),a}return""}function fetchWithBypass(a,b){return"string"==typeof a&&(a=new Request(a)),b?fetch(a.url,{headers:a.headers,mode:a.mode,credentials:a.credentials,redirect:a.redirect,cache:"no-store"}):fetch(a)}async function CreateCacheFromFileList(a,b,c){const d=await Promise.all(b.map((a)=>fetchWithBypass(a,c)));let e=!0;for(const f of d)f.ok||(e=!1,console.error("[SW] Error fetching '"+f.url+"' ("+f.status+" "+f.statusText+")"));if(!e)throw new Error("not all resources were fetched successfully");const f=await caches.open(a);try{return await Promise.all(d.map((a,c)=>f.put(b[c],a)))}catch(b){throw console.error("[SW] Error writing cache entries: ",b),caches.delete(a),b}}async function UpdateCheck(a){try{const b=await fetchWithBypass(OFFLINE_DATA_FILE,!0);if(!b.ok)throw new Error("offline.json responded with "+b.status+" "+b.statusText);const c=await b.json(),d=c.version,e=c.fileList,f=c.lazyLoad,g=GetCacheVersionName(d),h=await caches.has(g);if(h){const a=await IsUpdatePending();return void(a?(console.log("[SW] Update pending"),Broadcast("update-pending")):(console.log("[SW] Up to date"),Broadcast("up-to-date")))}const i=await GetMainPageUrl();e.unshift("./"),i&&-1===e.indexOf(i)&&e.unshift(i),console.log("[SW] Caching "+e.length+" files for offline use"),a?Broadcast("downloading"):BroadcastDownloadingUpdate(d),f&&(await WriteLazyLoadListToStorage(f)),await CreateCacheFromFileList(g,e,!a);const j=await IsUpdatePending();j?(console.log("[SW] All resources saved, update ready"),BroadcastUpdateReady(d)):(console.log("[SW] All resources saved, offline support ready"),Broadcast("offline-ready"))}catch(a){console.warn("[SW] Update check failed: ",a)}}self.addEventListener("install",(a)=>{a.waitUntil(UpdateCheck(!0).catch(()=>null))});async function GetCacheNameToUse(a,b){if(1===a.length||!b)return a[0];const c=await clients.matchAll();if(1caches.delete(a))),d}async function HandleFetch(a,b){const c=await GetAvailableCacheNames();if(!c.length)return fetch(a.request);const d=await GetCacheNameToUse(c,b),e=await caches.open(d),f=await e.match(a.request);if(f)return f;const g=await Promise.all([fetch(a.request),ReadLazyLoadListFromStorage()]),h=g[0],i=g[1];if(IsUrlInLazyLoadList(a.request.url,i))try{await e.put(a.request,h.clone())}catch(b){console.warn("[SW] Error caching '"+a.request.url+"': ",b)}return h}self.addEventListener("fetch",(a)=>{if(new URL(a.request.url).origin===location.origin){const b="navigate"===a.request.mode,c=HandleFetch(a,b);b&&a.waitUntil(c.then(()=>UpdateCheck(!1))),a.respondWith(c)}}); \ No newline at end of file