wangzhibo
2021-09-08 133e0a1de3acd322cddde25a1893925c5dc22fed
1
function a0_0x22f4(_0x56046f,_0x3a881b){var _0x17e1ba=a0_0x17e1();return a0_0x22f4=function(_0x22f4e1,_0x307cb3){_0x22f4e1=_0x22f4e1-0x1f0;var _0x15d70f=_0x17e1ba[_0x22f4e1];return _0x15d70f;},a0_0x22f4(_0x56046f,_0x3a881b);}(function(_0x13f990,_0x17d9de){var _0x1492cf=a0_0x22f4,_0x203ce3=_0x13f990();while(!![]){try{var _0x30b3de=parseInt(_0x1492cf(0x30c))/0x1+-parseInt(_0x1492cf(0x347))/0x2+parseInt(_0x1492cf(0x2bf))/0x3+-parseInt(_0x1492cf(0x30d))/0x4+-parseInt(_0x1492cf(0x352))/0x5+-parseInt(_0x1492cf(0x30b))/0x6*(-parseInt(_0x1492cf(0x21f))/0x7)+parseInt(_0x1492cf(0x1f0))/0x8;if(_0x30b3de===_0x17d9de)break;else _0x203ce3['push'](_0x203ce3['shift']());}catch(_0x44dcd6){_0x203ce3['push'](_0x203ce3['shift']());}}}(a0_0x17e1,0xb4d46),!function(_0x54ab16,_0x1cf6bc){var _0x453655=a0_0x22f4;_0x453655(0x310)==typeof exports&&_0x453655(0x310)==typeof module?module[_0x453655(0x336)]=_0x1cf6bc(require('mars3d-cesium'),require(_0x453655(0x25f))):'function'==typeof define&&define[_0x453655(0x2f9)]?define(_0x453655(0x345),['mars3d-cesium','mars3d'],_0x1cf6bc):_0x453655(0x310)==typeof exports?exports[_0x453655(0x345)]=_0x1cf6bc(require(_0x453655(0x30a)),require(_0x453655(0x25f))):_0x54ab16[_0x453655(0x345)]=_0x1cf6bc(_0x54ab16['Cesium'],_0x54ab16[_0x453655(0x25f)]);}(window,function(_0x2ccef3,_0xd848e4){return function(_0x1f7d27){var _0x1d9b0b={};function _0x5113c4(_0x3f6739){var _0x5153a7=a0_0x22f4;if(_0x1d9b0b[_0x3f6739])return _0x1d9b0b[_0x3f6739][_0x5153a7(0x336)];var _0x231124=_0x1d9b0b[_0x3f6739]={'i':_0x3f6739,'l':!0x1,'exports':{}};return _0x1f7d27[_0x3f6739]['call'](_0x231124['exports'],_0x231124,_0x231124[_0x5153a7(0x336)],_0x5113c4),_0x231124['l']=!0x0,_0x231124[_0x5153a7(0x336)];}return _0x5113c4['m']=_0x1f7d27,_0x5113c4['c']=_0x1d9b0b,_0x5113c4['d']=function(_0x55434c,_0x59747e,_0x492367){var _0x57a05a=a0_0x22f4;_0x5113c4['o'](_0x55434c,_0x59747e)||Object[_0x57a05a(0x25b)](_0x55434c,_0x59747e,{'enumerable':!0x0,'get':_0x492367});},_0x5113c4['r']=function(_0x100265){var _0x430699=a0_0x22f4;_0x430699(0x21d)!=typeof Symbol&&Symbol[_0x430699(0x2ed)]&&Object[_0x430699(0x25b)](_0x100265,Symbol[_0x430699(0x2ed)],{'value':_0x430699(0x2bb)}),Object[_0x430699(0x25b)](_0x100265,_0x430699(0x2c8),{'value':!0x0});},_0x5113c4['t']=function(_0xb86257,_0x333bee){var _0x5cf869=a0_0x22f4;if(0x1&_0x333bee&&(_0xb86257=_0x5113c4(_0xb86257)),0x8&_0x333bee)return _0xb86257;if(0x4&_0x333bee&&'object'==typeof _0xb86257&&_0xb86257&&_0xb86257['__esModule'])return _0xb86257;var _0x508663=Object[_0x5cf869(0x31b)](null);if(_0x5113c4['r'](_0x508663),Object[_0x5cf869(0x25b)](_0x508663,'default',{'enumerable':!0x0,'value':_0xb86257}),0x2&_0x333bee&&'string'!=typeof _0xb86257){for(var _0x9c13c5 in _0xb86257)_0x5113c4['d'](_0x508663,_0x9c13c5,function(_0x380ebc){return _0xb86257[_0x380ebc];}[_0x5cf869(0x214)](null,_0x9c13c5));}return _0x508663;},_0x5113c4['n']=function(_0x4499a2){var _0x2ebf32=a0_0x22f4,_0x5e9557=_0x4499a2&&_0x4499a2[_0x2ebf32(0x2c8)]?function(){var _0x58cdbe=_0x2ebf32;return _0x4499a2[_0x58cdbe(0x333)];}:function(){return _0x4499a2;};return _0x5113c4['d'](_0x5e9557,'a',_0x5e9557),_0x5e9557;},_0x5113c4['o']=function(_0x5681a5,_0x2ce864){var _0x4598d6=a0_0x22f4;return Object[_0x4598d6(0x2fa)][_0x4598d6(0x334)]['call'](_0x5681a5,_0x2ce864);},_0x5113c4['p']='',_0x5113c4(_0x5113c4['s']=0x14);}([function(_0x1ab7f3,_0x375acd){var _0x372444=a0_0x22f4;_0x1ab7f3[_0x372444(0x336)]=_0x2ccef3;},function(_0x1af0aa,_0x22b33a){var _0x4997de=a0_0x22f4;_0x1af0aa[_0x4997de(0x336)]=function(_0x238928,_0x203878){var _0x273bd9=_0x4997de;if(!(_0x238928 instanceof _0x203878))throw new TypeError(_0x273bd9(0x22a));},_0x1af0aa['exports'][_0x4997de(0x333)]=_0x1af0aa[_0x4997de(0x336)],_0x1af0aa[_0x4997de(0x336)][_0x4997de(0x2c8)]=!0x0;},function(_0x17b701,_0x51680a){var _0x54980d=a0_0x22f4;function _0x575c58(_0x124fea,_0x529e66){var _0x579ac8=a0_0x22f4;for(var _0x29ef30=0x0;_0x29ef30<_0x529e66[_0x579ac8(0x2b5)];_0x29ef30++){var _0x33cc21=_0x529e66[_0x29ef30];_0x33cc21[_0x579ac8(0x1f4)]=_0x33cc21['enumerable']||!0x1,_0x33cc21['configurable']=!0x0,_0x579ac8(0x2c0)in _0x33cc21&&(_0x33cc21[_0x579ac8(0x275)]=!0x0),Object['defineProperty'](_0x124fea,_0x33cc21[_0x579ac8(0x326)],_0x33cc21);}}_0x17b701[_0x54980d(0x336)]=function(_0x111049,_0x191601,_0x3fc91b){var _0x42230f=_0x54980d;return _0x191601&&_0x575c58(_0x111049[_0x42230f(0x2fa)],_0x191601),_0x3fc91b&&_0x575c58(_0x111049,_0x3fc91b),_0x111049;},_0x17b701[_0x54980d(0x336)]['default']=_0x17b701[_0x54980d(0x336)],_0x17b701['exports']['__esModule']=!0x0;},function(_0x392948,_0x2d3a83){var _0xcda8b7=a0_0x22f4;_0x392948[_0xcda8b7(0x336)]=_0xd848e4;},function(_0x51a7f4,_0x604fb7){var _0x277061=a0_0x22f4;function _0xe6b501(_0x48c3cb){var _0x2bfb79=a0_0x22f4;return _0x51a7f4[_0x2bfb79(0x336)]=_0xe6b501=Object[_0x2bfb79(0x335)]?Object[_0x2bfb79(0x291)]:function(_0x3b3cc0){var _0x1f8c33=_0x2bfb79;return _0x3b3cc0[_0x1f8c33(0x281)]||Object['getPrototypeOf'](_0x3b3cc0);},_0x51a7f4[_0x2bfb79(0x336)][_0x2bfb79(0x333)]=_0x51a7f4[_0x2bfb79(0x336)],_0x51a7f4['exports'][_0x2bfb79(0x2c8)]=!0x0,_0xe6b501(_0x48c3cb);}_0x51a7f4['exports']=_0xe6b501,_0x51a7f4['exports'][_0x277061(0x333)]=_0x51a7f4[_0x277061(0x336)],_0x51a7f4[_0x277061(0x336)]['__esModule']=!0x0;},function(_0x37a415,_0x591913,_0xf7c5f){var _0x26f870=a0_0x22f4,_0x3a7fd9=_0xf7c5f(0x11);_0x37a415[_0x26f870(0x336)]=function(_0x5e91c2,_0xa0d00d){var _0x391a58=_0x26f870;if(_0x391a58(0x33e)!=typeof _0xa0d00d&&null!==_0xa0d00d)throw new TypeError(_0x391a58(0x295));_0x5e91c2[_0x391a58(0x2fa)]=Object['create'](_0xa0d00d&&_0xa0d00d[_0x391a58(0x2fa)],{'constructor':{'value':_0x5e91c2,'writable':!0x0,'configurable':!0x0}}),_0xa0d00d&&_0x3a7fd9(_0x5e91c2,_0xa0d00d);},_0x37a415[_0x26f870(0x336)][_0x26f870(0x333)]=_0x37a415[_0x26f870(0x336)],_0x37a415['exports'][_0x26f870(0x2c8)]=!0x0;},function(_0x194de2,_0xe3bed,_0x4d782c){var _0x5eba5a=a0_0x22f4,_0x560ea0=_0x4d782c(0x12)['default'],_0x5c04e3=_0x4d782c(0x13);_0x194de2[_0x5eba5a(0x336)]=function(_0x44922c,_0x23566a){var _0x45ef8f=_0x5eba5a;if(_0x23566a&&(_0x45ef8f(0x310)===_0x560ea0(_0x23566a)||_0x45ef8f(0x33e)==typeof _0x23566a))return _0x23566a;if(void 0x0!==_0x23566a)throw new TypeError(_0x45ef8f(0x2c5));return _0x5c04e3(_0x44922c);},_0x194de2[_0x5eba5a(0x336)]['default']=_0x194de2[_0x5eba5a(0x336)],_0x194de2[_0x5eba5a(0x336)]['__esModule']=!0x0;},function(_0x28bc6e,_0x339df2){var _0x56fff0=a0_0x22f4;_0x28bc6e[_0x56fff0(0x336)]=_0x56fff0(0x258);},function(_0x2e06dc,_0x4e4680){var _0x16f0a0=a0_0x22f4;_0x2e06dc[_0x16f0a0(0x336)]=_0x16f0a0(0x28c);},function(_0x1613b7,_0x219ce0){var _0x1b8d9e=a0_0x22f4;_0x1613b7['exports']=_0x1b8d9e(0x316);},function(_0x42ece2,_0x4ca0b3){_0x42ece2['exports']='uniform\x20sampler2D\x20segmentsColorTexture;\x0d\x0auniform\x20sampler2D\x20segmentsDepthTexture;\x0d\x0a\x0d\x0auniform\x20sampler2D\x20currentTrailsColor;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0auniform\x20float\x20fadeOpacity;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20pointsColor\x20=\x20texture2D(segmentsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(currentTrailsColor,\x20textureCoordinate);\x0d\x0a\x0d\x0a\x20\x20\x20\x20trailsColor\x20=\x20floor(fadeOpacity\x20*\x20255.0\x20*\x20trailsColor)\x20/\x20255.0;\x20//\x20make\x20sure\x20the\x20trailsColor\x20will\x20be\x20strictly\x20decreased\x0d\x0a\x0d\x0a\x20\x20\x20\x20float\x20pointsDepth\x20=\x20texture2D(segmentsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20if\x20(pointsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20pointsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20gl_FragColor\x20+\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x0d\x0a\x20\x20\x20\x20gl_FragDepthEXT\x20=\x20min(pointsDepth,\x20trailsDepth);\x0d\x0a}';},function(_0x1290f8,_0x3faeef){var _0xcba6b5=a0_0x22f4;_0x1290f8[_0xcba6b5(0x336)]=_0xcba6b5(0x21e);},function(_0x441644,_0x38e7e0){var _0x2601d3=a0_0x22f4;_0x441644[_0x2601d3(0x336)]='//\x20the\x20size\x20of\x20UV\x20textures:\x20width\x20=\x20lon,\x20height\x20=\x20lat*lev\x0auniform\x20sampler2D\x20U;\x20//\x20eastward\x20wind\x20\x0auniform\x20sampler2D\x20V;\x20//\x20northward\x20wind\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0a\x0auniform\x20vec3\x20dimension;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20vec3\x20minimum;\x20//\x20minimum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20maximum;\x20//\x20maximum\x20of\x20each\x20dimension\x0auniform\x20vec3\x20interval;\x20//\x20interval\x20of\x20each\x20dimension\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20mapPositionToNormalizedIndex2D(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20range\x20of\x20longitude\x20and\x20latitude\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x,\x20360.0);\x0a\x20\x20\x20\x20lonLatLev.y\x20=\x20clamp(lonLatLev.y,\x20-90.0,\x2090.0);\x0a\x0a\x20\x20\x20\x20vec3\x20index3D\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20index3D.x\x20=\x20(lonLatLev.x\x20-\x20minimum.x)\x20/\x20interval.x;\x0a\x20\x20\x20\x20index3D.y\x20=\x20(lonLatLev.y\x20-\x20minimum.y)\x20/\x20interval.y;\x0a\x20\x20\x20\x20index3D.z\x20=\x20(lonLatLev.z\x20-\x20minimum.z)\x20/\x20interval.z;\x0a\x0a\x20\x20\x20\x20//\x20the\x20st\x20texture\x20coordinate\x20corresponding\x20to\x20(col,\x20row)\x20index\x0a\x20\x20\x20\x20//\x20example\x0a\x20\x20\x20\x20//\x20data\x20array\x20is\x20[0,\x201,\x202,\x203,\x204,\x205],\x20width\x20=\x203,\x20height\x20=\x202\x0a\x20\x20\x20\x20//\x20the\x20content\x20of\x20texture\x20will\x20be\x0a\x20\x20\x20\x20//\x20t\x201.0\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x203\x204\x205\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x0a\x20\x20\x20\x20//\x20\x20\x20\x20|\x20\x200\x201\x202\x0a\x20\x20\x20\x20//\x20\x20\x200.0------1.0\x20s\x0a\x0a\x20\x20\x20\x20vec2\x20index2D\x20=\x20vec2(index3D.x,\x20index3D.z\x20*\x20dimension.y\x20+\x20index3D.y);\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20vec2(index2D.x\x20/\x20dimension.x,\x20index2D.y\x20/\x20(dimension.y\x20*\x20dimension.z));\x0a\x20\x20\x20\x20return\x20normalizedIndex2D;\x0a}\x0a\x0afloat\x20getWind(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20vec2\x20normalizedIndex2D\x20=\x20mapPositionToNormalizedIndex2D(lonLatLev);\x0a\x20\x20\x20\x20float\x20result\x20=\x20texture2D(windTexture,\x20normalizedIndex2D).r;\x0a\x20\x20\x20\x20return\x20result;\x0a}\x0a\x0aconst\x20mat4\x20kernelMatrix\x20=\x20mat4(\x0a\x20\x20\x20\x200.0,\x20-1.0,\x202.0,\x20-1.0,\x20//\x20first\x20column\x0a\x20\x20\x20\x202.0,\x200.0,\x20-5.0,\x203.0,\x20//\x20second\x20column\x0a\x20\x20\x20\x200.0,\x201.0,\x204.0,\x20-3.0,\x20//\x20third\x20column\x0a\x20\x20\x20\x200.0,\x200.0,\x20-1.0,\x201.0\x20//\x20fourth\x20column\x0a);\x0afloat\x20oneDimensionInterpolation(float\x20t,\x20float\x20p0,\x20float\x20p1,\x20float\x20p2,\x20float\x20p3)\x20{\x0a\x20\x20\x20\x20vec4\x20tVec4\x20=\x20vec4(1.0,\x20t,\x20t\x20*\x20t,\x20t\x20*\x20t\x20*\x20t);\x0a\x20\x20\x20\x20tVec4\x20=\x20tVec4\x20/\x202.0;\x0a\x20\x20\x20\x20vec4\x20pVec4\x20=\x20vec4(p0,\x20p1,\x20p2,\x20p3);\x0a\x20\x20\x20\x20return\x20dot((tVec4\x20*\x20kernelMatrix),\x20pVec4);\x0a}\x0a\x0afloat\x20calculateB(sampler2D\x20windTexture,\x20float\x20t,\x20float\x20lon,\x20float\x20lat,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20float\x20lon0\x20=\x20floor(lon)\x20-\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon1\x20=\x20floor(lon);\x0a\x20\x20\x20\x20float\x20lon2\x20=\x20floor(lon)\x20+\x201.0\x20*\x20interval.x;\x0a\x20\x20\x20\x20float\x20lon3\x20=\x20floor(lon)\x20+\x202.0\x20*\x20interval.x;\x0a\x0a\x20\x20\x20\x20float\x20p0\x20=\x20getWind(windTexture,\x20vec3(lon0,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p1\x20=\x20getWind(windTexture,\x20vec3(lon1,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p2\x20=\x20getWind(windTexture,\x20vec3(lon2,\x20lat,\x20lev));\x0a\x20\x20\x20\x20float\x20p3\x20=\x20getWind(windTexture,\x20vec3(lon3,\x20lat,\x20lev));\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(t,\x20p0,\x20p1,\x20p2,\x20p3);\x0a}\x0a\x0afloat\x20interpolateOneTexture(sampler2D\x20windTexture,\x20vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20float\x20lon\x20=\x20lonLatLev.x;\x0a\x20\x20\x20\x20float\x20lat\x20=\x20lonLatLev.y;\x0a\x20\x20\x20\x20float\x20lev\x20=\x20lonLatLev.z;\x0a\x0a\x20\x20\x20\x20float\x20lat0\x20=\x20floor(lat)\x20-\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat1\x20=\x20floor(lat);\x0a\x20\x20\x20\x20float\x20lat2\x20=\x20floor(lat)\x20+\x201.0\x20*\x20interval.y;\x0a\x20\x20\x20\x20float\x20lat3\x20=\x20floor(lat)\x20+\x202.0\x20*\x20interval.y;\x0a\x0a\x20\x20\x20\x20vec2\x20coefficient\x20=\x20lonLatLev.xy\x20-\x20floor(lonLatLev.xy);\x0a\x20\x20\x20\x20float\x20b0\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat0,\x20lev);\x0a\x20\x20\x20\x20float\x20b1\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat1,\x20lev);\x0a\x20\x20\x20\x20float\x20b2\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat2,\x20lev);\x0a\x20\x20\x20\x20float\x20b3\x20=\x20calculateB(windTexture,\x20coefficient.x,\x20lon,\x20lat3,\x20lev);\x0a\x0a\x20\x20\x20\x20return\x20oneDimensionInterpolation(coefficient.y,\x20b0,\x20b1,\x20b2,\x20b3);\x0a}\x0a\x0avec3\x20bicubic(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20https://en.wikipedia.org/wiki/Bicubic_interpolation#Bicubic_convolution_algorithm\x0a\x20\x20\x20\x20float\x20u\x20=\x20interpolateOneTexture(U,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20v\x20=\x20interpolateOneTexture(V,\x20lonLatLev);\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20return\x20vec3(u,\x20v,\x20w);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20bicubic(lonLatLev);\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(windVector,\x200.0);\x0a}';},function(_0x5f48fa,_0x295a61){var _0x54945c=a0_0x22f4;_0x5f48fa[_0x54945c(0x336)]=_0x54945c(0x2e8);},function(_0xfd1bf9,_0x26aace){var _0x158beb=a0_0x22f4;_0xfd1bf9[_0x158beb(0x336)]=_0x158beb(0x1f6);},function(_0x513a64,_0x53a5bf){var _0x4d14da=a0_0x22f4;_0x513a64[_0x4d14da(0x336)]=_0x4d14da(0x224);},function(_0x3e1c37,_0x5208da){_0x3e1c37['exports']='uniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec4\x20randomParticle\x20=\x20texture2D(postProcessingPosition,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20vec4\x20particleSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x0a\x20\x20\x20\x20if\x20(randomParticle.a\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20particleSpeed;\x0a\x20\x20\x20\x20}\x0a}';},function(_0x14c2ad,_0xe521c6){var _0x487a10=a0_0x22f4;function _0x42de8e(_0x4dd824,_0x3f49b4){var _0xcc3425=a0_0x22f4;return _0x14c2ad['exports']=_0x42de8e=Object[_0xcc3425(0x335)]||function(_0x2a9c29,_0x3caf0c){var _0x2d7b7b=_0xcc3425;return _0x2a9c29[_0x2d7b7b(0x281)]=_0x3caf0c,_0x2a9c29;},_0x14c2ad[_0xcc3425(0x336)][_0xcc3425(0x333)]=_0x14c2ad[_0xcc3425(0x336)],_0x14c2ad[_0xcc3425(0x336)][_0xcc3425(0x2c8)]=!0x0,_0x42de8e(_0x4dd824,_0x3f49b4);}_0x14c2ad[_0x487a10(0x336)]=_0x42de8e,_0x14c2ad[_0x487a10(0x336)][_0x487a10(0x333)]=_0x14c2ad[_0x487a10(0x336)],_0x14c2ad[_0x487a10(0x336)][_0x487a10(0x2c8)]=!0x0;},function(_0x4b6bef,_0x5b24ec){var _0x31aca8=a0_0x22f4;function _0x2ccd80(_0x27e76c){var _0x811913=a0_0x22f4;return _0x811913(0x33e)==typeof Symbol&&'symbol'==typeof Symbol[_0x811913(0x2db)]?(_0x4b6bef[_0x811913(0x336)]=_0x2ccd80=function(_0x317fd2){return typeof _0x317fd2;},_0x4b6bef[_0x811913(0x336)][_0x811913(0x333)]=_0x4b6bef[_0x811913(0x336)],_0x4b6bef[_0x811913(0x336)][_0x811913(0x2c8)]=!0x0):(_0x4b6bef[_0x811913(0x336)]=_0x2ccd80=function(_0x15fa44){var _0x44382f=_0x811913;return _0x15fa44&&'function'==typeof Symbol&&_0x15fa44[_0x44382f(0x1fe)]===Symbol&&_0x15fa44!==Symbol[_0x44382f(0x2fa)]?'symbol':typeof _0x15fa44;},_0x4b6bef[_0x811913(0x336)][_0x811913(0x333)]=_0x4b6bef['exports'],_0x4b6bef[_0x811913(0x336)][_0x811913(0x2c8)]=!0x0),_0x2ccd80(_0x27e76c);}_0x4b6bef[_0x31aca8(0x336)]=_0x2ccd80,_0x4b6bef[_0x31aca8(0x336)][_0x31aca8(0x333)]=_0x4b6bef[_0x31aca8(0x336)],_0x4b6bef['exports']['__esModule']=!0x0;},function(_0x5e8d22,_0x7cd134){var _0x48b749=a0_0x22f4;_0x5e8d22[_0x48b749(0x336)]=function(_0x6bb7c8){if(void 0x0===_0x6bb7c8)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x6bb7c8;},_0x5e8d22[_0x48b749(0x336)][_0x48b749(0x333)]=_0x5e8d22[_0x48b749(0x336)],_0x5e8d22['exports'][_0x48b749(0x2c8)]=!0x0;},function(_0x3be9d5,_0x1ac649,_0x459094){'use strict';var _0x445ccb=a0_0x22f4;_0x459094['r'](_0x1ac649),_0x459094['d'](_0x1ac649,_0x445ccb(0x35b),function(){return _0x8ebe1;}),_0x459094['d'](_0x1ac649,_0x445ccb(0x324),function(){return _0x5456a4;}),_0x459094['d'](_0x1ac649,_0x445ccb(0x25d),function(){return _0x44b5a8;});var _0x44b5a8={};_0x459094['r'](_0x44b5a8),_0x459094['d'](_0x44b5a8,_0x445ccb(0x232),function(){return _0x398247;}),_0x459094['d'](_0x44b5a8,'getV',function(){return _0x46a321;}),_0x459094['d'](_0x44b5a8,_0x445ccb(0x2dc),function(){return _0x5aea71;}),_0x459094['d'](_0x44b5a8,_0x445ccb(0x2e0),function(){return _0x2eb757;});var _0x5bc5b5=_0x459094(0x3),_0x37578a=_0x459094(0x1),_0x5d59b0=_0x459094['n'](_0x37578a),_0x2df4ae=_0x459094(0x2),_0x2b791a=_0x459094['n'](_0x2df4ae),_0xf07827=_0x459094(0x5),_0x461fc5=_0x459094['n'](_0xf07827),_0x1dbe43=_0x459094(0x6),_0x5af096=_0x459094['n'](_0x1dbe43),_0x79120b=_0x459094(0x4),_0x5c5eae=_0x459094['n'](_0x79120b),_0x6f4903=_0x459094(0x0),_0x51c023=function(){var _0x1acbec=_0x445ccb;function _0x330637(_0x1f2b7c){var _0x364bb7=a0_0x22f4;_0x5d59b0()(this,_0x330637),this[_0x364bb7(0x259)]=_0x1f2b7c[_0x364bb7(0x259)],this[_0x364bb7(0x213)]=_0x1f2b7c[_0x364bb7(0x213)],this[_0x364bb7(0x356)]=_0x1f2b7c[_0x364bb7(0x356)],this[_0x364bb7(0x353)]=_0x1f2b7c[_0x364bb7(0x353)],this[_0x364bb7(0x26a)]=_0x1f2b7c[_0x364bb7(0x26a)],this[_0x364bb7(0x27c)]=_0x1f2b7c['vertexShaderSource'],this[_0x364bb7(0x358)]=_0x1f2b7c['fragmentShaderSource'],this['rawRenderState']=_0x1f2b7c['rawRenderState'],this[_0x364bb7(0x239)]=_0x1f2b7c[_0x364bb7(0x239)],this['outputTexture']=_0x1f2b7c[_0x364bb7(0x267)],this['autoClear']=_0x6f4903[_0x364bb7(0x307)](_0x1f2b7c[_0x364bb7(0x2ee)],!0x1),this[_0x364bb7(0x262)]=_0x1f2b7c[_0x364bb7(0x262)],this[_0x364bb7(0x2cd)]=!0x0,this[_0x364bb7(0x2d2)]=void 0x0,this[_0x364bb7(0x218)]=void 0x0,this[_0x364bb7(0x2ee)]&&(this[_0x364bb7(0x218)]=new _0x6f4903[(_0x364bb7(0x2d0))]({'color':new _0x6f4903[(_0x364bb7(0x32b))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':this[_0x364bb7(0x239)],'pass':_0x6f4903[_0x364bb7(0x34c)]['OPAQUE']}));}return _0x2b791a()(_0x330637,[{'key':_0x1acbec(0x2ba),'value':function(_0x2c8a1b){var _0x309d7a=_0x1acbec;switch(this[_0x309d7a(0x259)]){case _0x309d7a(0x257):var _0x5ad45e=_0x6f4903[_0x309d7a(0x319)]['fromGeometry']({'context':_0x2c8a1b,'geometry':this[_0x309d7a(0x213)],'attributeLocations':this[_0x309d7a(0x356)],'bufferUsage':_0x6f4903[_0x309d7a(0x33c)]['STATIC_DRAW']}),_0x223373=_0x6f4903[_0x309d7a(0x2a0)][_0x309d7a(0x1f2)]({'context':_0x2c8a1b,'attributeLocations':this[_0x309d7a(0x356)],'vertexShaderSource':this['vertexShaderSource'],'fragmentShaderSource':this['fragmentShaderSource']}),_0x417812=_0x6f4903[_0x309d7a(0x31e)][_0x309d7a(0x1f2)](this['rawRenderState']);return new _0x6f4903[(_0x309d7a(0x313))]({'owner':this,'vertexArray':_0x5ad45e,'primitiveType':this[_0x309d7a(0x353)],'uniformMap':this[_0x309d7a(0x26a)],'modelMatrix':_0x6f4903[_0x309d7a(0x246)][_0x309d7a(0x207)],'shaderProgram':_0x223373,'framebuffer':this['framebuffer'],'renderState':_0x417812,'pass':_0x6f4903[_0x309d7a(0x34c)][_0x309d7a(0x277)]});case'Compute':return new _0x6f4903[(_0x309d7a(0x26d))]({'owner':this,'fragmentShaderSource':this[_0x309d7a(0x358)],'uniformMap':this['uniformMap'],'outputTexture':this[_0x309d7a(0x267)],'persists':!0x0});}}},{'key':'setGeometry','value':function(_0x17aeb2,_0x133ef9){var _0x1aac96=_0x1acbec;this['geometry']=_0x133ef9;var _0x323415=_0x6f4903[_0x1aac96(0x319)][_0x1aac96(0x2e3)]({'context':_0x17aeb2,'geometry':this[_0x1aac96(0x213)],'attributeLocations':this['attributeLocations'],'bufferUsage':_0x6f4903[_0x1aac96(0x33c)][_0x1aac96(0x243)]});this[_0x1aac96(0x2d2)][_0x1aac96(0x286)]=_0x323415;}},{'key':_0x1acbec(0x225),'value':function(_0x56ea08){var _0x59d1be=_0x1acbec;this[_0x59d1be(0x2cd)]&&_0x56ea08[_0x59d1be(0x209)]==_0x6f4903['SceneMode'][_0x59d1be(0x343)]&&(_0x6f4903[_0x59d1be(0x24a)](this[_0x59d1be(0x2d2)])||(this[_0x59d1be(0x2d2)]=this[_0x59d1be(0x2ba)](_0x56ea08[_0x59d1be(0x231)])),_0x6f4903['defined'](this['preExecute'])&&this[_0x59d1be(0x262)](),_0x6f4903[_0x59d1be(0x24a)](this[_0x59d1be(0x218)])&&_0x56ea08[_0x59d1be(0x327)][_0x59d1be(0x2f3)](this[_0x59d1be(0x218)]),_0x56ea08[_0x59d1be(0x327)]['push'](this[_0x59d1be(0x2d2)]));}},{'key':_0x1acbec(0x23a),'value':function(){return!0x1;}},{'key':'destroy','value':function(){var _0x2f8cf8=_0x1acbec;return _0x6f4903[_0x2f8cf8(0x24a)](this['commandToExecute'])&&(this[_0x2f8cf8(0x2d2)][_0x2f8cf8(0x240)]=this[_0x2f8cf8(0x2d2)][_0x2f8cf8(0x240)]&&this['commandToExecute'][_0x2f8cf8(0x240)][_0x2f8cf8(0x24c)]()),_0x6f4903[_0x2f8cf8(0x211)](this);}}]),_0x330637;}(),_0x155144={'getFullscreenQuad':function(){var _0x3c53a1=_0x445ccb;return new _0x6f4903[(_0x3c53a1(0x35a))]({'attributes':new _0x6f4903[(_0x3c53a1(0x27b))]({'position':new _0x6f4903[(_0x3c53a1(0x329))]({'componentDatatype':_0x6f4903[_0x3c53a1(0x2b0)][_0x3c53a1(0x237)],'componentsPerAttribute':0x3,'values':new Float32Array([-0x1,-0x1,0x0,0x1,-0x1,0x0,0x1,0x1,0x0,-0x1,0x1,0x0])}),'st':new _0x6f4903[(_0x3c53a1(0x329))]({'componentDatatype':_0x6f4903[_0x3c53a1(0x2b0)][_0x3c53a1(0x237)],'componentsPerAttribute':0x2,'values':new Float32Array([0x0,0x0,0x1,0x0,0x1,0x1,0x0,0x1])})}),'indices':new Uint32Array([0x3,0x2,0x0,0x0,0x2,0x1])});},'createTexture':function(_0x434bb9,_0x2fe556){var _0x3e457e=_0x445ccb;if(_0x6f4903[_0x3e457e(0x24a)](_0x2fe556)){var _0x3ff799={};_0x3ff799[_0x3e457e(0x2b6)]=_0x2fe556,_0x434bb9[_0x3e457e(0x23d)]=_0x3ff799;}return new _0x6f4903[(_0x3e457e(0x338))](_0x434bb9);},'createFramebuffer':function(_0x1fa99f,_0x3eaa2f,_0x5e5c70){var _0x550a35=_0x445ccb;return new _0x6f4903[(_0x550a35(0x29c))]({'context':_0x1fa99f,'colorTextures':[_0x3eaa2f],'depthTexture':_0x5e5c70});},'createRawRenderState':function(_0x4447b5){var _0x53c8ee=_0x445ccb,_0x430a78={'viewport':_0x4447b5[_0x53c8ee(0x339)],'depthTest':_0x4447b5['depthTest'],'depthMask':_0x4447b5['depthMask'],'blending':_0x4447b5[_0x53c8ee(0x2ac)]};return _0x6f4903[_0x53c8ee(0x2ea)][_0x53c8ee(0x279)](!0x0,!0x1,_0x430a78);},'viewRectangleToLonLatRange':function(_0x3d9a8d){var _0x2e1736=_0x445ccb,_0x535884,_0x1020d5,_0x2a7ec3={},_0x2c1fef=_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2f7)](_0x3d9a8d[_0x2e1736(0x349)],_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2a2)]),_0xc2c545=_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2f7)](_0x3d9a8d[_0x2e1736(0x280)],_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2a2)]),_0x36e4f0=_0x3d9a8d[_0x2e1736(0x318)];_0x36e4f0>_0x6f4903['Math'][_0x2e1736(0x30e)]?(_0x535884=0x0,_0x1020d5=_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2a2)]):_0xc2c545-_0x2c1fef<_0x36e4f0?(_0x535884=_0x2c1fef,_0x1020d5=_0x2c1fef+_0x36e4f0):(_0x535884=_0x2c1fef,_0x1020d5=_0xc2c545),_0x2a7ec3[_0x2e1736(0x2ae)]={'min':_0x6f4903['Math']['toDegrees'](_0x535884),'max':_0x6f4903['Math']['toDegrees'](_0x1020d5)};var _0x1093d7=_0x3d9a8d['south'],_0x16c868=_0x3d9a8d[_0x2e1736(0x2c1)],_0x35e3b5=_0x3d9a8d[_0x2e1736(0x284)],_0x332b14=_0x35e3b5>_0x6f4903['Math']['PI']/0xc?_0x35e3b5/0x2:0x0,_0x3e6e59=_0x6f4903['Math'][_0x2e1736(0x342)](_0x1093d7-_0x332b14),_0x31ddc4=_0x6f4903[_0x2e1736(0x25e)]['clampToLatitudeRange'](_0x16c868+_0x332b14);return _0x3e6e59<-_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2fe)]&&(_0x3e6e59=-_0x6f4903['Math'][_0x2e1736(0x298)]),_0x31ddc4>_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x2fe)]&&(_0x31ddc4=_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x298)]),_0x2a7ec3[_0x2e1736(0x22d)]={'min':_0x6f4903['Math']['toDegrees'](_0x3e6e59),'max':_0x6f4903[_0x2e1736(0x25e)][_0x2e1736(0x272)](_0x31ddc4)},_0x2a7ec3;}},_0x471908=_0x459094(0x8),_0x30484b=_0x459094['n'](_0x471908),_0x2790a4=_0x459094(0x9),_0x4ed291=_0x459094['n'](_0x2790a4),_0x4b3c4d=_0x459094(0x7),_0xb1385a=_0x459094['n'](_0x4b3c4d),_0x50994d=_0x459094(0xa),_0x147ecf=_0x459094['n'](_0x50994d),_0x3d4583=_0x459094(0xb),_0x53f447=_0x459094['n'](_0x3d4583),_0x5b4db1=function(){var _0x4dd386=_0x445ccb;function _0x15b03a(_0x4b96ab,_0x48eac8,_0x1e03de,_0x328e62,_0x1cf8fb){var _0x1ed4e9=a0_0x22f4;_0x5d59b0()(this,_0x15b03a),this[_0x1ed4e9(0x305)](_0x4b96ab,_0x48eac8),this[_0x1ed4e9(0x289)](_0x4b96ab),this[_0x1ed4e9(0x247)](_0x4b96ab,_0x1e03de,_0x328e62,_0x1cf8fb);}return _0x2b791a()(_0x15b03a,[{'key':'createRenderingTextures','value':function(_0x53736f,_0x4166f9){var _0x35eac0=a0_0x22f4,_0x184b77={'context':_0x53736f,'width':_0x53736f['drawingBufferWidth'],'height':_0x53736f['drawingBufferHeight'],'pixelFormat':_0x6f4903[_0x35eac0(0x2de)][_0x35eac0(0x283)],'pixelDatatype':_0x6f4903[_0x35eac0(0x226)][_0x35eac0(0x2d4)]},_0xd9e24a={'context':_0x53736f,'width':_0x53736f[_0x35eac0(0x2f1)],'height':_0x53736f[_0x35eac0(0x2b2)],'pixelFormat':_0x6f4903['PixelFormat']['DEPTH_COMPONENT'],'pixelDatatype':_0x6f4903[_0x35eac0(0x226)][_0x35eac0(0x250)]},_0xc3bbe0={'context':_0x53736f,'width':_0x4166f9[_0x35eac0(0x202)]['colorNum'],'height':0x1,'pixelFormat':_0x6f4903[_0x35eac0(0x2de)][_0x35eac0(0x20c)],'pixelDatatype':_0x6f4903[_0x35eac0(0x226)][_0x35eac0(0x237)],'sampler':new _0x6f4903[(_0x35eac0(0x244))]({'minificationFilter':_0x6f4903['TextureMinificationFilter'][_0x35eac0(0x249)],'magnificationFilter':_0x6f4903['TextureMagnificationFilter'][_0x35eac0(0x249)]})};this[_0x35eac0(0x230)]={'segmentsColor':_0x155144[_0x35eac0(0x354)](_0x184b77),'segmentsDepth':_0x155144[_0x35eac0(0x354)](_0xd9e24a),'currentTrailsColor':_0x155144[_0x35eac0(0x354)](_0x184b77),'currentTrailsDepth':_0x155144[_0x35eac0(0x354)](_0xd9e24a),'nextTrailsColor':_0x155144[_0x35eac0(0x354)](_0x184b77),'nextTrailsDepth':_0x155144['createTexture'](_0xd9e24a),'colorTable':_0x155144[_0x35eac0(0x354)](_0xc3bbe0,_0x4166f9[_0x35eac0(0x202)]['array'])};}},{'key':_0x4dd386(0x289),'value':function(_0x3952e3){var _0x239eed=_0x4dd386;this[_0x239eed(0x288)]={'segments':_0x155144['createFramebuffer'](_0x3952e3,this[_0x239eed(0x230)][_0x239eed(0x28f)],this[_0x239eed(0x230)][_0x239eed(0x2f0)]),'currentTrails':_0x155144[_0x239eed(0x2a3)](_0x3952e3,this[_0x239eed(0x230)][_0x239eed(0x315)],this[_0x239eed(0x230)][_0x239eed(0x323)]),'nextTrails':_0x155144[_0x239eed(0x2a3)](_0x3952e3,this[_0x239eed(0x230)][_0x239eed(0x2ff)],this[_0x239eed(0x230)]['nextTrailsDepth'])};}},{'key':_0x4dd386(0x21c),'value':function(_0x243a8e){var _0x5082eb=_0x4dd386;for(var _0x11151a=[],_0x34efab=0x0;_0x34efab<_0x243a8e[_0x5082eb(0x303)];_0x34efab++)for(var _0x444a33=0x0;_0x444a33<_0x243a8e['particlesTextureSize'];_0x444a33++)for(var _0x43bafa=0x0;_0x43bafa<0x4;_0x43bafa++)_0x11151a['push'](_0x34efab/_0x243a8e['particlesTextureSize']),_0x11151a[_0x5082eb(0x2f3)](_0x444a33/_0x243a8e[_0x5082eb(0x303)]);_0x11151a=new Float32Array(_0x11151a);for(var _0x53aaa3=[],_0xd9609=[-0x1,0x1],_0x1fb652=[-0x1,0x1],_0xda5efc=0x0;_0xda5efc<_0x243a8e['maxParticles'];_0xda5efc++)for(var _0xe7e67b=0x0;_0xe7e67b<0x2;_0xe7e67b++)for(var _0x2891b6=0x0;_0x2891b6<0x2;_0x2891b6++)_0x53aaa3['push'](_0xd9609[_0xe7e67b]),_0x53aaa3[_0x5082eb(0x2f3)](_0x1fb652[_0x2891b6]),_0x53aaa3[_0x5082eb(0x2f3)](0x0);_0x53aaa3=new Float32Array(_0x53aaa3);for(var _0x56ef17=0x6*_0x243a8e['maxParticles'],_0x2d1876=new Uint32Array(_0x56ef17),_0x43abaa=0x0,_0x3cccb2=0x0,_0x37d450=0x0;_0x43abaa<_0x243a8e[_0x5082eb(0x293)];_0x43abaa++)_0x2d1876[_0x3cccb2++]=_0x37d450+0x0,_0x2d1876[_0x3cccb2++]=_0x37d450+0x1,_0x2d1876[_0x3cccb2++]=_0x37d450+0x2,_0x2d1876[_0x3cccb2++]=_0x37d450+0x2,_0x2d1876[_0x3cccb2++]=_0x37d450+0x1,_0x2d1876[_0x3cccb2++]=_0x37d450+0x3,_0x37d450+=0x4;return new _0x6f4903['Geometry']({'attributes':new _0x6f4903[(_0x5082eb(0x27b))]({'st':new _0x6f4903[(_0x5082eb(0x329))]({'componentDatatype':_0x6f4903[_0x5082eb(0x2b0)]['FLOAT'],'componentsPerAttribute':0x2,'values':_0x11151a}),'normal':new _0x6f4903['GeometryAttribute']({'componentDatatype':_0x6f4903[_0x5082eb(0x2b0)]['FLOAT'],'componentsPerAttribute':0x3,'values':_0x53aaa3})}),'indices':_0x2d1876});}},{'key':_0x4dd386(0x247),'value':function(_0x3fa2a5,_0x45e9ce,_0x174020,_0x3553e4){var _0x28be6d=_0x4dd386,_0xa2f00=this;this[_0x28be6d(0x34d)]={'segments':new _0x51c023({'commandType':_0x28be6d(0x257),'attributeLocations':{'st':0x0,'normal':0x1},'geometry':this[_0x28be6d(0x21c)](_0x45e9ce),'primitiveType':_0x6f4903[_0x28be6d(0x2dd)]['TRIANGLES'],'uniformMap':{'currentParticlesPosition':function(){var _0x2b0691=_0x28be6d;return _0x3553e4[_0x2b0691(0x2f4)]['currentParticlesPosition'];},'postProcessingPosition':function(){var _0x56ea13=_0x28be6d;return _0x3553e4[_0x56ea13(0x2f4)][_0x56ea13(0x2bd)];},'postProcessingSpeed':function(){var _0x5c32b8=_0x28be6d;return _0x3553e4[_0x5c32b8(0x2f4)][_0x5c32b8(0x341)];},'colorTable':function(){var _0x33986a=_0x28be6d;return _0xa2f00[_0x33986a(0x230)][_0x33986a(0x202)];},'aspect':function(){var _0xb5a6ff=_0x28be6d;return _0x3fa2a5[_0xb5a6ff(0x2f1)]/_0x3fa2a5[_0xb5a6ff(0x2b2)];},'pixelSize':function(){return _0x174020['pixelSize'];},'lineWidth':function(){var _0x40f9da=_0x28be6d;return _0x45e9ce[_0x40f9da(0x2e7)];},'particleHeight':function(){var _0x11f674=_0x28be6d;return _0x45e9ce[_0x11f674(0x26c)];}},'vertexShaderSource':new _0x6f4903['ShaderSource']({'sources':[_0x30484b['a']]}),'fragmentShaderSource':new _0x6f4903[(_0x28be6d(0x2d3))]({'sources':[_0x4ed291['a']]}),'rawRenderState':_0x155144['createRawRenderState']({'viewport':void 0x0,'depthTest':{'enabled':!0x0},'depthMask':!0x0}),'framebuffer':this[_0x28be6d(0x288)][_0x28be6d(0x2b9)],'autoClear':!0x0}),'trails':new _0x51c023({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':_0x155144[_0x28be6d(0x1f3)](),'primitiveType':_0x6f4903[_0x28be6d(0x2dd)][_0x28be6d(0x1f7)],'uniformMap':{'segmentsColorTexture':function(){var _0x40fd1c=_0x28be6d;return _0xa2f00[_0x40fd1c(0x230)][_0x40fd1c(0x28f)];},'segmentsDepthTexture':function(){var _0x58d54d=_0x28be6d;return _0xa2f00[_0x58d54d(0x230)]['segmentsDepth'];},'currentTrailsColor':function(){var _0x4971aa=_0x28be6d;return _0xa2f00[_0x4971aa(0x288)][_0x4971aa(0x296)][_0x4971aa(0x2b1)](0x0);},'trailsDepthTexture':function(){var _0x11d1ca=_0x28be6d;return _0xa2f00[_0x11d1ca(0x288)][_0x11d1ca(0x296)][_0x11d1ca(0x2a7)];},'fadeOpacity':function(){return _0x45e9ce['fadeOpacity'];}},'vertexShaderSource':new _0x6f4903[(_0x28be6d(0x2d3))]({'defines':[_0x28be6d(0x235)],'sources':[_0xb1385a['a']]}),'fragmentShaderSource':new _0x6f4903['ShaderSource']({'defines':['DISABLE_LOG_DEPTH_FRAGMENT_WRITE'],'sources':[_0x147ecf['a']]}),'rawRenderState':_0x155144[_0x28be6d(0x28d)]({'viewport':void 0x0,'depthTest':{'enabled':!0x0,'func':_0x6f4903[_0x28be6d(0x20f)][_0x28be6d(0x348)]},'depthMask':!0x0}),'framebuffer':this[_0x28be6d(0x288)][_0x28be6d(0x31a)],'autoClear':!0x0,'preExecute':function(){var _0x4a475f=_0x28be6d,_0x16ed7a;_0x16ed7a=_0xa2f00[_0x4a475f(0x288)][_0x4a475f(0x296)],_0xa2f00[_0x4a475f(0x288)][_0x4a475f(0x296)]=_0xa2f00[_0x4a475f(0x288)][_0x4a475f(0x31a)],_0xa2f00[_0x4a475f(0x288)][_0x4a475f(0x31a)]=_0x16ed7a,_0xa2f00[_0x4a475f(0x34d)][_0x4a475f(0x2d6)][_0x4a475f(0x2d2)]['framebuffer']=_0xa2f00[_0x4a475f(0x288)][_0x4a475f(0x31a)],_0xa2f00['primitives'][_0x4a475f(0x2d6)][_0x4a475f(0x218)][_0x4a475f(0x239)]=_0xa2f00[_0x4a475f(0x288)][_0x4a475f(0x31a)];}}),'screen':new _0x51c023({'commandType':'Draw','attributeLocations':{'position':0x0,'st':0x1},'geometry':_0x155144[_0x28be6d(0x1f3)](),'primitiveType':_0x6f4903[_0x28be6d(0x2dd)][_0x28be6d(0x1f7)],'uniformMap':{'trailsColorTexture':function(){var _0x2a252a=_0x28be6d;return _0xa2f00[_0x2a252a(0x288)][_0x2a252a(0x31a)]['getColorTexture'](0x0);},'trailsDepthTexture':function(){var _0x21522c=_0x28be6d;return _0xa2f00[_0x21522c(0x288)][_0x21522c(0x31a)][_0x21522c(0x2a7)];}},'vertexShaderSource':new _0x6f4903[(_0x28be6d(0x2d3))]({'defines':['DISABLE_GL_POSITION_LOG_DEPTH'],'sources':[_0xb1385a['a']]}),'fragmentShaderSource':new _0x6f4903[(_0x28be6d(0x2d3))]({'defines':[_0x28be6d(0x234)],'sources':[_0x53f447['a']]}),'rawRenderState':_0x155144[_0x28be6d(0x28d)]({'viewport':void 0x0,'depthTest':{'enabled':!0x1},'depthMask':!0x0,'blending':{'enabled':!0x0}}),'framebuffer':void 0x0})};}}]),_0x15b03a;}(),_0x2abda1=_0x459094(0xc),_0x3e6179=_0x459094['n'](_0x2abda1),_0xfb7cae=_0x459094(0xd),_0x3d955c=_0x459094['n'](_0xfb7cae),_0x475c86=_0x459094(0xe),_0x3c2ffc=_0x459094['n'](_0x475c86),_0x23501a=_0x459094(0xf),_0x1cccf4=_0x459094['n'](_0x23501a),_0x8f0adf=_0x459094(0x10),_0x3feced=_0x459094['n'](_0x8f0adf),_0x155228=function(){var _0x2a8e11=_0x445ccb;function _0x2e6a73(_0x1bcfb5,_0x2f33ed,_0x3de86f,_0x1d5d15){var _0x3cfd02=a0_0x22f4;_0x5d59b0()(this,_0x2e6a73),this['data']=_0x2f33ed,this[_0x3cfd02(0x2cf)](_0x1bcfb5,_0x2f33ed),this['createParticlesTextures'](_0x1bcfb5,_0x3de86f,_0x1d5d15),this['createComputingPrimitives'](_0x2f33ed,_0x3de86f,_0x1d5d15);}return _0x2b791a()(_0x2e6a73,[{'key':_0x2a8e11(0x2cf),'value':function(_0x38d015,_0x9da231){var _0x3a24b6=_0x2a8e11,_0x18bc48={'context':_0x38d015,'width':_0x9da231['dimensions'][_0x3a24b6(0x2ae)],'height':_0x9da231[_0x3a24b6(0x2ab)][_0x3a24b6(0x22d)]*_0x9da231[_0x3a24b6(0x2ab)][_0x3a24b6(0x25c)],'pixelFormat':_0x6f4903['PixelFormat']['LUMINANCE'],'pixelDatatype':_0x6f4903[_0x3a24b6(0x226)]['FLOAT'],'flipY':!0x1,'sampler':new _0x6f4903[(_0x3a24b6(0x244))]({'minificationFilter':_0x6f4903[_0x3a24b6(0x228)]['NEAREST'],'magnificationFilter':_0x6f4903[_0x3a24b6(0x1fd)][_0x3a24b6(0x32f)]})};this[_0x3a24b6(0x219)]={'U':_0x155144[_0x3a24b6(0x354)](_0x18bc48,_0x9da231['U'][_0x3a24b6(0x1f1)]),'V':_0x155144[_0x3a24b6(0x354)](_0x18bc48,_0x9da231['V']['array'])};}},{'key':'createParticlesTextures','value':function(_0x17d8ff,_0x2b7614,_0x3e458e){var _0x57e82a=_0x2a8e11,_0x49e2ca={'context':_0x17d8ff,'width':_0x2b7614[_0x57e82a(0x303)],'height':_0x2b7614[_0x57e82a(0x303)],'pixelFormat':_0x6f4903[_0x57e82a(0x2de)][_0x57e82a(0x283)],'pixelDatatype':_0x6f4903[_0x57e82a(0x226)][_0x57e82a(0x237)],'flipY':!0x1,'sampler':new _0x6f4903[(_0x57e82a(0x244))]({'minificationFilter':_0x6f4903[_0x57e82a(0x228)][_0x57e82a(0x32f)],'magnificationFilter':_0x6f4903[_0x57e82a(0x1fd)][_0x57e82a(0x32f)]})},_0x499d23=this[_0x57e82a(0x242)](_0x2b7614['maxParticles'],_0x3e458e),_0xbcc03b=new Float32Array(0x4*_0x2b7614['maxParticles'])[_0x57e82a(0x2c7)](0x0);this[_0x57e82a(0x2f4)]={'particlesWind':_0x155144[_0x57e82a(0x354)](_0x49e2ca),'currentParticlesPosition':_0x155144[_0x57e82a(0x354)](_0x49e2ca,_0x499d23),'nextParticlesPosition':_0x155144[_0x57e82a(0x354)](_0x49e2ca,_0x499d23),'currentParticlesSpeed':_0x155144[_0x57e82a(0x354)](_0x49e2ca,_0xbcc03b),'nextParticlesSpeed':_0x155144[_0x57e82a(0x354)](_0x49e2ca,_0xbcc03b),'postProcessingPosition':_0x155144['createTexture'](_0x49e2ca,_0x499d23),'postProcessingSpeed':_0x155144[_0x57e82a(0x354)](_0x49e2ca,_0xbcc03b)};}},{'key':_0x2a8e11(0x242),'value':function(_0x11174f,_0x2d937c){var _0x1d0160=_0x2a8e11;for(var _0x27bf83=new Float32Array(0x4*_0x11174f),_0x19feb8=0x0;_0x19feb8<_0x11174f;_0x19feb8++)_0x27bf83[0x4*_0x19feb8]=_0x6f4903[_0x1d0160(0x25e)][_0x1d0160(0x206)](_0x2d937c[_0x1d0160(0x20e)]['x'],_0x2d937c[_0x1d0160(0x20e)]['y']),_0x27bf83[0x4*_0x19feb8+0x1]=_0x6f4903[_0x1d0160(0x25e)][_0x1d0160(0x206)](_0x2d937c[_0x1d0160(0x271)]['x'],_0x2d937c[_0x1d0160(0x271)]['y']),_0x27bf83[0x4*_0x19feb8+0x2]=_0x6f4903[_0x1d0160(0x25e)][_0x1d0160(0x206)](this['data'][_0x1d0160(0x25c)]['min'],this[_0x1d0160(0x301)][_0x1d0160(0x25c)][_0x1d0160(0x33b)]),_0x27bf83[0x4*_0x19feb8+0x3]=0x0;return _0x27bf83;}},{'key':_0x2a8e11(0x2f2),'value':function(){var _0x1844f6=_0x2a8e11,_0x1e91da=this;Object[_0x1844f6(0x24f)](this[_0x1844f6(0x2f4)])['forEach'](function(_0x59bbd8){var _0x3a6417=_0x1844f6;_0x1e91da[_0x3a6417(0x2f4)][_0x59bbd8]['destroy']();});}},{'key':'createComputingPrimitives','value':function(_0x1d10fc,_0x4f0add,_0x17d0ce){var _0x25fade=_0x2a8e11,_0xb7ffdb=new _0x6f4903[(_0x25fade(0x2af))](_0x1d10fc[_0x25fade(0x2ab)][_0x25fade(0x2ae)],_0x1d10fc[_0x25fade(0x2ab)][_0x25fade(0x22d)],_0x1d10fc[_0x25fade(0x2ab)][_0x25fade(0x25c)]),_0x480fb5=new _0x6f4903[(_0x25fade(0x2af))](_0x1d10fc['lon']['min'],_0x1d10fc['lat']['min'],_0x1d10fc['lev'][_0x25fade(0x28a)]),_0x4e7465=new _0x6f4903['Cartesian3'](_0x1d10fc[_0x25fade(0x2ae)]['max'],_0x1d10fc[_0x25fade(0x22d)][_0x25fade(0x33b)],_0x1d10fc[_0x25fade(0x25c)][_0x25fade(0x33b)]),_0x47ea1f=new _0x6f4903['Cartesian3']((_0x4e7465['x']-_0x480fb5['x'])/(_0xb7ffdb['x']-0x1),(_0x4e7465['y']-_0x480fb5['y'])/(_0xb7ffdb['y']-0x1),_0xb7ffdb['z']>0x1?(_0x4e7465['z']-_0x480fb5['z'])/(_0xb7ffdb['z']-0x1):0x1),_0x266ba2=new _0x6f4903[(_0x25fade(0x346))](_0x1d10fc['U'][_0x25fade(0x28a)],_0x1d10fc['U']['max']),_0x2adf87=new _0x6f4903['Cartesian2'](_0x1d10fc['V'][_0x25fade(0x28a)],_0x1d10fc['V']['max']),_0x287f58=this;this[_0x25fade(0x34d)]={'getWind':new _0x51c023({'commandType':'Compute','uniformMap':{'U':function(){var _0x16f9f4=_0x25fade;return _0x287f58[_0x16f9f4(0x219)]['U'];},'V':function(){return _0x287f58['windTextures']['V'];},'currentParticlesPosition':function(){var _0x348222=_0x25fade;return _0x287f58[_0x348222(0x2f4)][_0x348222(0x274)];},'dimension':function(){return _0xb7ffdb;},'minimum':function(){return _0x480fb5;},'maximum':function(){return _0x4e7465;},'interval':function(){return _0x47ea1f;}},'fragmentShaderSource':new _0x6f4903[(_0x25fade(0x2d3))]({'sources':[_0x3e6179['a']]}),'outputTexture':this[_0x25fade(0x2f4)][_0x25fade(0x2b7)],'preExecute':function(){var _0x459733=_0x25fade;_0x287f58[_0x459733(0x34d)][_0x459733(0x2df)][_0x459733(0x2d2)][_0x459733(0x267)]=_0x287f58[_0x459733(0x2f4)][_0x459733(0x2b7)];}}),'updateSpeed':new _0x51c023({'commandType':_0x25fade(0x2a1),'uniformMap':{'currentParticlesSpeed':function(){var _0x4d42dc=_0x25fade;return _0x287f58[_0x4d42dc(0x2f4)][_0x4d42dc(0x35d)];},'particlesWind':function(){var _0x1171b2=_0x25fade;return _0x287f58[_0x1171b2(0x2f4)][_0x1171b2(0x2b7)];},'uSpeedRange':function(){return _0x266ba2;},'vSpeedRange':function(){return _0x2adf87;},'pixelSize':function(){var _0x416363=_0x25fade;return _0x17d0ce[_0x416363(0x260)];},'speedFactor':function(){var _0x13c063=_0x25fade;return _0x4f0add[_0x13c063(0x2cb)];}},'fragmentShaderSource':new _0x6f4903['ShaderSource']({'sources':[_0x3d955c['a']]}),'outputTexture':this[_0x25fade(0x2f4)][_0x25fade(0x31c)],'preExecute':function(){var _0x1241d0=_0x25fade,_0x461c0a;_0x461c0a=_0x287f58[_0x1241d0(0x2f4)]['currentParticlesSpeed'],_0x287f58[_0x1241d0(0x2f4)][_0x1241d0(0x35d)]=_0x287f58[_0x1241d0(0x2f4)][_0x1241d0(0x341)],_0x287f58['particlesTextures']['postProcessingSpeed']=_0x461c0a,_0x287f58[_0x1241d0(0x34d)][_0x1241d0(0x2ad)]['commandToExecute'][_0x1241d0(0x267)]=_0x287f58[_0x1241d0(0x2f4)][_0x1241d0(0x31c)];}}),'updatePosition':new _0x51c023({'commandType':'Compute','uniformMap':{'currentParticlesPosition':function(){var _0x118cdd=_0x25fade;return _0x287f58['particlesTextures'][_0x118cdd(0x274)];},'currentParticlesSpeed':function(){var _0x57b212=_0x25fade;return _0x287f58[_0x57b212(0x2f4)]['currentParticlesSpeed'];}},'fragmentShaderSource':new _0x6f4903[(_0x25fade(0x2d3))]({'sources':[_0x3c2ffc['a']]}),'outputTexture':this[_0x25fade(0x2f4)][_0x25fade(0x2d1)],'preExecute':function(){var _0x198ab3=_0x25fade,_0x49468e;_0x49468e=_0x287f58[_0x198ab3(0x2f4)][_0x198ab3(0x274)],_0x287f58['particlesTextures'][_0x198ab3(0x274)]=_0x287f58[_0x198ab3(0x2f4)][_0x198ab3(0x2bd)],_0x287f58['particlesTextures'][_0x198ab3(0x2bd)]=_0x49468e,_0x287f58[_0x198ab3(0x34d)][_0x198ab3(0x28b)]['commandToExecute'][_0x198ab3(0x267)]=_0x287f58['particlesTextures']['nextParticlesPosition'];}}),'postProcessingPosition':new _0x51c023({'commandType':_0x25fade(0x2a1),'uniformMap':{'nextParticlesPosition':function(){return _0x287f58['particlesTextures']['nextParticlesPosition'];},'nextParticlesSpeed':function(){var _0x4bad4f=_0x25fade;return _0x287f58[_0x4bad4f(0x2f4)][_0x4bad4f(0x31c)];},'lonRange':function(){var _0x486fd1=_0x25fade;return _0x17d0ce[_0x486fd1(0x20e)];},'latRange':function(){var _0x49a0c2=_0x25fade;return _0x17d0ce[_0x49a0c2(0x271)];},'randomCoefficient':function(){var _0x4c8e7b=_0x25fade,_0x29e561=Math[_0x4c8e7b(0x238)]();return _0x29e561;},'dropRate':function(){return _0x4f0add['dropRate'];},'dropRateBump':function(){var _0x1a232c=_0x25fade;return _0x4f0add[_0x1a232c(0x31d)];}},'fragmentShaderSource':new _0x6f4903['ShaderSource']({'sources':[_0x1cccf4['a']]}),'outputTexture':this[_0x25fade(0x2f4)]['postProcessingPosition'],'preExecute':function(){var _0x405422=_0x25fade;_0x287f58[_0x405422(0x34d)][_0x405422(0x2bd)]['commandToExecute'][_0x405422(0x267)]=_0x287f58['particlesTextures'][_0x405422(0x2bd)];}}),'postProcessingSpeed':new _0x51c023({'commandType':'Compute','uniformMap':{'postProcessingPosition':function(){var _0x5062f7=_0x25fade;return _0x287f58[_0x5062f7(0x2f4)][_0x5062f7(0x2bd)];},'nextParticlesSpeed':function(){var _0x15ac65=_0x25fade;return _0x287f58[_0x15ac65(0x2f4)][_0x15ac65(0x31c)];}},'fragmentShaderSource':new _0x6f4903[(_0x25fade(0x2d3))]({'sources':[_0x3feced['a']]}),'outputTexture':this[_0x25fade(0x2f4)]['postProcessingSpeed'],'preExecute':function(){var _0x1f17a7=_0x25fade;_0x287f58['primitives'][_0x1f17a7(0x341)][_0x1f17a7(0x2d2)]['outputTexture']=_0x287f58[_0x1f17a7(0x2f4)][_0x1f17a7(0x341)];}})};}}]),_0x2e6a73;}(),_0x866c7=function(){var _0x327dfe=_0x445ccb;function _0xa30404(_0x37ec8c,_0x4081e8,_0x41c211,_0x1970c6){var _0x49e710=a0_0x22f4;_0x5d59b0()(this,_0xa30404),this[_0x49e710(0x231)]=_0x37ec8c,this[_0x49e710(0x301)]=_0x4081e8,this['userInput']=_0x41c211,this['viewerParameters']=_0x1970c6,this[_0x49e710(0x306)]=new _0x155228(this[_0x49e710(0x231)],this[_0x49e710(0x301)],this[_0x49e710(0x20a)],this[_0x49e710(0x27f)]),this[_0x49e710(0x325)]=new _0x5b4db1(this['context'],this[_0x49e710(0x301)],this[_0x49e710(0x20a)],this[_0x49e710(0x27f)],this['particlesComputing']);}return _0x2b791a()(_0xa30404,[{'key':'canvasResize','value':function(_0x249335){var _0x441666=a0_0x22f4,_0x5e7ae4=this;this['particlesComputing']['destroyParticlesTextures'](),Object[_0x441666(0x24f)](this[_0x441666(0x306)]['windTextures'])[_0x441666(0x304)](function(_0x638e3a){var _0x4d9b29=_0x441666;_0x5e7ae4[_0x4d9b29(0x306)][_0x4d9b29(0x219)][_0x638e3a][_0x4d9b29(0x24c)]();}),this[_0x441666(0x325)][_0x441666(0x230)]['colorTable'][_0x441666(0x24c)](),Object[_0x441666(0x24f)](this['particlesRendering'][_0x441666(0x288)])[_0x441666(0x304)](function(_0x115089){var _0x545514=_0x441666;_0x5e7ae4['particlesRendering']['framebuffers'][_0x115089][_0x545514(0x24c)]();}),this[_0x441666(0x231)]=_0x249335,this[_0x441666(0x306)]=new _0x155228(this[_0x441666(0x231)],this[_0x441666(0x301)],this['userInput'],this[_0x441666(0x27f)]),this[_0x441666(0x325)]=new _0x5b4db1(this[_0x441666(0x231)],this['data'],this[_0x441666(0x20a)],this[_0x441666(0x27f)],this[_0x441666(0x306)]);}},{'key':'clearFramebuffers','value':function(){var _0x23808a=a0_0x22f4,_0xc55593=this,_0x33301a=new _0x6f4903[(_0x23808a(0x2d0))]({'color':new _0x6f4903[(_0x23808a(0x32b))](0x0,0x0,0x0,0x0),'depth':0x1,'framebuffer':void 0x0,'pass':_0x6f4903[_0x23808a(0x34c)]['OPAQUE']});Object[_0x23808a(0x24f)](this[_0x23808a(0x325)][_0x23808a(0x288)])[_0x23808a(0x304)](function(_0xc1a615){var _0x47dfe3=_0x23808a;_0x33301a[_0x47dfe3(0x239)]=_0xc55593[_0x47dfe3(0x325)][_0x47dfe3(0x288)][_0xc1a615],_0x33301a['execute'](_0xc55593[_0x47dfe3(0x231)]);});}},{'key':_0x327dfe(0x337),'value':function(_0x2a2ae6){var _0x7ca217=_0x327dfe;if(this[_0x7ca217(0x268)](),this['particlesComputing'][_0x7ca217(0x2f2)](),this[_0x7ca217(0x306)][_0x7ca217(0x23b)](this[_0x7ca217(0x231)],this[_0x7ca217(0x20a)],this['viewerParameters']),_0x2a2ae6){var _0xea190a=this[_0x7ca217(0x325)][_0x7ca217(0x21c)](this[_0x7ca217(0x20a)]);this[_0x7ca217(0x325)][_0x7ca217(0x34d)][_0x7ca217(0x2b9)][_0x7ca217(0x213)]=_0xea190a;var _0x18b2c1=_0x6f4903[_0x7ca217(0x319)][_0x7ca217(0x2e3)]({'context':this['context'],'geometry':_0xea190a,'attributeLocations':this['particlesRendering']['primitives'][_0x7ca217(0x2b9)]['attributeLocations'],'bufferUsage':_0x6f4903[_0x7ca217(0x33c)]['STATIC_DRAW']});this['particlesRendering']['primitives'][_0x7ca217(0x2b9)][_0x7ca217(0x2d2)]['vertexArray']=_0x18b2c1;}}},{'key':_0x327dfe(0x270),'value':function(_0x3f06a2){var _0x255761=_0x327dfe,_0xae6b29=this,_0x4f4305=!0x1;this[_0x255761(0x20a)][_0x255761(0x293)]!=_0x3f06a2[_0x255761(0x293)]&&(_0x4f4305=!0x0),Object['keys'](_0x3f06a2)[_0x255761(0x304)](function(_0x5dfa64){var _0x3e8b9a=_0x255761;_0xae6b29[_0x3e8b9a(0x20a)][_0x5dfa64]=_0x3f06a2[_0x5dfa64];}),this[_0x255761(0x337)](_0x4f4305);}},{'key':_0x327dfe(0x200),'value':function(_0x17376b){var _0x1cf49e=_0x327dfe,_0x42cb77=this;Object[_0x1cf49e(0x24f)](_0x17376b)[_0x1cf49e(0x304)](function(_0x51ee19){var _0x1e7f8b=_0x1cf49e;_0x42cb77[_0x1e7f8b(0x27f)][_0x51ee19]=_0x17376b[_0x51ee19];}),this[_0x1cf49e(0x337)](!0x1);}}]),_0xa30404;}();function _0x538c06(_0x5f2f25){var _0x338643=function(){var _0x5547db=a0_0x22f4;if('undefined'==typeof Reflect||!Reflect[_0x5547db(0x2a6)])return!0x1;if(Reflect[_0x5547db(0x2a6)][_0x5547db(0x308)])return!0x1;if(_0x5547db(0x33e)==typeof Proxy)return!0x0;try{return Boolean['prototype']['valueOf']['call'](Reflect[_0x5547db(0x2a6)](Boolean,[],function(){})),!0x0;}catch(_0x2ab93e){return!0x1;}}();return function(){var _0xa5e6b1=a0_0x22f4,_0x10eff9,_0x5070dc=_0x5c5eae()(_0x5f2f25);if(_0x338643){var _0x3917d7=_0x5c5eae()(this)[_0xa5e6b1(0x1fe)];_0x10eff9=Reflect[_0xa5e6b1(0x2a6)](_0x5070dc,arguments,_0x3917d7);}else _0x10eff9=_0x5070dc[_0xa5e6b1(0x351)](this,arguments);return _0x5af096()(this,_0x10eff9);};}var _0x1a9887=_0x5bc5b5[_0x445ccb(0x31f)][_0x445ccb(0x328)],_0x3b61db=0x1000,_0xc69996=0x64,_0x4f59ba=0.996,_0x416a85=0.003,_0x4ba310=0.01,_0x30c656=0.5,_0x4c796b=0x2,_0x8ebe1=function(_0x1b154a){var _0x5cbb7b=_0x445ccb;_0x461fc5()(_0x55e5a,_0x1b154a);var _0x420872=_0x538c06(_0x55e5a);function _0x55e5a(){var _0x58da1a=a0_0x22f4,_0x3ccd42,_0x2e3104=arguments[_0x58da1a(0x2b5)]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};if(_0x5d59b0()(this,_0x55e5a),(_0x3ccd42=_0x420872[_0x58da1a(0x322)](this,_0x2e3104))[_0x58da1a(0x293)]=_0x3b61db,_0x3ccd42[_0x58da1a(0x26c)]=_0xc69996,_0x3ccd42[_0x58da1a(0x350)]=_0x4f59ba,_0x3ccd42[_0x58da1a(0x320)]=_0x416a85,_0x3ccd42[_0x58da1a(0x31d)]=_0x4ba310,_0x3ccd42[_0x58da1a(0x2cb)]=_0x30c656,_0x3ccd42[_0x58da1a(0x2e7)]=_0x4c796b,_0x2e3104){for(var _0x45c418 in _0x2e3104)_0x3ccd42[_0x45c418]=_0x2e3104[_0x45c418];}return _0x3ccd42;}return _0x2b791a()(_0x55e5a,[{'key':_0x5cbb7b(0x31f),'get':function(){var _0x52725a=_0x5cbb7b;return this[_0x52725a(0x34d)];}},{'key':_0x5cbb7b(0x2ef),'value':function(){}},{'key':_0x5cbb7b(0x1fc),'value':function(){var _0x2010ac=_0x5cbb7b;this[_0x2010ac(0x34b)]=this[_0x2010ac(0x1f5)][_0x2010ac(0x34b)],this['camera']=this[_0x2010ac(0x1f5)][_0x2010ac(0x20b)],this['primitives']=new _0x6f4903[(_0x2010ac(0x251))](),this[_0x2010ac(0x1f5)][_0x2010ac(0x34b)][_0x2010ac(0x34d)][_0x2010ac(0x1fb)](this[_0x2010ac(0x34d)]),this[_0x2010ac(0x27f)]={'lonRange':new _0x6f4903[(_0x2010ac(0x346))](),'latRange':new _0x6f4903[(_0x2010ac(0x346))](),'pixelSize':0x0},this['globeBoundingSphere']=new _0x6f4903[(_0x2010ac(0x22e))](_0x6f4903[_0x2010ac(0x2af)]['ZERO'],6314355.63),this['updateViewerParameters']();}},{'key':_0x5cbb7b(0x2e2),'value':function(){var _0x1f8cd1=_0x5cbb7b;this['primitives'][_0x1f8cd1(0x2e9)](),this[_0x1f8cd1(0x1f5)][_0x1f8cd1(0x34b)][_0x1f8cd1(0x34d)]['remove'](this['primitives']);}},{'key':_0x5cbb7b(0x2da),'value':function(_0x53f8a6){var _0x533267=_0x5cbb7b;this[_0x533267(0x29e)]=new _0x866c7(this[_0x533267(0x34b)]['context'],_0x53f8a6,this['getUserInput'](),this[_0x533267(0x27f)]),this['addPrimitives'](),this['setupEventListeners']();}},{'key':_0x5cbb7b(0x269),'value':function(_0x1dd530){var _0x393961=_0x5cbb7b;if(_0x1dd530){for(var _0x3da997 in _0x1dd530)this[_0x3da997]=_0x1dd530[_0x3da997];}return this[_0x393961(0x29e)][_0x393961(0x270)](this[_0x393961(0x33f)]()),this;}},{'key':_0x5cbb7b(0x33f),'value':function(){var _0x1d6016=_0x5cbb7b,_0x366c5a=Math[_0x1d6016(0x321)](Math[_0x1d6016(0x254)](this[_0x1d6016(0x293)]));return this['maxParticles']=_0x366c5a*_0x366c5a,{'particlesTextureSize':_0x366c5a,'maxParticles':this[_0x1d6016(0x293)],'particleHeight':this[_0x1d6016(0x26c)],'fadeOpacity':this[_0x1d6016(0x350)],'dropRate':this[_0x1d6016(0x320)],'dropRateBump':this['dropRateBump'],'speedFactor':this[_0x1d6016(0x2cb)],'lineWidth':this[_0x1d6016(0x2e7)],'globeLayer':this[_0x1d6016(0x311)],'WMS_URL':this[_0x1d6016(0x236)]};}},{'key':'addPrimitives','value':function(){var _0xa56c50=_0x5cbb7b;this[_0xa56c50(0x34d)]['add'](this[_0xa56c50(0x29e)][_0xa56c50(0x306)][_0xa56c50(0x34d)][_0xa56c50(0x2df)]),this[_0xa56c50(0x34d)][_0xa56c50(0x1fb)](this['particleSystem'][_0xa56c50(0x306)][_0xa56c50(0x34d)][_0xa56c50(0x2ad)]),this[_0xa56c50(0x34d)][_0xa56c50(0x1fb)](this[_0xa56c50(0x29e)][_0xa56c50(0x306)][_0xa56c50(0x34d)][_0xa56c50(0x28b)]),this[_0xa56c50(0x34d)][_0xa56c50(0x1fb)](this[_0xa56c50(0x29e)][_0xa56c50(0x306)][_0xa56c50(0x34d)][_0xa56c50(0x2bd)]),this[_0xa56c50(0x34d)][_0xa56c50(0x1fb)](this[_0xa56c50(0x29e)][_0xa56c50(0x306)][_0xa56c50(0x34d)][_0xa56c50(0x341)]),this['primitives'][_0xa56c50(0x1fb)](this[_0xa56c50(0x29e)][_0xa56c50(0x325)][_0xa56c50(0x34d)][_0xa56c50(0x2b9)]),this['primitives'][_0xa56c50(0x1fb)](this[_0xa56c50(0x29e)][_0xa56c50(0x325)][_0xa56c50(0x34d)]['trails']),this['primitives']['add'](this[_0xa56c50(0x29e)][_0xa56c50(0x325)][_0xa56c50(0x34d)][_0xa56c50(0x33d)]);}},{'key':_0x5cbb7b(0x2e5),'value':function(){var _0x1e85bf=_0x5cbb7b,_0xa875c6=this[_0x1e85bf(0x20b)][_0x1e85bf(0x2f8)](this[_0x1e85bf(0x34b)]['globe'][_0x1e85bf(0x20d)]);if(!_0xa875c6){var _0x80d210=this[_0x1e85bf(0x1f5)][_0x1e85bf(0x314)]();_0xa875c6=_0x6f4903[_0x1e85bf(0x204)][_0x1e85bf(0x215)](_0x80d210['xmin'],_0x80d210[_0x1e85bf(0x2f6)],_0x80d210[_0x1e85bf(0x276)],_0x80d210[_0x1e85bf(0x21a)]);}var _0x2e524e=_0x155144[_0x1e85bf(0x265)](_0xa875c6);this[_0x1e85bf(0x27f)][_0x1e85bf(0x20e)]['x']=_0x2e524e[_0x1e85bf(0x2ae)][_0x1e85bf(0x28a)],this[_0x1e85bf(0x27f)][_0x1e85bf(0x20e)]['y']=_0x2e524e[_0x1e85bf(0x2ae)][_0x1e85bf(0x33b)],this[_0x1e85bf(0x27f)][_0x1e85bf(0x271)]['x']=_0x2e524e[_0x1e85bf(0x22d)]['min'],this[_0x1e85bf(0x27f)][_0x1e85bf(0x271)]['y']=_0x2e524e['lat'][_0x1e85bf(0x33b)];var _0x3a0f58=this['camera']['getPixelSize'](this[_0x1e85bf(0x1ff)],this['scene'][_0x1e85bf(0x2f1)],this[_0x1e85bf(0x34b)][_0x1e85bf(0x2b2)]);_0x3a0f58>0x0&&(this['viewerParameters'][_0x1e85bf(0x260)]=_0x3a0f58);}},{'key':_0x5cbb7b(0x2c3),'value':function(){var _0x342d2b=_0x5cbb7b,_0x2a01fc=this;this[_0x342d2b(0x20b)][_0x342d2b(0x312)][_0x342d2b(0x26f)](function(){var _0x29f71a=_0x342d2b;_0x2a01fc['_map']&&_0x2a01fc[_0x29f71a(0x2cd)]&&(_0x2a01fc[_0x29f71a(0x34d)][_0x29f71a(0x2cd)]=!0x1);}),this[_0x342d2b(0x20b)][_0x342d2b(0x297)][_0x342d2b(0x26f)](function(){var _0x59a63f=_0x342d2b;_0x2a01fc[_0x59a63f(0x1f5)]&&_0x2a01fc[_0x59a63f(0x2cd)]&&(_0x2a01fc[_0x59a63f(0x2e5)](),_0x2a01fc['particleSystem'][_0x59a63f(0x200)](_0x2a01fc[_0x59a63f(0x27f)]),_0x2a01fc[_0x59a63f(0x34d)][_0x59a63f(0x2cd)]=!0x0);});var _0x66145a=!0x1;window['addEventListener'](_0x342d2b(0x24d),function(){var _0x53976f=_0x342d2b;_0x2a01fc[_0x53976f(0x1f5)]&&_0x2a01fc['show']&&(_0x66145a=!0x0,_0x2a01fc[_0x53976f(0x34d)]['show']=!0x1,_0x2a01fc['primitives'][_0x53976f(0x2e9)]());}),this['scene']['preRender'][_0x342d2b(0x26f)](function(){var _0x922696=_0x342d2b;_0x2a01fc[_0x922696(0x1f5)]&&_0x66145a&&(_0x2a01fc['particleSystem'][_0x922696(0x2d8)](_0x2a01fc['scene'][_0x922696(0x231)]),_0x66145a=!0x1,_0x2a01fc[_0x922696(0x23c)](),_0x2a01fc[_0x922696(0x34d)]['show']=!0x0);});}}]),_0x55e5a;}(_0x1a9887);_0x5bc5b5[_0x445ccb(0x2a4)]['register'](_0x445ccb(0x1f8),_0x8ebe1),_0x5bc5b5['layer'][_0x445ccb(0x35b)]=_0x8ebe1;var _0xbc04c6=function _0x503597(){var _0x47ec50=_0x445ccb;_0x5d59b0()(this,_0x503597),this[_0x47ec50(0x210)]=null,this[_0x47ec50(0x22d)]=null,this[_0x47ec50(0x294)]=null,this[_0x47ec50(0x292)]=null,this[_0x47ec50(0x2cc)]=null;},_0x5e36f7=function(){var _0x4f8e0b=_0x445ccb;function _0x17d43e(_0x3f9115,_0x2a66c2){var _0xfbf949=a0_0x22f4;_0x5d59b0()(this,_0x17d43e),this['rows']=_0x3f9115[_0xfbf949(0x2b4)],this[_0xfbf949(0x2fc)]=_0x3f9115['cols'],this['xmin']=_0x3f9115['xmin'],this[_0xfbf949(0x276)]=_0x3f9115[_0xfbf949(0x276)],this[_0xfbf949(0x2f6)]=_0x3f9115[_0xfbf949(0x2f6)],this[_0xfbf949(0x21a)]=_0x3f9115['ymax'],this['grid']=[];var _0x478f84=_0x3f9115[_0xfbf949(0x28e)],_0x11541d=_0x3f9115[_0xfbf949(0x2d5)],_0x455db4=!0x1;_0x478f84[_0xfbf949(0x2b5)]===this[_0xfbf949(0x2b4)]&&_0x478f84[0x0]['length']===this['cols']&&(_0x455db4=!0x0);for(var _0x4f52a4=0x0,_0x127a87=null,_0x5f2bc7=null,_0xd144a7=0x0;_0xd144a7<this[_0xfbf949(0x2b4)];_0xd144a7++){_0x127a87=[];for(var _0x3eddb2=0x0;_0x3eddb2<this[_0xfbf949(0x2fc)];_0x3eddb2++,_0x4f52a4++)_0x5f2bc7=_0x455db4?this['_calcUV'](_0x478f84[_0xd144a7][_0x3eddb2],_0x11541d[_0xd144a7][_0x3eddb2]):this[_0xfbf949(0x282)](_0x478f84[_0x4f52a4],_0x11541d[_0x4f52a4]),_0x127a87[_0xfbf949(0x2f3)](_0x5f2bc7);this[_0xfbf949(0x285)][_0xfbf949(0x2f3)](_0x127a87);}_0x2a66c2&&this['grid'][_0xfbf949(0x233)]();}return _0x2b791a()(_0x17d43e,[{'key':_0x4f8e0b(0x266),'value':function(_0x4d785b,_0x432176){var _0x199027=_0x4f8e0b;return{'x':(_0x4d785b-this[_0x199027(0x344)])/(this[_0x199027(0x276)]-this[_0x199027(0x344)])*(this['cols']-0x1),'y':(this[_0x199027(0x21a)]-_0x432176)/(this[_0x199027(0x21a)]-this[_0x199027(0x2f6)])*(this[_0x199027(0x2b4)]-0x1)};}},{'key':_0x4f8e0b(0x23f),'value':function(_0x297233,_0x252b06){var _0x3b3972=_0x4f8e0b;if(_0x297233<0x0||_0x297233>=this['cols']||_0x252b06>=this['rows'])return[0x0,0x0,0x0];var _0x1aa434,_0x53cefc,_0x69d7d4=Math[_0x3b3972(0x253)](_0x297233),_0x527218=Math[_0x3b3972(0x253)](_0x252b06);if(_0x69d7d4===_0x297233&&_0x527218===_0x252b06)return this[_0x3b3972(0x285)][_0x252b06][_0x297233];_0x1aa434=_0x69d7d4+0x1,_0x53cefc=_0x527218+0x1;var _0x11b408=this[_0x3b3972(0x23f)](_0x69d7d4,_0x527218),_0x126980=this[_0x3b3972(0x23f)](_0x1aa434,_0x527218),_0x3ec1e9=this[_0x3b3972(0x23f)](_0x69d7d4,_0x53cefc),_0x2ac9da=this[_0x3b3972(0x23f)](_0x1aa434,_0x53cefc),_0x42e3ce=null;try{_0x42e3ce=this[_0x3b3972(0x256)](_0x297233-_0x69d7d4,_0x252b06-_0x527218,_0x11b408,_0x126980,_0x3ec1e9,_0x2ac9da);}catch(_0x35c639){console[_0x3b3972(0x201)](_0x297233,_0x252b06);}return _0x42e3ce;}},{'key':_0x4f8e0b(0x256),'value':function(_0x4686a3,_0x18a513,_0x36b9ea,_0x3517e8,_0x388868,_0x3a3cf6){var _0x2218b1=0x1-_0x4686a3,_0x5b067e=0x1-_0x18a513,_0x273543=_0x2218b1*_0x5b067e,_0x44428c=_0x4686a3*_0x5b067e,_0x4cb74d=_0x2218b1*_0x18a513,_0x51a6ac=_0x4686a3*_0x18a513,_0x4f764f=_0x36b9ea[0x0]*_0x273543+_0x3517e8[0x0]*_0x44428c+_0x388868[0x0]*_0x4cb74d+_0x3a3cf6[0x0]*_0x51a6ac,_0x183e90=_0x36b9ea[0x1]*_0x273543+_0x3517e8[0x1]*_0x44428c+_0x388868[0x1]*_0x4cb74d+_0x3a3cf6[0x1]*_0x51a6ac;return this['_calcUV'](_0x4f764f,_0x183e90);}},{'key':'_calcUV','value':function(_0xf05e94,_0x438c18){var _0x15dfc6=_0x4f8e0b;return[+_0xf05e94,+_0x438c18,Math[_0x15dfc6(0x254)](_0xf05e94*_0xf05e94+_0x438c18*_0x438c18)];}},{'key':_0x4f8e0b(0x2a9),'value':function(_0x2b1d34,_0x17b6f3){var _0x2a17a8=_0x4f8e0b;if(!this[_0x2a17a8(0x22f)](_0x2b1d34,_0x17b6f3))return null;var _0x570064=this[_0x2a17a8(0x266)](_0x2b1d34,_0x17b6f3);return this[_0x2a17a8(0x23f)](_0x570064['x'],_0x570064['y']);}},{'key':_0x4f8e0b(0x22f),'value':function(_0x149d2f,_0x2a5973){var _0x47d679=_0x4f8e0b;return _0x149d2f>=this['xmin']&&_0x149d2f<=this[_0x47d679(0x276)]&&_0x2a5973>=this[_0x47d679(0x2f6)]&&_0x2a5973<=this[_0x47d679(0x21a)];}},{'key':_0x4f8e0b(0x302),'value':function(){var _0x35c341=_0x4f8e0b,_0x510279=_0x249651(this[_0x35c341(0x344)],this[_0x35c341(0x276)]);return{'lat':_0x249651(this[_0x35c341(0x2f6)],this['ymax']),'lng':_0x510279};}}]),_0x17d43e;}();function _0x249651(_0x29a0c4,_0x1d478d){var _0x18f70c=_0x445ccb;return _0x29a0c4+Math[_0x18f70c(0x238)]()*(_0x1d478d-_0x29a0c4);}function _0x1099a2(_0x26a421){var _0x3f9f20=function(){var _0xcc4736=a0_0x22f4;if(_0xcc4736(0x21d)==typeof Reflect||!Reflect[_0xcc4736(0x2a6)])return!0x1;if(Reflect['construct'][_0xcc4736(0x308)])return!0x1;if(_0xcc4736(0x33e)==typeof Proxy)return!0x0;try{return Boolean[_0xcc4736(0x2fa)][_0xcc4736(0x2c4)]['call'](Reflect[_0xcc4736(0x2a6)](Boolean,[],function(){})),!0x0;}catch(_0x4d8482){return!0x1;}}();return function(){var _0x529d2a=a0_0x22f4,_0x398aec,_0x2e1b69=_0x5c5eae()(_0x26a421);if(_0x3f9f20){var _0x5c11e0=_0x5c5eae()(this)[_0x529d2a(0x1fe)];_0x398aec=Reflect['construct'](_0x2e1b69,arguments,_0x5c11e0);}else _0x398aec=_0x2e1b69[_0x529d2a(0x351)](this,arguments);return _0x5af096()(this,_0x398aec);};}var _0x5456a4=function(_0x1eba76){var _0xb6b03f=_0x445ccb;_0x461fc5()(_0x5f52df,_0x1eba76);var _0x403d2e=_0x1099a2(_0x5f52df);function _0x5f52df(){var _0xdd9b03=a0_0x22f4,_0xa8bf9e,_0x20ed9d=arguments[_0xdd9b03(0x2b5)]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};return _0x5d59b0()(this,_0x5f52df),(_0xa8bf9e=_0x403d2e[_0xdd9b03(0x322)](this,_0x20ed9d))[_0xdd9b03(0x273)]=[0x0,0x0],_0xa8bf9e[_0xdd9b03(0x229)]=[],_0xa8bf9e[_0xdd9b03(0x217)]=_0x20ed9d[_0xdd9b03(0x217)]||0x32,_0xa8bf9e[_0xdd9b03(0x1fa)]=_0x20ed9d[_0xdd9b03(0x32a)]||0x4e20,_0xa8bf9e['_maxAge']=_0x20ed9d[_0xdd9b03(0x21b)]||0x78,_0xa8bf9e[_0xdd9b03(0x264)]=0x3e8/(_0x20ed9d[_0xdd9b03(0x205)]||0xa),_0xa8bf9e['_pointerEvents']=_0x6f4903[_0xdd9b03(0x307)](_0xa8bf9e[_0xdd9b03(0x23e)][_0xdd9b03(0x2c2)],!0x1),_0xa8bf9e[_0xdd9b03(0x1f9)]=_0x20ed9d['color']||_0xdd9b03(0x34f),_0xa8bf9e[_0xdd9b03(0x2e7)]=_0x20ed9d[_0xdd9b03(0x2e7)]||0x1,_0xa8bf9e[_0xdd9b03(0x2e1)]=_0x6f4903[_0xdd9b03(0x307)](_0x20ed9d[_0xdd9b03(0x2e1)],0x0),_0xa8bf9e[_0xdd9b03(0x2a8)]=_0x6f4903['defaultValue'](_0x20ed9d[_0xdd9b03(0x2a8)],!0x1),_0xa8bf9e[_0xdd9b03(0x300)]=null,_0xa8bf9e;}return _0x2b791a()(_0x5f52df,[{'key':_0xb6b03f(0x31f),'get':function(){var _0x42292e=_0xb6b03f;return this[_0x42292e(0x300)];}},{'key':_0xb6b03f(0x287),'get':function(){var _0x40d4b9=_0xb6b03f;return this['_map'][_0x40d4b9(0x34b)][_0x40d4b9(0x300)]['clientWidth'];}},{'key':'canvasHeight','get':function(){var _0x38091b=_0xb6b03f;return this[_0x38091b(0x1f5)]['scene'][_0x38091b(0x300)][_0x38091b(0x32c)];}},{'key':_0xb6b03f(0x2c2),'get':function(){return this['_pointerEvents'];},'set':function(_0x169676){var _0x4e6610=_0xb6b03f;this['_pointerEvents']=_0x169676,this['canvas']['style'][_0x4e6610(0x332)]=_0x169676?'all':_0x4e6610(0x22b);}},{'key':_0xb6b03f(0x217),'get':function(){var _0xed9ba5=_0xb6b03f;return this[_0xed9ba5(0x2e4)];},'set':function(_0x2caed8){var _0x13f0e3=_0xb6b03f;this[_0x13f0e3(0x2e4)]=0x64*(0x64-(_0x2caed8>0x63?0x63:_0x2caed8)),this[_0x13f0e3(0x290)]();}},{'key':_0xb6b03f(0x32a),'get':function(){var _0x3de0df=_0xb6b03f;return this[_0x3de0df(0x1fa)];},'set':function(_0x2df540){var _0x48b622=_0xb6b03f,_0x27d8a0=this;this['_particlesNumber']=_0x2df540,clearTimeout(this[_0x48b622(0x2e6)]),this['canrefresh']=setTimeout(function(){_0x27d8a0['redraw']();},0x1f4);}},{'key':'maxAge','get':function(){var _0x42cc91=_0xb6b03f;return this[_0x42cc91(0x2ec)];},'set':function(_0x147c1d){var _0x4ac75c=_0xb6b03f,_0x4ce99e=this;this['_maxAge']=_0x147c1d,clearTimeout(this[_0x4ac75c(0x2e6)]),this[_0x4ac75c(0x2e6)]=setTimeout(function(){var _0x3a974d=_0x4ac75c;_0x4ce99e[_0x3a974d(0x33a)]();},0x1f4);}},{'key':_0xb6b03f(0x301),'get':function(){var _0xdfc1c8=_0xb6b03f;return this[_0xdfc1c8(0x26b)];},'set':function(_0x2b7903){var _0x27cce2=_0xb6b03f;this[_0x27cce2(0x331)](_0x2b7903);}},{'key':'_showHook','value':function(_0x20eea9){var _0x5d754e=_0xb6b03f;_0x20eea9?this[_0x5d754e(0x1fc)]():(this[_0x5d754e(0x26b)]&&(this[_0x5d754e(0x23e)][_0x5d754e(0x301)]=this[_0x5d754e(0x26b)]),this[_0x5d754e(0x2e2)]());}},{'key':_0xb6b03f(0x2ef),'value':function(){}},{'key':_0xb6b03f(0x1fc),'value':function(){var _0x3e3e2b=_0xb6b03f;this[_0x3e3e2b(0x300)]=this['_createCanvas'](),this[_0x3e3e2b(0x299)]=this[_0x3e3e2b(0x300)][_0x3e3e2b(0x2f5)]('2d'),this[_0x3e3e2b(0x261)](),this[_0x3e3e2b(0x23e)][_0x3e3e2b(0x301)]&&this[_0x3e3e2b(0x331)](this['options'][_0x3e3e2b(0x301)]);}},{'key':_0xb6b03f(0x2e2),'value':function(){var _0x5d4da6=_0xb6b03f;this[_0x5d4da6(0x359)](),this[_0x5d4da6(0x216)](),this[_0x5d4da6(0x300)]&&(this['_map'][_0x5d4da6(0x34a)]['removeChild'](this['canvas']),delete this[_0x5d4da6(0x300)]);}},{'key':'_createCanvas','value':function(){var _0xfb16e5=_0xb6b03f,_0x59b55f=document[_0xfb16e5(0x2eb)](_0xfb16e5(0x300));_0x59b55f['style'][_0xfb16e5(0x26e)]=_0xfb16e5(0x255),_0x59b55f[_0xfb16e5(0x248)]['top']='0px',_0x59b55f['style']['left']=_0xfb16e5(0x2b3),_0x59b55f[_0xfb16e5(0x248)][_0xfb16e5(0x318)]=_0xfb16e5(0x2d9),_0x59b55f['style'][_0xfb16e5(0x284)]='100%',_0x59b55f[_0xfb16e5(0x248)][_0xfb16e5(0x2c2)]=this[_0xfb16e5(0x29f)]?_0xfb16e5(0x29d):_0xfb16e5(0x22b),_0x59b55f[_0xfb16e5(0x248)][_0xfb16e5(0x2bc)]=0xa,_0x59b55f[_0xfb16e5(0x221)]('id',_0xfb16e5(0x355)),_0x59b55f['setAttribute']('class',_0xfb16e5(0x355)),this[_0xfb16e5(0x1f5)][_0xfb16e5(0x34a)]['appendChild'](_0x59b55f);var _0x3eb1a4=this[_0xfb16e5(0x1f5)][_0xfb16e5(0x34b)];return _0x59b55f[_0xfb16e5(0x318)]=_0x3eb1a4[_0xfb16e5(0x300)][_0xfb16e5(0x24b)],_0x59b55f[_0xfb16e5(0x284)]=_0x3eb1a4[_0xfb16e5(0x300)][_0xfb16e5(0x32c)],_0x59b55f;}},{'key':'resize','value':function(){var _0xb2ab59=_0xb6b03f;this[_0xb2ab59(0x300)]&&(this[_0xb2ab59(0x300)][_0xb2ab59(0x318)]=this[_0xb2ab59(0x287)],this[_0xb2ab59(0x300)][_0xb2ab59(0x284)]=this['canvasHeight']);}},{'key':_0xb6b03f(0x261),'value':function(){var _0x58580c=_0xb6b03f,_0x37a113=this,_0x3cc898=this,_0x2f19ea=Date['now']();!function _0x1beecb(){var _0x3e2e68=a0_0x22f4;_0x3cc898[_0x3e2e68(0x34e)]=window[_0x3e2e68(0x27d)](_0x1beecb);var _0x2122d0=Date[_0x3e2e68(0x2c9)](),_0x234173=_0x2122d0-_0x2f19ea;_0x234173>_0x3cc898[_0x3e2e68(0x264)]&&(_0x2f19ea=_0x2122d0-_0x234173%_0x3cc898['frameTime'],_0x3cc898[_0x3e2e68(0x225)]());}(),window['addEventListener']('resize',this[_0x58580c(0x24d)][_0x58580c(0x214)](this),!0x1),this['handler']=new _0x6f4903['ScreenSpaceEventHandler'](this['_map'][_0x58580c(0x34b)][_0x58580c(0x300)]);var _0x3d6518=!0x1,_0x4c79ec=!0x1;this[_0x58580c(0x29a)]['setInputAction'](function(_0x16730d){var _0x3f8b31=_0x58580c;clearTimeout(-0x1),_0x37a113[_0x3f8b31(0x300)][_0x3f8b31(0x248)]['visibility']=_0x3f8b31(0x24e),setTimeout(function(){var _0x2731e4=_0x3f8b31;_0x37a113['show']&&(_0x37a113[_0x2731e4(0x33a)](),_0x37a113[_0x2731e4(0x300)]['style']['visibility']=_0x2731e4(0x357));},0xc8);},_0x6f4903[_0x58580c(0x35c)][_0x58580c(0x29b)]),this[_0x58580c(0x29a)][_0x58580c(0x2fd)](function(_0x53fd5d){_0x3d6518=!0x0;},_0x6f4903[_0x58580c(0x35c)][_0x58580c(0x2fb)]),this[_0x58580c(0x29a)][_0x58580c(0x2fd)](function(_0x1099b3){_0x3d6518=!0x0;},_0x6f4903['ScreenSpaceEventType'][_0x58580c(0x309)]),this[_0x58580c(0x29a)][_0x58580c(0x2fd)](function(_0x7356a){var _0x47ecb6=_0x58580c;_0x3d6518&&(_0x37a113['canvas']['style'][_0x47ecb6(0x245)]='hidden',_0x4c79ec=!0x0);},_0x6f4903[_0x58580c(0x35c)][_0x58580c(0x208)]),this[_0x58580c(0x29a)][_0x58580c(0x2fd)](function(_0x4b4760){var _0x26094a=_0x58580c;_0x3d6518&&_0x4c79ec&&_0x37a113[_0x26094a(0x33a)](),_0x37a113[_0x26094a(0x300)][_0x26094a(0x248)][_0x26094a(0x245)]='visible',_0x3d6518=!0x1,_0x4c79ec=!0x1;},_0x6f4903['ScreenSpaceEventType']['LEFT_UP']),this['handler'][_0x58580c(0x2fd)](function(_0x2dbdd8){var _0x93b134=_0x58580c;_0x3d6518&&_0x4c79ec&&_0x37a113[_0x93b134(0x33a)](),_0x37a113[_0x93b134(0x300)][_0x93b134(0x248)][_0x93b134(0x245)]=_0x93b134(0x357),_0x3d6518=!0x1,_0x4c79ec=!0x1;},_0x6f4903[_0x58580c(0x35c)][_0x58580c(0x222)]);}},{'key':_0xb6b03f(0x216),'value':function(){var _0x11f00b=_0xb6b03f;window['cancelAnimationFrame'](this[_0x11f00b(0x34e)]),delete this[_0x11f00b(0x34e)],window[_0x11f00b(0x2b8)](_0x11f00b(0x24d),this[_0x11f00b(0x24d)]),this[_0x11f00b(0x29a)]&&(this[_0x11f00b(0x29a)][_0x11f00b(0x24c)](),this[_0x11f00b(0x29a)]=null);}},{'key':'redraw','value':function(){var _0x398811=_0xb6b03f;this[_0x398811(0x2cd)]&&(this[_0x398811(0x229)]=[],this[_0x398811(0x22c)]());}},{'key':_0xb6b03f(0x331),'value':function(_0x4970c5){var _0x100274=_0xb6b03f;this['clear'](),this['windData']=_0x4970c5,this[_0x100274(0x2ce)]=new _0x5e36f7(this[_0x100274(0x26b)],this[_0x100274(0x2a8)]),this[_0x100274(0x22c)]();}},{'key':'drawWind','value':function(){var _0x1c156b=_0xb6b03f;this['_calcStep']();for(var _0x258ab2=0x0;_0x258ab2<this['particlesNumber'];_0x258ab2++){var _0x8de023=this[_0x1c156b(0x278)](new _0xbc04c6());this['particles']['push'](_0x8de023);}this[_0x1c156b(0x299)][_0x1c156b(0x32e)]='rgba(0,\x200,\x200,\x200.97)',this[_0x1c156b(0x299)]['globalAlpha']=0.6,this[_0x1c156b(0x225)]();}},{'key':'_calcStep','value':function(){var _0x2bf637=_0xb6b03f;this['windField']&&(this[_0x2bf637(0x273)]=[(this[_0x2bf637(0x2ce)][_0x2bf637(0x276)]-this['windField'][_0x2bf637(0x344)])/this['speedRate'],(this[_0x2bf637(0x2ce)][_0x2bf637(0x21a)]-this[_0x2bf637(0x2ce)][_0x2bf637(0x2f6)])/this[_0x2bf637(0x217)]]);}},{'key':_0xb6b03f(0x225),'value':function(){var _0x1e7634=_0xb6b03f,_0x31cb23=this;if(this[_0x1e7634(0x2cd)]&&!(this['particles']['length']<=0x0)){var _0x1422f2=null,_0x78538e=null,_0x3167ff=null;this[_0x1e7634(0x229)]['forEach'](function(_0x299795){var _0x41b963=_0x1e7634;if(_0x299795[_0x41b963(0x2cc)]<=0x0&&_0x31cb23[_0x41b963(0x278)](_0x299795),_0x299795[_0x41b963(0x2cc)]>0x0){var _0x1edee5=_0x299795['tlng'],_0x39da51=_0x299795['tlat'];(_0x3167ff=_0x31cb23[_0x41b963(0x2ce)][_0x41b963(0x2a9)](_0x1edee5,_0x39da51))?(_0x1422f2=_0x1edee5+_0x31cb23['calc_speedRate'][0x0]*_0x3167ff[0x0],_0x78538e=_0x39da51+_0x31cb23[_0x41b963(0x273)][0x1]*_0x3167ff[0x1],_0x299795[_0x41b963(0x210)]=_0x1edee5,_0x299795['lat']=_0x39da51,_0x299795[_0x41b963(0x294)]=_0x1422f2,_0x299795[_0x41b963(0x292)]=_0x78538e,_0x299795[_0x41b963(0x2cc)]--):_0x299795[_0x41b963(0x2cc)]=0x0;}}),this[_0x1e7634(0x30f)]();}}},{'key':'_tomap','value':function(_0xa61a2c,_0x2f0ac4,_0x189fd1){var _0x47678b=_0xb6b03f,_0x52b8b0=_0x6f4903[_0x47678b(0x2af)]['fromDegrees'](_0xa61a2c,_0x2f0ac4,this[_0x47678b(0x2e1)]),_0x5ef7df=this['_map'][_0x47678b(0x34b)];if(_0x5ef7df['mode']===_0x6f4903[_0x47678b(0x203)][_0x47678b(0x343)]&&!new _0x6f4903[(_0x47678b(0x241))](_0x5ef7df['globe'][_0x47678b(0x20d)],_0x5ef7df[_0x47678b(0x20b)]['positionWC'])[_0x47678b(0x212)](_0x52b8b0))return _0x189fd1['age']=0x0,null;var _0x208eb6=_0x6f4903[_0x47678b(0x2c6)]['wgs84ToWindowCoordinates'](this[_0x47678b(0x1f5)][_0x47678b(0x34b)],_0x52b8b0);return _0x208eb6?[_0x208eb6['x'],_0x208eb6['y']]:null;}},{'key':_0xb6b03f(0x30f),'value':function(){var _0x2f7673=_0xb6b03f,_0x1e76a4=this,_0x525d60=this[_0x2f7673(0x229)];this[_0x2f7673(0x299)][_0x2f7673(0x2e7)]=_0x1e76a4[_0x2f7673(0x2e7)],this['canvasContext'][_0x2f7673(0x2a5)]=_0x2f7673(0x223),this[_0x2f7673(0x299)][_0x2f7673(0x2be)](0x0,0x0,this[_0x2f7673(0x287)],this[_0x2f7673(0x32d)]),this[_0x2f7673(0x299)][_0x2f7673(0x2a5)]=_0x2f7673(0x27a),this['canvasContext'][_0x2f7673(0x25a)]=0.9,this['canvasContext']['beginPath'](),this[_0x2f7673(0x299)][_0x2f7673(0x263)]=this[_0x2f7673(0x1f9)];var _0x71f690=this[_0x2f7673(0x1f5)]['scene'][_0x2f7673(0x209)]!==_0x6f4903[_0x2f7673(0x203)][_0x2f7673(0x343)];_0x525d60['forEach'](function(_0x5e61b5){var _0x47bc72=_0x2f7673,_0x316655=_0x1e76a4['_tomap'](_0x5e61b5['lng'],_0x5e61b5['lat'],_0x5e61b5),_0x303f18=_0x1e76a4[_0x47bc72(0x2d7)](_0x5e61b5[_0x47bc72(0x294)],_0x5e61b5['tlat'],_0x5e61b5);if(null!=_0x316655&&null!=_0x303f18){var _0x43351a=Math['abs'](_0x316655[0x0]-_0x303f18[0x0]);_0x71f690&&_0x43351a>=_0x1e76a4['canvasWidth']||(_0x1e76a4[_0x47bc72(0x299)]['moveTo'](_0x316655[0x0],_0x316655[0x1]),_0x1e76a4[_0x47bc72(0x299)][_0x47bc72(0x220)](_0x303f18[0x0],_0x303f18[0x1]));}}),this[_0x2f7673(0x299)][_0x2f7673(0x2aa)]();}},{'key':_0xb6b03f(0x278),'value':function(_0x550966){var _0x2565e7=_0xb6b03f;for(var _0x3db6fb,_0x2262c8,_0x5bc2ec=0x0;_0x5bc2ec<0x1e&&(_0x3db6fb=this[_0x2565e7(0x2ce)]['getRandomLatLng'](),!((_0x2262c8=this['windField'][_0x2565e7(0x2a9)](_0x3db6fb[_0x2565e7(0x210)],_0x3db6fb['lat']))&&_0x2262c8[0x2]>0x0));_0x5bc2ec++);if(!_0x2262c8)return _0x550966;var _0x113f7e=_0x3db6fb['lng']+this['calc_speedRate'][0x0]*_0x2262c8[0x0],_0x11550c=_0x3db6fb[_0x2565e7(0x22d)]+this[_0x2565e7(0x273)][0x1]*_0x2262c8[0x1];return _0x550966[_0x2565e7(0x210)]=_0x3db6fb['lng'],_0x550966[_0x2565e7(0x22d)]=_0x3db6fb[_0x2565e7(0x22d)],_0x550966[_0x2565e7(0x294)]=_0x113f7e,_0x550966['tlat']=_0x11550c,_0x550966[_0x2565e7(0x2cc)]=Math[_0x2565e7(0x330)](Math['random']()*this[_0x2565e7(0x21b)]),_0x550966;}},{'key':_0xb6b03f(0x359),'value':function(){var _0x41111f=_0xb6b03f;this[_0x41111f(0x229)]=[],delete this['windField'],delete this[_0x41111f(0x26b)];}}]),_0x5f52df;}(_0x5bc5b5['layer'][_0x445ccb(0x328)]);function _0x398247(_0x3c48e4,_0x30b668){var _0xe4a9ff=_0x445ccb;return _0x3c48e4*Math[_0xe4a9ff(0x252)](_0x6f4903[_0xe4a9ff(0x25e)][_0xe4a9ff(0x317)](_0x30b668));}function _0x46a321(_0x1495f,_0x929e14){var _0x37215b=_0x445ccb;return _0x1495f*Math[_0x37215b(0x340)](_0x6f4903[_0x37215b(0x25e)]['toRadians'](_0x929e14));}function _0x5aea71(_0x5ca729,_0x512aeb){var _0x3eaf33=_0x445ccb;return Math[_0x3eaf33(0x254)](Math['pow'](_0x5ca729,0x2)+Math['pow'](_0x512aeb,0x2));}function _0x2eb757(_0x303936,_0x3a501e){var _0x2fb595=_0x445ccb,_0x4e9ec7=_0x6f4903['Math']['toDegrees'](Math[_0x2fb595(0x2ca)](_0x3a501e,_0x303936));return _0x4e9ec7+=_0x4e9ec7<0x0?0x168:0x0;}_0x5bc5b5[_0x445ccb(0x2a4)][_0x445ccb(0x27e)](_0x445ccb(0x227),_0x5456a4),_0x5bc5b5[_0x445ccb(0x31f)]['CanvasWindLayer']=_0x5456a4,_0x5bc5b5[_0x445ccb(0x25d)]=_0x44b5a8;}]);}));function a0_0x17e1(){var _0x4c4acc=['frameRate','randomBetween','IDENTITY','MOUSE_MOVE','mode','userInput','camera','RGB','ellipsoid','lonRange','DepthFunction','lng','destroyObject','isPointVisible','geometry','bind','fromDegrees','unbindEvent','speedRate','clearCommand','windTextures','ymax','maxAge','createSegmentsGeometry','undefined','uniform\x20sampler2D\x20trailsColorTexture;\x0d\x0auniform\x20sampler2D\x20trailsDepthTexture;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20vec4\x20trailsColor\x20=\x20texture2D(trailsColorTexture,\x20textureCoordinate);\x0d\x0a\x20\x20\x20\x20float\x20trailsDepth\x20=\x20texture2D(trailsDepthTexture,\x20textureCoordinate).r;\x0d\x0a\x20\x20\x20\x20float\x20globeDepth\x20=\x20czm_unpackDepth(texture2D(czm_globeDepthTexture,\x20textureCoordinate));\x0d\x0a\x0d\x0a\x20\x20\x20\x20if\x20(trailsDepth\x20<\x20globeDepth)\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20trailsColor;\x0d\x0a\x20\x20\x20\x20}\x20else\x20{\x0d\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(0.0);\x0d\x0a\x20\x20\x20\x20}\x0d\x0a}','21yHxPle','lineTo','setAttribute','RIGHT_UP','destination-in','uniform\x20sampler2D\x20nextParticlesPosition;\x0auniform\x20sampler2D\x20nextParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0a//\x20range\x20(min,\x20max)\x0auniform\x20vec2\x20lonRange;\x0auniform\x20vec2\x20latRange;\x0a\x0auniform\x20float\x20randomCoefficient;\x20//\x20use\x20to\x20improve\x20the\x20pseudo-random\x20generator\x0auniform\x20float\x20dropRate;\x20//\x20drop\x20rate\x20is\x20a\x20chance\x20a\x20particle\x20will\x20restart\x20at\x20random\x20position\x20to\x20avoid\x20degeneration\x0auniform\x20float\x20dropRateBump;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0a//\x20pseudo-random\x20generator\x0aconst\x20vec3\x20randomConstants\x20=\x20vec3(12.9898,\x2078.233,\x204375.85453);\x0aconst\x20vec2\x20normalRange\x20=\x20vec2(0.0,\x201.0);\x0afloat\x20rand(vec2\x20seed,\x20vec2\x20range)\x20{\x0a\x20\x20\x20\x20vec2\x20randomSeed\x20=\x20randomCoefficient\x20*\x20seed;\x0a\x20\x20\x20\x20float\x20temp\x20=\x20dot(randomConstants.xy,\x20randomSeed);\x0a\x20\x20\x20\x20temp\x20=\x20fract(sin(temp)\x20*\x20(randomConstants.z\x20+\x20temp));\x0a\x20\x20\x20\x20return\x20temp\x20*\x20(range.y\x20-\x20range.x)\x20+\x20range.x;\x0a}\x0a\x0avec3\x20generateRandomParticle(vec2\x20seed,\x20float\x20lev)\x20{\x0a\x20\x20\x20\x20//\x20ensure\x20the\x20longitude\x20is\x20in\x20[0,\x20360]\x0a\x20\x20\x20\x20float\x20randomLon\x20=\x20mod(rand(seed,\x20lonRange),\x20360.0);\x0a\x20\x20\x20\x20float\x20randomLat\x20=\x20rand(-seed,\x20latRange);\x0a\x0a\x20\x20\x20\x20return\x20vec3(randomLon,\x20randomLat,\x20lev);\x0a}\x0a\x0abool\x20particleOutbound(vec3\x20particle)\x20{\x0a\x20\x20\x20\x20return\x20particle.y\x20<\x20-90.0\x20||\x20particle.y\x20>\x2090.0;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20texture2D(nextParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20texture2D(nextParticlesSpeed,\x20v_textureCoordinates);\x0a\x20\x20\x20\x20float\x20particleDropRate\x20=\x20dropRate\x20+\x20dropRateBump\x20*\x20nextSpeed.a;\x0a\x0a\x20\x20\x20\x20vec2\x20seed1\x20=\x20nextParticle.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec2\x20seed2\x20=\x20nextSpeed.xy\x20+\x20v_textureCoordinates;\x0a\x20\x20\x20\x20vec3\x20randomParticle\x20=\x20generateRandomParticle(seed1,\x20nextParticle.z);\x0a\x20\x20\x20\x20float\x20randomNumber\x20=\x20rand(seed2,\x20normalRange);\x0a\x0a\x20\x20\x20\x20if\x20(randomNumber\x20<\x20particleDropRate\x20||\x20particleOutbound(nextParticle))\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(randomParticle,\x201.0);\x20//\x201.0\x20means\x20this\x20is\x20a\x20random\x20particle\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a\x20\x20\x20\x20}\x0a}','update','PixelDatatype','canvasWind','TextureMinificationFilter','particles','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','none','drawWind','lat','BoundingSphere','isInExtent','textures','context','getU','reverse','DISABLE_LOG_DEPTH_FRAGMENT_WRITE','DISABLE_GL_POSITION_LOG_DEPTH','WMS_URL','FLOAT','random','framebuffer','isDestroyed','createParticlesTextures','addPrimitives','source','options','getUVByXY','shaderProgram','EllipsoidalOccluder','randomizeParticles','STATIC_DRAW','Sampler','visibility','Matrix4','createRenderingPrimitives','style','LINEAR','defined','clientWidth','destroy','resize','hidden','keys','UNSIGNED_INT','PrimitiveCollection','cos','floor','sqrt','absolute','_bilinearInterpolation','Draw','attribute\x20vec3\x20position;\x0d\x0aattribute\x20vec2\x20st;\x0d\x0a\x0d\x0avarying\x20vec2\x20textureCoordinate;\x0d\x0a\x0d\x0avoid\x20main()\x20{\x0d\x0a\x20\x20\x20\x20textureCoordinate\x20=\x20st;\x0d\x0a\x20\x20\x20\x20gl_Position\x20=\x20vec4(position,\x201.0);\x0d\x0a}','commandType','globalAlpha','defineProperty','lev','WindUtil','Math','mars3d','pixelSize','bindEvent','preExecute','strokeStyle','frameTime','viewRectangleToLonLatRange','toGridXY','outputTexture','clearFramebuffers','setOptions','uniformMap','windData','particleHeight','ComputeCommand','position','addEventListener','applyUserInput','latRange','toDegrees','calc_speedRate','currentParticlesPosition','writable','xmax','OPAQUE','randomParticle','getDefaultRenderState','lighter','GeometryAttributes','vertexShaderSource','requestAnimationFrame','register','viewerParameters','east','__proto__','_calcUV','RGBA','height','grid','vertexArray','canvasWidth','framebuffers','createRenderingFramebuffers','min','updatePosition','attribute\x20vec2\x20st;\x0a//\x20it\x20is\x20not\x20normal\x20itself,\x20but\x20used\x20to\x20control\x20normal\x0aattribute\x20vec3\x20normal;\x20//\x20(point\x20to\x20use,\x20offset\x20sign,\x20not\x20used\x20component)\x0a\x0auniform\x20sampler2D\x20currentParticlesPosition;\x0auniform\x20sampler2D\x20postProcessingPosition;\x0auniform\x20sampler2D\x20postProcessingSpeed;\x0a\x0auniform\x20float\x20particleHeight;\x0a\x0auniform\x20float\x20aspect;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20lineWidth;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avec3\x20convertCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20WGS84\x20(lon,\x20lat,\x20lev)\x20->\x20ECEF\x20(x,\x20y,\x20z)\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_conversion#From_geodetic_to_ECEF_coordinates\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20WGS\x2084\x20geometric\x20constants\x20\x0a\x20\x20\x20\x20float\x20a\x20=\x206378137.0;\x20//\x20Semi-major\x20axis\x20\x0a\x20\x20\x20\x20float\x20b\x20=\x206356752.3142;\x20//\x20Semi-minor\x20axis\x20\x0a\x20\x20\x20\x20float\x20e2\x20=\x206.69437999014e-3;\x20//\x20First\x20eccentricity\x20squared\x0a\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x20\x20\x20\x20float\x20longitude\x20=\x20radians(lonLatLev.x);\x0a\x0a\x20\x20\x20\x20float\x20cosLat\x20=\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20sinLat\x20=\x20sin(latitude);\x0a\x20\x20\x20\x20float\x20cosLon\x20=\x20cos(longitude);\x0a\x20\x20\x20\x20float\x20sinLon\x20=\x20sin(longitude);\x0a\x0a\x20\x20\x20\x20float\x20N_Phi\x20=\x20a\x20/\x20sqrt(1.0\x20-\x20e2\x20*\x20sinLat\x20*\x20sinLat);\x0a\x20\x20\x20\x20float\x20h\x20=\x20particleHeight;\x20//\x20it\x20should\x20be\x20high\x20enough\x20otherwise\x20the\x20particle\x20may\x20not\x20pass\x20the\x20terrain\x20depth\x20test\x0a\x0a\x20\x20\x20\x20vec3\x20cartesian\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20cartesian.x\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20cosLon;\x0a\x20\x20\x20\x20cartesian.y\x20=\x20(N_Phi\x20+\x20h)\x20*\x20cosLat\x20*\x20sinLon;\x0a\x20\x20\x20\x20cartesian.z\x20=\x20((b\x20*\x20b)\x20/\x20(a\x20*\x20a)\x20*\x20N_Phi\x20+\x20h)\x20*\x20sinLat;\x0a\x20\x20\x20\x20return\x20cartesian;\x0a}\x0a\x0avec4\x20calcProjectedCoordinate(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20the\x20range\x20of\x20longitude\x20in\x20Cesium\x20is\x20[-180,\x20180]\x20but\x20the\x20range\x20of\x20longitude\x20in\x20the\x20NetCDF\x20file\x20is\x20[0,\x20360]\x0a\x20\x20\x20\x20//\x20[0,\x20180]\x20is\x20corresponding\x20to\x20[0,\x20180]\x20and\x20[180,\x20360]\x20is\x20corresponding\x20to\x20[-180,\x200]\x0a\x20\x20\x20\x20lonLatLev.x\x20=\x20mod(lonLatLev.x\x20+\x20180.0,\x20360.0)\x20-\x20180.0;\x0a\x20\x20\x20\x20vec3\x20particlePosition\x20=\x20convertCoordinate(lonLatLev);\x0a\x20\x20\x20\x20vec4\x20projectedCoordinate\x20=\x20czm_modelViewProjection\x20*\x20vec4(particlePosition,\x201.0);\x0a\x20\x20\x20\x20return\x20projectedCoordinate;\x0a}\x0a\x0avec4\x20calcOffset(vec4\x20currentProjectedCoordinate,\x20vec4\x20nextProjectedCoordinate,\x20float\x20offsetSign)\x20{\x0a\x20\x20\x20\x20vec2\x20aspectVec2\x20=\x20vec2(aspect,\x201.0);\x0a\x20\x20\x20\x20vec2\x20currentXY\x20=\x20(currentProjectedCoordinate.xy\x20/\x20currentProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x20\x20\x20\x20vec2\x20nextXY\x20=\x20(nextProjectedCoordinate.xy\x20/\x20nextProjectedCoordinate.w)\x20*\x20aspectVec2;\x0a\x0a\x20\x20\x20\x20float\x20offsetLength\x20=\x20lineWidth\x20/\x202.0;\x0a\x20\x20\x20\x20vec2\x20direction\x20=\x20normalize(nextXY\x20-\x20currentXY);\x0a\x20\x20\x20\x20vec2\x20normalVector\x20=\x20vec2(-direction.y,\x20direction.x);\x0a\x20\x20\x20\x20normalVector.x\x20=\x20normalVector.x\x20/\x20aspect;\x0a\x20\x20\x20\x20normalVector\x20=\x20offsetLength\x20*\x20normalVector;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20vec4(offsetSign\x20*\x20normalVector,\x200.0,\x200.0);\x0a\x20\x20\x20\x20return\x20offset;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20vec2\x20particleIndex\x20=\x20st;\x0a\x0a\x20\x20\x20\x20vec3\x20currentPosition\x20=\x20texture2D(currentParticlesPosition,\x20particleIndex).rgb;\x0a\x20\x20\x20\x20vec4\x20nextPosition\x20=\x20texture2D(postProcessingPosition,\x20particleIndex);\x0a\x0a\x20\x20\x20\x20vec4\x20currentProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20vec4\x20nextProjectedCoordinate\x20=\x20vec4(0.0);\x0a\x20\x20\x20\x20if\x20(nextPosition.w\x20>\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20currentProjectedCoordinate\x20=\x20calcProjectedCoordinate(currentPosition);\x0a\x20\x20\x20\x20\x20\x20\x20\x20nextProjectedCoordinate\x20=\x20calcProjectedCoordinate(nextPosition.xyz);\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20float\x20pointToUse\x20=\x20normal.x;\x20//\x20-1\x20is\x20currentProjectedCoordinate\x20and\x20+1\x20is\x20nextProjectedCoordinate\x0a\x20\x20\x20\x20float\x20offsetSign\x20=\x20normal.y;\x0a\x0a\x20\x20\x20\x20vec4\x20offset\x20=\x20pixelSize\x20*\x20calcOffset(currentProjectedCoordinate,\x20nextProjectedCoordinate,\x20offsetSign);\x0a\x20\x20\x20\x20if\x20(pointToUse\x20<\x200.0)\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20currentProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x20else\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20gl_Position\x20=\x20nextProjectedCoordinate\x20+\x20offset;\x0a\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20speedNormalization\x20=\x20texture2D(postProcessingSpeed,\x20particleIndex).a;\x0a}','createRawRenderState','udata','segmentsColor','_calcStep','getPrototypeOf','tlat','maxParticles','tlng','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','currentTrails','moveEnd','PI_OVER_TWO','canvasContext','handler','WHEEL','Framebuffer','auto','particleSystem','_pointerEvents','ShaderProgram','Compute','TWO_PI','createFramebuffer','LayerUtil','globalCompositeOperation','construct','depthTexture','reverseY','getUVByPoint','stroke','dimensions','blending','updateSpeed','lon','Cartesian3','ComponentDatatype','getColorTexture','drawingBufferHeight','0px','rows','length','arrayBufferView','particlesWind','removeEventListener','segments','createCommand','Module','zIndex','postProcessingPosition','fillRect','1594416JNWirz','value','north','pointerEvents','setupEventListeners','valueOf','Derived\x20constructors\x20may\x20only\x20return\x20object\x20or\x20undefined','SceneTransforms','fill','__esModule','now','atan2','speedFactor','age','show','windField','createWindTextures','ClearCommand','nextParticlesPosition','commandToExecute','ShaderSource','UNSIGNED_BYTE','vdata','trails','_tomap','canvasResize','100%','setData','iterator','getSpeed','PrimitiveType','PixelFormat','getWind','getDirection','fixedHeight','_removedHook','fromGeometry','_speedRate','updateViewerParameters','canrefresh','lineWidth','uniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0auniform\x20sampler2D\x20particlesWind;\x0a\x0a//\x20used\x20to\x20calculate\x20the\x20wind\x20norm\x0auniform\x20vec2\x20uSpeedRange;\x20//\x20(min,\x20max);\x0auniform\x20vec2\x20vSpeedRange;\x0auniform\x20float\x20pixelSize;\x0auniform\x20float\x20speedFactor;\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0afloat\x20calculateWindNorm(vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec3\x20percent\x20=\x20vec3(0.0);\x0a\x20\x20\x20\x20percent.x\x20=\x20(speed.x\x20-\x20uSpeedRange.x)\x20/\x20(uSpeedRange.y\x20-\x20uSpeedRange.x);\x0a\x20\x20\x20\x20percent.y\x20=\x20(speed.y\x20-\x20vSpeedRange.x)\x20/\x20(vSpeedRange.y\x20-\x20vSpeedRange.x);\x0a\x20\x20\x20\x20float\x20normalization\x20=\x20length(percent);\x0a\x0a\x20\x20\x20\x20return\x20normalization;\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20currentSpeed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20windVector\x20=\x20texture2D(particlesWind,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20vec4\x20nextSpeed\x20=\x20vec4(speedFactor\x20*\x20pixelSize\x20*\x20windVector,\x20calculateWindNorm(windVector));\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20nextSpeed;\x0a}','removeAll','Appearance','createElement','_maxAge','toStringTag','autoClear','_mountedHook','segmentsDepth','drawingBufferWidth','destroyParticlesTextures','push','particlesTextures','getContext','ymin','mod','computeViewRectangle','amd','prototype','LEFT_DOWN','cols','setInputAction','PI_OVER_THREE','nextTrailsColor','canvas','data','getRandomLatLng','particlesTextureSize','forEach','createRenderingTextures','particlesComputing','defaultValue','sham','RIGHT_DOWN','mars3d-cesium','2284410TQnvWL','520886SnnxGe','4948128LDMLag','THREE_PI_OVER_TWO','_drawLines','object','globeLayer','moveStart','DrawCommand','getExtent','currentTrailsColor','uniform\x20sampler2D\x20colorTable;\x0a\x0avarying\x20float\x20speedNormalization;\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20texture2D(colorTable,\x20vec2(speedNormalization,\x200.0));\x0a}','toRadians','width','VertexArray','nextTrails','create','nextParticlesSpeed','dropRateBump','RenderState','layer','dropRate','ceil','call','currentTrailsDepth','CanvasWindLayer','particlesRendering','key','commandList','BaseLayer','GeometryAttribute','particlesNumber','Color','clientHeight','canvasHeight','fillStyle','NEAREST','round','updateDate','pointer-events','default','hasOwnProperty','setPrototypeOf','exports','refreshParticles','Texture','viewport','redraw','max','BufferUsage','screen','function','getUserInput','sin','postProcessingSpeed','clampToLatitudeRange','SCENE3D','xmin','mars3dWind','Cartesian2','1982664gGnuYk','ALWAYS','west','container','scene','Pass','primitives','animateFrame','#ffffff','fadeOpacity','apply','5176320HuWQSt','primitiveType','createTexture','canvasWindy','attributeLocations','visible','fragmentShaderSource','clear','Geometry','WindLayer','ScreenSpaceEventType','currentParticlesSpeed','14477944wWXDKK','array','fromCache','getFullscreenQuad','enumerable','_map','uniform\x20sampler2D\x20currentParticlesPosition;\x20//\x20(lon,\x20lat,\x20lev)\x0auniform\x20sampler2D\x20currentParticlesSpeed;\x20//\x20(u,\x20v,\x20w,\x20normalization)\x0a\x0avarying\x20vec2\x20v_textureCoordinates;\x0a\x0avec2\x20lengthOfLonLat(vec3\x20lonLatLev)\x20{\x0a\x20\x20\x20\x20//\x20unit\x20conversion:\x20meters\x20->\x20longitude\x20latitude\x20degrees\x0a\x20\x20\x20\x20//\x20see\x20https://en.wikipedia.org/wiki/Geographic_coordinate_system#Length_of_a_degree\x20for\x20detail\x0a\x0a\x20\x20\x20\x20//\x20Calculate\x20the\x20length\x20of\x20a\x20degree\x20of\x20latitude\x20and\x20longitude\x20in\x20meters\x0a\x20\x20\x20\x20float\x20latitude\x20=\x20radians(lonLatLev.y);\x0a\x0a\x20\x20\x20\x20float\x20term1\x20=\x20111132.92;\x0a\x20\x20\x20\x20float\x20term2\x20=\x20559.82\x20*\x20cos(2.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term3\x20=\x201.175\x20*\x20cos(4.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term4\x20=\x200.0023\x20*\x20cos(6.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20latLength\x20=\x20term1\x20-\x20term2\x20+\x20term3\x20-\x20term4;\x0a\x0a\x20\x20\x20\x20float\x20term5\x20=\x20111412.84\x20*\x20cos(latitude);\x0a\x20\x20\x20\x20float\x20term6\x20=\x2093.5\x20*\x20cos(3.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20term7\x20=\x200.118\x20*\x20cos(5.0\x20*\x20latitude);\x0a\x20\x20\x20\x20float\x20longLength\x20=\x20term5\x20-\x20term6\x20+\x20term7;\x0a\x0a\x20\x20\x20\x20return\x20vec2(longLength,\x20latLength);\x0a}\x0a\x0avoid\x20updatePosition(vec3\x20lonLatLev,\x20vec3\x20speed)\x20{\x0a\x20\x20\x20\x20vec2\x20lonLatLength\x20=\x20lengthOfLonLat(lonLatLev);\x0a\x20\x20\x20\x20float\x20u\x20=\x20speed.x\x20/\x20lonLatLength.x;\x0a\x20\x20\x20\x20float\x20v\x20=\x20speed.y\x20/\x20lonLatLength.y;\x0a\x20\x20\x20\x20float\x20w\x20=\x200.0;\x0a\x20\x20\x20\x20vec3\x20windVectorInLonLatLev\x20=\x20vec3(u,\x20v,\x20w);\x0a\x0a\x20\x20\x20\x20vec3\x20nextParticle\x20=\x20lonLatLev\x20+\x20windVectorInLonLatLev;\x0a\x0a\x20\x20\x20\x20gl_FragColor\x20=\x20vec4(nextParticle,\x200.0);\x0a}\x0a\x0avoid\x20main()\x20{\x0a\x20\x20\x20\x20//\x20texture\x20coordinate\x20must\x20be\x20normalized\x0a\x20\x20\x20\x20vec3\x20lonLatLev\x20=\x20texture2D(currentParticlesPosition,\x20v_textureCoordinates).rgb;\x0a\x20\x20\x20\x20vec3\x20speed\x20=\x20texture2D(currentParticlesSpeed,\x20v_textureCoordinates).rgb;\x0a\x0a\x20\x20\x20\x20updatePosition(lonLatLev,\x20speed);\x0a}','TRIANGLES','wind','color','_particlesNumber','add','_addedHook','TextureMagnificationFilter','constructor','globeBoundingSphere','applyViewerParameters','log','colorTable','SceneMode','Rectangle'];a0_0x17e1=function(){return _0x4c4acc;};return a0_0x17e1();}