UNPKG

@barclah/jolt-physics

Version:

A WebAssembly port of JoltPhysics, a rigid body physics and collision detection library, suitable for games and VR applications. Forked by Hunter Barclay for use in Synthesis.

64 lines (61 loc) 4.47 MB
// SPDX-FileCopyrightText: 2022-2024 Jorrit Rouwe // SPDX-License-Identifier: MIT // This is Web Assembly version of Jolt Physics, see: https://github.com/jrouwe/JoltPhysics.js var Jolt = (() => { var _scriptName = import.meta.url; return ( async function(moduleArg = {}) { var moduleRtn; function aa(){ba.buffer!=ca.buffer&&da();return ca}function ea(){ba.buffer!=ca.buffer&&da();return fa}function ha(){ba.buffer!=ca.buffer&&da();return ia}function ja(){ba.buffer!=ca.buffer&&da();return ka}function la(){ba.buffer!=ca.buffer&&da();return ma} var b=moduleArg,na,oa,aaa=new Promise((a,c)=>{na=a;oa=c}),pa="object"==typeof window,qa="undefined"!=typeof WorkerGlobalScope,ra="object"==typeof process&&"object"==typeof process.versions&&"string"==typeof process.versions.node&&"renderer"!=process.type,sa=qa&&self.name?.startsWith("em-pthread"); if(ra){const {createRequire:a}=await import("module");let c=import.meta.url;c.startsWith("data:")&&(c="/");var require=a(c),ta=require("worker_threads");global.Worker=ta.Worker;sa=(qa=!ta.wPa)&&"em-pthread"==ta.workerData}var ua=Object.assign({},b),va="./this.program",wa=(a,c)=>{throw c;},xa="",ya; if(ra){var fs=require("fs"),baa=require("path");import.meta.url.startsWith("data:")||(xa=baa.dirname(require("url").fileURLToPath(import.meta.url))+"/");ya=a=>{a=caa(a)?new URL(a):a;return fs.readFileSync(a)};!b.thisProgram&&1<process.argv.length&&(va=process.argv[1].replace(/\\/g,"/"));process.argv.slice(2);wa=(a,c)=>{process.exitCode=a;throw c;}}else if(pa||qa)qa?xa=self.location.href:"undefined"!=typeof document&&document.currentScript&&(xa=document.currentScript.src),_scriptName&& (xa=_scriptName),xa.startsWith("blob:")?xa="":xa=xa.substr(0,xa.replace(/[?#].*/,"").lastIndexOf("/")+1),ra||qa&&(ya=a=>{var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)});var za=console.log.bind(console),Aa=console.error.bind(console);ra&&(za=(...a)=>fs.writeSync(1,a.join(" ")+"\n"),Aa=(...a)=>fs.writeSync(2,a.join(" ")+"\n"));var Ba=b.print||za,Ca=b.printErr||Aa;Object.assign(b,ua);ua=null;b.thisProgram&&(va=b.thisProgram); var Da=b.wasmBinary,ba,Ea,Fa=!1,Ga,ca,fa,ia,ka,ma;function da(){var a=ba.buffer;b.HEAP8=ca=new Int8Array(a);b.HEAP16=new Int16Array(a);b.HEAPU8=fa=new Uint8Array(a);b.HEAPU16=new Uint16Array(a);b.HEAP32=ia=new Int32Array(a);b.HEAPU32=ka=new Uint32Array(a);b.HEAPF32=new Float32Array(a);b.HEAPF64=ma=new Float64Array(a)} if(sa){var Ha;if(ra){var Ia=ta.parentPort;Ia.on("message",e=>onmessage({data:e}));Object.assign(globalThis,{self:global,postMessage:e=>Ia.postMessage(e)})}var Ja=!1;function a(...e){e=e.join(" ");ra?fs.writeSync(2,e+"\n"):console.error(e)}b.printErr||(Ca=a);self.alert=function(...e){postMessage({rCa:"alert",text:e.join(" "),sPa:Ka()})};self.onunhandledrejection=e=>{throw e.reason||e;};function c(e){try{var f=e.data,h=f.rCa;if("load"===h){let k=[];self.onmessage=p=>k.push(p);self.startWorker=()=>{postMessage({rCa:"loaded"}); for(let p of k)c(p);self.onmessage=c};for(const p of f.uLa)if(!b[p]||b[p].proxy)b[p]=(...y)=>{postMessage({rCa:"callHandler",tLa:p,args:y})},"print"==p&&(Ba=b[p]),"printErr"==p&&(Ca=b[p]);ba=f.uPa;da();Ha(f.vPa)}else if("run"===h){daa(f.kCa);La(f.kCa,0,0,1,0,0);Ma();Na(f.kCa);Ja||=!0;try{Oa(f.qPa,f.TCa)}catch(k){if("unwind"!=k)throw k;}}else"setimmediate"!==f.target&&("checkMailbox"===h?Ja&&Pa():h&&(Ca(`worker: received unknown command ${h}`),Ca(f)))}catch(k){throw Qa(),k;}}self.onmessage=c} sa||(b.wasmMemory?ba=b.wasmMemory:ba=new WebAssembly.Memory({initial:(b.INITIAL_MEMORY||67108864)/65536,maximum:32768,shared:!0}),da());var Ra=[],Sa=[],Ua=[],Va=!1,Wa=0,Xa=null;function Ya(){Wa++;b.monitorRunDependencies?.(Wa)}function Za(){Wa--;b.monitorRunDependencies?.(Wa);if(0==Wa&&Xa){var a=Xa;Xa=null;a()}}function $a(a){b.onAbort?.(a);a="Aborted("+a+")";Ca(a);Fa=!0;a=new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");oa(a);throw a;} var eaa=a=>a.startsWith("data:application/octet-stream;base64,"),caa=a=>a.startsWith("file://"),ab; async function faa(a){if(a==ab&&Da)a=new Uint8Array(Da);else{if(eaa(a)){var c=a.slice(37);if("undefined"!=typeof ra&&ra)c=Buffer.from(c,"base64"),c=new Uint8Array(c.buffer,c.byteOffset,c.length);else{c=atob(c);for(var e=new Uint8Array(c.length),f=0;f<c.length;++f)e[f]=c.charCodeAt(f);c=e}}else c=void 0;if(c)a=c;else if(ya)a=ya(a);else throw"both async and sync fetching of the wasm failed";}return a} async function gaa(a){var c=ab;try{var e=await faa(c);return await WebAssembly.instantiate(e,a)}catch(f){Ca(`failed to asynchronously prepare wasm: ${f}`),$a(f)}}async function haa(a){return gaa(a)}function bb(){cb={x:db,l:iaa,j:jaa,v:kaa,k:laa,g:maa,i:Na,h:naa,p:oaa,d:paa,b:qaa,z:raa,e:saa,y:taa,n:uaa,c:vaa,o:waa,u:xaa,q:eb,r:fb,w:gb,s:hb,t:ib,m:jb,f:kb,a:ba};return{a:cb}} var lb={58215:a=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetPathMaxFraction"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetPathMaxFraction.";return a.GetPathMaxFraction()},58482:(a,c,e)=>{a=b.getCache(b.PathConstraintPathJS)[a];if(!a.hasOwnProperty("GetClosestPoint"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetClosestPoint.";return a.GetClosestPoint(c,e)},58745:(a,c,e,f,h,k)=>{a=b.getCache(b.PathConstraintPathJS)[a]; if(!a.hasOwnProperty("GetPointOnPath"))throw"a JSImplementation must implement all functions, you forgot PathConstraintPathJS::GetPointOnPath.";a.GetPointOnPath(c,e,f,h,k)},59007:(a,c,e)=>{a=b.getCache(b.GroupFilterJS)[a];if(!a.hasOwnProperty("CanCollide"))throw"a JSImplementation must implement all functions, you forgot GroupFilterJS::CanCollide.";return a.CanCollide(c,e)},59241:(a,c)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveBody"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveBody."; return a.ShouldSaveBody(c)},59500:(a,c)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveConstraint"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveConstraint.";return a.ShouldSaveConstraint(c)},59777:(a,c,e)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldSaveContact"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldSaveContact.";return a.ShouldSaveContact(c, e)},60048:(a,c,e)=>{a=b.getCache(b.StateRecorderFilterJS)[a];if(!a.hasOwnProperty("ShouldRestoreContact"))throw"a JSImplementation must implement all functions, you forgot StateRecorderFilterJS::ShouldRestoreContact.";return a.ShouldRestoreContact(c,e)},60328:a=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("IsEOF"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::IsEOF.";return a.IsEOF()},60546:a=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("IsFailed"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::IsFailed."; return a.IsFailed()},60773:(a,c,e)=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("WriteBytes"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::WriteBytes.";a.WriteBytes(c,e)},61004:(a,c,e)=>{a=b.getCache(b.StateRecorderJS)[a];if(!a.hasOwnProperty("ReadBytes"))throw"a JSImplementation must implement all functions, you forgot StateRecorderJS::ReadBytes.";a.ReadBytes(c,e)},61232:(a,c,e,f,h)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactAdded"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactAdded."; a.OnContactAdded(c,e,f,h)},61485:(a,c,e,f,h)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactPersisted"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactPersisted.";a.OnContactPersisted(c,e,f,h)},61750:(a,c)=>{a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactRemoved"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactRemoved.";a.OnContactRemoved(c)},62E3:(a,c,e,f,h)=> {a=b.getCache(b.ContactListenerJS)[a];if(!a.hasOwnProperty("OnContactValidate"))throw"a JSImplementation must implement all functions, you forgot ContactListenerJS::OnContactValidate.";return a.OnContactValidate(c,e,f,h)},62269:(a,c,e)=>{a=b.getCache(b.SoftBodyContactListenerJS)[a];if(!a.hasOwnProperty("OnSoftBodyContactAdded"))throw"a JSImplementation must implement all functions, you forgot SoftBodyContactListenerJS::OnSoftBodyContactAdded.";a.OnSoftBodyContactAdded(c,e)},62556:(a,c,e,f)=>{a=b.getCache(b.SoftBodyContactListenerJS)[a]; if(!a.hasOwnProperty("OnSoftBodyContactValidate"))throw"a JSImplementation must implement all functions, you forgot SoftBodyContactListenerJS::OnSoftBodyContactValidate.";return a.OnSoftBodyContactValidate(c,e,f)},62862:a=>{a=b.getCache(b.RayCastBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot RayCastBodyCollectorJS::Reset.";a.Reset()},63087:(a,c)=>{a=b.getCache(b.RayCastBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot RayCastBodyCollectorJS::AddHit."; a.AddHit(c)},63317:a=>{a=b.getCache(b.CollideShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollideShapeBodyCollectorJS::Reset.";a.Reset()},63552:(a,c)=>{a=b.getCache(b.CollideShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollideShapeBodyCollectorJS::AddHit.";a.AddHit(c)},63792:a=>{a=b.getCache(b.CastShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastShapeBodyCollectorJS::Reset."; a.Reset()},64021:(a,c)=>{a=b.getCache(b.CastShapeBodyCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastShapeBodyCollectorJS::AddHit.";a.AddHit(c)},64255:a=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::Reset.";a.Reset()},64472:(a,c)=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::OnBody."; a.OnBody(c)},64694:(a,c)=>{a=b.getCache(b.CastRayCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastRayCollectorJS::AddHit.";a.AddHit(c)},64916:a=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::Reset.";a.Reset()},65143:(a,c)=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::OnBody."; a.OnBody(c)},65375:(a,c)=>{a=b.getCache(b.CollidePointCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollidePointCollectorJS::AddHit.";a.AddHit(c)},65607:a=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::Reset.";a.Reset()},65834:(a,c)=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::OnBody."; a.OnBody(c)},66066:(a,c)=>{a=b.getCache(b.CollideShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CollideShapeCollectorJS::AddHit.";a.AddHit(c)},66298:a=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::Reset.";a.Reset()},66519:(a,c)=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::OnBody."; a.OnBody(c)},66745:(a,c)=>{a=b.getCache(b.CastShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot CastShapeCollectorJS::AddHit.";a.AddHit(c)},66971:a=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("Reset"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::Reset.";a.Reset()},67206:(a,c)=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("OnBody"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::OnBody."; a.OnBody(c)},67446:(a,c)=>{a=b.getCache(b.TransformedShapeCollectorJS)[a];if(!a.hasOwnProperty("AddHit"))throw"a JSImplementation must implement all functions, you forgot TransformedShapeCollectorJS::AddHit.";a.AddHit(c)},67686:(a,c)=>{a=b.getCache(b.PhysicsStepListenerJS)[a];if(!a.hasOwnProperty("OnStep"))throw"a JSImplementation must implement all functions, you forgot PhysicsStepListenerJS::OnStep.";a.OnStep(c)},67914:(a,c,e)=>{a=b.getCache(b.BodyActivationListenerJS)[a];if(!a.hasOwnProperty("OnBodyActivated"))throw"a JSImplementation must implement all functions, you forgot BodyActivationListenerJS::OnBodyActivated."; a.OnBodyActivated(c,e)},68178:(a,c,e)=>{a=b.getCache(b.BodyActivationListenerJS)[a];if(!a.hasOwnProperty("OnBodyDeactivated"))throw"a JSImplementation must implement all functions, you forgot BodyActivationListenerJS::OnBodyDeactivated.";a.OnBodyDeactivated(c,e)},68448:(a,c,e,f,h)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnAdjustBodyVelocity"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnAdjustBodyVelocity.";a.OnAdjustBodyVelocity(c, e,f,h)},68737:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactValidate"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactValidate.";return a.OnContactValidate(c,e,f)},69021:(a,c,e,f)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactValidate"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactValidate."; return a.OnCharacterContactValidate(c,e,f)},69332:(a,c,e,f,h,k,p)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactAdded"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactAdded.";a.OnContactAdded(c,e,f,h,k,p)},69609:(a,c,e,f,h,k,p)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactAdded"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactAdded."; a.OnCharacterContactAdded(c,e,f,h,k,p)},69913:(a,c,e,f,h,k,p,y,Q,Ta)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnContactSolve"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnContactSolve.";a.OnContactSolve(c,e,f,h,k,p,y,Q,Ta)},70199:(a,c,e,f,h,k,p,y,Q,Ta)=>{a=b.getCache(b.CharacterContactListenerJS)[a];if(!a.hasOwnProperty("OnCharacterContactSolve"))throw"a JSImplementation must implement all functions, you forgot CharacterContactListenerJS::OnCharacterContactSolve."; a.OnCharacterContactSolve(c,e,f,h,k,p,y,Q,Ta)},70512:(a,c,e)=>{a=b.getCache(b.ObjectVsBroadPhaseLayerFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectVsBroadPhaseLayerFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},70791:(a,c)=>{a=b.getCache(b.ObjectLayerFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectLayerFilterJS::ShouldCollide.";return a.ShouldCollide(c)}, 71043:(a,c,e)=>{a=b.getCache(b.ObjectLayerPairFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ObjectLayerPairFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},71306:(a,c)=>{a=b.getCache(b.BodyFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot BodyFilterJS::ShouldCollide.";return a.ShouldCollide(c)},71544:(a,c)=>{a=b.getCache(b.BodyFilterJS)[a];if(!a.hasOwnProperty("ShouldCollideLocked"))throw"a JSImplementation must implement all functions, you forgot BodyFilterJS::ShouldCollideLocked."; return a.ShouldCollideLocked(c)},71800:(a,c,e)=>{a=b.getCache(b.ShapeFilterJS)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ShapeFilterJS::ShouldCollide.";return a.ShouldCollide(c,e)},72043:(a,c,e,f,h)=>{a=b.getCache(b.ShapeFilterJS2)[a];if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot ShapeFilterJS2::ShouldCollide.";return a.ShouldCollide(c,e,f,h)},72294:(a,c,e,f,h,k,p)=>{a=b.getCache(b.SimShapeFilterJS)[a]; if(!a.hasOwnProperty("ShouldCollide"))throw"a JSImplementation must implement all functions, you forgot SimShapeFilterJS::ShouldCollide.";return a.ShouldCollide(c,e,f,h,k,p)},72555:(a,c,e,f,h,k)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];if(!a.hasOwnProperty("GetCombinedFriction"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::GetCombinedFriction.";return a.GetCombinedFriction(c,e,f,h,k)},72855:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a]; if(!a.hasOwnProperty("OnPreStepCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPreStepCallback.";a.OnPreStepCallback(c,e)},73133:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a];if(!a.hasOwnProperty("OnPostCollideCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPostCollideCallback.";a.OnPostCollideCallback(c,e)},73423:(a,c,e)=>{a=b.getCache(b.VehicleConstraintCallbacksJS)[a]; if(!a.hasOwnProperty("OnPostStepCallback"))throw"a JSImplementation must implement all functions, you forgot VehicleConstraintCallbacksJS::OnPostStepCallback.";a.OnPostStepCallback(c,e)},73704:(a,c,e,f,h,k,p,y,Q)=>{a=b.getCache(b.WheeledVehicleControllerCallbacksJS)[a];if(!a.hasOwnProperty("OnTireMaxImpulseCallback"))throw"a JSImplementation must implement all functions, you forgot WheeledVehicleControllerCallbacksJS::OnTireMaxImpulseCallback.";a.OnTireMaxImpulseCallback(c,e,f,h,k,p,y,Q)},74035:a=> {a=b.getCache(b.BroadPhaseLayerInterfaceJS)[a];if(!a.hasOwnProperty("GetNumBroadPhaseLayers"))throw"a JSImplementation must implement all functions, you forgot BroadPhaseLayerInterfaceJS::GetNumBroadPhaseLayers.";return a.GetNumBroadPhaseLayers()},74326:(a,c)=>{a=b.getCache(b.BroadPhaseLayerInterfaceJS)[a];if(!a.hasOwnProperty("GetBPLayer"))throw"a JSImplementation must implement all functions, you forgot BroadPhaseLayerInterfaceJS::GetBPLayer.";return a.GetBPLayer(c)},74583:()=>aa().length}; class mb{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var nb=a=>{a.terminate();a.onmessage=()=>{}},tb=a=>{0==ob.length&&(pb(),qb(ob[0]));var c=ob.pop();if(!c)return 6;rb.push(c);sb[a.kCa]=c;c.kCa=a.kCa;var e={rCa:"run",qPa:a.pPa,TCa:a.TCa,kCa:a.kCa};ra&&c.unref();c.postMessage(e,a.vHa);return 0},ub=0,zb=(a,c,...e)=>{for(var f=e.length,h=vb(),k=wb(8*f),p=k>>3,y=0;y<e.length;y++){var Q=e[y];la()[p+y]=Q}a=xb(a,0,f,k,c);yb(h);return a}; function Ab(a){if(sa)return zb(0,1,a);Ga=a;if(!(Bb||0<ub)){for(var c of rb)nb(c);for(c of ob)nb(c);ob=[];rb=[];sb={};b.onExit?.(a);Fa=!0}wa(a,new mb(a))}function Cb(a){if(sa)return zb(1,0,a);gb(a)}var gb=a=>{Ga=a;if(sa)throw Cb(a),"unwind";Ab(a)},ob=[],rb=[],Db=[],sb={};function yaa(){for(var a=16;a--;)pb();Ra.unshift(()=>{Ya();zaa(()=>Za())})}var Fb=a=>{var c=a.kCa;delete sb[c];ob.push(a);rb.splice(rb.indexOf(a),1);a.kCa=0;Eb(c)};function Ma(){Db.forEach(a=>a())} var qb=a=>new Promise(c=>{a.onmessage=k=>{k=k.data;var p=k.rCa;if(k.vEa&&k.vEa!=Ka()){var y=sb[k.vEa];y?y.postMessage(k,k.vHa):Ca(`Internal error! Worker sent a message "${p}" to target pthread ${k.vEa}, but that thread no longer exists!`)}else if("checkMailbox"===p)Pa();else if("spawnThread"===p)tb(k);else if("cleanupThread"===p)Fb(sb[k.rPa]);else if("loaded"===p)a.loaded=!0,ra&&!a.kCa&&a.unref(),c(a);else if("alert"===p)alert(`Thread ${k.sPa}: ${k.text}`);else if("setimmediate"===k.target)a.postMessage(k); else if("callHandler"===p)b[k.tLa](...k.args);else p&&Ca(`worker sent an unknown command ${p}`)};a.onerror=k=>{Ca(`${"worker sent an error!"} ${k.filename}:${k.lineno}: ${k.message}`);throw k;};ra&&(a.on("message",k=>a.onmessage({data:k})),a.on("error",k=>a.onerror(k)));var e=[],f=["onExit","onAbort","print","printErr"],h;for(h of f)b.propertyIsEnumerable(h)&&e.push(h);a.postMessage({rCa:"load",uLa:e,uPa:ba,vPa:Ea})});function zaa(a){sa?a():Promise.all(ob.map(qb)).then(a)} function pb(){var a=new Worker(new URL("jolt-physics.multithread.wasm-compat.js",import.meta.url),{type:"module",workerData:"em-pthread",name:"em-pthread"});ob.push(a)}var Gb=a=>{for(;0<a.length;)a.shift()(b)},daa=a=>{da();var c=ja()[a+52>>2];a=ja()[a+56>>2];Hb(c,c-a);yb(c)},Ib=[],Jb,Oa=(a,c)=>{Bb=ub=0;var e=Ib[a];e||(a>=Ib.length&&(Ib.length=a+1),Ib[a]=e=Jb.get(a));a=e(c);Bb||0<ub?Ga=a:Kb(a)},Bb=b.noExitRuntime||!0;function Lb(a,c,e,f){return sa?zb(2,1,a,c,e,f):db(a,c,e,f)} var db=(a,c,e,f)=>{if("undefined"==typeof SharedArrayBuffer)return 6;var h=[];if(sa&&0===h.length)return Lb(a,c,e,f);a={pPa:e,kCa:a,TCa:f,vHa:h};return sa?(a.rCa="spawnThread",postMessage(a,h),0):tb(a)},iaa=()=>$a(""),jaa=a=>{La(a,!qa,1,!pa,1048576,!1);Ma()},Na=a=>{"function"===typeof Atomics.tPa&&(Atomics.tPa(ha(),a>>2,a).value.then(Pa),a+=128,Atomics.store(ha(),a>>2,1))},Pa=()=>{var a=Ka();if(a&&(Na(a),a=Mb,!Fa))try{if(a(),!(Bb||0<ub))try{sa?Kb(Ga):gb(Ga)}catch(c){c instanceof mb||"unwind"==c|| wa(1,c)}}catch(c){c instanceof mb||"unwind"==c||wa(1,c)}},kaa=(a,c)=>{a==c?setTimeout(Pa):sa?postMessage({vEa:a,rCa:"checkMailbox"}):(a=sb[a])&&a.postMessage({rCa:"checkMailbox"})},Nb=[],laa=(a,c,e,f,h)=>{Nb.length=f;e=h>>3;for(h=0;h<f;h++)Nb[h]=la()[e+h];return(c?lb[c]:Aaa[a])(...Nb)},maa=a=>{sa?postMessage({rCa:"cleanupThread",rPa:a}):Fb(sb[a])},naa=a=>{ra&&sb[a].ref()},Ob=(a,c,e,f)=>{if(0<f){f=e+f-1;for(var h=0;h<a.length;++h){var k=a.charCodeAt(h);if(55296<=k&&57343>=k){var p=a.charCodeAt(++h); k=65536+((k&1023)<<10)|p&1023}if(127>=k){if(e>=f)break;c[e++]=k}else{if(2047>=k){if(e+1>=f)break;c[e++]=192|k>>6}else{if(65535>=k){if(e+2>=f)break;c[e++]=224|k>>12}else{if(e+3>=f)break;c[e++]=240|k>>18;c[e++]=128|k>>12&63}c[e++]=128|k>>6&63}c[e++]=128|k&63}}c[e]=0}},Pb=(a,c)=>{Ob(a,ea(),c,17)},oaa=(a,c,e,f)=>{var h=(new Date).getFullYear(),k=(new Date(h,0,1)).getTimezoneOffset();h=(new Date(h,6,1)).getTimezoneOffset();var p=Math.max(k,h);ja()[a>>2]=60*p;ha()[c>>2]=Number(k!=h);c=y=>{var Q=Math.abs(y); return`UTC${0<=y?"-":"+"}${String(Math.floor(Q/60)).padStart(2,"0")}${String(Q%60).padStart(2,"0")}`};a=c(k);c=c(h);h<k?(Pb(a,e),Pb(c,f)):(Pb(a,f),Pb(c,e))},vaa=()=>performance.timeOrigin+performance.now(),Qb=[],Rb=(a,c,e)=>{Qb.length=0;for(var f;f=ea()[c++];){var h=105!=f;h&=112!=f;e+=h&&e%8?4:0;Qb.push(112==f?ja()[e>>2]:105==f?ha()[e>>2]:la()[e>>3]);e+=h?8:4}return lb[a](...Qb)},paa=(a,c,e)=>Rb(a,c,e),qaa=(a,c,e)=>Rb(a,c,e),raa=(a,c,e)=>Rb(a,c,e),saa=()=>{},taa=()=>{ub+=1;throw"unwind";},uaa=()=> 2147483648,waa=()=>ra?require("os").cpus().length:navigator.hardwareConcurrency,xaa=a=>{var c=ea().length;a>>>=0;if(a<=c||2147483648<a)return!1;for(var e=1;4>=e;e*=2){var f=c*(1+.2/e);f=Math.min(f,a+100663296);a:{f=(Math.min(2147483648,65536*Math.ceil(Math.max(a,f)/65536))-ba.buffer.byteLength+65535)/65536|0;try{ba.grow(f);da();var h=1;break a}catch(k){}h=void 0}if(h)return!0}return!1},Sb={},Ub=()=>{if(!Tb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"== typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:va||"./this.program"},c;for(c in Sb)void 0===Sb[c]?delete a[c]:a[c]=Sb[c];var e=[];for(c in a)e.push(`${c}=${a[c]}`);Tb=e}return Tb},Tb;function eb(a,c){if(sa)return zb(3,1,a,c);var e=0;Ub().forEach((f,h)=>{var k=c+e;h=ja()[a+4*h>>2]=k;for(k=0;k<f.length;++k)aa()[h++]=f.charCodeAt(k);aa()[h]=0;e+=f.length+1});return 0} function fb(a,c){if(sa)return zb(4,1,a,c);var e=Ub();ja()[a>>2]=e.length;var f=0;e.forEach(h=>f+=h.length+1);ja()[c>>2]=f;return 0}function hb(a){return sa?zb(5,1,a):52}function ib(a,c,e,f){return sa?zb(6,1,a,c,e,f):52}function jb(a,c,e,f,h){return sa?zb(7,1,a,c,e,f,h):70} var Baa=[null,[],[]],Vb="undefined"!=typeof TextDecoder?new TextDecoder:void 0,Wb=(a,c=0)=>{for(var e=c+NaN,f=c;a[f]&&!(f>=e);)++f;if(16<f-c&&a.buffer&&Vb)return Vb.decode(a.buffer instanceof ArrayBuffer?a.subarray(c,f):a.slice(c,f));for(e="";c<f;){var h=a[c++];if(h&128){var k=a[c++]&63;if(192==(h&224))e+=String.fromCharCode((h&31)<<6|k);else{var p=a[c++]&63;h=224==(h&240)?(h&15)<<12|k<<6|p:(h&7)<<18|k<<12|p<<6|a[c++]&63;65536>h?e+=String.fromCharCode(h):(h-=65536,e+=String.fromCharCode(55296|h>> 10,56320|h&1023))}}else e+=String.fromCharCode(h)}return e};function kb(a,c,e,f){if(sa)return zb(8,1,a,c,e,f);for(var h=0,k=0;k<e;k++){var p=ja()[c>>2],y=ja()[c+4>>2];c+=8;for(var Q=0;Q<y;Q++){var Ta=ea()[p+Q],Qd=Baa[a];0===Ta||10===Ta?((1===a?Ba:Ca)(Wb(Qd)),Qd.length=0):Qd.push(Ta)}h+=y}ja()[f>>2]=h;return 0}sa||yaa();var Aaa=[Ab,Cb,Lb,eb,fb,hb,ib,jb,kb],cb,d; (async function(){function a(f,h){d=f.exports;Db.push(d.vBa);Jb=d.G;Sa.unshift(d.A);Ea=h;Za();return d}Ya();var c=bb();if(b.instantiateWasm)try{return b.instantiateWasm(c,a)}catch(f){Ca(`Module.instantiateWasm callback failed with error: ${f}`),oa(f)}if(sa)return new Promise(f=>{Ha=h=>{var k=new WebAssembly.Instance(h,bb());a(k,h);f()}});ab??="data:application/octet-stream;base64,AGFzbQEAAAAB9AiEAWACf38AYAN/f38AYAF/AX9gAX8AYAJ/fwF/YAN/f38Bf2AAAX9gAX8BfWAEf39/fwBgBn9/f39/fwBgAn99AGAEf39/fwF/YAV/f39/fwBgBX9/f39/AX9gBn9/f39/fwF/YAd/f39/f39/AGACf30Bf2ALf39/f39/f39/f38AYAl/f39/f39/f38AYAJ/fgBgBH9/f38BfWADf399AGAIf39/f39/f38AYAAAYAh/f39/f39/fwF/YAJ/fwF9YAd/f39/f39/AX9gCn9/f39/f39/f38AYAN/fX0Bf2ADf39/AX5gA39/fQF/YAN/fX8AYAF9AX9gA39/fgBgAn9/AX5gA399fQBgA39/fQF9YAV/fn5+fgBgBH9/fX8AYAx/f39/f39/f39/f38Bf2ABfwF8YAR/f399AGAGf31/f39/AGADfX19AX9gBX9/f399AGAFf39+f38AYAZ/f399f38BfWAFf319fX0AYAJ/fABgBH9/f30Bf2AJf39/f39/f39/AX9gDH9/f39/f39/f39/fwBgBH19fX0Bf2ACf3wBf2ACfX0Bf2AFf39/f34Bf2AJf39/fX19fX19AGAEf35+fwBgAn99AX1gA39/fAF/YAV/f39/fQF/YAN/fn8BfmAFf319fX8AYAN/fX8Bf2ACfX8Bf2AGf399f39/AGAEfX19fwF/YAN/f38BfGAFf39/f38BfGAGf39/f319AX9gBH99fX0AYAp/f39/f39/f39/AX9gBH9/fX0Bf2AFf31/f38Bf2AFf39/fX0Bf2APf39/f39/f39/f39/f39/AGALf39/f39/f39/f38Bf2AEf39/fwF+YAd/f399f39/AGAGf39/f399AGAJf39/f39/f399AGALf31/f39/f39/f38Bf2AJf39/fX19f399AX9gBH99fX8AYAJ/fwF8YAd/f39/f35+AX9gBn9/f39+fgF/YAV/f39/fAF/YAN9fX8Bf2AAAXxgB39/f39/f30AYAV/f399fwF/YAd/fX9/f31/AGAJf31/f39/f31/AGAEfn5+fgF/YAR/f39+AX5gAn5/AX9gAn19AX1gCn9/f31/f39/f38AYAJ+fgF8YAh/f399f39/fwBgB399fX19fX0AYAt/f319f399fX9/fQBgBn99fX19fwBgBH9/fX0BfWAHf39/f399fwBgBX99fX1/AX9gBX9/fX99AGADf39/AX1gAn5+AX1gBH9+fn4AYAN+fn4Bf2AGf3x/f39/AX9gAnx/AXxgCH9/fX99f319AGAIf39/f39/f30AYAd/f39/f399AX9gDH9/f39/f39/f319fwBgDH9/f39/f39/fX9/fwBgCX9/fX1/f39/fwBgA39/fABgBH98fHwAYAF8AX9gA3x8fAF/YAR/fX99AX9gCH9/fX9/f39/AX9gCX99f39/f39/fwBgCH99f39/f39/AGAEf31/fwBgCn9/f399fX1/f30Bf2AEf399fQBgBX19fX1/AX8CogEaAWEBYgAFAWEBYwBZAWEBZABDAWEBZQAXAWEBZgALAWEBZwADAWEBaAADAWEBaQADAWEBagADAWEBawBEAWEBbAAXAWEBbQANAWEBbgAGAWEBbwAGAWEBcAAIAWEBcQAEAWEBcgAEAWEBcwACAWEBdAALAWEBdQACAWEBdgAAAWEBdwADAWEBeAALAWEBeQAXAWEBegAFAWEBYQIDgAiAgAIDlCeOJwMCBAMXAgMCAwMCAwIDAwMDAAMCAgIDBQMEAgADAAQDAgIAAAQEAgoDBgIBAwMCAgICAyUCAgEDBQMCAQIDAgMEBiwGAAMCLwIAAwACAAECAgJFAQMAAAIBAgIEBwcCAwMBJQEDDQgXOQwAAAADBAACAwAAAgEEAgoHAgACJQIDAwICAwIAAAAAAQIFBQABAAMICgcACgcDAAAPAgIGBQACBAMDAwIBAloPAwJbAQATAgIDAgIKBwACAwQTAgMCBUYAAAwMAgMAAwACDQ0LAgQwAgABAxcKBwAJAA4KBwADAwMACgcCAAgCAgYDGBgOAgAAAQMKBwcKB1wADF0BAwkOAAwDAgAAAwACAgcHAAMAAAECAAAAAggCCwILCgcKBwoBBwEIAAAKBwoHAAMCAwQHAQQAAAICXjkCBwoKAQABCwMDAww6BQUFBQYGAAIAAwIDAwIDAwAAAgIAAAFHR18ABAAAAAICC2AEO2ECBAIDAjxFMQcDAwcBMgIAAgQBAgADAgAACgcCBAQHAAQDAwADAgIADQMAAAEEAQsCAAIAAwQFAwcHAAIIDwcPAAkJCQkAAw0BBQEBBAMCCgAHAwMDAwIBAQAEAAMABAIDAAAAAwACAAAAAgcKCgIAAgABAgIAAwMAAwAAFQMDBAwAFgIGAgAAAgIADwUPGhoEAAQCBAIDAAICAAIEBwICAAMABQQEBRcCAwUDAwMEBAVIBAIDCAgIAAEAAgsLAAMHAAAIAAoHBwIAMjIaGgAECwEMAwQFAgQDEgBJYhIABAQIAAMDAQABAAEBAAcFCgcBAwIHCgMDAQAFBgYAAwADAwAAAgIABAAAAwADAwADAgAAAQEHAQADBwAAAwICAgACAgoHCgcmAgQBAgIAAAAACQAZAQEHAAECAgAAAAMCBxACAgQEBAkIAQYAAQMEAgAABQIDBAAEDAAFJwwABScMAwgCAiUoAAADAAMDAgMAAwIDAgJjFwICFwYDBBcXAxcEAwUDBwMCAgIKBwojBwoMLwMAAQEBAQEAAAMALAAVAAgAABERZAEBAQABAQAIAQAAZQMAAhIABwcBAAcAZgECSgkWZwAAAgoBCgIAAAMDAgoHAwACAwRoBARpDwIMBGoADUkHMQEAAAIIDwgAAgACAAcNAgEREQMCFgAAAwMAABUFAQMAAAACAQQAAgMBAgoKDAIAAgMDAwEBAQMDAwEBAQEBBgYCBQICAwADAgADawApAAIDAwMAAwICAgAAAAAEAAADAAIEAwMAAAIFBwACCgcKBwMKBwcAAgoHAgIKBykpCgcCCgcHBwMEBQICAwACAAIEAgwHPgAmBwQfHwMAAAQJAAADAwEAAAAEAgQIAAEVCxUBAQQGAQEABAQAAwMAAAAAAQEEBAQGAAABHhkVCgEVCgQQEAIEAgoKBwcHBAQZAgQBAggDAwQEAgIWAQMEAwIBAAECAgUBAgMCAg0YGA0YGAINGAACBAQDAgMAAgAFBUsbBUsAGwwATAABAEwAAAkDDAkJDAkJAAIFDwQDDw4FCENsTQsOC00LAQILAwQDAg0EBAUhbSIIJSU5bm8EBAMAAgQEBAMAAQEEAgAFAAACAggBCAEEAQACAgEDAgABAgQDAgIILQUDAgUEAHABAg1xAxcGABcDAwMEAwQABAMABwADAgoCAgIAABAfAAAEAgIASAAAAD4AAAAACgAAAgAMCAECAAIDAgICBQADAgMDAwMHCAQAAAUBBAQAAQgHAQgBAQEIJgMBAQEEAAABAgMBAAADAAUMcgIBAwEIBQIMDBoMAwUAFhoACQgBAgAAAwAFAgAAAAADBwUDAgAABQMMAAMFAgUDAgAAcwUCAAUCAAMAAAB0AwoVBQIAAAAAMQMDBQACAwAAA08FAAACDAUCAAAKBQIFAQUHAQ4AAAhKMQEBAgAAAAAFAggIDAAIBwAAAggIAD4AAgwBAggACAACAwMHAgEECA8IAAAAAgEECA8IAAACAAIAAAgPCAAAAgMDDgUAAwIDAwwIBAMDAAQBAgEJBAQjGAAIBFADAHUAAnYAAgACCAAFAAICAgsIAAMDBQACAQIAAQcEACIFBAIACAgAAAIIAAAKAgMWAwMCEhFRdyYOD08CAAAAAAAKAAUDAwEBCAIhAQABCAEBCCwIDAIBAQwFAAEABAAAUikAAgACAAALAgMDAwMEBAAAAAEBAQEBAQAEBAEIBAMCAwQABAICAQQEAAMCAgICAQIDAAQAAhsPCwIBAwECAwICAgMCAgMCAwIAAgADAwICAAEBAgQEAAQAAAMBAgACAAIgAgAGBgYGBgIABgQCAAUCAAIAAAMDAwEAAgMBAAMDAwECAQADAAMCAwADAAoHCgcKBwICAxUDAAIAAwoAAwACAAIAAgoHAAMAAwIDAwMAAAQAAAMAAAADAAMAAAAAAgMBAwAAAgMBAAMAAgACAgAMAQsCDAACAgMDAwAEAwADAgMDAwMBBAAKAQAACQAAAAoBAgoCBQMHAwAAAwcBAgAAAgIHCgcqAgACAgMDCgcKBwcHBwACKQcDCgcAAAAKAAcDAgcKAgACBwoAAAIKAAcAAgIAAgACAwgEAAIIBAACAgICAgACAgACAQEBAAEEBwAHAAIFBwIAAgECAgIEBwQFAgIDAwMAAgMAAgoHBwcHU1MHAAQHBwcHAxcDAj8QAgMDAgQEBwMOIgUCAgUCQCADAwJAIAMEAgINAwICAgANCwYAAwAAAAQAAQQNCwUGAAYDAAAABAUCAggAAgIAAggJFggMAQYZBAMEBBALBQoHAAICEBAQAAYABhAEBBAEBAAEBhkEBAQEBwcCAgIACgQBAAAAAgMEBAQEBgQGBAQEAgQEBAQCAgIEBDsCAgYAAgICAgQEBAQCBAQCAgYGBAQAAAQEBAQGBAICBwQCAgICAgQEBAQEBAQEBBAEHgICAgICAgICAjQFAgICBAIgBAQCEAIgICAGBgQEKx4eAQQZAgICAhkCAgIELwoKCgoCBwcHBwICAgcHEAIeBBAEBAQEBBAGBjQZBAQQEBAQBAQZAgoDFQADAwYEBBAEEAQCHgQvCgcEBAQFBAQgBjQQAgICBAQQBBAENTVUBAICNTs1eHkwMDAoKCgCKChUBQQEegYGBgZ7AgIHBwICAgQEEAQQBAQEGQQCAgICEB4QFUYKAgQCBwc2BAYGAQIBAgQBAggICAQBAgQFCQYCAwkJCQwMBQwICAgFBAMEAyAGBgYDAgMCAwYDAgMCAwIDAgMCAysCAwIDAgMCAwIDAgIDAgAAAAAAAAICAwMCDQINGBgDDQ0FCwUEBQQDDQULBQQFBAsLCwUDAwkJDlUOBFUaGhoaGhoYDg4ODg4YDg4ODg4NVlc3DTcNDQ1WVzcNNwMNDQ4ODgAODg4OBA4ODgAODg4OAA4OBA4OBQgNBQgNBQEEBQAEAgIABAUABAICAAMDAwMIAy0EBAICBQIFAwMDAwICBQIFAwIFPQIAPQUFAhcGAwQDAxcDA0QAAwMCAwMDBgADAgsDBgMGAAIDAgAABAYDBgMGBwAAKiQEBgEBAAcGAQQAAA0JEhIREQkJCw8ICQILCAAABAYbAAIDAh8EAAAEAgYEBgQCBgQJAAICAgMCAAAcEAoDCgQIAAMDAgAABAYAAAAzBCczJzMnAgQDAwAAEB8fAAADBAQCBgQCBgQCAAAQHwAABAQCBgIDAgIDAQEBEhIREQANCQ8JCQsAAAMCAAMGAwACAwACAwACAwMAAgACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAwACAAIDAAIDAAIAAAAADQUAEwMCAE4MDAwMQQwMAQgIAAADAwMDAQMECAQAHBAKCgAABAYAHBAKCgAABAYAHBAKBgoAAAQGABwQCgoEBgAcEAoDAwoAAAQGAAAcEAoDCgAABAYABBwQCgoBAAAEAwYGABwQCgoAAAQGABwQCgoEBgAAAAAAHBAKAwoAAAQGAAMcEAoDCgAABAYUFAQGABwQCgMKAAAEBgACBwEGAAACDQkJDAkLAgQGBwEABgACAAkJCwIEBgAGAAAREQsCCxYSDAkLBAYBAQAGAAAJCQwJCw8LAAQGAAADAgQAAAEWBQQGEhIREQcBFgkMCQsPCQQGAAYOAAASEhIREREBFgkMCQsPCQQGAAMDBgECAAAAEQ0JEgkMCQsJBAMGBhISEREBFgkMCQsPCQQGAAYAABERCwsWEgwJCwQGBQIDAwYAAQAAABERDQkSEgkJCwAJAgQDBgEEAwYAAQAAABERDQkSEgkJCwkDBAMGBgALDwMGAAQDBgABAQAiCQQABAcBBgAACQkMCwAJCwQGAQIAAA8NCRIMCQsRBAEBAQIDAwYAAAANCQkMAgkLDwkLAgQDBgEBABIBCQ8JBAcBAQIGAAANCQkMCwAJCwQGBwEABgAACQkMCQsJCwQGAAIEBgYDAAAAAAMCAAAAAAIFBgAABAYEBgAADQUSEQQEAwITEwAABgYAAAMPCQMCAAMDAgIDBgMEAgAAAgMAAQADAgACAAICAQAJAwITExMTHQAEAAIEHQEEAwIFBQQDBQMFAwQDBAQCOAEBAS4AGg0FBAMEBAQEBAUEBAUFBBsbDw8bGw8PCwsMAwMhIQAAAAMAAwADAAMDAAADAAMAAwADAwAAAwAAAAMDAAADAAAAAwMAAAMAAwADAAMLCwENDQAMDA0CAgICAgIBAwIBAQIFBQQEBQMqJCQHAgADAxsAAgEAAgEAAgEAAgkAAhoNBQYGBgYGBgYFAgQEBgMCAh8AAgUAAgYCAgQGAggCAQECCwEEBAYCAgMEBAIEAggBAQABAAEACAEAJhUDAQABAAEABAIAAwADAQACAwACAAADAxUAAwsCBgMDAAAAAwADAwAAAAQDAAICAwIDAwMEAgQCAgAGAx8KBwICAAYDAwAAAAMAAAYDAAAABAIGAwMCBQYDAgAHBAYGAwcCBwIVAzoHCgMEAQQGAwACAgICAgICAgYKBwIKBwICAgICAgIKBwoAAAYGOAYBDS4GAgIACwsEAgICAgMCAgAACgQAAgAAAgYQAnw/EB4EAgAGAAMAAAAEChkDOgcHAyMAAwYCAgICAgMCBAQDAgB9Awl+GlEEfwQCAAICBwoHAgICAAIAAgACAgAACxoGDQYGAAADBgIGAgQGBgQFBgYDBAACAAIAAgAAAgQGAAAGGxsPDwsLBgACAAIGAAIAAgoHAAIAAgAAAgYDBAQHAw4FBAICAgUCBAMEBAICBAUEAgICAgIJgAECCgcAAgACCgcAAgQCAgQCAAICAwoKCgALAwAAAAAAAAADAAACAwMDAwMDACwIAQMDAgYABgADAAAABAAAAAAAAwAAAAQeAQQ8PB4LBgAAAEAKFQYDAgAFAgAAAAUECAEAAgICAgMCAAIAAAACAQACBAIAAgIABgYAAgACDxIREQ8WBgYGAAMGAwMAAAAEBgMAAgoHBgACAAIAAgACBgYGAAMGAwMAAAAEBgACBgYGAAMGBgMAAAQGAAYGBgADBgAGAAIABgwMDEEGBgYGAAIEAwIEBAQEDA0GAgYAAgYDAAIEAAAABAQDAgQGAAIAAgACAAIAAgACAAIGAwQDAwYCAgYFAgYABQMEAQgBAoEBDAgMCAQBGRUZBBUZFQQEAQQIBAAFBAEACAEALAkFBAEIAQQBCAgEBAQECAQICAwMBAEMDAQACwEIDAUFBQQCAAEBAAgEBQQABAQFBQQEAAAFAwIDAgMCAgICAgICAgICAgJSKQABAAMDAwICAgABAAAAAgAAAgMAAgICAgIHAAIAAgACAAIAAgICAgICAgICAgMAAAUGAwUBAQIGBgICBgICAgIFJgYCAgICBQEGAgIABwADAgIHIwUGAwICAAADAgICBwoCAAcCFSQHBgMIAwAAAgAFBgICAAADAgICAgICAAIAAAICAAACBAEEAhkVAQQEBAICAgIZGQEBAQQBBBUZFRkAAhUZBYIBBAAEAAYCAgAAAwICAgcHBwICAAIAAgACAAIAAgIKCgoKAgICAgACCgcAAgUGAgIAAAMCAgcCBwIAAgIHIwcKBwoCAAcFBgICAAADAgIHAgoFBgICAAIAAwICBwcCAgACAgcjBwoABwcCAgICAgIFBgICAAADAgICBQYDAgIAAgADAgIHAAIHByMABQYGAgYFBgIDBAQEBAMOBQIEAgIFAgIGAwMCAgYDAwQEAw4FBAICBQICAB4EAgMAAgMFAh4EAgMDBAQDAw4FBAICAgUCMgQPUBYPBwcFBQQDAAAAAAIDAAIAAgMCDgYHAwMEBAMOBQUEAgICBQICAwQDAAICAAACAAMCAwUFBAIGAwIEBAQDDgUCAgUCAgIDAgUDBAQDBAMOBQICAgUCBAMCBAMDAwQEBAcDDgUEAgcCBQQCAgQDAwMCAgQDAwQEAw4OBQICBQIDDAwIAAUODQMCBgMDBAIEAw4FAgICBQIDAgUGAwACAgIDAwQEBwcDDgUCBwcCBQIDCgcAAwIGAwQEAwcDDgUCBwIFAgIHAwJCKwMEBAcDDgUCAgUCWAM2AwJYNgMEBAcEAw4FAgcCBQIEBwcHBwMCgwE0AysDBAQHAw4FDgIH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