@vimp-games/tanks 0.22.0 → 0.22.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{vimp_tanks_core_bg-B-pOmY8c.wasm → vimp_tanks_core_bg-D1al7yzL.wasm} +0 -0
- package/dist/{client-tHVZjmt0.js → client-BChiB11Q.js} +3 -3
- package/dist/core-node/vimp_tanks_core_bg.wasm +0 -0
- package/dist/{host-Cr6VOb5d.js → host-C3XXTf32.js} +1 -1
- package/dist/manifest.json +5 -5
- package/dist/maps/garden.json +1 -1
- package/dist/sounds/bomb-has-been-planted.webm +0 -0
- package/dist/sounds/bomb-has-been-planted2.webm +0 -0
- package/dist/sounds/defeat.webm +0 -0
- package/dist/sounds/empty-bullet.webm +0 -0
- package/dist/sounds/explosion.webm +0 -0
- package/dist/sounds/frag.webm +0 -0
- package/dist/sounds/game-over.webm +0 -0
- package/dist/sounds/hit.webm +0 -0
- package/dist/sounds/round-start.webm +0 -0
- package/dist/sounds/shot.webm +0 -0
- package/dist/sounds/tank-engine.webm +0 -0
- package/dist/sounds/tank-landing.webm +0 -0
- package/dist/sounds/tank-water.webm +0 -0
- package/dist/sounds/victory.webm +0 -0
- package/package.json +2 -2
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
class we{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Ne.unregister(this),e}free(){const e=this.__destroy_into_raw();i.__wbg_gamecore_free(e,0)}abi_describe(){let e,a;try{const r=i.gamecore_abi_describe(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}alive_players(){const e=i.gamecore_alive_players(this.__wbg_ptr);var a=Me(e[0],e[1]).slice();return i.__wbindgen_free(e[0],e[1]*4,4),a}apply_aim(e,a,r,o,s){i.gamecore_apply_aim(this.__wbg_ptr,e,a,r,o,s)}apply_input(e,a,r,o){const s=k(r,i.__wbindgen_malloc,i.__wbindgen_realloc),l=x,c=k(o,i.__wbindgen_malloc,i.__wbindgen_realloc),d=x;i.gamecore_apply_input(this.__wbg_ptr,e,a,s,l,c,d)}body_has_events(){return i.gamecore_body_has_events(this.__wbg_ptr)!==0}clear(){i.gamecore_clear(this.__wbg_ptr)}debug_json(){let e,a;try{const r=i.gamecore_debug_json(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}deserialize_state(e){const a=Le(e,i.__wbindgen_malloc),r=x,o=i.gamecore_deserialize_state(this.__wbg_ptr,a,r);if(o[1])throw C(o[0])}dispatch(e,a){const r=k(e,i.__wbindgen_malloc,i.__wbindgen_realloc),o=x,s=Le(a,i.__wbindgen_malloc),l=x,c=i.gamecore_dispatch(this.__wbg_ptr,r,o,s,l);var d=be(c[0],c[1]).slice();return i.__wbindgen_free(c[0],c[1]*1,1),d}frame_bytes(){const e=i.gamecore_frame_bytes(this.__wbg_ptr);var a=be(e[0],e[1]).slice();return i.__wbindgen_free(e[0],e[1]*1,1),a}frame_ptr(){return i.gamecore_frame_ptr(this.__wbg_ptr)>>>0}is_alive(e){return i.gamecore_is_alive(this.__wbg_ptr,e)!==0}last_input_seq(e){return i.gamecore_last_input_seq(this.__wbg_ptr,e)>>>0}load_map(e){const a=k(e,i.__wbindgen_malloc,i.__wbindgen_realloc),r=x,o=i.gamecore_load_map(this.__wbg_ptr,a,r);if(o[1])throw C(o[0])}map_info(){let e,a;try{const r=i.gamecore_map_info(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}constructor(e){const a=k(e,i.__wbindgen_malloc,i.__wbindgen_realloc),r=x,o=i.gamecore_new(a,r);if(o[2])throw C(o[1]);return this.__wbg_ptr=o[0],Ne.register(this,this.__wbg_ptr,this),this}pack_body(){const e=i.gamecore_pack_body(this.__wbg_ptr);if(e[1])throw C(e[0])}pack_frame(e,a,r,o,s,l,c,d){var p=nt(c)?0:k(c,i.__wbindgen_malloc,i.__wbindgen_realloc),m=x;return i.gamecore_pack_frame(this.__wbg_ptr,e,a,r,o,s,l,p,m,d)>>>0}players_data(){let e,a;try{const r=i.gamecore_players_data(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}position_of(e){const a=i.gamecore_position_of(this.__wbg_ptr,e);var r=Me(a[0],a[1]).slice();return i.__wbindgen_free(a[0],a[1]*4,4),r}remove_actor(e){i.gamecore_remove_actor(this.__wbg_ptr,e)}remove_players_and_shots(){let e,a;try{const r=i.gamecore_remove_players_and_shots(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}remove_scripted_actor(e){i.gamecore_remove_scripted_actor(this.__wbg_ptr,e)}reset_actor(e,a,r,o,s){i.gamecore_reset_actor(this.__wbg_ptr,e,a,r,o,s)}reset_all_vitals(){i.gamecore_reset_all_vitals(this.__wbg_ptr)}serialize_state(){const e=i.gamecore_serialize_state(this.__wbg_ptr);if(e[3])throw C(e[2]);var a=be(e[0],e[1]).slice();return i.__wbindgen_free(e[0],e[1]*1,1),a}set_actor_level(e,a){i.gamecore_set_actor_level(this.__wbg_ptr,e,a)}spawn_actor(e,a,r,o,s,l){const c=k(a,i.__wbindgen_malloc,i.__wbindgen_realloc),d=x,p=i.gamecore_spawn_actor(this.__wbg_ptr,e,c,d,r,o,s,l);if(p[1])throw C(p[0])}spawn_scripted_actor(e,a,r,o,s,l){const c=k(a,i.__wbindgen_malloc,i.__wbindgen_realloc),d=x,p=i.gamecore_spawn_scripted_actor(this.__wbg_ptr,e,c,d,r,o,s,l);if(p[1])throw C(p[0])}step(e){i.gamecore_step(this.__wbg_ptr,e)}take_events(){let e,a;try{const r=i.gamecore_take_events(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}}Symbol.dispose&&(we.prototype[Symbol.dispose]=we.prototype.free);function at(){return{__proto__:null,"./vimp_tanks_core_bg.js":{__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,a){return Error(R(e,a))},__wbg___wbindgen_throw_344f42d3211c4765:function(e,a){throw new Error(R(e,a))},__wbindgen_init_externref_table:function(){const e=i.__wbindgen_externrefs,a=e.grow(4);e.set(0,void 0),e.set(a+0,void 0),e.set(a+1,null),e.set(a+2,!0),e.set(a+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>i.__wbg_clientcore_free(t,1));const Ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>i.__wbg_gamecore_free(t,1));function Me(t,e){return t=t>>>0,rt().subarray(t/4,t/4+e)}function be(t,e){return t=t>>>0,$().subarray(t/1,t/1+e)}let q=null;function rt(){return(q===null||q.byteLength===0)&&(q=new Float32Array(i.memory.buffer)),q}function R(t,e){return st(t>>>0,e)}let X=null;function $(){return(X===null||X.byteLength===0)&&(X=new Uint8Array(i.memory.buffer)),X}function nt(t){return t==null}function Le(t,e){const a=e(t.length*1,1)>>>0;return $().set(t,a/1),x=t.length,a}function k(t,e,a){if(a===void 0){const c=K.encode(t),d=e(c.length,1)>>>0;return $().subarray(d,d+c.length).set(c),x=c.length,d}let r=t.length,o=e(r,1)>>>0;const s=$();let l=0;for(;l<r;l++){const c=t.charCodeAt(l);if(c>127)break;s[o+l]=c}if(l!==r){l!==0&&(t=t.slice(l)),o=a(o,r,r=l+t.length*3,1)>>>0;const c=$().subarray(o+l,o+r),d=K.encodeInto(t,c);l+=d.written,o=a(o,r,l,1)>>>0}return x=l,o}function C(t){const e=i.__wbindgen_externrefs.get(t);return i.__externref_table_dealloc(t),e}let ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ce.decode();const ot=2146435072;let xe=0;function st(t,e){return xe+=e,xe>=ot&&(ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ce.decode(),xe=e),ce.decode($().subarray(t,t+e))}const K=new TextEncoder;"encodeInto"in K||(K.encodeInto=function(t,e){const a=K.encode(t);return e.set(a),{read:t.length,written:a.length}});let x=0,i;function it(t,e){return i=t.exports,q=null,X=null,i.__wbindgen_start(),i}async function lt(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(o){if(t.ok&&a(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",o);else throw o}const r=await t.arrayBuffer();return await WebAssembly.instantiate(r,e)}else{const r=await WebAssembly.instantiate(t,e);return r instanceof WebAssembly.Instance?{instance:r,module:t}:r}function a(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}async function ct(t){if(i!==void 0)return i;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),t===void 0&&(t=new URL("/assets/vimp_tanks_core_bg-B-pOmY8c.wasm",import.meta.url));const e=at();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:a,module:r}=await lt(await t,e);return it(a)}const pt={setId:"c1",scale:.2,spriteSheet:{img:"tiles3.png",frames:[[0,64,32,32],[0,192,32,32],[96,64,32,32]]},layers:{1:[0,1],4:[2]},step:32,physicsStatic:[1],physicsDynamic:(function(){const r=[];for(let p=0;p<20;p+=1)for(let m=0;m<1;m+=1){const E=(104+m*3)*32+48,ge=(45+p*3)*32+48;r.push({density:20,layer:3,position:[E,ge],angle:0,width:96,height:96,img:"b1.png",linearDamping:8,angularDamping:16})}return r})(),respawns:{team1:[[448,1840,0],[256,2304,0],[448,2688,0],[256,3e3,0],[256,512,0],[448,832,0],[256,1152,0],[448,3648,0],[256,3968,0],[448,4288,0]],team2:[[6272,1840,180],[6464,2304,180],[6272,2688,180],[6464,3e3,180],[6464,512,180],[6272,832,180],[6464,1152,180],[6272,3648,180],[6464,3968,180],[6272,4288,180]]},map:(function(){const a={floor:0,wall:1,effect:2},r=Array.from({length:150},()=>Array(210).fill(a.floor));for(let s=0;s<150;s++)for(let l=0;l<210;l++)(s<2||s>=148||l<2||l>=208)&&(r[s][l]=a.wall);const o=(s,l,c,d)=>{for(let p=l;p<=d;p++)for(let m=s;m<=c;m++)m>=0&&m<210&&p>=0&&p<150&&(r[p][m]=a.wall)};o(50,0,51,30),o(50,119,51,149),o(158,0,159,30),o(158,119,159,149),o(80,30,130,31),o(80,118,130,119);for(let s=64;s<86;s++)for(let l=2;l<208;l++)(l+s)%2===0?r[s][l]=a.effect:r[s][l]=a.floor;return r})()},Q=32,Be=16,n={EMPTY:0,ASPHALT:1,SIDEWALK:2,LANE:3,SAND:4,MUD:5,WATER:6,OIL:7,CONVEYOR_E:8,CONVEYOR_W:9,BOOST_N:10,BOOST_E:11,WALL:12,ROOF:13,SLAB:14,RAILING:15,RAMP_N:16,RAMP_S:17,RAMP_E:18,RAMP_W:19,CANAL_WALL:20,WATER_2:21,WATER_3:22,WATER_4:23,CONVEYOR_E_2:24,CONVEYOR_E_3:25,CONVEYOR_E_4:26,CONVEYOR_W_2:27,CONVEYOR_W_3:28,CONVEYOR_W_4:29,BOOST_N_2:30,BOOST_E_2:31,FAN:32},mt=n.FAN+1,ft=Array.from({length:mt},(t,e)=>[e%Be*Q,Math.floor(e/Be)*Q,Q,Q]),P=96,pe=72,A=32,v={x0:22,x1:73,railNorth:20,railSouth:26},Ce={x0:15,x1:21},Ie={x0:74,x1:80},De={x0:38,x1:40},We={x0:55,x1:57},y={x0:24,x1:36,y0:30,y1:40},J={x0:18,x1:19,y0:34,y1:36},z={x0:20,x1:23,y0:34,y1:36},Fe={x0:29,x1:31},ee={wallNorth:54,wallSouth:62},Se=[{x0:27,x1:31},{x0:64,x1:68}],V={y0:53,y1:63},Ve={y0:50,y1:52},Ye={y0:64,y1:66},Pe={x0:45,x1:50},te={x0:47,x1:48,y0:64,y1:65},ve=[{x0:4,x1:10,y0:3,y1:7,roof:!0},{x0:25,x1:31,y0:3,y1:7,roof:!0},{x0:37,x1:44,y0:3,y1:15},{x0:51,x1:58,y0:3,y1:15},{x0:85,x1:91,y0:3,y1:7},{x0:38,x1:43,y0:29,y1:32,roof:!0},{x0:52,x1:57,y0:29,y1:32,roof:!0},{x0:38,x1:43,y0:39,y1:42,roof:!0},{x0:52,x1:57,y0:39,y1:42,roof:!0},{x0:62,x1:70,y0:31,y1:39},{x0:3,x1:8,y0:45,y1:50,roof:!0},{x0:87,x1:92,y0:45,y1:50,roof:!0}],qe=t=>Array.from({length:pe},()=>Array(P).fill(t)),u=(t,e,a,r,o,s)=>{for(let l=a;l<=o;l+=1)for(let c=e;c<=r;c+=1)t[l][c]=s},Z=(t,e,a,r,o)=>u(t,a,e,r,e,o),D=(t,e,a,r,o)=>u(t,e,a,e,r,o),_e=(t,e,a)=>t>=e&&t<=a,j=(t,e,a,r)=>{for(let o=a;o<=r;o+=2)t[e][o]===n.ASPHALT&&(t[e][o]=n.LANE)},dt=(function(){const t=qe(n.ASPHALT);for(const e of ve)u(t,e.x0-1,e.y0-1,e.x1+1,e.y1+1,n.SIDEWALK);for(const e of ve)u(t,e.x0,e.y0,e.x1,e.y1,n.WALL);j(t,23,2,93),j(t,35,38,44),j(t,35,51,57),j(t,47,2,93),j(t,68,2,93),u(t,6,11,17,12,n.CONVEYOR_E),u(t,16,15,27,16,n.CONVEYOR_W),u(t,63,9,72,15,n.SAND),u(t,80,12,90,16,n.SAND),u(t,73,3,79,8,n.MUD),u(t,75,11,79,16,n.MUD),u(t,45,34,50,37,n.OIL),u(t,1,ee.wallNorth+1,P-2,ee.wallSouth-1,n.WATER);for(const e of[ee.wallNorth,ee.wallSouth])for(let a=1;a<P-1;a+=1)_e(a,Pe.x0,Pe.x1)||Se.some(o=>_e(a,o.x0,o.x1))||(t[e][a]=n.CANAL_WALL);u(t,te.x0,te.y0,te.x1,te.y1,n.BOOST_N),u(t,J.x0,J.y0,J.x1,J.y1,n.BOOST_E),u(t,Ce.x0,v.railNorth+1,Ce.x1,v.railSouth-1,n.RAMP_E),u(t,Ie.x0,v.railNorth+1,Ie.x1,v.railSouth-1,n.RAMP_W),u(t,z.x0,z.y0,z.x1,z.y1,n.RAMP_E);for(const e of Se)u(t,e.x0+1,Ve.y0,e.x1-1,Ve.y1,n.RAMP_S),u(t,e.x0+1,Ye.y0,e.x1-1,Ye.y1,n.RAMP_N);return Z(t,0,0,P-1,n.WALL),Z(t,pe-1,0,P-1,n.WALL),D(t,0,0,pe-1,n.WALL),D(t,P-1,0,pe-1,n.WALL),t})(),ut=(function(){const t=qe(n.EMPTY);for(const e of ve)e.roof&&u(t,e.x0,e.y0,e.x1,e.y1,n.ROOF);u(t,v.x0,v.railNorth+1,v.x1,v.railSouth-1,n.SLAB);for(let e=v.x0;e<=v.x1;e+=1)t[v.railNorth][e]=_e(e,De.x0,De.x1)?n.SLAB:n.RAILING,t[v.railSouth][e]=_e(e,We.x0,We.x1)?n.SLAB:n.RAILING;u(t,60,22,62,24,n.OIL),u(t,y.x0,y.y0,y.x1,y.y1,n.SLAB),Z(t,y.y0,y.x0,y.x1,n.RAILING),Z(t,y.y1,y.x0,y.x1,n.RAILING),D(t,y.x0,y.y0,y.y1,n.RAILING),D(t,y.x1,y.y0,y.y1,n.RAILING),D(t,y.x0,z.y0,z.y1,n.SLAB),Z(t,y.y1,Fe.x0,Fe.x1,n.SLAB);for(const e of Se)u(t,e.x0+1,V.y0,e.x1-1,V.y1,n.SLAB),D(t,e.x0,V.y0,V.y1,n.RAILING),D(t,e.x1,V.y0,V.y1,n.RAILING);return t})(),_t=(t,e)=>[t*A+A/2,e*A+A/2],ke=(t,e,a,r,o)=>({layer:3,position:[t*A+(A-a)/2,e*A+(A-r)/2],angle:0,width:a,height:r,linearDamping:6,angularDamping:14,level:0,...o}),T=(t,e)=>({...ke(t,e,64,12,{}),position:[t*A,e*A+(A-12)/2],density:30,img:"prop_fence.png",game:{prop:"fence",imgDestroyed:"prop_fence_broken.png"}}),w=(t,e,a=0)=>ke(t,e,32,32,{density:40,img:"prop_crate.png",level:a,game:{prop:"crate",imgDamaged:"prop_crate_damaged.png",imgDestroyed:"prop_crate_broken.png"}}),Y=(t,e)=>ke(t,e,24,24,{density:30,img:"prop_barrel.png",game:{prop:"barrel"}}),h=(t,e,a)=>[..._t(t,e),a,0],g=(t,e,a=0,r={})=>({cell:[t,e],level:a,radius:110,color:16760944,intensity:.9,head:!0,flicker:0,...r}),H=(t,e,a,r)=>{const o=[];for(let s=t;s<=e;s+=a)o.push(r(s));return o},ze=60,yt={setId:"c1",scale:.4,spriteSheet:{img:"city.png",frames:ft},layers:{1:[n.ASPHALT,n.SIDEWALK,n.LANE,n.SAND,n.MUD,n.WATER,n.OIL,n.CONVEYOR_E,n.CONVEYOR_W,n.BOOST_N,n.BOOST_E,n.RAMP_N,n.RAMP_S,n.RAMP_E,n.RAMP_W],2:[n.WALL],4:[n.CANAL_WALL]},volumes:{2:1,4:.25},step:A,physicsStatic:[n.WALL,n.CANAL_WALL],levels:{1:{map:ut,floor:[n.SLAB,n.RAILING,n.ROOF,n.OIL],walls:[n.RAILING],layers:{1:[n.SLAB,n.OIL],2:[n.ROOF],4:[n.RAILING]},volumes:{4:.35}}},ramps:[{tile:n.RAMP_E,dir:"east",from:0,to:1},{tile:n.RAMP_W,dir:"west",from:0,to:1},{tile:n.RAMP_S,dir:"south",from:0,to:1},{tile:n.RAMP_N,dir:"north",from:0,to:1}],physicsDynamic:[w(3,11),w(3,13),w(20,10),w(21,10),w(31,15),w(32,15),Y(28,13),Y(29,13),Y(28,14),Y(29,14),T(62,8),T(64,8),T(66,8),T(68,8),T(70,8),T(82,11),T(84,11),T(86,11),T(88,11),T(90,11),w(66,4),w(68,4),w(80,4),w(82,4),Y(10,63),Y(85,63),w(34,31,1),w(35,31,1)],respawns:{team1:[h(9,24,0),h(4,20,0),h(9,35,0),h(4,37,0),h(4,29,0),h(9,29,0),h(4,42,0),h(9,42,0)],team2:[h(86,24,180),h(91,24,180),h(86,35,180),h(91,37,180),h(91,29,180),h(86,29,180),h(91,42,180),h(86,42,180)]},game:{surfaces:{0:{[n.SAND]:"sand",[n.MUD]:"mud",[n.WATER]:"water",[n.OIL]:"oil",[n.CONVEYOR_E]:{type:"conveyor",dir:"east"},[n.CONVEYOR_W]:{type:"conveyor",dir:"west"},[n.BOOST_N]:{type:"boost",dir:"north"},[n.BOOST_E]:{type:"boost",dir:"east"}},1:{[n.OIL]:"oil"}},lighting:{night:!0,ambient:3818080,lamps:[...H(12,84,8,t=>g(t,19)),...H(16,80,8,t=>g(t,27)),g(44,33,0,{color:16767392}),g(51,33,0,{color:16767392}),g(44,38,0,{color:16767392}),g(51,38,0,{color:16767392}),...H(12,84,8,t=>g(t,45)),...H(16,80,16,t=>g(t,68,0,{flicker:.2})),g(12,32,0,{color:10537215}),g(83,32,0,{color:10537215}),g(15,9,0,{flicker:.35}),g(80,10,0,{flicker:.35}),...H(26,70,8,t=>g(t,23,1,{radius:90,color:13623551})),g(30,35,1,{radius:100}),g(29,58,1,{radius:90}),g(66,58,1,{radius:90})]},animatedTiles:{[n.WATER]:{kind:"frames",frames:[n.WATER,n.WATER_2,n.WATER_3,n.WATER_4],fps:4},[n.CONVEYOR_E]:{kind:"frames",frames:[n.CONVEYOR_E,n.CONVEYOR_E_2,n.CONVEYOR_E_3,n.CONVEYOR_E_4],speed:ze},[n.CONVEYOR_W]:{kind:"frames",frames:[n.CONVEYOR_W,n.CONVEYOR_W_2,n.CONVEYOR_W_3,n.CONVEYOR_W_4],speed:ze},[n.BOOST_N]:{kind:"frames",frames:[n.BOOST_N,n.BOOST_N_2],fps:2},[n.BOOST_E]:{kind:"frames",frames:[n.BOOST_E,n.BOOST_E_2],fps:2}},roofs:{1:[n.ROOF]},signs:[{cell:[40,30],level:1,layer:2,text:"HOTEL",color:16726736,size:18,flicker:{pulse:.15,dropouts:.1},light:{radius:80,intensity:.7}},{cell:[55,30],level:1,layer:2,text:"BAR",color:3858687,size:20,flicker:{pulse:.3,dropouts:.3},light:{radius:70,intensity:.6}},{cell:[40,41],level:1,layer:2,text:"CLUB",color:10115839,size:18,angle:-8,flicker:{pulse:.05,dropouts:0},light:{radius:80,intensity:.7}},{cell:[55,41],level:1,layer:2,text:"MOTEL",color:16734778,size:16,flicker:{pulse:.2,dropouts:.5},light:{radius:70,intensity:.6}},{cell:[5,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.05},light:{radius:60,intensity:.5}},{cell:[90,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.2},light:{radius:60,intensity:.5}}],decals:[{cell:[6,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.5},{cell:[8,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.1},{cell:[27,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.8},{cell:[29,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:.9}]},map:dt},Xe=[],ae=32,B=(t,e,a,r)=>{for(let o=0;o<a;o+=1){const s=r?[t*ae,(e+o)*ae]:[(t+o)*ae,e*ae];Xe.push({density:100,layer:3,position:s,angle:0,img:"b1.png",width:32,height:32,linearDamping:5,angularDamping:14})}};B(30,2,10,!0);B(2,30,10,!1);B(30,22,9,!0);B(22,30,9,!1);const L=120,he=30;B(L-he-1,L-12,10,!0);B(L-12,L-he-1,10,!1);B(L-he-1,L-31,9,!0);B(L-31,L-he-1,9,!1);const ht={setId:"c1",spriteSheet:{img:"tiles3.png",frames:[[96,0,32,32],[32,32,32,32],[64,32,32,32],[0,96,32,32]]},layers:{1:[0,1,2],4:[3]},step:32,physicsStatic:[2],physicsDynamic:[...Xe],respawns:{team1:[[320,320,45],[320,480,45],[320,640,45],[480,320,45],[480,480,45],[480,640,45],[640,320,45],[640,480,45],[640,640,45],[800,400,45]],team2:[[3520,3520,225],[3520,3360,225],[3520,3200,225],[3360,3520,225],[3360,3360,225],[3360,3200,225],[3200,3520,225],[3200,3360,225],[3200,3200,225],[3040,3440,225]]},map:(function(){const a={stone:0,grass:1,wall:2,water:3},r=Array.from({length:120},()=>Array(120).fill(a.grass)),o=()=>{for(let p=0;p<120;p+=1)for(let m=0;m<120;m+=1)(p===0||p===119||m===0||m===119)&&(r[p][m]=a.wall)},s=(p,m,E,ge=.5)=>{for(let W=m-E;W<=m+E;W+=1)for(let F=p-E;F<=p+E;F+=1)F>0&&F<119&&W>0&&W<119&&Math.sqrt((F-p)**2+(W-m)**2)<=E&&Math.random()<ge&&(r[W][F]=a.wall)};o();const l=Math.floor(120/2),c=Math.floor(120/2),d=22;for(let p=c-d;p<=c+d;p+=1)for(let m=l-d;m<=l+d;m+=1)Math.sqrt((m-l)**2+(p-c)**2)<=d&&(r[p][m]=a.stone);for(let p=c-10;p<=c+10;p+=1)for(let m=l-10;m<=l+10;m+=1)Math.sqrt((m-l)**2+(p-c)**2)<=10&&(r[p][m]=a.water);return s(35,85,12,.7),s(85,35,12,.7),s(20,60,8,.6),s(60,20,8,.6),s(100,60,8,.6),s(60,100,8,.6),r})()},ye=80,Ae=60,N=32,_={ground:0,wall:1,slab:2,railing:3,rampNorth:4,rampSouth:5},S={railNorth:25,slabTop:26,slabBottom:30,railSouth:31,left:2,right:ye-3},U={x0:3,x1:5,y0:32,y1:34},G={x0:74,x1:76,y0:22,y1:24},Ue={x0:30,x1:33},Ge={x0:48,x1:51},Ke=t=>Array.from({length:Ae},()=>Array(ye).fill(t)),re=(t,e,a)=>t>=e&&t<=a,gt=(function(){const t=Ke(_.ground);for(let e=0;e<Ae;e+=1)for(let a=0;a<ye;a+=1)(e<2||e>=Ae-2||a<2||a>=ye-2)&&(t[e][a]=_.wall);for(let e=U.y0;e<=U.y1;e+=1)for(let a=U.x0;a<=U.x1;a+=1)t[e][a]=_.rampNorth;for(let e=G.y0;e<=G.y1;e+=1)for(let a=G.x0;a<=G.x1;a+=1)t[e][a]=_.rampSouth;return t})(),bt=(function(){const t=Ke(0);for(let e=S.left;e<=S.right;e+=1){for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=_.slab;const a=re(e,G.x0,G.x1)||re(e,Ue.x0,Ue.x1),r=re(e,U.x0,U.x1)||re(e,Ge.x0,Ge.x1);if(t[S.railNorth][e]=a?_.slab:_.railing,t[S.railSouth][e]=r?_.slab:_.railing,e===S.left||e===S.right)for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=_.railing}return t})(),Ze=(t,e)=>[t*N+N/2,e*N+N/2],ne=(t,e,a,r=64)=>({density:40,layer:3,position:[t*N,e*N+(N-r)/2],angle:0,width:r,height:r,img:"b1.png",linearDamping:6,angularDamping:14,level:a}),b=(t,e,a)=>[...Ze(t,e),a],oe=(t,e,a,r)=>[...Ze(t,e),a,r],xt={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[352,64,32,32],[384,64,32,32]]},layers:{1:[_.ground,_.rampNorth,_.rampSouth],2:[_.wall]},volumes:{2:1},step:N,physicsStatic:[_.wall],levels:{1:{map:bt,floor:[_.slab,_.railing],walls:[_.railing],layers:{1:[_.slab],4:[_.railing]},volumes:{4:.35}}},ramps:[{tile:_.rampNorth,dir:"north",from:0,to:1},{tile:_.rampSouth,dir:"south",from:0,to:1}],physicsDynamic:[ne(20,28,0),ne(60,28,0),ne(31,S.slabTop,1,32),ne(49,S.slabBottom,1,32)],respawns:{team1:[b(3,38,270),b(9,38,0),b(6,6,0),b(12,6,0),b(6,14,0),b(12,14,0),b(6,22,0),b(12,22,0),oe(10,29,0,1),oe(16,29,0,1)],team2:[b(49,36,270),b(70,38,180),b(73,6,180),b(67,6,180),b(73,14,180),b(67,14,180),b(73,22,180),b(67,22,180),oe(69,29,180,1),oe(63,29,180,1)]},map:gt},wt={setId:"c1",scale:.6,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[160,0,32,32],[0,64,32,32],[0,64,32,32]]},layers:{1:[0,2,4],2:[1],4:[3]},physicsStatic:[1],physicsDynamic:[],step:32,respawns:{team1:[[130,520,0],[130,620,0],[130,720,0],[130,820,0],[230,520,0],[230,620,0],[230,720,0],[230,820,0],[330,620,0],[330,720,0]],team2:[[1600,520,180],[1600,620,180],[1600,720,180],[1600,820,180],[1500,520,180],[1500,620,180],[1500,720,180],[1500,820,180],[1400,620,180],[1400,720,180]]},map:(function(){const t=[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,2,2,4,3,3,3,4,2,2,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],e=[];for(const a of t){const r=[],o=[];for(const s of a)r.push(s,s),o.push(s,s);e.push(r,o)}return e})()},Te=72,Oe=48,M=32,f={ground:0,wall:1,slab1:2,railing1:3,slab2:4,railing2:5,rampLong:6,rampSide:7,rampSteep:8,rampStep:9},se={x0:14,x1:46,y0:12,y1:30},ie={x0:34,x1:52,y0:16,y1:26},me={x0:5,x1:13,y:21},fe={x:24,y0:31,y1:34},de={x0:53,x1:56,y:21},ue={x0:31,x1:33,y:21},$e={x0:20,x1:22},je={x0:40,x1:42},St=[{x0:8,x1:11,y0:14,y1:17},{x0:60,x1:63,y0:30,y1:33}],Re=t=>Array.from({length:Oe},()=>Array(Te).fill(t)),Qe=(t,e,a)=>t>=e&&t<=a,vt=(function(){const t=Re(f.ground);for(let e=0;e<Oe;e+=1)for(let a=0;a<Te;a+=1)(e<2||e>=Oe-2||a<2||a>=Te-2)&&(t[e][a]=f.wall);for(const e of St)for(let a=e.y0;a<=e.y1;a+=1)for(let r=e.x0;r<=e.x1;r+=1)t[a][r]=f.wall;for(let e=me.x0;e<=me.x1;e+=1)t[me.y][e]=f.rampLong;for(let e=fe.y0;e<=fe.y1;e+=1)t[e][fe.x]=f.rampSide;for(let e=de.x0;e<=de.x1;e+=1)t[de.y][e]=f.rampSteep;return t})(),Je=(t,e,a,r,o)=>{for(let s=e.y0;s<=e.y1;s+=1)for(let l=e.x0;l<=e.x1;l+=1){const c=l===e.x0||l===e.x1||s===e.y0||s===e.y1;t[s][l]=c&&!o(l,s)?r:a}},At=(function(){const t=Re(0);Je(t,se,f.slab1,f.railing1,(e,a)=>e===se.x0&&a===me.y||a===se.y1&&e===fe.x||a===se.y0&&Qe(e,$e.x0,$e.x1));for(let e=ue.x0;e<=ue.x1;e+=1)t[ue.y][e]=f.rampStep;return t})(),Tt=(function(){const t=Re(0);return Je(t,ie,f.slab2,f.railing2,(e,a)=>e===ie.x0&&a===ue.y||e===ie.x1&&a===de.y||a===ie.y1&&Qe(e,je.x0,je.x1)),t})(),et=(t,e)=>[t*M+M/2,e*M+M/2],le=(t,e,a,r=64)=>({density:40,layer:3,position:[t*M,e*M+(M-r)/2],angle:0,width:r,height:r,img:"b1.png",linearDamping:6,angularDamping:14,level:a}),O=(t,e,a)=>[...et(t,e),a],I=(t,e,a,r)=>[...et(t,e),a,r],Ot={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[96,0,32,32],[64,32,32,32],[352,64,32,32],[384,64,32,32],[416,64,32,32],[320,64,32,32]]},layers:{1:[f.ground,f.rampLong,f.rampSide,f.rampSteep],2:[f.wall]},volumes:{2:1},step:M,physicsStatic:[f.wall],levels:{1:{map:At,floor:[f.slab1,f.railing1,f.rampStep],walls:[f.railing1],layers:{1:[f.slab1,f.rampStep],4:[f.railing1]},volumes:{4:.35}},2:{map:Tt,floor:[f.slab2,f.railing2],walls:[f.railing2],layers:{1:[f.slab2],4:[f.railing2]},volumes:{4:.35}}},ramps:[{tile:f.rampLong,dir:"east",from:0,to:1},{tile:f.rampSide,dir:"north",from:0,to:1},{tile:f.rampSteep,dir:"west",from:0,to:2},{tile:f.rampStep,dir:"east",from:1,to:2}],physicsDynamic:[le(41,25,2,32),le(21,13,1,32),le(8,24,0),le(62,38,0)],respawns:{team1:[O(58,21,180),I(41,22,90,2),I(20,20,0,1),I(45,18,180,2),O(5,8,0),O(9,8,0),O(5,40,0),O(9,40,0)],team2:[I(24,28,90,0),O(20,33,0),I(21,15,270,1),I(50,21,180,2),I(40,28,180,1),O(60,8,180),O(64,8,180),O(60,40,180)]},map:vt},Et={canopy:pt,downtown:yt,garden:ht,overpass:xt,"pool mini":wt,terraces:Ot},Ee={m1:{constructor:"Tank",currentWeapon:"w1",size:3,accelerationFactor:1e3,brakingFactor:.3,maxForwardSpeed:260,maxReverseSpeed:-130,baseTurnTorqueFactor:215,damping:{linear:3,angular:100},fixture:{density:200,friction:.5,restitution:.1},lateralGrip:20,turnSpeedThreshold:10,baseTurnFactorRatio:.8,reverseTurnMultiplier:.7,throttleIncreaseRate:2,throttleDecreaseRate:2.5,strainFactor:1.5,maxGunAngle:1.4,gunRotationSpeed:3,gunCenterSpeed:10}},kt={w1:{type:"hitscan",impulseMagnitude:75e5,damage:40,range:1500,fireRate:.01,spread:0,consumption:1,cameraShake:{intensity:20,duration:200}},w2:{type:"explosive",constructor:"Bomb",time:300,shotOutcomeId:"w2e",size:8,fireRate:.1,damage:70,radius:50,impulseMagnitude:2e6,cameraShake:{intensity:30,duration:400}}},Rt={m1:{id:1,kind:"indexed8",class:"hot",fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"gunRotation",ty:"f32",interp:"lerpAngle"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"engineLoad",ty:"f32",interp:"lerp"},{name:"condition",ty:"u8"},{name:"size",ty:"u8"},{name:"team",ty:"u8"},{name:"angvel",ty:"f32",interp:"lerp"},{name:"z",ty:"f32",interp:"lerp"},{name:"level",ty:"u8"},{name:"vz",ty:"f32",interp:"discrete"},{name:"pitch",ty:"f32",interp:"lerp"},{name:"roll",ty:"f32",interp:"lerp"}]},w1:{id:2,kind:"list16",class:"event",fields:[{name:"startX",ty:"f32"},{name:"startY",ty:"f32"},{name:"endX",ty:"f32"},{name:"endY",ty:"f32"},{name:"bodyX",ty:"f32"},{name:"bodyY",ty:"f32"},{name:"wasHit",ty:"u8"},{name:"shooterId",ty:"u8"},{name:"startLevel",ty:"u8"},{name:"endLevel",ty:"u8"}]},w2:{id:3,kind:"indexed32",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"angle",ty:"f32"},{name:"size",ty:"u8"},{name:"time",ty:"u16"},{name:"ownerId",ty:"u8"},{name:"level",ty:"u8"}]},w2e:{id:4,kind:"list16",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"radius",ty:"f32"},{name:"level",ty:"u8"}]},c1:{id:5,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]},c2:{id:6,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]}},Nt={parts:{models:Ee,weapons:kt,mapConstructor:"Map",hitscanService:"HitscanService",friendlyFire:!1},snapshot:Rt,soundCues:{roundStart:"roundStart",victory:"victory",defeat:"defeat",frag:"frag",death:"gameOver"},initialVote:"teamChange",maps:Et,mapScale:.3,currentMap:"pool mini",mapsInVote:4,mapSetId:"c1",coreParams:{levels:{fallTime:.35,fallDamage:30,fallDamageFreeHeight:.5,maxFallDamage:100,climbGravity:500,climbMaxSpeedFactor:.5,levelAdoptFrames:8,maxSideEntryRise:.5,rampLaunchFactor:.35,minLaunchVz:.35,maxLaunchVz:3.5,jumpClearance:.45,tiltGain:2,tiltAirGain:.12,tiltResponse:12,tiltMax:.6,landingShake:{intensity:3,duration:220,minImpact:1.5,fullImpact:6}},surfaces:{trackYawGain:.004,trackSampleX:.6,trackSampleY:.75,bodyBeltCoupling:4,types:{sand:{accel:.6,maxSpeed:.55,drag:1.2,grip:1,brake:1,turn:.8},mud:{accel:.45,maxSpeed:.4,drag:2,grip:.9,brake:1,turn:.7},water:{accel:.7,maxSpeed:.6,drag:1.5,grip:.8,brake:.8,turn:.85},oil:{accel:.35,maxSpeed:1,drag:0,grip:.08,brake:.1,turn:1.6,angularDrag:-.5,slickTime:1.5},conveyor:{belt:60},boost:{boostDv:220,boostMaxSpeed:480,minEntrySpeed:20,boostTime:1.2,boostSpeedFactor:1.8}}},props:{fence:{hp:30,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:60,ramDamagePerSpeed:.5},crate:{hp:120,damagedAt:.5,bulletFactor:.5,blastFactor:1.5,ramThreshold:140,ramDamagePerSpeed:.6},barrel:{hp:40,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:150,ramDamagePerSpeed:1,chainDelay:.15,blast:{radius:70,damage:80,impulse:25e5,cameraShake:{intensity:30,duration:400}}}}},roomDefaults:{maxPlayers:8},roomForm:[{name:"maxPlayers",control:"text",label:"Max players",numeric:!0},{name:"roundTime",control:"text",label:"Round time",unit:"s",numeric:!0},{name:"mapTime",control:"text",label:"Map time",unit:"s",numeric:!0},{name:"friendlyFire",control:"checkbox",label:"Friendly fire"},{name:"map",control:"select",label:"Map",source:"maps"}],stat:{name:{key:0,bodyMethod:"=",headSync:!0,headMethod:"#"},status:{key:1,bodyMethod:"=",bodyValue:"",headValue:""},score:{key:2,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},deaths:{key:3,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},latency:{key:4,bodyMethod:"="}},playerState:{defaultState:{}},panel:{fields:{health:{key:"h",value:100},w1:{key:"w1",value:200},w2:{key:"w2",value:100}},activeKey:"wa"},scripted:{namePrefix:"Bot",defaultModel:"m1"},spectatorTeam:"spectators",teams:{team1:1,team2:2,spectators:3},playerKeys:{forward:{key:1},back:{key:2},left:{key:4},right:{key:8},gunCenter:{key:16,type:1},gunLeft:{key:32},gunRight:{key:64},fire:{key:128,type:1},nextWeapon:{key:256,type:1},prevWeapon:{key:512,type:1}}},Mt={roundStart:{file:"round-start",priority:200,volume:.35},victory:{file:"victory",priority:200,volume:.38},defeat:{file:"defeat",priority:200,volume:.5},frag:{file:"frag",priority:150,volume:.26},hit:{file:"hit",priority:150,volume:.36},gameOver:{file:"game-over",priority:150,volume:.31},shot:{file:"shot",priority:100,volume:.51},explosion:{file:"explosion",priority:100,volume:.74},bombHasBeenPlanted:{file:"bomb-has-been-planted",priority:90,volume:.48},propBreak:{file:"hit",priority:80,volume:.28},tankLanding:{file:"tank-landing",priority:60,volume:.7},tankEngine:{file:"tank-engine",priority:50,loop:!0,volume:.5},tankWater:{file:"tank-water",priority:55,loop:!0,volume:.3}},Lt={codecList:["webm","mp3"],path:"/sounds/",spatial:{mode:"topDown",virtualElevation:108,innerRadius:7.5},sounds:Mt},Bt={mode:"hole",radius:260,softness:.45,minAlpha:.12,layerAlpha:.4,fadeRate:6,roofMargin:0,lowerTint:11579584},Ct={shear:.22,levelZStride:100},It={enabled:!0,faces:!0,faceTileRepeats:12,faceBleedPx:2,slices:4,rampSegments:4,sideTint:10133674},Dt={scaleGain:.1,baseAlpha:.4,alphaFalloff:.12,sizeFactor:1.05,groundOffset:3,groundAlpha:.3},Wt={enabled:!0,lift:.35,vertices:6,shading:.28,lightDir:[-.7,-.7]},Ft={fullImpact:6,squash:.14,duration:260,minImpact:1.5},Vt={enabled:!0,maxFps:30},He={enabled:!0,resolution:.5,maxLights:96,headlights:{length:90,spread:.55,intensity:.9,color:16773572,offset:.5},rampSpill:1,tankGlow:{radius:26,intensity:.35,color:12570879},flash:{explosion:{radius:140,intensity:1,duration:260,color:16756832},shot:{radius:40,intensity:.6,duration:70,color:16773280}},glints:{enabled:!0,intensity:.8,size:1.2},shafts:{enabled:!0,rays:14,length:1.3,intensity:.35,shadows:!0,maxShadowCasters:4}},Yt={parts:{gameSets:{c1:["Map","MapRadar"],c2:["Map"],m1:["Tank","TankRadar","Smoke","Tracks","Dust"],w1:["ShotEffect"],w2:["Bomb"],w2e:["ExplosionEffect"]},entitiesOnCanvas:{Map:"vimp",MapRadar:"radar",TankRadar:"radar",Tank:"vimp",ShotEffect:"vimp",Bomb:"vimp",ExplosionEffect:"vimp",Smoke:"vimp",Tracks:"vimp",Dust:"vimp"},bakedAssets:{vimp:[{name:"explosionTexture",component:"ExplosionEffect",params:{radius:50,blur:2,quality:40,color:16777215}},{name:"impactParticleTexture",component:"ShotEffect",params:{radius:4,blur:1,quality:10,color:16777215}},{name:"funnelTexture",component:"ExplosionEffect",params:{baseRadius:25,irregularity:4,blur:3,numPoints:20,colorFill:1842204,colorRim:11579568,rimWidth:4,variants:5}},{name:"smokeTexture",component:"Smoke",params:{radius:3,blur:1,quality:40,color:16777215}},{name:"tankTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"tankModelTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"bombTexture",component:"Bomb",params:{colorOuter:16777215,colorInner:986895}},{name:"tankShadowTexture",component:"Tank",params:{width:40,height:30,radius:6,blur:2,quality:20,color:0}},{name:"dustTexture",component:"Dust",params:{radius:4,blur:1,quality:20,color:16777215}},{name:"trackMarkTexture",component:"Tracks",params:{width:4,length:5,color:1710610}},{name:"scorchTexture",component:"Map",params:{baseRadius:20,irregularity:5,blur:4,numPoints:16,color:1315344,coreColor:328965,coreRatio:.55,variants:4}},{name:"debrisTexture",component:"Map",params:{length:8,width:3,color:16777215,variants:4}},{name:"lightRadialTexture",component:"Map",params:{radius:64,rings:32,blur:2}},{name:"lampHeadTexture",component:"Map",params:{core:3,halo:10,rings:12,blur:1}},{name:"glintTexture",component:"Map",params:{radius:32,strips:16,blur:2}},{name:"lightShaftTexture",component:"Map",params:{radius:128,rays:He.shafts.rays,width:.05,seed:7,blur:3}},{name:"headlightConeTexture",component:"Tank",params:{length:128,halfWidth:64,strips:24,blur:4}}],radar:[{name:"tankRadarTexture",component:"TankRadar",params:{radius:6,borderWidth:2,crossSize:9,crossThickness:1.5,colors:{teamId1:5579298,teamId2:2250018}}}]},componentDependencies:{renderer:["Map","Tank","Tracks","Smoke","Dust","Bomb","ShotEffect","ExplosionEffect"],assetsBase:["Map"],soundManager:["ExplosionEffect","ShotEffect","Bomb","Tank","Dust","Map"],mapDynamics:["ShotEffect"],rampRuns:["Map"],surfaces:["Dust","Tracks","Tank"],shots:["ShotEffect","Tank"],blasts:["ExplosionEffect","Tank"],levelView:["Tank","Map","MapRadar","Smoke","Bomb","ShotEffect","ExplosionEffect","Tracks","Dust"],localPlayer:["Tank","ShotEffect"],lighting:["Map","Tank","ExplosionEffect","ShotEffect"]},seeThrough:Bt,parallax:Ct,volume:It,shadow:Dt,tilt:Wt,landing:Ft,lighting:He,animations:Vt,sounds:Lt},initIdList:["vimp","radar","panel","chat"],modules:{canvasManager:{canvases:{vimp:{width:960,height:600,aspectRatio:"16:9",baseScale:"5:1",dynamicCamera:!0,shakeCamera:!0},radar:{width:150,height:150,fixSize:"150",baseScale:"1:8"}}},controls:{keySetList:[{78:"nextPlayer",80:"prevPlayer"},{87:"forward",83:"back",65:"left",68:"right",85:"gunCenter",75:"gunLeft",76:"gunRight",74:"fire",78:"nextWeapon",80:"prevWeapon"}]},chat:{params:{messages:{s:["Team {0} is full. Your current team: {1}","Your team: {0}","Your new team: {0}","Your new status: spectator","⚔️ {0} killed {1}","⚡ {0} joined the game","👋 {0} left the game"],v:["A vote has been created","Voting has started","Your vote has been accepted","Voting is temporarily unavailable","Vote passed","Vote failed"],m:["Current map: {0}","Next map: {0}"],c:["Command not found","Your rank: {0}"],n:["Invalid name","{0} changed name to {1}"],b:["Only active players can use /bot","Invalid bot count","Invalid team name","{0} bot(s) created for {1}","All bots removed from {0}","{0} bot(s) created","All bots removed"]}}},panel:{keys:{t:"time",h:"health",wa:"activeWeapon",w1:"bullet",w2:"bomb"},fields:[{name:"health",elem:"panel-health",type:"bar",max:100,blocks:30},{name:"bullet",elem:"panel-bullet",type:"weapon"},{name:"bomb",elem:"panel-bomb",type:"weapon"},{name:"time",elem:"panel-time",type:"time"}]},stat:{params:{columns:["names","status","score","deaths","latency"],heads:{1:"team1",2:"team2"},bodies:{1:"team1",2:"team2",3:"spectators"},sortList:{team1:[[2,!0],[3,!1]],team2:[[2,!0],[3,!1]]}}},vote:{params:{templates:{teamChange:["Choose a team","teams",!0],mapChangeBySystem:["Choose the next map"],mapChangeByUser:["{0} suggested the map: {1}",["Yes","No"]],createBotsForTeam:["{0} suggests creating {1} bot(s) to {2}. Agree?",["Yes","No"]],removeBotsForTeam:["{0} suggests removing all bots from {1}. Agree?",["Yes","No"]],createBots:["{0} suggests creating {1} bot(s) to the game. Agree?",["Yes","No"]],removeBots:["{0} suggests removing all bots from the game. Agree?",["Yes","No"]]},menu:[["teamChange",["Switch team","teams"]],["mapChange",["Suggest map","maps"]]]}}},gameInform:{list:["{0} WINS!","ROUND START!","GAME OVER!"]}},Pt={elems:{authId:"auth",errorId:"auth-error",enterId:"auth-enter",fieldsId:"auth-fields",titleId:"auth-title",informsId:"auth-informs"},texts:{title:"Tanks",sections:[{heading:"Controls",lines:[{keys:"w, a, s, d",text:"move the tank"},{keys:"k, l",text:"turn the gun"},{keys:"u",text:"center the gun"},{keys:"j",text:"fire"},{keys:"n, p",text:"switch weapon/player",last:!0},{keys:"c",text:"chat/command line"},{keys:"m",text:"menu"},{keys:"<Tab>",text:"stats",last:!0}]},{heading:"Command line",lines:[{keys:"/name <name>",text:"change nickname"},{keys:"/mapname",text:"show current map name"},{keys:"/timeleft",text:"map time left"},{separator:!0},{keys:"/bot <count>",text:"add bot(s)"},{keys:"/bot <count> <team>",text:"add to team"},{keys:"/bot 0",text:"remove all bots"},{keys:"/bot 0 <team>",text:"remove from team"}]}]},params:[{name:"model",value:"m1",options:{control:"select",label:"Model",options:Object.keys(Ee),validator:"isValidModel",storage:"model"}}],validators:{isValidModel:t=>t in Ee}};function tt(t,e,a){a?(t.scripted.removeScripted(a),e>0?(e=t.scripted.createScripted(e,a),t.chat.pushSystem("BOT_CREATED_FOR_TEAM",[e,a])):t.chat.pushSystem("BOT_REMOVED_FROM_TEAM",[a])):(t.scripted.removeScripted(),e>0?(e=t.scripted.createScripted(e,null),t.chat.pushSystem("BOT_CREATED",[e])):t.chat.pushSystem("BOT_REMOVED")),t.roundManager.initiateNewRound()}function zt(t,e,a,r){const o=t.participants.get(e).name,s="botManagement";let l,c;if(!t.voteCoordinator.canCreateVote(s,e))return;r?a>0?(l="createBotsForTeam",c=[o,a,r]):(l="removeBotsForTeam",c=[o,r]):a>0?(l="createBots",c=[o,a]):(l="removeBots",c=[o]);const d={name:l,params:c},p=t.participants.getHumans().map(m=>m.gameId).filter(m=>m!==e);t.voteCoordinator.createVote({voteName:l,voteCategory:s,payload:d,resultFunc:m=>{m==="Yes"?(t.chat.pushSystem("VOTE_PASSED"),tt(t,a,r)):t.chat.pushSystem("VOTE_FAILED")},userList:p,gameId:e})}const Ut={name:"/bot",handler(t,e,a){if(t.participants.get(e).teamId===t.spectatorId){t.chat.pushSystemByUser(e,"BOT_PLAYERS_ONLY");return}const o=parseInt(a[0],10),s=a[1]||null;if(isNaN(o)||o<0){t.chat.pushSystemByUser(e,"BOT_INVALID_COUNT");return}if(s&&(!t.teams[s]||s===t.spectatorTeam)){t.chat.pushSystemByUser(e,"BOT_INVALID_TEAM");return}if(o===0){if(s&&t.scripted.getCountForTeam(s)===0){t.chat.pushSystemByUser(e,"BOT_REMOVED_FROM_TEAM",[s]);return}if(t.scripted.getCount()===0){t.chat.pushSystemByUser(e,"BOT_REMOVED");return}}t.participants.getHumans().filter(c=>c.teamId!==t.spectatorId).length<=1?tt(t,o,s):zt(t,e,o,s)}};function Gt(t){const e=Math.floor(t/1e3),a=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return`${a}:${r}`}const $t={name:"/name",handler(t,e,a){t.roundManager.changeName(e,a.join(" "))}},jt={name:"/nr",handler(t,e){t.isDevMode?t.roundManager.initiateNewRound():t.chat.pushSystemByUser(e,"COMMANDS_NOT_FOUND")}},Ht={name:"/timeleft",handler(t,e){t.chat.pushSystemByUser(e,[Gt(t.timerManager.getMapTimeLeft())])}},qt={name:"/mapname",handler(t,e){t.chat.pushSystemByUser(e,[t.roundManager.currentMap])}},Xt={name:"/rank",handler(t,e){t.chat.pushSystemByUser(e,"RANK",[t.playerDataSync.getRank(e)])}},Kt={BOT_PLAYERS_ONLY:"b:0",BOT_INVALID_COUNT:"b:1",BOT_INVALID_TEAM:"b:2",BOT_CREATED_FOR_TEAM:"b:3",BOT_REMOVED_FROM_TEAM:"b:4",BOT_CREATED:"b:5",BOT_REMOVED:"b:6"};class Zt{constructor({participants:e,coreAdapter:a,panel:r,stat:o,scripted:s}){this._participants=e,this._coreAdapter=a,this._panel=r,this._stat=o,this._model=s.defaultModel,this._respawns=null}createMap(e){this._respawns=e.respawns}createScripted(e,a=null){if(!this._respawns)return 0;const r=this._participants.getPlayableTeams();let o=0;for(let s=0;s<e&&!this._participants.isFull;s+=1){let l=a;if(l||(l=r.sort((p,m)=>this._participants.getTeamSize(p)-this._participants.getTeamSize(m))[0]),!l||!this._respawns[l]||this._participants.getTeamSize(l)>=this._respawns[l].length)continue;const c=this._participants.createScripted({team:l,model:this._model}),d=this._participants.get(c);this._stat.addUser(c,d.teamId,{name:d.name,status:"dead",latency:"BOT"}),this._panel.addUser(c),o+=1}return o}removeScripted(e=null){(e?this._participants.getScripted().filter(r=>r.team===e):this._participants.getScripted()).forEach(r=>this._removeBotById(r.gameId))}removeOneForHuman(e){for(const a of this._participants.getScripted())if(a.team===e)return this._removeBotById(a.gameId),!0;return!1}_removeBotById(e){const a=this._participants.get(e);!a||!a.isScripted||(this._stat.removeUser(e,a.teamId),this._panel.removeUser(e),this._coreAdapter.removePlayer(e),this._participants.remove(e))}getBotById(e){const a=this._participants.get(e);return a&&a.isScripted?a:void 0}getBots(){return this._participants.getScripted()}getCount(){return this._participants.getScripted().length}getCountForTeam(e){return this._participants.getScripted().filter(a=>a.team===e).length}getCountsPerTeam(){const e={};for(const a of this._participants.getScripted())e[a.team]=(e[a.team]||0)+1;return e}}function Qt(t){return{scripted:new Zt(t)}}const Jt=t=>(t??"").split(/[?#]/)[0].endsWith(".js"),ea=t=>import(t),ta={id:"tanks",engineApi:4,requires:["map.layers","map.levelsN","map.gameData","map.bodyState"],async createCore(t,{wasmUrl:e}){if(Jt(e)){const a=await ea(e);return new a.GameCore(t)}return await ct({module_or_path:e}),new we(t)},onCoreEvent(t){t?.type==="mapDerivedError"&&console.warn(`[tanks] map game data: ${t.message}`)},gameConfig:Nt,authSchema:Pt,chatCommands:[Ut,$t,jt,Ht,qt,Xt],systemMessages:Kt,createModules:Qt,buildClientGameConfig:()=>Yt};export{ta as default};
|
|
1
|
+
class we{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,Ne.unregister(this),e}free(){const e=this.__destroy_into_raw();i.__wbg_gamecore_free(e,0)}abi_describe(){let e,a;try{const r=i.gamecore_abi_describe(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}alive_players(){const e=i.gamecore_alive_players(this.__wbg_ptr);var a=Me(e[0],e[1]).slice();return i.__wbindgen_free(e[0],e[1]*4,4),a}apply_aim(e,a,r,o,s){i.gamecore_apply_aim(this.__wbg_ptr,e,a,r,o,s)}apply_input(e,a,r,o){const s=k(r,i.__wbindgen_malloc,i.__wbindgen_realloc),l=x,c=k(o,i.__wbindgen_malloc,i.__wbindgen_realloc),d=x;i.gamecore_apply_input(this.__wbg_ptr,e,a,s,l,c,d)}body_has_events(){return i.gamecore_body_has_events(this.__wbg_ptr)!==0}clear(){i.gamecore_clear(this.__wbg_ptr)}debug_json(){let e,a;try{const r=i.gamecore_debug_json(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}deserialize_state(e){const a=Le(e,i.__wbindgen_malloc),r=x,o=i.gamecore_deserialize_state(this.__wbg_ptr,a,r);if(o[1])throw C(o[0])}dispatch(e,a){const r=k(e,i.__wbindgen_malloc,i.__wbindgen_realloc),o=x,s=Le(a,i.__wbindgen_malloc),l=x,c=i.gamecore_dispatch(this.__wbg_ptr,r,o,s,l);var d=be(c[0],c[1]).slice();return i.__wbindgen_free(c[0],c[1]*1,1),d}frame_bytes(){const e=i.gamecore_frame_bytes(this.__wbg_ptr);var a=be(e[0],e[1]).slice();return i.__wbindgen_free(e[0],e[1]*1,1),a}frame_ptr(){return i.gamecore_frame_ptr(this.__wbg_ptr)>>>0}is_alive(e){return i.gamecore_is_alive(this.__wbg_ptr,e)!==0}last_input_seq(e){return i.gamecore_last_input_seq(this.__wbg_ptr,e)>>>0}load_map(e){const a=k(e,i.__wbindgen_malloc,i.__wbindgen_realloc),r=x,o=i.gamecore_load_map(this.__wbg_ptr,a,r);if(o[1])throw C(o[0])}map_info(){let e,a;try{const r=i.gamecore_map_info(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}constructor(e){const a=k(e,i.__wbindgen_malloc,i.__wbindgen_realloc),r=x,o=i.gamecore_new(a,r);if(o[2])throw C(o[1]);return this.__wbg_ptr=o[0],Ne.register(this,this.__wbg_ptr,this),this}pack_body(){const e=i.gamecore_pack_body(this.__wbg_ptr);if(e[1])throw C(e[0])}pack_frame(e,a,r,o,s,l,c,d){var p=nt(c)?0:k(c,i.__wbindgen_malloc,i.__wbindgen_realloc),m=x;return i.gamecore_pack_frame(this.__wbg_ptr,e,a,r,o,s,l,p,m,d)>>>0}players_data(){let e,a;try{const r=i.gamecore_players_data(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}position_of(e){const a=i.gamecore_position_of(this.__wbg_ptr,e);var r=Me(a[0],a[1]).slice();return i.__wbindgen_free(a[0],a[1]*4,4),r}remove_actor(e){i.gamecore_remove_actor(this.__wbg_ptr,e)}remove_players_and_shots(){let e,a;try{const r=i.gamecore_remove_players_and_shots(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}remove_scripted_actor(e){i.gamecore_remove_scripted_actor(this.__wbg_ptr,e)}reset_actor(e,a,r,o,s){i.gamecore_reset_actor(this.__wbg_ptr,e,a,r,o,s)}reset_all_vitals(){i.gamecore_reset_all_vitals(this.__wbg_ptr)}serialize_state(){const e=i.gamecore_serialize_state(this.__wbg_ptr);if(e[3])throw C(e[2]);var a=be(e[0],e[1]).slice();return i.__wbindgen_free(e[0],e[1]*1,1),a}set_actor_level(e,a){i.gamecore_set_actor_level(this.__wbg_ptr,e,a)}spawn_actor(e,a,r,o,s,l){const c=k(a,i.__wbindgen_malloc,i.__wbindgen_realloc),d=x,p=i.gamecore_spawn_actor(this.__wbg_ptr,e,c,d,r,o,s,l);if(p[1])throw C(p[0])}spawn_scripted_actor(e,a,r,o,s,l){const c=k(a,i.__wbindgen_malloc,i.__wbindgen_realloc),d=x,p=i.gamecore_spawn_scripted_actor(this.__wbg_ptr,e,c,d,r,o,s,l);if(p[1])throw C(p[0])}step(e){i.gamecore_step(this.__wbg_ptr,e)}take_events(){let e,a;try{const r=i.gamecore_take_events(this.__wbg_ptr);return e=r[0],a=r[1],R(r[0],r[1])}finally{i.__wbindgen_free(e,a,1)}}}Symbol.dispose&&(we.prototype[Symbol.dispose]=we.prototype.free);function at(){return{__proto__:null,"./vimp_tanks_core_bg.js":{__proto__:null,__wbg_Error_92b29b0548f8b746:function(e,a){return Error(R(e,a))},__wbg___wbindgen_throw_344f42d3211c4765:function(e,a){throw new Error(R(e,a))},__wbindgen_init_externref_table:function(){const e=i.__wbindgen_externrefs,a=e.grow(4);e.set(0,void 0),e.set(a+0,void 0),e.set(a+1,null),e.set(a+2,!0),e.set(a+3,!1)}}}}typeof FinalizationRegistry>"u"||new FinalizationRegistry(t=>i.__wbg_clientcore_free(t,1));const Ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>i.__wbg_gamecore_free(t,1));function Me(t,e){return t=t>>>0,rt().subarray(t/4,t/4+e)}function be(t,e){return t=t>>>0,$().subarray(t/1,t/1+e)}let q=null;function rt(){return(q===null||q.byteLength===0)&&(q=new Float32Array(i.memory.buffer)),q}function R(t,e){return st(t>>>0,e)}let X=null;function $(){return(X===null||X.byteLength===0)&&(X=new Uint8Array(i.memory.buffer)),X}function nt(t){return t==null}function Le(t,e){const a=e(t.length*1,1)>>>0;return $().set(t,a/1),x=t.length,a}function k(t,e,a){if(a===void 0){const c=K.encode(t),d=e(c.length,1)>>>0;return $().subarray(d,d+c.length).set(c),x=c.length,d}let r=t.length,o=e(r,1)>>>0;const s=$();let l=0;for(;l<r;l++){const c=t.charCodeAt(l);if(c>127)break;s[o+l]=c}if(l!==r){l!==0&&(t=t.slice(l)),o=a(o,r,r=l+t.length*3,1)>>>0;const c=$().subarray(o+l,o+r),d=K.encodeInto(t,c);l+=d.written,o=a(o,r,l,1)>>>0}return x=l,o}function C(t){const e=i.__wbindgen_externrefs.get(t);return i.__externref_table_dealloc(t),e}let ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});ce.decode();const ot=2146435072;let xe=0;function st(t,e){return xe+=e,xe>=ot&&(ce=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),ce.decode(),xe=e),ce.decode($().subarray(t,t+e))}const K=new TextEncoder;"encodeInto"in K||(K.encodeInto=function(t,e){const a=K.encode(t);return e.set(a),{read:t.length,written:a.length}});let x=0,i;function it(t,e){return i=t.exports,q=null,X=null,i.__wbindgen_start(),i}async function lt(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(o){if(t.ok&&a(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",o);else throw o}const r=await t.arrayBuffer();return await WebAssembly.instantiate(r,e)}else{const r=await WebAssembly.instantiate(t,e);return r instanceof WebAssembly.Instance?{instance:r,module:t}:r}function a(r){switch(r){case"basic":case"cors":case"default":return!0}return!1}}async function ct(t){if(i!==void 0)return i;t!==void 0&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),t===void 0&&(t=new URL("/assets/vimp_tanks_core_bg-D1al7yzL.wasm",import.meta.url));const e=at();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:a,module:r}=await lt(await t,e);return it(a)}const pt={setId:"c1",scale:.2,spriteSheet:{img:"tiles3.png",frames:[[0,64,32,32],[0,192,32,32],[96,64,32,32]]},layers:{1:[0,1],4:[2]},step:32,physicsStatic:[1],physicsDynamic:(function(){const r=[];for(let p=0;p<20;p+=1)for(let m=0;m<1;m+=1){const E=(104+m*3)*32+48,ge=(45+p*3)*32+48;r.push({density:20,layer:3,position:[E,ge],angle:0,width:96,height:96,img:"b1.png",linearDamping:8,angularDamping:16})}return r})(),respawns:{team1:[[448,1840,0],[256,2304,0],[448,2688,0],[256,3e3,0],[256,512,0],[448,832,0],[256,1152,0],[448,3648,0],[256,3968,0],[448,4288,0]],team2:[[6272,1840,180],[6464,2304,180],[6272,2688,180],[6464,3e3,180],[6464,512,180],[6272,832,180],[6464,1152,180],[6272,3648,180],[6464,3968,180],[6272,4288,180]]},map:(function(){const a={floor:0,wall:1,effect:2},r=Array.from({length:150},()=>Array(210).fill(a.floor));for(let s=0;s<150;s++)for(let l=0;l<210;l++)(s<2||s>=148||l<2||l>=208)&&(r[s][l]=a.wall);const o=(s,l,c,d)=>{for(let p=l;p<=d;p++)for(let m=s;m<=c;m++)m>=0&&m<210&&p>=0&&p<150&&(r[p][m]=a.wall)};o(50,0,51,30),o(50,119,51,149),o(158,0,159,30),o(158,119,159,149),o(80,30,130,31),o(80,118,130,119);for(let s=64;s<86;s++)for(let l=2;l<208;l++)(l+s)%2===0?r[s][l]=a.effect:r[s][l]=a.floor;return r})()},Q=32,Be=16,n={EMPTY:0,ASPHALT:1,SIDEWALK:2,LANE:3,SAND:4,MUD:5,WATER:6,OIL:7,CONVEYOR_E:8,CONVEYOR_W:9,BOOST_N:10,BOOST_E:11,WALL:12,ROOF:13,SLAB:14,RAILING:15,RAMP_N:16,RAMP_S:17,RAMP_E:18,RAMP_W:19,CANAL_WALL:20,WATER_2:21,WATER_3:22,WATER_4:23,CONVEYOR_E_2:24,CONVEYOR_E_3:25,CONVEYOR_E_4:26,CONVEYOR_W_2:27,CONVEYOR_W_3:28,CONVEYOR_W_4:29,BOOST_N_2:30,BOOST_E_2:31,FAN:32},mt=n.FAN+1,ft=Array.from({length:mt},(t,e)=>[e%Be*Q,Math.floor(e/Be)*Q,Q,Q]),Y=96,pe=72,A=32,v={x0:22,x1:73,railNorth:20,railSouth:26},Ce={x0:15,x1:21},Ie={x0:74,x1:80},De={x0:38,x1:40},We={x0:55,x1:57},y={x0:24,x1:36,y0:30,y1:40},J={x0:18,x1:19,y0:34,y1:36},z={x0:20,x1:23,y0:34,y1:36},Fe={x0:29,x1:31},ee={wallNorth:54,wallSouth:62},Se=[{x0:27,x1:31},{x0:64,x1:68}],V={y0:53,y1:63},Ve={y0:50,y1:52},Pe={y0:64,y1:66},Ye={x0:45,x1:50},te={x0:47,x1:48,y0:64,y1:65},ve=[{x0:4,x1:10,y0:3,y1:7,roof:!0},{x0:25,x1:31,y0:3,y1:7,roof:!0},{x0:37,x1:44,y0:3,y1:15},{x0:51,x1:58,y0:3,y1:15},{x0:85,x1:91,y0:3,y1:7},{x0:38,x1:43,y0:29,y1:32,roof:!0},{x0:52,x1:57,y0:29,y1:32,roof:!0},{x0:38,x1:43,y0:39,y1:42,roof:!0},{x0:52,x1:57,y0:39,y1:42,roof:!0},{x0:62,x1:70,y0:31,y1:39},{x0:3,x1:8,y0:45,y1:50,roof:!0},{x0:87,x1:92,y0:45,y1:50,roof:!0}],qe=t=>Array.from({length:pe},()=>Array(Y).fill(t)),u=(t,e,a,r,o,s)=>{for(let l=a;l<=o;l+=1)for(let c=e;c<=r;c+=1)t[l][c]=s},Z=(t,e,a,r,o)=>u(t,a,e,r,e,o),D=(t,e,a,r,o)=>u(t,e,a,e,r,o),_e=(t,e,a)=>t>=e&&t<=a,j=(t,e,a,r)=>{for(let o=a;o<=r;o+=2)t[e][o]===n.ASPHALT&&(t[e][o]=n.LANE)},dt=(function(){const t=qe(n.ASPHALT);for(const e of ve)u(t,e.x0-1,e.y0-1,e.x1+1,e.y1+1,n.SIDEWALK);for(const e of ve)u(t,e.x0,e.y0,e.x1,e.y1,n.WALL);j(t,23,2,93),j(t,35,38,44),j(t,35,51,57),j(t,47,2,93),j(t,68,2,93),u(t,6,11,17,12,n.CONVEYOR_E),u(t,16,15,27,16,n.CONVEYOR_W),u(t,63,9,72,15,n.SAND),u(t,80,12,90,16,n.SAND),u(t,73,3,79,8,n.MUD),u(t,75,11,79,16,n.MUD),u(t,45,34,50,37,n.OIL),u(t,1,ee.wallNorth+1,Y-2,ee.wallSouth-1,n.WATER);for(const e of[ee.wallNorth,ee.wallSouth])for(let a=1;a<Y-1;a+=1)_e(a,Ye.x0,Ye.x1)||Se.some(o=>_e(a,o.x0,o.x1))||(t[e][a]=n.CANAL_WALL);u(t,te.x0,te.y0,te.x1,te.y1,n.BOOST_N),u(t,J.x0,J.y0,J.x1,J.y1,n.BOOST_E),u(t,Ce.x0,v.railNorth+1,Ce.x1,v.railSouth-1,n.RAMP_E),u(t,Ie.x0,v.railNorth+1,Ie.x1,v.railSouth-1,n.RAMP_W),u(t,z.x0,z.y0,z.x1,z.y1,n.RAMP_E);for(const e of Se)u(t,e.x0+1,Ve.y0,e.x1-1,Ve.y1,n.RAMP_S),u(t,e.x0+1,Pe.y0,e.x1-1,Pe.y1,n.RAMP_N);return Z(t,0,0,Y-1,n.WALL),Z(t,pe-1,0,Y-1,n.WALL),D(t,0,0,pe-1,n.WALL),D(t,Y-1,0,pe-1,n.WALL),t})(),ut=(function(){const t=qe(n.EMPTY);for(const e of ve)e.roof&&u(t,e.x0,e.y0,e.x1,e.y1,n.ROOF);u(t,v.x0,v.railNorth+1,v.x1,v.railSouth-1,n.SLAB);for(let e=v.x0;e<=v.x1;e+=1)t[v.railNorth][e]=_e(e,De.x0,De.x1)?n.SLAB:n.RAILING,t[v.railSouth][e]=_e(e,We.x0,We.x1)?n.SLAB:n.RAILING;u(t,60,22,62,24,n.OIL),u(t,y.x0,y.y0,y.x1,y.y1,n.SLAB),Z(t,y.y0,y.x0,y.x1,n.RAILING),Z(t,y.y1,y.x0,y.x1,n.RAILING),D(t,y.x0,y.y0,y.y1,n.RAILING),D(t,y.x1,y.y0,y.y1,n.RAILING),D(t,y.x0,z.y0,z.y1,n.SLAB),Z(t,y.y1,Fe.x0,Fe.x1,n.SLAB);for(const e of Se)u(t,e.x0+1,V.y0,e.x1-1,V.y1,n.SLAB),D(t,e.x0,V.y0,V.y1,n.RAILING),D(t,e.x1,V.y0,V.y1,n.RAILING);return t})(),_t=(t,e)=>[t*A+A/2,e*A+A/2],ke=(t,e,a,r,o)=>({layer:3,position:[t*A+(A-a)/2,e*A+(A-r)/2],angle:0,width:a,height:r,linearDamping:6,angularDamping:14,level:0,...o}),T=(t,e)=>({...ke(t,e,64,12,{}),position:[t*A,e*A+(A-12)/2],density:30,img:"prop_fence.png",game:{prop:"fence",imgDestroyed:"prop_fence_broken.png"}}),w=(t,e,a=0)=>ke(t,e,32,32,{density:40,img:"prop_crate.png",level:a,game:{prop:"crate",imgDamaged:"prop_crate_damaged.png",imgDestroyed:"prop_crate_broken.png"}}),P=(t,e)=>ke(t,e,24,24,{density:30,img:"prop_barrel.png",game:{prop:"barrel"}}),h=(t,e,a)=>[..._t(t,e),a,0],g=(t,e,a=0,r={})=>({cell:[t,e],level:a,radius:110,color:16760944,intensity:.9,head:!0,flicker:0,...r}),H=(t,e,a,r)=>{const o=[];for(let s=t;s<=e;s+=a)o.push(r(s));return o},ze=60,yt={setId:"c1",scale:.4,spriteSheet:{img:"city.png",frames:ft},layers:{1:[n.ASPHALT,n.SIDEWALK,n.LANE,n.SAND,n.MUD,n.WATER,n.OIL,n.CONVEYOR_E,n.CONVEYOR_W,n.BOOST_N,n.BOOST_E,n.RAMP_N,n.RAMP_S,n.RAMP_E,n.RAMP_W],2:[n.WALL],4:[n.CANAL_WALL]},volumes:{2:1,4:.25},step:A,physicsStatic:[n.WALL,n.CANAL_WALL],levels:{1:{map:ut,floor:[n.SLAB,n.RAILING,n.ROOF,n.OIL],walls:[n.RAILING],layers:{1:[n.SLAB,n.OIL],2:[n.ROOF],4:[n.RAILING]},volumes:{4:.35}}},ramps:[{tile:n.RAMP_E,dir:"east",from:0,to:1},{tile:n.RAMP_W,dir:"west",from:0,to:1},{tile:n.RAMP_S,dir:"south",from:0,to:1},{tile:n.RAMP_N,dir:"north",from:0,to:1}],physicsDynamic:[w(3,11),w(3,13),w(20,10),w(21,10),w(31,15),w(32,15),P(28,13),P(29,13),P(28,14),P(29,14),T(62,8),T(64,8),T(66,8),T(68,8),T(70,8),T(82,11),T(84,11),T(86,11),T(88,11),T(90,11),w(66,4),w(68,4),w(80,4),w(82,4),P(10,63),P(85,63),w(34,31,1),w(35,31,1)],respawns:{team1:[h(9,24,0),h(4,20,0),h(9,35,0),h(4,37,0),h(4,29,0),h(9,29,0),h(4,42,0),h(9,42,0)],team2:[h(86,24,180),h(91,24,180),h(86,35,180),h(91,37,180),h(91,29,180),h(86,29,180),h(91,42,180),h(86,42,180)]},game:{surfaces:{0:{[n.SAND]:"sand",[n.MUD]:"mud",[n.WATER]:"water",[n.OIL]:"oil",[n.CONVEYOR_E]:{type:"conveyor",dir:"east"},[n.CONVEYOR_W]:{type:"conveyor",dir:"west"},[n.BOOST_N]:{type:"boost",dir:"north"},[n.BOOST_E]:{type:"boost",dir:"east"}},1:{[n.OIL]:"oil"}},lighting:{night:!0,ambient:3818080,lamps:[...H(12,84,8,t=>g(t,19)),...H(16,80,8,t=>g(t,27)),g(44,33,0,{color:16767392}),g(51,33,0,{color:16767392}),g(44,38,0,{color:16767392}),g(51,38,0,{color:16767392}),...H(12,84,8,t=>g(t,45)),...H(16,80,16,t=>g(t,68,0,{flicker:.2})),g(12,32,0,{color:10537215}),g(83,32,0,{color:10537215}),g(15,9,0,{flicker:.35}),g(80,10,0,{flicker:.35}),...H(26,70,8,t=>g(t,23,1,{radius:90,color:13623551})),g(30,35,1,{radius:100}),g(29,58,1,{radius:90}),g(66,58,1,{radius:90})]},animatedTiles:{[n.WATER]:{kind:"frames",frames:[n.WATER,n.WATER_2,n.WATER_3,n.WATER_4],fps:4},[n.CONVEYOR_E]:{kind:"frames",frames:[n.CONVEYOR_E,n.CONVEYOR_E_2,n.CONVEYOR_E_3,n.CONVEYOR_E_4],speed:ze},[n.CONVEYOR_W]:{kind:"frames",frames:[n.CONVEYOR_W,n.CONVEYOR_W_2,n.CONVEYOR_W_3,n.CONVEYOR_W_4],speed:ze},[n.BOOST_N]:{kind:"frames",frames:[n.BOOST_N,n.BOOST_N_2],fps:2},[n.BOOST_E]:{kind:"frames",frames:[n.BOOST_E,n.BOOST_E_2],fps:2}},roofs:{1:[n.ROOF]},signs:[{cell:[40,30],level:1,layer:2,text:"HOTEL",color:16726736,size:18,flicker:{pulse:.15,dropouts:.1},light:{radius:80,intensity:.7}},{cell:[55,30],level:1,layer:2,text:"BAR",color:3858687,size:20,flicker:{pulse:.3,dropouts:.3},light:{radius:70,intensity:.6}},{cell:[40,41],level:1,layer:2,text:"CLUB",color:10115839,size:18,angle:-8,flicker:{pulse:.05,dropouts:0},light:{radius:80,intensity:.7}},{cell:[55,41],level:1,layer:2,text:"MOTEL",color:16734778,size:16,flicker:{pulse:.2,dropouts:.5},light:{radius:70,intensity:.6}},{cell:[5,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.05},light:{radius:60,intensity:.5}},{cell:[90,47],level:1,layer:2,text:"GUNS",color:5963642,size:16,flicker:{pulse:.1,dropouts:.2},light:{radius:60,intensity:.5}}],decals:[{cell:[6,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.5},{cell:[8,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.1},{cell:[27,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:1.8},{cell:[29,5],level:1,layer:2,frame:n.FAN,kind:"rotate",rps:.9}]},map:dt},Xe=[],ae=32,B=(t,e,a,r)=>{for(let o=0;o<a;o+=1){const s=r?[t*ae,(e+o)*ae]:[(t+o)*ae,e*ae];Xe.push({density:100,layer:3,position:s,angle:0,img:"b1.png",width:32,height:32,linearDamping:5,angularDamping:14})}};B(30,2,10,!0);B(2,30,10,!1);B(30,22,9,!0);B(22,30,9,!1);const L=120,he=30;B(L-he-1,L-12,10,!0);B(L-12,L-he-1,10,!1);B(L-he-1,L-31,9,!0);B(L-31,L-he-1,9,!1);const ht={setId:"c1",spriteSheet:{img:"tiles3.png",frames:[[96,0,32,32],[32,32,32,32],[64,32,32,32],[0,96,32,32]]},layers:{1:[0,1,2],4:[3]},step:32,physicsStatic:[2],physicsDynamic:[...Xe],respawns:{team1:[[320,320,45],[320,480,45],[320,640,45],[480,320,45],[480,480,45],[480,640,45],[640,320,45],[640,480,45],[640,640,45],[800,400,45]],team2:[[3520,3520,225],[3520,3360,225],[3520,3200,225],[3360,3520,225],[3360,3360,225],[3360,3200,225],[3200,3520,225],[3200,3360,225],[3200,3200,225],[3040,3440,225]]},map:(function(){const a={stone:0,grass:1,wall:2,water:3},r=Array.from({length:120},()=>Array(120).fill(a.grass)),o=()=>{for(let p=0;p<120;p+=1)for(let m=0;m<120;m+=1)(p===0||p===119||m===0||m===119)&&(r[p][m]=a.wall)},s=(p,m,E,ge=.5)=>{for(let W=m-E;W<=m+E;W+=1)for(let F=p-E;F<=p+E;F+=1)F>0&&F<119&&W>0&&W<119&&Math.sqrt((F-p)**2+(W-m)**2)<=E&&Math.random()<ge&&(r[W][F]=a.wall)};o();const l=Math.floor(120/2),c=Math.floor(120/2),d=22;for(let p=c-d;p<=c+d;p+=1)for(let m=l-d;m<=l+d;m+=1)Math.sqrt((m-l)**2+(p-c)**2)<=d&&(r[p][m]=a.stone);for(let p=c-10;p<=c+10;p+=1)for(let m=l-10;m<=l+10;m+=1)Math.sqrt((m-l)**2+(p-c)**2)<=10&&(r[p][m]=a.water);return s(35,85,12,.7),s(85,35,12,.7),s(20,60,8,.6),s(60,20,8,.6),s(100,60,8,.6),s(60,100,8,.6),r})()},ye=80,Ae=60,N=32,_={ground:0,wall:1,slab:2,railing:3,rampNorth:4,rampSouth:5},S={railNorth:25,slabTop:26,slabBottom:30,railSouth:31,left:2,right:ye-3},U={x0:3,x1:5,y0:32,y1:34},G={x0:74,x1:76,y0:22,y1:24},Ue={x0:30,x1:33},Ge={x0:48,x1:51},Ke=t=>Array.from({length:Ae},()=>Array(ye).fill(t)),re=(t,e,a)=>t>=e&&t<=a,gt=(function(){const t=Ke(_.ground);for(let e=0;e<Ae;e+=1)for(let a=0;a<ye;a+=1)(e<2||e>=Ae-2||a<2||a>=ye-2)&&(t[e][a]=_.wall);for(let e=U.y0;e<=U.y1;e+=1)for(let a=U.x0;a<=U.x1;a+=1)t[e][a]=_.rampNorth;for(let e=G.y0;e<=G.y1;e+=1)for(let a=G.x0;a<=G.x1;a+=1)t[e][a]=_.rampSouth;return t})(),bt=(function(){const t=Ke(0);for(let e=S.left;e<=S.right;e+=1){for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=_.slab;const a=re(e,G.x0,G.x1)||re(e,Ue.x0,Ue.x1),r=re(e,U.x0,U.x1)||re(e,Ge.x0,Ge.x1);if(t[S.railNorth][e]=a?_.slab:_.railing,t[S.railSouth][e]=r?_.slab:_.railing,e===S.left||e===S.right)for(let o=S.slabTop;o<=S.slabBottom;o+=1)t[o][e]=_.railing}return t})(),Ze=(t,e)=>[t*N+N/2,e*N+N/2],ne=(t,e,a,r=64)=>({density:40,layer:3,position:[t*N,e*N+(N-r)/2],angle:0,width:r,height:r,img:"b1.png",linearDamping:6,angularDamping:14,level:a}),b=(t,e,a)=>[...Ze(t,e),a],oe=(t,e,a,r)=>[...Ze(t,e),a,r],xt={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[352,64,32,32],[384,64,32,32]]},layers:{1:[_.ground,_.rampNorth,_.rampSouth],2:[_.wall]},volumes:{2:1},step:N,physicsStatic:[_.wall],levels:{1:{map:bt,floor:[_.slab,_.railing],walls:[_.railing],layers:{1:[_.slab],4:[_.railing]},volumes:{4:.35}}},ramps:[{tile:_.rampNorth,dir:"north",from:0,to:1},{tile:_.rampSouth,dir:"south",from:0,to:1}],physicsDynamic:[ne(20,28,0),ne(60,28,0),ne(31,S.slabTop,1,32),ne(49,S.slabBottom,1,32)],respawns:{team1:[b(3,38,270),b(9,38,0),b(6,6,0),b(12,6,0),b(6,14,0),b(12,14,0),b(6,22,0),b(12,22,0),oe(10,29,0,1),oe(16,29,0,1)],team2:[b(49,36,270),b(70,38,180),b(73,6,180),b(67,6,180),b(73,14,180),b(67,14,180),b(73,22,180),b(67,22,180),oe(69,29,180,1),oe(63,29,180,1)]},map:gt},wt={setId:"c1",scale:.6,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[160,0,32,32],[0,64,32,32],[0,64,32,32]]},layers:{1:[0,2,4],2:[1],4:[3]},physicsStatic:[1],physicsDynamic:[],step:32,respawns:{team1:[[130,520,0],[130,620,0],[130,720,0],[130,820,0],[230,520,0],[230,620,0],[230,720,0],[230,820,0],[330,620,0],[330,720,0]],team2:[[1600,520,180],[1600,620,180],[1600,720,180],[1600,820,180],[1500,520,180],[1500,620,180],[1500,720,180],[1500,820,180],[1400,620,180],[1400,720,180]]},map:(function(){const t=[[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,2,2,4,3,3,3,4,2,2,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,3,3,3,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,4,4,4,4,4,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,2,2,2,2,2,2,2,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,1,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1],[1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]],e=[];for(const a of t){const r=[],o=[];for(const s of a)r.push(s,s),o.push(s,s);e.push(r,o)}return e})()},Te=72,Oe=48,M=32,f={ground:0,wall:1,slab1:2,railing1:3,slab2:4,railing2:5,rampLong:6,rampSide:7,rampSteep:8,rampStep:9},se={x0:14,x1:46,y0:12,y1:30},ie={x0:34,x1:52,y0:16,y1:26},me={x0:5,x1:13,y:21},fe={x:24,y0:31,y1:34},de={x0:53,x1:56,y:21},ue={x0:31,x1:33,y:21},$e={x0:20,x1:22},je={x0:40,x1:42},St=[{x0:8,x1:11,y0:14,y1:17},{x0:60,x1:63,y0:30,y1:33}],Re=t=>Array.from({length:Oe},()=>Array(Te).fill(t)),Qe=(t,e,a)=>t>=e&&t<=a,vt=(function(){const t=Re(f.ground);for(let e=0;e<Oe;e+=1)for(let a=0;a<Te;a+=1)(e<2||e>=Oe-2||a<2||a>=Te-2)&&(t[e][a]=f.wall);for(const e of St)for(let a=e.y0;a<=e.y1;a+=1)for(let r=e.x0;r<=e.x1;r+=1)t[a][r]=f.wall;for(let e=me.x0;e<=me.x1;e+=1)t[me.y][e]=f.rampLong;for(let e=fe.y0;e<=fe.y1;e+=1)t[e][fe.x]=f.rampSide;for(let e=de.x0;e<=de.x1;e+=1)t[de.y][e]=f.rampSteep;return t})(),Je=(t,e,a,r,o)=>{for(let s=e.y0;s<=e.y1;s+=1)for(let l=e.x0;l<=e.x1;l+=1){const c=l===e.x0||l===e.x1||s===e.y0||s===e.y1;t[s][l]=c&&!o(l,s)?r:a}},At=(function(){const t=Re(0);Je(t,se,f.slab1,f.railing1,(e,a)=>e===se.x0&&a===me.y||a===se.y1&&e===fe.x||a===se.y0&&Qe(e,$e.x0,$e.x1));for(let e=ue.x0;e<=ue.x1;e+=1)t[ue.y][e]=f.rampStep;return t})(),Tt=(function(){const t=Re(0);return Je(t,ie,f.slab2,f.railing2,(e,a)=>e===ie.x0&&a===ue.y||e===ie.x1&&a===de.y||a===ie.y1&&Qe(e,je.x0,je.x1)),t})(),et=(t,e)=>[t*M+M/2,e*M+M/2],le=(t,e,a,r=64)=>({density:40,layer:3,position:[t*M,e*M+(M-r)/2],angle:0,width:r,height:r,img:"b1.png",linearDamping:6,angularDamping:14,level:a}),O=(t,e,a)=>[...et(t,e),a],I=(t,e,a,r)=>[...et(t,e),a,r],Ot={setId:"c1",scale:.4,spriteSheet:{img:"tiles.png",frames:[[480,64,32,32],[128,224,32,32],[288,64,32,32],[352,96,32,32],[96,0,32,32],[64,32,32,32],[352,64,32,32],[384,64,32,32],[416,64,32,32],[320,64,32,32]]},layers:{1:[f.ground,f.rampLong,f.rampSide,f.rampSteep],2:[f.wall]},volumes:{2:1},step:M,physicsStatic:[f.wall],levels:{1:{map:At,floor:[f.slab1,f.railing1,f.rampStep],walls:[f.railing1],layers:{1:[f.slab1,f.rampStep],4:[f.railing1]},volumes:{4:.35}},2:{map:Tt,floor:[f.slab2,f.railing2],walls:[f.railing2],layers:{1:[f.slab2],4:[f.railing2]},volumes:{4:.35}}},ramps:[{tile:f.rampLong,dir:"east",from:0,to:1},{tile:f.rampSide,dir:"north",from:0,to:1},{tile:f.rampSteep,dir:"west",from:0,to:2},{tile:f.rampStep,dir:"east",from:1,to:2}],physicsDynamic:[le(41,25,2,32),le(21,13,1,32),le(8,24,0),le(62,38,0)],respawns:{team1:[O(58,21,180),I(41,22,90,2),I(20,20,0,1),I(45,18,180,2),O(5,8,0),O(9,8,0),O(5,40,0),O(9,40,0)],team2:[I(24,28,90,0),O(20,33,0),I(21,15,270,1),I(50,21,180,2),I(40,28,180,1),O(60,8,180),O(64,8,180),O(60,40,180)]},map:vt},Et={canopy:pt,downtown:yt,garden:ht,overpass:xt,"pool mini":wt,terraces:Ot},Ee={m1:{constructor:"Tank",currentWeapon:"w1",size:3,accelerationFactor:1e3,brakingFactor:.3,maxForwardSpeed:260,maxReverseSpeed:-130,baseTurnTorqueFactor:215,damping:{linear:3,angular:100},fixture:{density:200,friction:.5,restitution:.1},lateralGrip:20,turnSpeedThreshold:10,baseTurnFactorRatio:.8,reverseTurnMultiplier:.7,throttleIncreaseRate:2,throttleDecreaseRate:2.5,strainFactor:1.5,maxGunAngle:1.4,gunRotationSpeed:3,gunCenterSpeed:10}},kt={w1:{type:"hitscan",impulseMagnitude:75e5,damage:40,range:1500,fireRate:.01,spread:0,consumption:1,cameraShake:{intensity:20,duration:200}},w2:{type:"explosive",constructor:"Bomb",time:300,shotOutcomeId:"w2e",size:8,fireRate:.1,damage:70,radius:50,impulseMagnitude:2e6,cameraShake:{intensity:30,duration:400}}},Rt={m1:{id:1,kind:"indexed8",class:"hot",fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"gunRotation",ty:"f32",interp:"lerpAngle"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"engineLoad",ty:"f32",interp:"lerp"},{name:"condition",ty:"u8"},{name:"size",ty:"u8"},{name:"team",ty:"u8"},{name:"angvel",ty:"f32",interp:"lerp"},{name:"z",ty:"f32",interp:"lerp"},{name:"level",ty:"u8"},{name:"vz",ty:"f32",interp:"discrete"},{name:"pitch",ty:"f32",interp:"lerp"},{name:"roll",ty:"f32",interp:"lerp"}]},w1:{id:2,kind:"list16",class:"event",fields:[{name:"startX",ty:"f32"},{name:"startY",ty:"f32"},{name:"endX",ty:"f32"},{name:"endY",ty:"f32"},{name:"bodyX",ty:"f32"},{name:"bodyY",ty:"f32"},{name:"wasHit",ty:"u8"},{name:"shooterId",ty:"u8"},{name:"startLevel",ty:"u8"},{name:"endLevel",ty:"u8"}]},w2:{id:3,kind:"indexed32",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"angle",ty:"f32"},{name:"size",ty:"u8"},{name:"time",ty:"u16"},{name:"ownerId",ty:"u8"},{name:"level",ty:"u8"}]},w2e:{id:4,kind:"list16",class:"event",fields:[{name:"x",ty:"f32"},{name:"y",ty:"f32"},{name:"radius",ty:"f32"},{name:"level",ty:"u8"}]},c1:{id:5,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]},c2:{id:6,kind:"indexedNoNull8",class:"hot",optionalFrom:6,fields:[{name:"x",ty:"f32",interp:"lerp"},{name:"y",ty:"f32",interp:"lerp"},{name:"angle",ty:"f32",interp:"lerpAngle"},{name:"z",ty:"f32",interp:"lerp",role:"z"},{name:"level",ty:"u8",role:"level"},{name:"state",ty:"u8",role:"state"},{name:"vx",ty:"f32",interp:"lerp"},{name:"vy",ty:"f32",interp:"lerp"},{name:"angvel",ty:"f32",interp:"lerp"}]}},Nt={parts:{models:Ee,weapons:kt,mapConstructor:"Map",hitscanService:"HitscanService",friendlyFire:!1},snapshot:Rt,soundCues:{roundStart:"roundStart",victory:"victory",defeat:"defeat",frag:"frag",death:"gameOver"},initialVote:"teamChange",maps:Et,mapScale:.3,currentMap:"pool mini",mapsInVote:4,mapSetId:"c1",coreParams:{levels:{fallTime:.35,fallDamage:30,fallDamageFreeHeight:.5,maxFallDamage:100,climbGravity:500,climbMaxSpeedFactor:.5,levelAdoptFrames:8,maxSideEntryRise:.5,rampLaunchFactor:.35,minLaunchVz:.35,maxLaunchVz:3.5,jumpClearance:.45,tiltGain:2,tiltAirGain:.12,tiltResponse:12,tiltMax:.6,landingShake:{intensity:3,duration:220,minImpact:1.5,fullImpact:6}},surfaces:{trackYawGain:.004,trackSampleX:.6,trackSampleY:.75,bodyBeltCoupling:4,types:{sand:{accel:.6,maxSpeed:.55,drag:1.2,grip:1,brake:1,turn:.8},mud:{accel:.45,maxSpeed:.4,drag:2,grip:.9,brake:1,turn:.7},water:{accel:.7,maxSpeed:.6,drag:1.5,grip:.8,brake:.8,turn:.85},oil:{accel:.35,maxSpeed:1,drag:0,grip:.08,brake:.1,turn:1.6,angularDrag:-.5,slickTime:1.5},conveyor:{belt:60},boost:{boostDv:220,boostMaxSpeed:480,minEntrySpeed:20,boostTime:1.2,boostSpeedFactor:1.8}}},props:{fence:{hp:30,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:60,ramDamagePerSpeed:.5},crate:{hp:120,damagedAt:.5,bulletFactor:.5,blastFactor:1.5,ramThreshold:140,ramDamagePerSpeed:.6},barrel:{hp:40,damagedAt:0,bulletFactor:1,blastFactor:1,ramThreshold:150,ramDamagePerSpeed:1,chainDelay:.15,blast:{radius:70,damage:80,impulse:25e5,cameraShake:{intensity:30,duration:400}}}}},roomDefaults:{maxPlayers:8},roomForm:[{name:"maxPlayers",control:"text",label:"Max players",numeric:!0},{name:"roundTime",control:"text",label:"Round time",unit:"s",numeric:!0},{name:"mapTime",control:"text",label:"Map time",unit:"s",numeric:!0},{name:"friendlyFire",control:"checkbox",label:"Friendly fire"},{name:"map",control:"select",label:"Map",source:"maps"}],stat:{name:{key:0,bodyMethod:"=",headSync:!0,headMethod:"#"},status:{key:1,bodyMethod:"=",bodyValue:"",headValue:""},score:{key:2,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},deaths:{key:3,bodyMethod:"+",bodyValue:0,headMethod:"+",headValue:0},latency:{key:4,bodyMethod:"="}},playerState:{defaultState:{}},panel:{fields:{health:{key:"h",value:100},w1:{key:"w1",value:200},w2:{key:"w2",value:100}},activeKey:"wa"},scripted:{namePrefix:"Bot",defaultModel:"m1"},spectatorTeam:"spectators",teams:{team1:1,team2:2,spectators:3},playerKeys:{forward:{key:1},back:{key:2},left:{key:4},right:{key:8},gunCenter:{key:16,type:1},gunLeft:{key:32},gunRight:{key:64},fire:{key:128,type:1},nextWeapon:{key:256,type:1},prevWeapon:{key:512,type:1}}},Mt={roundStart:{file:"round-start",priority:200,volume:.35},victory:{file:"victory",priority:200,volume:.38},defeat:{file:"defeat",priority:200,volume:.5},frag:{file:"frag",priority:150,volume:.26},hit:{file:"hit",priority:150,volume:.36},gameOver:{file:"game-over",priority:150,volume:.31},shot:{file:"shot",priority:100,volume:.51},explosion:{file:"explosion",priority:100,volume:.74},bombHasBeenPlanted:{file:"bomb-has-been-planted",priority:90,volume:.48},propBreak:{file:"hit",priority:80,volume:.28},tankLanding:{file:"tank-landing",priority:60,volume:.7},tankEngine:{file:"tank-engine",priority:50,loop:!0,volume:.5},tankWater:{file:"tank-water",priority:55,loop:!0,volume:.3}},Lt={codecList:["webm","mp3"],path:"/sounds/",spatial:{mode:"topDown",virtualElevation:108,innerRadius:7.5},sounds:Mt},Bt={mode:"hole",radius:260,softness:.45,minAlpha:.12,layerAlpha:.4,fadeRate:6,roofMargin:0,lowerTint:11579584},Ct={shear:.22,levelZStride:100},It={enabled:!0,faces:!0,faceTileRepeats:12,faceBleedPx:2,slices:4,rampSegments:4,sideTint:10133674},Dt={scaleGain:.1,baseAlpha:.4,alphaFalloff:.12,sizeFactor:1.05,groundOffset:3,groundAlpha:.3},Wt={enabled:!0,lift:.35,vertices:6,shading:.28,lightDir:[-.7,-.7]},Ft={fullImpact:6,squash:.14,duration:260,minImpact:1.5},Vt={enabled:!0,maxFps:30},He={enabled:!0,resolution:.5,maxLights:96,headlights:{length:90,spread:.55,intensity:.9,color:16773572,offset:.5},rampSpill:1,tankGlow:{radius:26,intensity:.35,color:12570879},flash:{explosion:{radius:140,intensity:1,duration:260,color:16756832},shot:{radius:40,intensity:.6,duration:70,color:16773280}},glints:{enabled:!0,intensity:.8,size:1.2},shafts:{enabled:!0,rays:14,length:1.3,intensity:.35,shadows:!0,maxShadowCasters:4}},Pt={parts:{gameSets:{c1:["Map","MapRadar"],c2:["Map"],m1:["Tank","TankRadar","Smoke","Tracks","Dust"],w1:["ShotEffect"],w2:["Bomb"],w2e:["ExplosionEffect"]},entitiesOnCanvas:{Map:"vimp",MapRadar:"radar",TankRadar:"radar",Tank:"vimp",ShotEffect:"vimp",Bomb:"vimp",ExplosionEffect:"vimp",Smoke:"vimp",Tracks:"vimp",Dust:"vimp"},bakedAssets:{vimp:[{name:"explosionTexture",component:"ExplosionEffect",params:{radius:50,blur:2,quality:40,color:16777215}},{name:"impactParticleTexture",component:"ShotEffect",params:{radius:4,blur:1,quality:10,color:16777215}},{name:"funnelTexture",component:"ExplosionEffect",params:{baseRadius:25,irregularity:4,blur:3,numPoints:20,colorFill:1842204,colorRim:11579568,rimWidth:4,variants:5}},{name:"smokeTexture",component:"Smoke",params:{radius:3,blur:1,quality:40,color:16777215}},{name:"tankTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"tankModelTexture",component:"Tank",params:{colors:{teamId1:5579298,teamId2:2250018}}},{name:"bombTexture",component:"Bomb",params:{colorOuter:16777215,colorInner:986895}},{name:"tankShadowTexture",component:"Tank",params:{width:40,height:30,radius:6,blur:2,quality:20,color:0}},{name:"dustTexture",component:"Dust",params:{radius:4,blur:1,quality:20,color:16777215}},{name:"trackMarkTexture",component:"Tracks",params:{width:4,length:5,color:1710610}},{name:"scorchTexture",component:"Map",params:{baseRadius:20,irregularity:5,blur:4,numPoints:16,color:1315344,coreColor:328965,coreRatio:.55,variants:4}},{name:"debrisTexture",component:"Map",params:{length:8,width:3,color:16777215,variants:4}},{name:"lightRadialTexture",component:"Map",params:{radius:64,rings:32,blur:2}},{name:"lampHeadTexture",component:"Map",params:{core:3,halo:10,rings:12,blur:1}},{name:"glintTexture",component:"Map",params:{radius:32,strips:16,blur:2}},{name:"lightShaftTexture",component:"Map",params:{radius:128,rays:He.shafts.rays,width:.05,seed:7,blur:3}},{name:"headlightConeTexture",component:"Tank",params:{length:128,halfWidth:64,strips:24,blur:4}}],radar:[{name:"tankRadarTexture",component:"TankRadar",params:{radius:6,borderWidth:2,crossSize:9,crossThickness:1.5,colors:{teamId1:5579298,teamId2:2250018}}}]},componentDependencies:{renderer:["Map","Tank","Tracks","Smoke","Dust","Bomb","ShotEffect","ExplosionEffect"],assetsBase:["Map"],soundManager:["ExplosionEffect","ShotEffect","Bomb","Tank","Dust","Map"],mapDynamics:["ShotEffect"],rampRuns:["Map"],surfaces:["Dust","Tracks","Tank"],shots:["ShotEffect","Tank"],blasts:["ExplosionEffect","Tank"],levelView:["Tank","Map","MapRadar","Smoke","Bomb","ShotEffect","ExplosionEffect","Tracks","Dust"],localPlayer:["Tank","ShotEffect"],lighting:["Map","Tank","ExplosionEffect","ShotEffect"]},seeThrough:Bt,parallax:Ct,volume:It,shadow:Dt,tilt:Wt,landing:Ft,lighting:He,animations:Vt,sounds:Lt},initIdList:["vimp","radar","panel","chat"],modules:{canvasManager:{canvases:{vimp:{width:960,height:600,aspectRatio:"16:9",baseScale:"5:1",dynamicCamera:!0,shakeCamera:!0},radar:{width:150,height:150,fixSize:"150",baseScale:"1:8"}}},controls:{keySetList:[{78:"nextPlayer",80:"prevPlayer"},{87:"forward",83:"back",65:"left",68:"right",85:"gunCenter",75:"gunLeft",76:"gunRight",74:"fire",78:"nextWeapon",80:"prevWeapon"}]},chat:{params:{messages:{s:["Team {0} is full. Your current team: {1}","Your team: {0}","Your new team: {0}","Your new status: spectator","⚔️ {0} killed {1}","⚡ {0} joined the game","👋 {0} left the game"],v:["A vote has been created","Voting has started","Your vote has been accepted","Voting is temporarily unavailable","Vote passed","Vote failed"],m:["Current map: {0}","Next map: {0}"],c:["Command not found","Your rank: {0}"],n:["Invalid name","{0} changed name to {1}"],b:["Only active players can use /bot","Invalid bot count","Invalid team name","{0} bot(s) created for {1}","All bots removed from {0}","{0} bot(s) created","All bots removed"]}}},panel:{keys:{t:"time",h:"health",wa:"activeWeapon",w1:"bullet",w2:"bomb"},fields:[{name:"health",elem:"panel-health",type:"bar",max:100,blocks:30},{name:"bullet",elem:"panel-bullet",type:"weapon"},{name:"bomb",elem:"panel-bomb",type:"weapon"},{name:"time",elem:"panel-time",type:"time"}]},stat:{params:{columns:["names","status","score","deaths","latency"],heads:{1:"team1",2:"team2"},bodies:{1:"team1",2:"team2",3:"spectators"},sortList:{team1:[[2,!0],[3,!1]],team2:[[2,!0],[3,!1]]}}},vote:{params:{templates:{teamChange:["Choose a team","teams",!0],mapChangeBySystem:["Choose the next map"],mapChangeByUser:["{0} suggested the map: {1}",["Yes","No"]],createBotsForTeam:["{0} suggests creating {1} bot(s) to {2}. Agree?",["Yes","No"]],removeBotsForTeam:["{0} suggests removing all bots from {1}. Agree?",["Yes","No"]],createBots:["{0} suggests creating {1} bot(s) to the game. Agree?",["Yes","No"]],removeBots:["{0} suggests removing all bots from the game. Agree?",["Yes","No"]]},menu:[["teamChange",["Switch team","teams"]],["mapChange",["Suggest map","maps"]]]}}},gameInform:{list:["{0} WINS!","ROUND START!","GAME OVER!"]}},Yt={elems:{authId:"auth",errorId:"auth-error",enterId:"auth-enter",fieldsId:"auth-fields",titleId:"auth-title",informsId:"auth-informs"},texts:{title:"Tanks",sections:[{heading:"Controls",lines:[{keys:"w, a, s, d",text:"move the tank"},{keys:"k, l",text:"turn the gun"},{keys:"u",text:"center the gun"},{keys:"j",text:"fire"},{keys:"n, p",text:"switch weapon/player",last:!0},{keys:"c",text:"chat/command line"},{keys:"m",text:"menu"},{keys:"<Tab>",text:"stats",last:!0}]},{heading:"Command line",lines:[{keys:"/name <name>",text:"change nickname"},{keys:"/mapname",text:"show current map name"},{keys:"/timeleft",text:"map time left"},{separator:!0},{keys:"/bot <count>",text:"add bot(s)"},{keys:"/bot <count> <team>",text:"add to team"},{keys:"/bot 0",text:"remove all bots"},{keys:"/bot 0 <team>",text:"remove from team"}]}]},params:[{name:"model",value:"m1",options:{control:"select",label:"Model",options:Object.keys(Ee),validator:"isValidModel",storage:"model"}}],validators:{isValidModel:t=>t in Ee}};function tt(t,e,a){a?(t.scripted.removeScripted(a),e>0?(e=t.scripted.createScripted(e,a),t.chat.pushSystem("BOT_CREATED_FOR_TEAM",[e,a])):t.chat.pushSystem("BOT_REMOVED_FROM_TEAM",[a])):(t.scripted.removeScripted(),e>0?(e=t.scripted.createScripted(e,null),t.chat.pushSystem("BOT_CREATED",[e])):t.chat.pushSystem("BOT_REMOVED")),t.roundManager.initiateNewRound()}function zt(t,e,a,r){const o=t.participants.get(e).name,s="botManagement";let l,c;if(!t.voteCoordinator.canCreateVote(s,e))return;r?a>0?(l="createBotsForTeam",c=[o,a,r]):(l="removeBotsForTeam",c=[o,r]):a>0?(l="createBots",c=[o,a]):(l="removeBots",c=[o]);const d={name:l,params:c},p=t.participants.getHumans().map(m=>m.gameId).filter(m=>m!==e);t.voteCoordinator.createVote({voteName:l,voteCategory:s,payload:d,resultFunc:m=>{m==="Yes"?(t.chat.pushSystem("VOTE_PASSED"),tt(t,a,r)):t.chat.pushSystem("VOTE_FAILED")},userList:p,gameId:e})}const Ut={name:"/bot",handler(t,e,a){if(t.participants.get(e).teamId===t.spectatorId){t.chat.pushSystemByUser(e,"BOT_PLAYERS_ONLY");return}const o=parseInt(a[0],10),s=a[1]||null;if(isNaN(o)||o<0){t.chat.pushSystemByUser(e,"BOT_INVALID_COUNT");return}if(s&&(!t.teams[s]||s===t.spectatorTeam)){t.chat.pushSystemByUser(e,"BOT_INVALID_TEAM");return}if(o===0){if(s&&t.scripted.getCountForTeam(s)===0){t.chat.pushSystemByUser(e,"BOT_REMOVED_FROM_TEAM",[s]);return}if(t.scripted.getCount()===0){t.chat.pushSystemByUser(e,"BOT_REMOVED");return}}t.participants.getHumans().filter(c=>c.teamId!==t.spectatorId).length<=1?tt(t,o,s):zt(t,e,o,s)}};function Gt(t){const e=Math.floor(t/1e3),a=String(Math.floor(e/60)).padStart(2,"0"),r=String(e%60).padStart(2,"0");return`${a}:${r}`}const $t={name:"/name",handler(t,e,a){t.roundManager.changeName(e,a.join(" "))}},jt={name:"/nr",handler(t,e){t.isDevMode?t.roundManager.initiateNewRound():t.chat.pushSystemByUser(e,"COMMANDS_NOT_FOUND")}},Ht={name:"/timeleft",handler(t,e){t.chat.pushSystemByUser(e,[Gt(t.timerManager.getMapTimeLeft())])}},qt={name:"/mapname",handler(t,e){t.chat.pushSystemByUser(e,[t.roundManager.currentMap])}},Xt={name:"/rank",handler(t,e){t.chat.pushSystemByUser(e,"RANK",[t.playerDataSync.getRank(e)])}},Kt={BOT_PLAYERS_ONLY:"b:0",BOT_INVALID_COUNT:"b:1",BOT_INVALID_TEAM:"b:2",BOT_CREATED_FOR_TEAM:"b:3",BOT_REMOVED_FROM_TEAM:"b:4",BOT_CREATED:"b:5",BOT_REMOVED:"b:6"};class Zt{constructor({participants:e,coreAdapter:a,panel:r,stat:o,scripted:s}){this._participants=e,this._coreAdapter=a,this._panel=r,this._stat=o,this._model=s.defaultModel,this._respawns=null}createMap(e){this._respawns=e.respawns}createScripted(e,a=null){if(!this._respawns)return 0;const r=this._participants.getPlayableTeams();let o=0;for(let s=0;s<e&&!this._participants.isFull;s+=1){let l=a;if(l||(l=r.sort((p,m)=>this._participants.getTeamSize(p)-this._participants.getTeamSize(m))[0]),!l||!this._respawns[l]||this._participants.getTeamSize(l)>=this._respawns[l].length)continue;const c=this._participants.createScripted({team:l,model:this._model}),d=this._participants.get(c);this._stat.addUser(c,d.teamId,{name:d.name,status:"dead",latency:"BOT"}),this._panel.addUser(c),o+=1}return o}removeScripted(e=null){(e?this._participants.getScripted().filter(r=>r.team===e):this._participants.getScripted()).forEach(r=>this._removeBotById(r.gameId))}removeOneForHuman(e){for(const a of this._participants.getScripted())if(a.team===e)return this._removeBotById(a.gameId),!0;return!1}_removeBotById(e){const a=this._participants.get(e);!a||!a.isScripted||(this._stat.removeUser(e,a.teamId),this._panel.removeUser(e),this._coreAdapter.removePlayer(e),this._participants.remove(e))}getBotById(e){const a=this._participants.get(e);return a&&a.isScripted?a:void 0}getBots(){return this._participants.getScripted()}getCount(){return this._participants.getScripted().length}getCountForTeam(e){return this._participants.getScripted().filter(a=>a.team===e).length}getCountsPerTeam(){const e={};for(const a of this._participants.getScripted())e[a.team]=(e[a.team]||0)+1;return e}}function Qt(t){return{scripted:new Zt(t)}}const Jt=t=>(t??"").split(/[?#]/)[0].endsWith(".js"),ea=t=>import(t),ta={id:"tanks",engineApi:4,requires:["map.layers","map.levelsN","map.gameData","map.bodyState"],async createCore(t,{wasmUrl:e}){if(Jt(e)){const a=await ea(e);return new a.GameCore(t)}return await ct({module_or_path:e}),new we(t)},onCoreEvent(t){t?.type==="mapDerivedError"&&console.warn(`[tanks] map game data: ${t.message}`)},gameConfig:Nt,authSchema:Yt,chatCommands:[Ut,$t,jt,Ht,qt,Xt],systemMessages:Kt,createModules:Qt,buildClientGameConfig:()=>Pt};export{ta as default};
|
package/dist/manifest.json
CHANGED
|
@@ -7,17 +7,17 @@
|
|
|
7
7
|
"map.gameData",
|
|
8
8
|
"map.bodyState"
|
|
9
9
|
],
|
|
10
|
-
"version": "
|
|
10
|
+
"version": "50e2d82f3dd2e6c2",
|
|
11
11
|
"title": "Tanks",
|
|
12
12
|
"entries": {
|
|
13
|
-
"client": "/games/tanks/client-
|
|
14
|
-
"host": "/games/tanks/host-
|
|
15
|
-
"wasm": "/games/tanks/assets/vimp_tanks_core_bg-
|
|
13
|
+
"client": "/games/tanks/client-BChiB11Q.js",
|
|
14
|
+
"host": "/games/tanks/host-C3XXTf32.js",
|
|
15
|
+
"wasm": "/games/tanks/assets/vimp_tanks_core_bg-D1al7yzL.wasm",
|
|
16
16
|
"wasmNode": "./core-node/vimp_tanks_core.js"
|
|
17
17
|
},
|
|
18
18
|
"assetsBase": "/games/tanks/",
|
|
19
19
|
"maps": {
|
|
20
|
-
"version": "
|
|
20
|
+
"version": "fdc89270ea211f66",
|
|
21
21
|
"list": [
|
|
22
22
|
"canopy",
|
|
23
23
|
"downtown",
|
package/dist/maps/garden.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"setId":"c1","spriteSheet":{"img":"tiles3.png","frames":[[96,0,32,32],[32,32,32,32],[64,32,32,32],[0,96,32,32]]},"layers":{"1":[0,1,2],"4":[3]},"step":32,"physicsStatic":[2],"physicsDynamic":[{"density":100,"layer":3,"position":[960,64],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,96],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,128],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,160],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,192],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,224],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,256],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,288],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,320],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,352],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[64,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[96,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[128,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[160,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[192,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[224,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[256,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[288,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[320,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[352,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,704],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,736],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,768],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,800],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,832],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,864],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,896],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,928],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[704,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[736,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[768,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[800,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[832,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[864,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[896,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[928,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3456],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3488],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3520],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3552],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3584],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3616],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3648],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3680],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3712],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3744],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3456,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3488,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3520,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3552,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3584,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3616,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3648,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3680,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3712,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3744,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2880],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2912],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2944],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2976],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3008],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3040],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3072],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3104],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2880,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2912,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2944,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2976,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3008,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3040,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3072,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3104,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14}],"respawns":{"team1":[[320,320,45],[320,480,45],[320,640,45],[480,320,45],[480,480,45],[480,640,45],[640,320,45],[640,480,45],[640,640,45],[800,400,45]],"team2":[[3520,3520,225],[3520,3360,225],[3520,3200,225],[3360,3520,225],[3360,3360,225],[3360,3200,225],[3200,3520,225],[3200,3360,225],[3200,3200,225],[3040,3440,225]]},"map":[[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,1,2,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,2,1,2,2,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,1,1,1,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,1,1,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,2,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,1,2,1,2,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,1,1,2,2,1,1,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,2,2,2,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,1,2,2,1,2,2,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,2,2,1,2,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,2,2,1,2,2,2,2,2,2,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,2,1,2,1,1,2,2,1,2,2,2,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,1,1,2,1,1,1,2,2,2,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,2,2,2,2,2,2,2,2,2,2,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,2,2,2,1,2,2,2,2,1,2,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,1,2,2,1,2,1,2,2,1,2,2,2,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,1,2,2,1,2,2,1,2,2,2,2,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,2,2,1,1,2,1,1,2,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,1,1,2,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,2,2,1,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,2,1,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,2,2,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,2,2,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,2,2,1,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,2,2,2,2,1,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2,2,1,2,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,1,2,2,2,2,2,1,2,2,2,2,2,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,2,1,2,2,1,1,2,2,2,1,2,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,1,1,2,1,2,1,2,2,2,2,2,1,2,2,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,1,2,2,2,2,2,1,2,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,2,1,1,2,2,2,1,2,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,2,1,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,2,2,2,2,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,1,1,2,2,2,2,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,2,1,1,1,1,2,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,2,1,1,2,2,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,2,1,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,2,2,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,1,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,2,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]]}
|
|
1
|
+
{"setId":"c1","spriteSheet":{"img":"tiles3.png","frames":[[96,0,32,32],[32,32,32,32],[64,32,32,32],[0,96,32,32]]},"layers":{"1":[0,1,2],"4":[3]},"step":32,"physicsStatic":[2],"physicsDynamic":[{"density":100,"layer":3,"position":[960,64],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,96],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,128],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,160],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,192],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,224],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,256],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,288],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,320],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,352],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[64,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[96,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[128,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[160,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[192,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[224,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[256,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[288,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[320,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[352,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,704],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,736],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,768],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,800],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,832],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,864],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,896],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,928],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[704,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[736,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[768,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[800,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[832,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[864,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[896,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[928,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[960,960],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3456],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3488],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3520],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3552],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3584],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3616],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3648],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3680],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3712],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3744],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3456,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3488,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3520,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3552,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3584,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3616,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3648,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3680,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3712,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3744,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2880],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2912],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2944],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2976],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3008],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3040],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3072],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,3104],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2848,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2880,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2912,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2944,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[2976,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3008,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3040,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3072,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14},{"density":100,"layer":3,"position":[3104,2848],"angle":0,"img":"b1.png","width":32,"height":32,"linearDamping":5,"angularDamping":14}],"respawns":{"team1":[[320,320,45],[320,480,45],[320,640,45],[480,320,45],[480,480,45],[480,640,45],[640,320,45],[640,480,45],[640,640,45],[800,400,45]],"team2":[[3520,3520,225],[3520,3360,225],[3520,3200,225],[3360,3520,225],[3360,3360,225],[3360,3200,225],[3200,3520,225],[3200,3360,225],[3200,3200,225],[3040,3440,225]]},"map":[[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,2,1,1,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,1,2,1,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,1,2,1,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,1,1,1,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,2,2,2,2,2,1,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,1,2,1,2,1,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,2,1,1,2,2,2,2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,2,2,2,1,2,2,2,2,2,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,2,1,2,2,1,2,2,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,2,1,2,2,1,1,1,1,2,2,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,1,2,2,2,2,1,2,1,2,2,1,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,1,2,2,2,1,2,2,2,2,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,1,1,2,2,2,2,2,2,1,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,2,1,2,2,1,2,2,1,2,1,1,2,2,2,2,2,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,2,2,2,2,2,1,2,2,1,2,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,2,2,1,1,2,2,1,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,1,2,2,2,2,1,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,2,1,1,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,2,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,2,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,1,2,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,1,1,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,1,2,1,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,1,2,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,1,1,2,1,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,1,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,1,1,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,2,2,2,1,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,1,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,1,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,2,2,1,2,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,2,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,1,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,1,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,1,1,2,2,2,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,1,2,1,2,2,1,2,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,1,1,2,1,2,2,2,1,1,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,1,2,2,1,2,2,2,2,2,2,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,1,2,2,2,1,1,1,1,1,2,2,1,2,2,1,1,2,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,2,1,2,1,1,2,2,1,2,1,1,2,2,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,1,1,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,2,2,1,2,1,2,2,2,1,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,2,2,1,2,2,2,2,2,1,2,2,2,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,1,2,1,1,2,2,1,2,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,2,1,2,2,2,2,2,1,1,1,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,2,1,2,1,2,2,2,1,2,1,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,2,1,1,1,1,1,2,2,1,2,1,2,2,1,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,2,1,2,2,1,2,2,1,2,2,2,2,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,2,1,2,2,1,2,2,1,2,1,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,1,2,1,2,2,2,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,1,2,2,2,1,2,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,1,1,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,2,2,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,1,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,1,2,2,2,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,1,1,2,1,2,1,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,1,1,2,2,1,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,1,2,2,2,1,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,2,2,1,1,2,2,1,2,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,1,2,1,2,2,1,1,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,1,1,1,2,2,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,2,2,2,2,2,2,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,1,2,1,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2],[2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2]]}
|
|
Binary file
|
|
Binary file
|
package/dist/sounds/defeat.webm
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/sounds/frag.webm
CHANGED
|
Binary file
|
|
Binary file
|
package/dist/sounds/hit.webm
CHANGED
|
Binary file
|
|
Binary file
|
package/dist/sounds/shot.webm
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/sounds/victory.webm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vimp-games/tanks",
|
|
3
|
-
"version": "0.22.
|
|
3
|
+
"version": "0.22.3",
|
|
4
4
|
"description": "VIMP Tanks — игра-плагин для движка VIMP",
|
|
5
5
|
"homepage": "https://github.com/lgick/vimp-tanks#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"globals": "^16.2.0",
|
|
52
52
|
"happy-dom": "^20.10.6",
|
|
53
53
|
"pixi.js": "8.19.0",
|
|
54
|
-
"vimp-engine": "^0.34.
|
|
54
|
+
"vimp-engine": "^0.34.5",
|
|
55
55
|
"vite": "^7.1.11",
|
|
56
56
|
"vitest": "^4.1.9"
|
|
57
57
|
}
|