From 35e67da08e3d214589968c19b4b2fb31d8e566cc Mon Sep 17 00:00:00 2001 From: raysan5 Date: Sun, 17 Oct 2021 21:02:18 +0200 Subject: UPDATED: examples to raylib 4.0 Some new examples added --- examples/models/loader.html | 236 + examples/models/models_animation.data | Bin 0 -> 359587 bytes examples/models/models_animation.html | 1 + examples/models/models_animation.js | 1 + examples/models/models_animation.wasm | Bin 0 -> 314103 bytes examples/models/models_billboard.data | Bin 0 -> 22374 bytes examples/models/models_billboard.html | 1 + examples/models/models_billboard.js | 1 + examples/models/models_billboard.wasm | Bin 0 -> 143853 bytes examples/models/models_box_collisions.html | 1 + examples/models/models_box_collisions.js | 1 + examples/models/models_box_collisions.wasm | Bin 0 -> 111346 bytes examples/models/models_cubicmap.data | Bin 0 -> 37324 bytes examples/models/models_cubicmap.html | 1 + examples/models/models_cubicmap.js | 1 + examples/models/models_cubicmap.wasm | Bin 0 -> 156473 bytes examples/models/models_first_person_maze.data | Bin 0 -> 37324 bytes examples/models/models_first_person_maze.html | 1 + examples/models/models_first_person_maze.js | 1 + examples/models/models_first_person_maze.wasm | Bin 0 -> 157154 bytes examples/models/models_geometric_shapes.html | 1 + examples/models/models_geometric_shapes.js | 1 + examples/models/models_geometric_shapes.wasm | Bin 0 -> 113683 bytes examples/models/models_heightmap.data | Bin 0 -> 10883 bytes examples/models/models_heightmap.html | 1 + examples/models/models_heightmap.js | 1 + examples/models/models_heightmap.wasm | Bin 0 -> 154258 bytes examples/models/models_loading.data | 14846 +++++++++++++++++++ examples/models/models_loading.html | 1 + examples/models/models_loading.js | 1 + examples/models/models_loading.wasm | Bin 0 -> 311396 bytes examples/models/models_loading_gltf.data | Bin 0 -> 5434134 bytes examples/models/models_loading_gltf.html | 1 + examples/models/models_loading_gltf.js | 1 + examples/models/models_loading_gltf.wasm | Bin 0 -> 303053 bytes examples/models/models_loading_vox.data | Bin 0 -> 222573 bytes examples/models/models_loading_vox.html | 1 + examples/models/models_loading_vox.js | 1 + examples/models/models_loading_vox.wasm | Bin 0 -> 306027 bytes examples/models/models_mesh_generation.html | 1 + examples/models/models_mesh_generation.js | 1 + examples/models/models_mesh_generation.wasm | Bin 0 -> 139334 bytes examples/models/models_mesh_picking.data | 3938 +++++ examples/models/models_mesh_picking.html | 1 + examples/models/models_mesh_picking.js | 1 + examples/models/models_mesh_picking.wasm | Bin 0 -> 320160 bytes .../models/models_orthographic_projection.html | 1 + examples/models/models_orthographic_projection.js | 1 + .../models/models_orthographic_projection.wasm | Bin 0 -> 114069 bytes examples/models/models_rlgl_solar_system.html | 1 + examples/models/models_rlgl_solar_system.js | 1 + examples/models/models_rlgl_solar_system.wasm | Bin 0 -> 110787 bytes examples/models/models_skybox.data | Bin 0 -> 6022110 bytes examples/models/models_skybox.html | 1 + examples/models/models_skybox.js | 1 + examples/models/models_skybox.wasm | Bin 0 -> 164499 bytes examples/models/models_waving_cubes.html | 1 + examples/models/models_waving_cubes.js | 1 + examples/models/models_waving_cubes.wasm | Bin 0 -> 108727 bytes examples/models/models_yaw_pitch_roll.data | Bin 0 -> 829087 bytes examples/models/models_yaw_pitch_roll.html | 1 + examples/models/models_yaw_pitch_roll.js | 1 + examples/models/models_yaw_pitch_roll.wasm | Bin 0 -> 302110 bytes 63 files changed, 19054 insertions(+) create mode 100644 examples/models/loader.html create mode 100644 examples/models/models_animation.data create mode 100644 examples/models/models_animation.html create mode 100644 examples/models/models_animation.js create mode 100644 examples/models/models_animation.wasm create mode 100644 examples/models/models_billboard.data create mode 100644 examples/models/models_billboard.html create mode 100644 examples/models/models_billboard.js create mode 100644 examples/models/models_billboard.wasm create mode 100644 examples/models/models_box_collisions.html create mode 100644 examples/models/models_box_collisions.js create mode 100644 examples/models/models_box_collisions.wasm create mode 100644 examples/models/models_cubicmap.data create mode 100644 examples/models/models_cubicmap.html create mode 100644 examples/models/models_cubicmap.js create mode 100644 examples/models/models_cubicmap.wasm create mode 100644 examples/models/models_first_person_maze.data create mode 100644 examples/models/models_first_person_maze.html create mode 100644 examples/models/models_first_person_maze.js create mode 100644 examples/models/models_first_person_maze.wasm create mode 100644 examples/models/models_geometric_shapes.html create mode 100644 examples/models/models_geometric_shapes.js create mode 100644 examples/models/models_geometric_shapes.wasm create mode 100644 examples/models/models_heightmap.data create mode 100644 examples/models/models_heightmap.html create mode 100644 examples/models/models_heightmap.js create mode 100644 examples/models/models_heightmap.wasm create mode 100644 examples/models/models_loading.data create mode 100644 examples/models/models_loading.html create mode 100644 examples/models/models_loading.js create mode 100644 examples/models/models_loading.wasm create mode 100644 examples/models/models_loading_gltf.data create mode 100644 examples/models/models_loading_gltf.html create mode 100644 examples/models/models_loading_gltf.js create mode 100644 examples/models/models_loading_gltf.wasm create mode 100644 examples/models/models_loading_vox.data create mode 100644 examples/models/models_loading_vox.html create mode 100644 examples/models/models_loading_vox.js create mode 100644 examples/models/models_loading_vox.wasm create mode 100644 examples/models/models_mesh_generation.html create mode 100644 examples/models/models_mesh_generation.js create mode 100644 examples/models/models_mesh_generation.wasm create mode 100644 examples/models/models_mesh_picking.data create mode 100644 examples/models/models_mesh_picking.html create mode 100644 examples/models/models_mesh_picking.js create mode 100644 examples/models/models_mesh_picking.wasm create mode 100644 examples/models/models_orthographic_projection.html create mode 100644 examples/models/models_orthographic_projection.js create mode 100644 examples/models/models_orthographic_projection.wasm create mode 100644 examples/models/models_rlgl_solar_system.html create mode 100644 examples/models/models_rlgl_solar_system.js create mode 100644 examples/models/models_rlgl_solar_system.wasm create mode 100644 examples/models/models_skybox.data create mode 100644 examples/models/models_skybox.html create mode 100644 examples/models/models_skybox.js create mode 100644 examples/models/models_skybox.wasm create mode 100644 examples/models/models_waving_cubes.html create mode 100644 examples/models/models_waving_cubes.js create mode 100644 examples/models/models_waving_cubes.wasm create mode 100644 examples/models/models_yaw_pitch_roll.data create mode 100644 examples/models/models_yaw_pitch_roll.html create mode 100644 examples/models/models_yaw_pitch_roll.js create mode 100644 examples/models/models_yaw_pitch_roll.wasm (limited to 'examples/models') diff --git a/examples/models/loader.html b/examples/models/loader.html new file mode 100644 index 0000000..86e0789 --- /dev/null +++ b/examples/models/loader.html @@ -0,0 +1,236 @@ + + + + loading... + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ + +
+ + + +
+ + + + + + + + + \ No newline at end of file diff --git a/examples/models/models_animation.data b/examples/models/models_animation.data new file mode 100644 index 0000000..c7a884a Binary files /dev/null and b/examples/models/models_animation.data differ diff --git a/examples/models/models_animation.html b/examples/models/models_animation.html new file mode 100644 index 0000000..a1368fd --- /dev/null +++ b/examples/models/models_animation.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_animation.js b/examples/models/models_animation.js new file mode 100644 index 0000000..8ea1f22 --- /dev/null +++ b/examples/models/models_animation.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_animation.data";var REMOTE_PACKAGE_BASE="models_animation.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","iqm",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_animation.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["pe"];addOnInit(Module["asm"]["me"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"r":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"o":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"q":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"t":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"s":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"p":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ne"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["oe"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_animation.wasm b/examples/models/models_animation.wasm new file mode 100644 index 0000000..38700da Binary files /dev/null and b/examples/models/models_animation.wasm differ diff --git a/examples/models/models_billboard.data b/examples/models/models_billboard.data new file mode 100644 index 0000000..8c99118 Binary files /dev/null and b/examples/models/models_billboard.data differ diff --git a/examples/models/models_billboard.html b/examples/models/models_billboard.html new file mode 100644 index 0000000..c0512d1 --- /dev/null +++ b/examples/models/models_billboard.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_billboard.js b/examples/models/models_billboard.js new file mode 100644 index 0000000..8edca34 --- /dev/null +++ b/examples/models/models_billboard.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_billboard.data";var REMOTE_PACKAGE_BASE="models_billboard.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_billboard.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["_d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["be"];addOnInit(Module["asm"]["$d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"b":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"Aa":_emscripten_exit_pointerlock,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"t":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"P":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"g":_glBindAttribLocation,"a":_glBindBuffer,"h":_glBindTexture,"lc":_glBlendFunc,"l":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"vb":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Rb":_glCullFace,"j":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"ac":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"k":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"s":_glEnable,"e":_glEnableVertexAttribArray,"Gb":_glFrontFace,"m":_glGenBuffers,"$a":_glGenTextures,"q":_glGetAttribLocation,"Qc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"i":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"kb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Sa":_glTexImage2D,"n":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"f":_glVertexAttribPointer,"Zd":_glViewport,"w":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"d":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"v":_glfwTerminate,"c":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ae"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ce"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["de"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ee"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["re"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_billboard.wasm b/examples/models/models_billboard.wasm new file mode 100644 index 0000000..cf37192 Binary files /dev/null and b/examples/models/models_billboard.wasm differ diff --git a/examples/models/models_box_collisions.html b/examples/models/models_box_collisions.html new file mode 100644 index 0000000..c6439aa --- /dev/null +++ b/examples/models/models_box_collisions.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_box_collisions.js b/examples/models/models_box_collisions.js new file mode 100644 index 0000000..63d83f0 --- /dev/null +++ b/examples/models/models_box_collisions.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_box_collisions.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Rb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Gb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"vb":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"kb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"$a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_box_collisions.wasm b/examples/models/models_box_collisions.wasm new file mode 100644 index 0000000..c685de7 Binary files /dev/null and b/examples/models/models_box_collisions.wasm differ diff --git a/examples/models/models_cubicmap.data b/examples/models/models_cubicmap.data new file mode 100644 index 0000000..97220c0 Binary files /dev/null and b/examples/models/models_cubicmap.data differ diff --git a/examples/models/models_cubicmap.html b/examples/models/models_cubicmap.html new file mode 100644 index 0000000..ec16354 --- /dev/null +++ b/examples/models/models_cubicmap.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_cubicmap.js b/examples/models/models_cubicmap.js new file mode 100644 index 0000000..673fe0d --- /dev/null +++ b/examples/models/models_cubicmap.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_cubicmap.data";var REMOTE_PACKAGE_BASE="models_cubicmap.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_cubicmap.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"c":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_cubicmap.wasm b/examples/models/models_cubicmap.wasm new file mode 100644 index 0000000..be0b429 Binary files /dev/null and b/examples/models/models_cubicmap.wasm differ diff --git a/examples/models/models_first_person_maze.data b/examples/models/models_first_person_maze.data new file mode 100644 index 0000000..97220c0 Binary files /dev/null and b/examples/models/models_first_person_maze.data differ diff --git a/examples/models/models_first_person_maze.html b/examples/models/models_first_person_maze.html new file mode 100644 index 0000000..93b6b9b --- /dev/null +++ b/examples/models/models_first_person_maze.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_first_person_maze.js b/examples/models/models_first_person_maze.js new file mode 100644 index 0000000..6b1440e --- /dev/null +++ b/examples/models/models_first_person_maze.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_first_person_maze.data";var REMOTE_PACKAGE_BASE="models_first_person_maze.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_first_person_maze.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}else{return-2}}return requestPointerLock(target)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"c":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"ta":_emscripten_request_pointerlock,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_first_person_maze.wasm b/examples/models/models_first_person_maze.wasm new file mode 100644 index 0000000..b44956f Binary files /dev/null and b/examples/models/models_first_person_maze.wasm differ diff --git a/examples/models/models_geometric_shapes.html b/examples/models/models_geometric_shapes.html new file mode 100644 index 0000000..b67add6 --- /dev/null +++ b/examples/models/models_geometric_shapes.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_geometric_shapes.js b/examples/models/models_geometric_shapes.js new file mode 100644 index 0000000..71166b9 --- /dev/null +++ b/examples/models/models_geometric_shapes.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_geometric_shapes.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Rb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Gb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"vb":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"kb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"$a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_geometric_shapes.wasm b/examples/models/models_geometric_shapes.wasm new file mode 100644 index 0000000..7ba17d4 Binary files /dev/null and b/examples/models/models_geometric_shapes.wasm differ diff --git a/examples/models/models_heightmap.data b/examples/models/models_heightmap.data new file mode 100644 index 0000000..474db87 Binary files /dev/null and b/examples/models/models_heightmap.data differ diff --git a/examples/models/models_heightmap.html b/examples/models/models_heightmap.html new file mode 100644 index 0000000..8ea2f88 --- /dev/null +++ b/examples/models/models_heightmap.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_heightmap.js b/examples/models/models_heightmap.js new file mode 100644 index 0000000..4d28c71 --- /dev/null +++ b/examples/models/models_heightmap.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_heightmap.data";var REMOTE_PACKAGE_BASE="models_heightmap.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_heightmap.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"c":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_heightmap.wasm b/examples/models/models_heightmap.wasm new file mode 100644 index 0000000..dae9031 Binary files /dev/null and b/examples/models/models_heightmap.wasm differ diff --git a/examples/models/models_loading.data b/examples/models/models_loading.data new file mode 100644 index 0000000..a38ea69 --- /dev/null +++ b/examples/models/models_loading.data @@ -0,0 +1,14846 @@ +# (c) 2018 Medieval Assets Pack by Alberto Cano +# Licensed as Creative Commons Attribution-NonCommercial 4.0 + +# +# object castle +# + +v -17.17 7.76 -10.68 +v -16.55 7.76 -12.98 +v -16.55 0.00 -12.98 +v -17.17 0.00 -10.68 +v -14.87 7.76 -14.66 +v -14.87 0.00 -14.66 +v -12.57 7.76 -15.28 +v -12.57 0.00 -15.28 +v -10.27 7.76 -14.66 +v -10.27 0.00 -14.66 +v -8.58 7.76 -12.98 +v -8.58 0.00 -12.98 +v -7.97 7.76 -10.68 +v -7.97 0.00 -10.68 +v -8.58 7.76 -8.38 +v -8.58 0.00 -8.38 +v -10.27 7.76 -6.69 +v -10.27 0.00 -6.69 +v -12.57 7.76 -6.08 +v -12.57 0.00 -6.08 +v -14.87 7.76 -6.69 +v -14.87 0.00 -6.69 +v -16.55 7.76 -8.38 +v -16.55 0.00 -8.38 +v -16.78 7.76 -13.11 +v -17.43 7.76 -10.68 +v -17.43 8.57 -10.68 +v -16.78 8.57 -13.11 +v -15.00 7.76 -14.89 +v -15.00 8.57 -14.89 +v -12.57 7.76 -15.54 +v -12.57 8.57 -15.54 +v -10.13 7.76 -14.89 +v -10.13 8.57 -14.89 +v -8.35 7.76 -13.11 +v -8.35 8.57 -13.11 +v -7.70 7.76 -10.68 +v -7.70 8.57 -10.68 +v -8.35 7.76 -8.24 +v -8.35 8.57 -8.24 +v -10.13 7.76 -6.46 +v -10.13 8.57 -6.46 +v -12.57 7.76 -5.81 +v -12.57 8.57 -5.81 +v -15.00 7.76 -6.46 +v -15.00 8.57 -6.46 +v -16.78 7.76 -8.24 +v -16.78 8.57 -8.24 +v -17.17 8.57 -10.68 +v -16.55 8.57 -12.98 +v -14.87 8.57 -14.66 +v -12.57 8.57 -15.28 +v -10.27 8.57 -14.66 +v -8.58 8.57 -12.98 +v -7.97 8.57 -10.68 +v -8.58 8.57 -8.38 +v -10.27 8.57 -6.69 +v -12.57 8.57 -6.08 +v -14.87 8.57 -6.69 +v -16.55 8.57 -8.38 +v -17.17 16.89 -10.68 +v -16.55 16.89 -12.98 +v -14.87 16.89 -14.66 +v -12.57 16.89 -15.28 +v -10.27 16.89 -14.66 +v -8.58 16.89 -12.98 +v -7.97 16.89 -10.68 +v -8.58 16.89 -8.38 +v -10.27 16.89 -6.69 +v -12.57 16.89 -6.08 +v -14.87 16.89 -6.69 +v -16.55 16.89 -8.38 +v -17.13 21.30 -13.31 +v -17.83 21.30 -10.68 +v -18.23 21.30 -10.68 +v -17.47 21.30 -13.51 +v -15.20 21.30 -15.24 +v -15.40 21.30 -15.58 +v -12.57 21.30 -15.94 +v -12.57 21.30 -16.34 +v -9.93 21.30 -15.24 +v -9.73 21.30 -15.58 +v -8.01 21.30 -13.31 +v -7.66 21.30 -13.51 +v -7.30 21.30 -10.68 +v -6.90 21.30 -10.68 +v -8.01 21.30 -8.04 +v -7.66 21.30 -7.84 +v -9.93 21.30 -6.12 +v -9.73 21.30 -5.77 +v -12.57 21.30 -5.41 +v -12.57 21.30 -5.01 +v -15.20 21.30 -6.12 +v -15.40 21.30 -5.77 +v -17.13 21.30 -8.04 +v -17.47 21.30 -7.84 +v -16.72 24.76 -10.68 +v -16.17 24.76 -12.76 +v -14.64 24.76 -14.28 +v -12.57 24.76 -14.83 +v -10.49 24.76 -14.28 +v -8.97 24.76 -12.76 +v -8.41 24.76 -10.68 +v -8.97 24.76 -8.60 +v -10.49 24.76 -7.08 +v -12.57 24.76 -6.52 +v -14.64 24.76 -7.08 +v -16.17 24.76 -8.60 +v -16.69 28.50 -10.68 +v -16.13 28.50 -12.74 +v -14.63 28.50 -14.24 +v -12.57 28.50 -14.80 +v -10.51 28.50 -14.24 +v -9.00 28.50 -12.74 +v -8.45 28.50 -10.68 +v -9.00 28.50 -8.62 +v -10.51 28.50 -7.11 +v -12.57 28.50 -6.56 +v -14.63 28.50 -7.11 +v -16.13 28.50 -8.62 +v -17.83 17.36 -10.68 +v -17.13 17.36 -13.31 +v -15.20 17.36 -15.24 +v -12.57 17.36 -15.94 +v -9.93 17.36 -15.24 +v -8.01 17.36 -13.31 +v -7.30 17.36 -10.68 +v -8.01 17.36 -8.04 +v -9.93 17.36 -6.12 +v -12.57 17.36 -5.41 +v -15.20 17.36 -6.12 +v -17.13 17.36 -8.04 +v -17.91 20.21 -10.37 +v -17.91 20.52 -10.80 +v -17.91 19.21 -10.80 +v -17.91 19.23 -10.37 +v -17.81 19.26 -10.03 +v -17.91 19.26 -10.04 +v -17.91 19.12 -10.04 +v -17.81 19.12 -10.03 +v -17.89 20.75 -10.80 +v -17.98 20.75 -10.81 +v -17.94 20.29 -10.15 +v -17.84 20.29 -10.15 +v -17.68 19.12 -11.55 +v -17.78 19.12 -11.56 +v -17.78 19.26 -11.56 +v -17.68 19.26 -11.55 +v -17.89 19.07 -10.80 +v -17.98 19.07 -10.81 +v -17.82 19.12 -11.45 +v -17.73 19.12 -11.45 +v -18.05 19.12 -10.16 +v -18.05 19.26 -10.16 +v -18.08 19.23 -10.39 +v -17.98 20.52 -10.81 +v -17.98 20.21 -10.38 +v -17.93 19.26 -11.46 +v -17.93 19.12 -11.46 +v -18.01 19.24 -11.24 +v -18.09 19.07 -10.82 +v -18.09 19.21 -10.82 +v -17.83 20.21 -11.23 +v -17.83 19.24 -11.23 +v -17.73 20.29 -11.45 +v -17.82 20.29 -11.45 +v -17.84 19.12 -10.15 +v -17.94 19.12 -10.15 +v -17.90 20.21 -11.23 +v -17.98 19.23 -10.38 +v -17.90 19.24 -11.23 +v -17.98 19.21 -10.81 +v -17.82 19.26 -11.45 +v -17.73 19.26 -11.45 +v -17.94 19.26 -10.15 +v -17.84 19.26 -10.15 +v -18.02 19.26 -10.05 +v -18.02 19.12 -10.05 +v -17.88 19.12 -11.57 +v -17.88 19.26 -11.57 +v -12.87 20.21 -16.02 +v -12.44 20.52 -16.02 +v -12.44 19.21 -16.02 +v -12.87 19.23 -16.02 +v -13.21 19.26 -15.92 +v -13.20 19.26 -16.02 +v -13.20 19.12 -16.02 +v -13.21 19.12 -15.92 +v -12.44 20.75 -16.00 +v -12.43 20.75 -16.10 +v -13.09 20.29 -16.05 +v -13.10 20.29 -15.95 +v -11.69 19.12 -15.79 +v -11.68 19.12 -15.89 +v -11.68 19.26 -15.89 +v -11.69 19.26 -15.79 +v -12.44 19.07 -16.00 +v -12.43 19.07 -16.10 +v -11.79 19.12 -15.94 +v -11.80 19.12 -15.84 +v -13.08 19.12 -16.16 +v -13.08 19.26 -16.16 +v -12.85 19.23 -16.20 +v -12.43 20.52 -16.10 +v -12.86 20.21 -16.09 +v -11.78 19.26 -16.04 +v -11.78 19.12 -16.04 +v -12.00 19.24 -16.12 +v -12.42 19.07 -16.20 +v -12.42 19.21 -16.20 +v -12.01 20.21 -15.94 +v -12.01 19.24 -15.94 +v -11.80 20.29 -15.84 +v -11.79 20.29 -15.94 +v -13.10 19.12 -15.95 +v -13.09 19.12 -16.05 +v -12.01 20.21 -16.01 +v -12.86 19.23 -16.09 +v -12.01 19.24 -16.01 +v -12.43 19.21 -16.10 +v -11.79 19.26 -15.94 +v -11.80 19.26 -15.84 +v -13.09 19.26 -16.05 +v -13.10 19.26 -15.95 +v -13.19 19.26 -16.13 +v -13.19 19.12 -16.13 +v -11.67 19.12 -16.00 +v -11.67 19.26 -16.00 +v -9.24 23.34 -12.52 +v -9.78 23.34 -13.29 +v -9.10 24.92 -13.76 +v -8.56 24.92 -12.99 +v -8.63 28.41 -12.92 +v -9.53 28.41 -12.29 +v -9.18 28.41 -13.70 +v -10.08 28.41 -13.07 +v -12.87 27.21 -14.81 +v -12.44 27.52 -14.82 +v -12.44 26.21 -14.82 +v -12.87 26.24 -14.81 +v -13.21 26.26 -14.72 +v -13.20 26.26 -14.82 +v -13.20 26.12 -14.82 +v -13.21 26.12 -14.72 +v -12.44 27.75 -14.80 +v -12.43 27.75 -14.89 +v -13.09 27.30 -14.85 +v -13.10 27.30 -14.75 +v -11.69 26.12 -14.59 +v -11.68 26.12 -14.69 +v -11.68 26.26 -14.69 +v -11.69 26.26 -14.59 +v -12.44 26.07 -14.80 +v -12.43 26.07 -14.89 +v -11.79 26.12 -14.73 +v -11.80 26.12 -14.64 +v -13.08 26.12 -14.96 +v -13.08 26.26 -14.96 +v -12.85 26.24 -14.99 +v -12.43 27.52 -14.89 +v -12.86 27.21 -14.89 +v -11.78 26.26 -14.84 +v -11.78 26.12 -14.84 +v -12.00 26.25 -14.92 +v -12.42 26.07 -15.00 +v -12.42 26.21 -15.00 +v -12.01 27.21 -14.74 +v -12.01 26.25 -14.74 +v -11.80 27.30 -14.64 +v -11.79 27.30 -14.73 +v -13.10 26.12 -14.75 +v -13.09 26.12 -14.85 +v -12.01 27.21 -14.81 +v -12.86 26.24 -14.89 +v -12.01 26.25 -14.81 +v -12.43 26.21 -14.89 +v -11.79 26.26 -14.73 +v -11.80 26.26 -14.64 +v -13.09 26.26 -14.85 +v -13.10 26.26 -14.75 +v -13.19 26.26 -14.93 +v -13.19 26.12 -14.93 +v -11.67 26.12 -14.79 +v -11.67 26.26 -14.79 +v -14.41 23.34 -14.01 +v -15.18 23.34 -13.46 +v -15.65 24.92 -14.14 +v -14.88 24.92 -14.68 +v -14.81 28.41 -14.61 +v -14.18 28.41 -13.71 +v -15.59 28.41 -14.07 +v -14.96 28.41 -13.17 +v -8.43 27.21 -10.98 +v -8.42 27.52 -10.55 +v -8.42 26.21 -10.55 +v -8.43 26.24 -10.98 +v -8.52 26.26 -11.32 +v -8.42 26.26 -11.31 +v -8.42 26.12 -11.31 +v -8.52 26.12 -11.32 +v -8.45 27.75 -10.55 +v -8.35 27.75 -10.54 +v -8.39 27.30 -11.20 +v -8.49 27.30 -11.21 +v -8.65 26.12 -9.80 +v -8.56 26.12 -9.79 +v -8.56 26.26 -9.79 +v -8.65 26.26 -9.80 +v -8.45 26.07 -10.55 +v -8.35 26.07 -10.54 +v -8.51 26.12 -9.90 +v -8.61 26.12 -9.91 +v -8.29 26.12 -11.19 +v -8.29 26.26 -11.19 +v -8.25 26.24 -10.96 +v -8.35 27.52 -10.54 +v -8.35 27.21 -10.97 +v -8.40 26.26 -9.89 +v -8.40 26.12 -9.89 +v -8.32 26.25 -10.11 +v -8.24 26.07 -10.53 +v -8.24 26.21 -10.53 +v -8.50 27.21 -10.13 +v -8.50 26.25 -10.13 +v -8.61 27.30 -9.91 +v -8.51 27.30 -9.90 +v -8.49 26.12 -11.21 +v -8.39 26.12 -11.20 +v -8.43 27.21 -10.12 +v -8.35 26.24 -10.97 +v -8.43 26.25 -10.12 +v -8.35 26.21 -10.54 +v -8.51 26.26 -9.90 +v -8.61 26.26 -9.91 +v -8.39 26.26 -11.20 +v -8.49 26.26 -11.21 +v -8.32 26.26 -11.30 +v -8.32 26.12 -11.30 +v -8.45 26.12 -9.78 +v -8.45 26.26 -9.78 +v -13.04 12.70 -6.81 +v -12.09 12.70 -6.81 +v -12.09 14.28 -5.99 +v -13.04 14.28 -5.99 +v -13.04 17.34 -5.64 +v -13.04 17.34 -6.74 +v -12.09 17.34 -5.64 +v -12.09 17.34 -6.74 +v -8.98 12.70 -12.20 +v -9.46 12.70 -13.02 +v -8.74 14.28 -13.43 +v -8.27 14.28 -12.61 +v -7.97 17.34 -12.79 +v -8.92 17.34 -12.24 +v -8.44 17.34 -13.61 +v -9.39 17.34 -13.06 +v -12.09 12.70 -14.54 +v -13.04 12.70 -14.54 +v -13.04 14.28 -15.36 +v -12.09 14.28 -15.36 +v -12.09 17.34 -15.71 +v -12.09 17.34 -14.62 +v -13.04 17.34 -15.71 +v -13.04 17.34 -14.62 +v -10.73 23.34 -7.35 +v -9.95 23.34 -7.89 +v -9.48 24.92 -7.22 +v -10.25 24.92 -6.67 +v -10.32 28.41 -6.74 +v -10.95 28.41 -7.65 +v -9.55 28.41 -7.29 +v -10.18 28.41 -8.19 +v -9.46 12.70 -8.34 +v -8.98 12.70 -9.15 +v -8.27 14.28 -8.74 +v -8.74 14.28 -7.92 +v -8.44 17.34 -7.75 +v -9.39 17.34 -8.30 +v -7.97 17.34 -8.57 +v -8.92 17.34 -9.12 +v -7.23 20.21 -10.98 +v -7.22 20.52 -10.55 +v -7.22 19.21 -10.55 +v -7.23 19.23 -10.98 +v -7.32 19.26 -11.32 +v -7.22 19.26 -11.31 +v -7.22 19.12 -11.31 +v -7.32 19.12 -11.32 +v -7.24 20.75 -10.55 +v -7.15 20.75 -10.54 +v -7.19 20.29 -11.20 +v -7.29 20.29 -11.21 +v -7.45 19.12 -9.80 +v -7.35 19.12 -9.79 +v -7.35 19.26 -9.79 +v -7.45 19.26 -9.80 +v -7.24 19.07 -10.55 +v -7.15 19.07 -10.54 +v -7.31 19.12 -9.90 +v -7.41 19.12 -9.91 +v -7.09 19.12 -11.19 +v -7.09 19.26 -11.19 +v -7.05 19.23 -10.96 +v -7.15 20.52 -10.54 +v -7.15 20.21 -10.97 +v -7.20 19.26 -9.89 +v -7.20 19.12 -9.89 +v -7.12 19.24 -10.11 +v -7.04 19.07 -10.53 +v -7.04 19.21 -10.53 +v -7.30 20.21 -10.13 +v -7.30 19.24 -10.13 +v -7.41 20.29 -9.91 +v -7.31 20.29 -9.90 +v -7.29 19.12 -11.21 +v -7.19 19.12 -11.20 +v -7.23 20.21 -10.12 +v -7.15 19.23 -10.97 +v -7.23 19.24 -10.12 +v -7.15 19.21 -10.54 +v -7.31 19.26 -9.90 +v -7.41 19.26 -9.91 +v -7.19 19.26 -11.20 +v -7.29 19.26 -11.21 +v -7.11 19.26 -11.30 +v -7.11 19.12 -11.30 +v -7.25 19.12 -9.78 +v -7.25 19.26 -9.78 +v -12.26 27.21 -6.54 +v -12.69 27.52 -6.53 +v -12.69 26.21 -6.53 +v -12.26 26.24 -6.54 +v -11.92 26.26 -6.63 +v -11.93 26.26 -6.53 +v -11.93 26.12 -6.53 +v -11.92 26.12 -6.63 +v -12.69 27.75 -6.56 +v -12.70 27.75 -6.46 +v -12.04 27.30 -6.51 +v -12.03 27.30 -6.60 +v -13.44 26.12 -6.76 +v -13.45 26.12 -6.67 +v -13.45 26.26 -6.67 +v -13.44 26.26 -6.76 +v -12.69 26.07 -6.56 +v -12.70 26.07 -6.46 +v -13.34 26.12 -6.62 +v -13.34 26.12 -6.72 +v -12.05 26.12 -6.40 +v -12.05 26.26 -6.40 +v -12.28 26.24 -6.36 +v -12.70 27.52 -6.46 +v -12.27 27.21 -6.47 +v -13.35 26.26 -6.51 +v -13.35 26.12 -6.51 +v -13.13 26.25 -6.43 +v -12.71 26.07 -6.35 +v -12.71 26.21 -6.35 +v -13.12 27.21 -6.61 +v -13.12 26.25 -6.61 +v -13.34 27.30 -6.72 +v -13.34 27.30 -6.62 +v -12.03 26.12 -6.60 +v -12.04 26.12 -6.51 +v -13.12 27.21 -6.54 +v -12.27 26.24 -6.47 +v -13.12 26.25 -6.54 +v -12.70 26.21 -6.46 +v -13.34 26.26 -6.62 +v -13.34 26.26 -6.72 +v -12.04 26.26 -6.51 +v -12.03 26.26 -6.60 +v -11.94 26.26 -6.43 +v -11.94 26.12 -6.43 +v -13.46 26.12 -6.56 +v -13.46 26.26 -6.56 +v -16.15 12.70 -9.15 +v -15.67 12.70 -8.34 +v -16.39 14.28 -7.92 +v -16.86 14.28 -8.74 +v -17.17 17.34 -8.57 +v -16.21 17.34 -9.12 +v -16.69 17.34 -7.75 +v -15.74 17.34 -8.30 +v -12.26 20.21 -5.34 +v -12.69 20.52 -5.33 +v -12.69 19.21 -5.33 +v -12.26 19.23 -5.34 +v -11.92 19.26 -5.43 +v -11.93 19.26 -5.33 +v -11.93 19.12 -5.33 +v -11.92 19.12 -5.43 +v -12.69 20.75 -5.36 +v -12.70 20.75 -5.26 +v -12.04 20.29 -5.30 +v -12.03 20.29 -5.40 +v -13.44 19.12 -5.56 +v -13.45 19.12 -5.47 +v -13.45 19.26 -5.47 +v -13.44 19.26 -5.56 +v -12.69 19.07 -5.36 +v -12.70 19.07 -5.26 +v -13.34 19.12 -5.42 +v -13.34 19.12 -5.52 +v -12.05 19.12 -5.20 +v -12.05 19.26 -5.20 +v -12.28 19.23 -5.16 +v -12.70 20.52 -5.26 +v -12.27 20.21 -5.26 +v -13.35 19.26 -5.31 +v -13.35 19.12 -5.31 +v -13.13 19.24 -5.23 +v -12.71 19.07 -5.15 +v -12.71 19.21 -5.15 +v -13.12 20.21 -5.41 +v -13.12 19.24 -5.41 +v -13.34 20.29 -5.52 +v -13.34 20.29 -5.42 +v -12.03 19.12 -5.40 +v -12.04 19.12 -5.30 +v -13.12 20.21 -5.34 +v -12.27 19.23 -5.26 +v -13.12 19.24 -5.34 +v -12.70 19.21 -5.26 +v -13.34 19.26 -5.42 +v -13.34 19.26 -5.52 +v -12.04 19.26 -5.30 +v -12.03 19.26 -5.40 +v -11.94 19.26 -5.23 +v -11.94 19.12 -5.23 +v -13.46 19.12 -5.36 +v -13.46 19.26 -5.36 +v -15.89 23.34 -8.84 +v -15.35 23.34 -8.06 +v -16.03 24.92 -7.59 +v -16.57 24.92 -8.36 +v -16.50 28.41 -8.43 +v -15.60 28.41 -9.06 +v -15.96 28.41 -7.66 +v -15.06 28.41 -8.29 +v -16.70 27.21 -10.37 +v -16.71 27.52 -10.80 +v -16.71 26.21 -10.80 +v -16.70 26.24 -10.37 +v -16.61 26.26 -10.03 +v -16.71 26.26 -10.04 +v -16.71 26.12 -10.04 +v -16.61 26.12 -10.03 +v -16.69 27.75 -10.80 +v -16.78 27.75 -10.81 +v -16.74 27.30 -10.15 +v -16.64 27.30 -10.15 +v -16.48 26.12 -11.55 +v -16.58 26.12 -11.56 +v -16.58 26.26 -11.56 +v -16.48 26.26 -11.55 +v -16.69 26.07 -10.80 +v -16.78 26.07 -10.81 +v -16.62 26.12 -11.45 +v -16.53 26.12 -11.45 +v -16.84 26.12 -10.16 +v -16.84 26.26 -10.16 +v -16.88 26.24 -10.39 +v -16.78 27.52 -10.81 +v -16.78 27.21 -10.38 +v -16.73 26.26 -11.46 +v -16.73 26.12 -11.46 +v -16.81 26.25 -11.24 +v -16.89 26.07 -10.82 +v -16.89 26.21 -10.82 +v -16.63 27.21 -11.23 +v -16.63 26.25 -11.23 +v -16.53 27.30 -11.45 +v -16.62 27.30 -11.45 +v -16.64 26.12 -10.15 +v -16.74 26.12 -10.15 +v -16.70 27.21 -11.23 +v -16.78 26.24 -10.38 +v -16.70 26.25 -11.23 +v -16.78 26.21 -10.81 +v -16.62 26.26 -11.45 +v -16.53 26.26 -11.45 +v -16.74 26.26 -10.15 +v -16.64 26.26 -10.15 +v -16.82 26.26 -10.05 +v -16.82 26.12 -10.05 +v -16.68 26.12 -11.57 +v -16.68 26.26 -11.57 +v -15.67 12.70 -13.02 +v -16.15 12.70 -12.20 +v -16.86 14.28 -12.61 +v -16.39 14.28 -13.43 +v -16.69 17.34 -13.61 +v -15.74 17.34 -13.06 +v -17.17 17.34 -12.79 +v -16.21 17.34 -12.24 +v -16.83 28.50 -13.14 +v -17.49 28.50 -10.68 +v -17.49 30.29 -10.68 +v -16.83 30.29 -13.14 +v -15.03 28.50 -14.94 +v -15.03 30.29 -14.94 +v -12.57 28.50 -15.60 +v -12.57 30.29 -15.60 +v -10.10 28.50 -14.94 +v -10.10 30.29 -14.94 +v -8.30 28.50 -13.14 +v -8.30 30.29 -13.14 +v -7.64 28.50 -10.68 +v -7.64 30.29 -10.68 +v -8.30 28.50 -8.21 +v -8.30 30.29 -8.21 +v -10.10 28.50 -6.41 +v -10.10 30.29 -6.41 +v -12.57 28.50 -5.75 +v -12.57 30.29 -5.75 +v -15.03 28.50 -6.41 +v -15.03 30.29 -6.41 +v -16.83 28.50 -8.21 +v -16.83 30.29 -8.21 +v -16.78 30.29 -10.68 +v -16.21 30.29 -12.78 +v -15.03 30.90 -14.94 +v -16.83 30.90 -13.14 +v -16.21 30.90 -12.78 +v -14.67 30.90 -14.32 +v -14.67 30.29 -14.32 +v -12.57 30.29 -14.89 +v -10.10 30.90 -14.94 +v -12.57 30.90 -15.60 +v -12.57 30.90 -14.89 +v -10.46 30.90 -14.32 +v -10.46 30.29 -14.32 +v -8.92 30.29 -12.78 +v -7.64 30.90 -10.68 +v -8.30 30.90 -13.14 +v -8.92 30.90 -12.78 +v -8.36 30.90 -10.68 +v -8.36 30.29 -10.68 +v -8.92 30.29 -8.57 +v -10.10 30.90 -6.41 +v -8.30 30.90 -8.21 +v -8.92 30.90 -8.57 +v -10.46 30.90 -7.03 +v -10.46 30.29 -7.03 +v -12.57 30.29 -6.47 +v -15.03 30.90 -6.41 +v -12.57 30.90 -5.75 +v -12.57 30.90 -6.47 +v -14.67 30.90 -7.03 +v -14.67 30.29 -7.03 +v -16.21 30.29 -8.57 +v -17.49 30.90 -10.68 +v -16.83 30.90 -8.21 +v -16.21 30.90 -8.57 +v -16.78 30.90 -10.68 +v -16.78 29.42 -10.68 +v -16.21 29.42 -12.78 +v -14.67 29.42 -14.32 +v -12.57 29.42 -14.89 +v -10.46 29.42 -14.32 +v -8.92 29.42 -12.78 +v -8.36 29.42 -10.68 +v -8.92 29.42 -8.57 +v -10.46 29.42 -7.03 +v -12.57 29.42 -6.47 +v -14.67 29.42 -7.03 +v -16.21 29.42 -8.57 +v -12.57 29.42 -10.68 +v 15.69 11.78 11.98 +v 15.69 11.78 -12.46 +v 10.74 17.79 -7.40 +v 10.74 17.79 7.40 +v -15.69 11.78 -12.46 +v -10.74 17.79 -7.40 +v -15.69 11.78 11.98 +v -10.74 17.79 7.40 +v 12.89 0.00 11.03 +v 12.89 0.00 -11.03 +v 12.89 11.78 -11.03 +v 12.89 11.78 11.03 +v -12.89 0.00 -11.03 +v -12.89 11.78 -11.03 +v -23.42 0.00 -6.76 +v -23.42 0.00 6.76 +v -23.42 6.95 6.76 +v -23.42 6.95 -6.76 +v -12.89 0.00 11.03 +v -12.89 11.78 11.03 +v 8.74 17.79 -3.62 +v 8.74 17.79 3.62 +v -8.74 17.79 -3.62 +v -8.74 17.79 3.62 +v -12.89 6.95 6.76 +v -12.89 0.00 6.76 +v -12.89 6.95 -6.76 +v -12.89 0.00 -6.76 +v -9.46 12.70 7.57 +v -8.74 14.28 7.16 +v -8.27 14.28 7.98 +v -8.98 12.70 8.39 +v -9.39 17.34 7.53 +v -8.44 17.34 6.98 +v -7.97 17.34 7.80 +v -8.92 17.34 8.35 +v -9.31 28.15 -0.00 +v -9.31 23.30 4.54 +v 0.00 22.65 4.30 +v -0.11 25.84 -0.00 +v -9.31 27.72 -0.00 +v -9.31 22.87 4.55 +v 0.00 22.23 4.31 +v 0.00 22.65 -4.30 +v -9.31 23.30 -4.54 +v -9.31 22.87 -4.55 +v 0.00 22.23 -4.31 +v 9.31 28.15 -0.00 +v 9.31 23.30 4.54 +v 9.31 27.72 -0.00 +v 9.31 22.87 4.55 +v 9.31 23.30 -4.54 +v 9.31 22.87 -4.55 +v 4.76 26.71 -0.63 +v 5.87 26.95 -0.63 +v 5.91 26.75 -0.63 +v 4.80 26.52 -0.63 +v 4.68 27.10 -0.11 +v 5.79 27.34 -0.11 +v 4.72 26.91 -0.11 +v 5.79 27.35 -0.00 +v 4.68 27.12 -0.00 +v 4.72 26.93 -0.00 +v 5.91 26.75 0.63 +v 5.87 26.95 0.63 +v 4.76 26.71 0.63 +v 4.80 26.52 0.63 +v 5.79 27.34 0.11 +v 4.68 27.10 0.11 +v 4.72 26.91 0.11 +v 3.88 26.49 -0.63 +v 5.00 26.69 -0.63 +v 5.03 26.49 -0.63 +v 3.91 26.30 -0.63 +v 3.81 26.89 -0.11 +v 4.93 27.08 -0.11 +v 3.84 26.69 -0.11 +v 4.92 27.09 -0.00 +v 3.81 26.90 -0.00 +v 3.84 26.71 -0.00 +v 5.03 26.49 0.63 +v 5.00 26.69 0.63 +v 3.88 26.49 0.63 +v 3.91 26.30 0.63 +v 4.93 27.08 0.11 +v 3.81 26.89 0.11 +v 3.84 26.69 0.11 +v 2.89 26.32 -0.63 +v 4.01 26.46 -0.63 +v 4.04 26.27 -0.63 +v 2.91 26.13 -0.63 +v 2.84 26.72 -0.11 +v 3.96 26.86 -0.11 +v 2.86 26.53 -0.11 +v 3.96 26.87 -0.00 +v 2.84 26.74 -0.00 +v 2.86 26.54 -0.00 +v 4.04 26.27 0.63 +v 4.01 26.46 0.63 +v 2.89 26.32 0.63 +v 2.91 26.13 0.63 +v 3.96 26.86 0.11 +v 2.84 26.72 0.11 +v 2.86 26.53 0.11 +v 1.88 26.15 -0.63 +v 3.00 26.29 -0.63 +v 3.02 26.09 -0.63 +v 1.90 25.96 -0.63 +v 1.83 26.55 -0.11 +v 2.95 26.69 -0.11 +v 1.85 26.36 -0.11 +v 2.95 26.70 -0.00 +v 1.83 26.56 -0.00 +v 1.85 26.37 -0.00 +v 3.02 26.09 0.63 +v 3.00 26.29 0.63 +v 1.88 26.15 0.63 +v 1.90 25.96 0.63 +v 2.95 26.69 0.11 +v 1.83 26.55 0.11 +v 1.85 26.36 0.11 +v 0.78 26.08 -0.63 +v 1.91 26.12 -0.63 +v 1.92 25.93 -0.63 +v 0.79 25.89 -0.63 +v 0.77 26.49 -0.11 +v 1.90 26.52 -0.11 +v 0.77 26.29 -0.11 +v 1.90 26.54 -0.00 +v 0.77 26.50 -0.00 +v 0.77 26.30 -0.00 +v 1.92 25.93 0.63 +v 1.91 26.12 0.63 +v 0.78 26.08 0.63 +v 0.79 25.89 0.63 +v 1.90 26.52 0.11 +v 0.77 26.49 0.11 +v 0.77 26.29 0.11 +v -0.35 26.05 -0.63 +v 0.78 26.11 -0.63 +v 0.79 25.91 -0.63 +v -0.34 25.85 -0.63 +v -0.37 26.45 -0.11 +v 0.76 26.51 -0.11 +v -0.36 26.25 -0.11 +v 0.76 26.52 -0.00 +v -0.38 26.46 -0.00 +v -0.37 26.27 -0.00 +v 0.79 25.91 0.63 +v 0.78 26.11 0.63 +v -0.35 26.05 0.63 +v -0.34 25.85 0.63 +v 0.76 26.51 0.11 +v -0.37 26.45 0.11 +v -0.36 26.25 0.11 +v 6.98 27.27 -0.63 +v 8.09 27.50 -0.63 +v 8.13 27.31 -0.63 +v 7.02 27.08 -0.63 +v 6.90 27.66 -0.11 +v 8.01 27.90 -0.11 +v 6.94 27.47 -0.11 +v 8.00 27.91 -0.00 +v 6.89 27.68 -0.00 +v 6.93 27.48 -0.00 +v 8.13 27.31 0.63 +v 8.09 27.50 0.63 +v 6.98 27.27 0.63 +v 7.02 27.08 0.63 +v 8.01 27.90 0.11 +v 6.90 27.66 0.11 +v 6.94 27.47 0.11 +v 5.87 26.96 -0.63 +v 6.98 27.20 -0.63 +v 7.02 27.01 -0.63 +v 5.91 26.77 -0.63 +v 5.79 27.36 -0.11 +v 6.90 27.59 -0.11 +v 5.83 27.17 -0.11 +v 6.89 27.60 -0.00 +v 5.79 27.37 -0.00 +v 5.83 27.18 -0.00 +v 7.02 27.01 0.63 +v 6.98 27.20 0.63 +v 5.87 26.96 0.63 +v 5.91 26.77 0.63 +v 6.90 27.59 0.11 +v 5.79 27.36 0.11 +v 5.83 27.17 0.11 +v -6.20 26.77 -0.63 +v -6.16 26.96 -0.63 +v -5.05 26.72 -0.63 +v -5.09 26.53 -0.63 +v -4.97 27.12 -0.11 +v -6.08 27.35 -0.11 +v -5.01 26.92 -0.11 +v -6.07 27.36 -0.00 +v -4.96 27.13 -0.00 +v -5.01 26.94 -0.00 +v -5.05 26.72 0.63 +v -6.16 26.96 0.63 +v -6.20 26.77 0.63 +v -5.09 26.53 0.63 +v -4.97 27.12 0.11 +v -6.08 27.35 0.11 +v -5.01 26.92 0.11 +v -5.32 26.52 -0.63 +v -5.28 26.71 -0.63 +v -4.17 26.51 -0.63 +v -4.20 26.32 -0.63 +v -4.10 26.91 -0.11 +v -5.21 27.11 -0.11 +v -4.13 26.72 -0.11 +v -5.21 27.12 -0.00 +v -4.10 26.92 -0.00 +v -4.13 26.73 -0.00 +v -4.17 26.51 0.63 +v -5.28 26.71 0.63 +v -5.32 26.52 0.63 +v -4.20 26.32 0.63 +v -4.10 26.91 0.11 +v -5.21 27.11 0.11 +v -4.13 26.72 0.11 +v -4.32 26.27 -0.63 +v -4.30 26.46 -0.63 +v -3.18 26.32 -0.63 +v -3.20 26.13 -0.63 +v -3.13 26.72 -0.11 +v -4.25 26.86 -0.11 +v -3.15 26.53 -0.11 +v -4.25 26.87 -0.00 +v -3.13 26.73 -0.00 +v -3.15 26.54 -0.00 +v -3.18 26.32 0.63 +v -4.30 26.46 0.63 +v -4.32 26.27 0.63 +v -3.20 26.13 0.63 +v -3.13 26.72 0.11 +v -4.25 26.86 0.11 +v -3.15 26.53 0.11 +v -3.31 26.05 -0.63 +v -3.29 26.24 -0.63 +v -2.16 26.11 -0.63 +v -2.19 25.91 -0.63 +v -2.12 26.50 -0.11 +v -3.24 26.64 -0.11 +v -2.14 26.31 -0.11 +v -3.24 26.65 -0.00 +v -2.11 26.52 -0.00 +v -2.14 26.32 -0.00 +v -2.16 26.11 0.63 +v -3.29 26.24 0.63 +v -3.31 26.05 0.63 +v -2.19 25.91 0.63 +v -2.12 26.50 0.11 +v -3.24 26.64 0.11 +v -2.14 26.31 0.11 +v -2.21 25.88 -0.63 +v -2.20 26.08 -0.63 +v -1.07 26.04 -0.63 +v -1.07 25.84 -0.63 +v -1.05 26.44 -0.11 +v -2.19 26.48 -0.11 +v -1.06 26.25 -0.11 +v -2.19 26.49 -0.00 +v -1.05 26.45 -0.00 +v -1.06 26.26 -0.00 +v -1.07 26.04 0.63 +v -2.20 26.08 0.63 +v -2.21 25.88 0.63 +v -1.07 25.84 0.63 +v -1.05 26.44 0.11 +v -2.19 26.48 0.11 +v -1.06 26.25 0.11 +v -1.08 25.87 -0.63 +v -1.07 26.06 -0.63 +v 0.07 26.00 -0.63 +v 0.06 25.80 -0.63 +v 0.09 26.40 -0.11 +v -1.04 26.46 -0.11 +v 0.08 26.21 -0.11 +v -1.04 26.47 -0.00 +v 0.09 26.41 -0.00 +v 0.08 26.22 -0.00 +v 0.07 26.00 0.63 +v -1.07 26.06 0.63 +v -1.08 25.87 0.63 +v 0.06 25.80 0.63 +v 0.09 26.40 0.11 +v -1.04 26.46 0.11 +v 0.08 26.21 0.11 +v -8.19 27.32 -0.63 +v -8.15 27.51 -0.63 +v -7.04 27.28 -0.63 +v -7.08 27.09 -0.63 +v -6.96 27.67 -0.11 +v -8.07 27.90 -0.11 +v -7.00 27.48 -0.11 +v -8.06 27.92 -0.00 +v -6.95 27.68 -0.00 +v -6.99 27.49 -0.00 +v -7.04 27.28 0.63 +v -8.15 27.51 0.63 +v -8.19 27.32 0.63 +v -7.08 27.09 0.63 +v -6.96 27.67 0.11 +v -8.07 27.90 0.11 +v -7.00 27.48 0.11 +v -7.06 27.02 -0.63 +v -7.02 27.21 -0.63 +v -5.92 26.97 -0.63 +v -5.96 26.78 -0.63 +v -5.83 27.37 -0.11 +v -6.94 27.60 -0.11 +v -5.87 27.18 -0.11 +v -6.94 27.61 -0.00 +v -5.83 27.38 -0.00 +v -5.87 27.19 -0.00 +v -5.92 26.97 0.63 +v -7.02 27.21 0.63 +v -7.06 27.02 0.63 +v -5.96 26.78 0.63 +v -5.83 27.37 0.11 +v -6.94 27.60 0.11 +v -5.87 27.18 0.11 +v -9.18 27.83 -0.63 +v -8.10 27.48 -0.63 +v -8.16 27.29 -0.63 +v -9.24 27.64 -0.63 +v -9.05 28.21 -0.11 +v -7.98 27.86 -0.11 +v -9.11 28.02 -0.11 +v -7.97 27.87 -0.00 +v -9.05 28.22 -0.00 +v -9.11 28.04 -0.00 +v -8.16 27.29 0.63 +v -8.10 27.48 0.63 +v -9.18 27.83 0.63 +v -9.24 27.64 0.63 +v -7.98 27.86 0.11 +v -9.05 28.21 0.11 +v -9.11 28.02 0.11 +v 8.19 27.28 -0.63 +v 8.13 27.46 -0.63 +v 9.21 27.81 -0.63 +v 9.27 27.63 -0.63 +v 9.08 28.20 -0.11 +v 8.01 27.84 -0.11 +v 9.15 28.01 -0.11 +v 8.00 27.86 -0.00 +v 9.08 28.21 -0.00 +v 9.14 28.02 -0.00 +v 9.21 27.81 0.63 +v 8.13 27.46 0.63 +v 8.19 27.28 0.63 +v 9.27 27.63 0.63 +v 9.08 28.20 0.11 +v 8.01 27.84 0.11 +v 9.15 28.01 0.11 +v 9.46 12.70 7.57 +v 8.98 12.70 8.39 +v 8.27 14.28 7.98 +v 8.74 14.28 7.16 +v 8.44 17.34 6.98 +v 9.39 17.34 7.53 +v 7.97 17.34 7.80 +v 8.92 17.34 8.35 +v -15.48 7.80 6.90 +v -15.48 7.80 6.03 +v -17.46 7.80 6.03 +v -17.46 7.80 6.90 +v -15.48 6.95 6.90 +v -15.48 6.95 6.03 +v -17.46 6.95 6.03 +v -17.46 6.95 6.90 +v -18.47 7.80 6.90 +v -18.47 7.80 6.03 +v -20.45 7.80 6.03 +v -20.45 7.80 6.90 +v -18.47 6.95 6.90 +v -18.47 6.95 6.03 +v -20.45 6.95 6.03 +v -20.45 6.95 6.90 +v -21.45 7.80 6.90 +v -21.45 7.80 6.03 +v -23.44 7.80 6.03 +v -23.44 7.80 6.90 +v -21.45 6.95 6.90 +v -21.45 6.95 6.03 +v -23.44 6.95 6.03 +v -23.44 6.95 6.90 +v -23.40 7.80 5.50 +v -22.53 7.80 5.50 +v -22.53 7.80 3.51 +v -23.40 7.80 3.51 +v -23.40 6.95 5.50 +v -22.53 6.95 5.50 +v -22.53 6.95 3.51 +v -23.40 6.95 3.51 +v -23.40 7.80 2.51 +v -22.53 7.80 2.51 +v -22.53 7.80 0.53 +v -23.40 7.80 0.53 +v -23.40 6.95 2.51 +v -22.53 6.95 2.51 +v -22.53 6.95 0.53 +v -23.40 6.95 0.53 +v -23.40 7.80 -0.48 +v -22.53 7.80 -0.48 +v -22.53 7.80 -2.46 +v -23.40 7.80 -2.46 +v -23.40 6.95 -0.48 +v -22.53 6.95 -0.48 +v -22.53 6.95 -2.46 +v -23.40 6.95 -2.46 +v -23.40 7.80 -3.47 +v -22.53 7.80 -3.47 +v -22.53 7.80 -5.45 +v -23.40 7.80 -5.45 +v -23.40 6.95 -3.47 +v -22.53 6.95 -3.47 +v -22.53 6.95 -5.45 +v -23.40 6.95 -5.45 +v -21.45 7.80 -6.02 +v -21.45 7.80 -6.88 +v -23.44 7.80 -6.88 +v -23.44 7.80 -6.02 +v -21.45 6.95 -6.02 +v -21.45 6.95 -6.88 +v -23.44 6.95 -6.88 +v -23.44 6.95 -6.02 +v -18.47 7.80 -6.02 +v -18.47 7.80 -6.88 +v -20.45 7.80 -6.88 +v -20.45 7.80 -6.02 +v -18.47 6.95 -6.02 +v -18.47 6.95 -6.88 +v -20.45 6.95 -6.88 +v -20.45 6.95 -6.02 +v -15.48 7.80 -6.02 +v -15.48 7.80 -6.88 +v -17.46 7.80 -6.88 +v -17.46 7.80 -6.02 +v -15.48 6.95 -6.02 +v -15.48 6.95 -6.88 +v -17.46 6.95 -6.88 +v -17.46 6.95 -6.02 +v -7.10 7.80 -12.06 +v -7.10 7.80 -12.93 +v -9.08 7.80 -12.93 +v -9.08 7.80 -12.06 +v -7.10 6.95 -12.06 +v -7.10 6.95 -12.93 +v -9.08 6.95 -12.93 +v -9.08 6.95 -12.06 +v -4.46 7.80 -12.06 +v -4.46 7.80 -12.93 +v -6.45 7.80 -12.93 +v -6.45 7.80 -12.06 +v -4.46 6.95 -12.06 +v -4.46 6.95 -12.93 +v -6.45 6.95 -12.93 +v -6.45 6.95 -12.06 +v -1.83 7.80 -12.06 +v -1.83 7.80 -12.93 +v -3.81 7.80 -12.93 +v -3.81 7.80 -12.06 +v -1.83 6.95 -12.06 +v -1.83 6.95 -12.93 +v -3.81 6.95 -12.93 +v -3.81 6.95 -12.06 +v 0.81 7.80 -12.06 +v 0.81 7.80 -12.93 +v -1.17 7.80 -12.93 +v -1.17 7.80 -12.06 +v 0.81 6.95 -12.06 +v 0.81 6.95 -12.93 +v -1.17 6.95 -12.93 +v -1.17 6.95 -12.06 +v 3.44 7.80 -12.06 +v 3.44 7.80 -12.93 +v 1.46 7.80 -12.93 +v 1.46 7.80 -12.06 +v 3.44 6.95 -12.06 +v 3.44 6.95 -12.93 +v 1.46 6.95 -12.93 +v 1.46 6.95 -12.06 +v 6.08 7.80 -12.06 +v 6.08 7.80 -12.93 +v 4.10 7.80 -12.93 +v 4.10 7.80 -12.06 +v 6.08 6.95 -12.06 +v 6.08 6.95 -12.93 +v 4.10 6.95 -12.93 +v 4.10 6.95 -12.06 +v 8.72 7.80 -12.06 +v 8.72 7.80 -12.93 +v 6.74 7.80 -12.93 +v 6.74 7.80 -12.06 +v 8.72 6.95 -12.06 +v 8.72 6.95 -12.93 +v 6.74 6.95 -12.93 +v 6.74 6.95 -12.06 +v -4.39 18.64 -6.78 +v -4.39 18.64 -7.64 +v -6.37 18.64 -7.64 +v -6.37 18.64 -6.78 +v -4.39 17.79 -6.78 +v -4.39 17.79 -7.64 +v -6.37 17.79 -7.64 +v -6.37 17.79 -6.78 +v -1.66 18.64 -6.78 +v -1.66 18.64 -7.64 +v -3.64 18.64 -7.64 +v -3.64 18.64 -6.78 +v -1.66 17.79 -6.78 +v -1.66 17.79 -7.64 +v -3.64 17.79 -7.64 +v -3.64 17.79 -6.78 +v 1.06 18.64 -6.78 +v 1.06 18.64 -7.64 +v -0.92 18.64 -7.64 +v -0.92 18.64 -6.78 +v 1.06 17.79 -6.78 +v 1.06 17.79 -7.64 +v -0.92 17.79 -7.64 +v -0.92 17.79 -6.78 +v 3.79 18.64 -6.78 +v 3.79 18.64 -7.64 +v 1.80 18.64 -7.64 +v 1.80 18.64 -6.78 +v 3.79 17.79 -6.78 +v 3.79 17.79 -7.64 +v 1.80 17.79 -7.64 +v 1.80 17.79 -6.78 +v 6.51 18.64 -6.78 +v 6.51 18.64 -7.64 +v 4.53 18.64 -7.64 +v 4.53 18.64 -6.78 +v 6.51 17.79 -6.78 +v 6.51 17.79 -7.64 +v 4.53 17.79 -7.64 +v 4.53 17.79 -6.78 +v 9.24 18.64 -6.78 +v 9.24 18.64 -7.64 +v 7.25 18.64 -7.64 +v 7.25 18.64 -6.78 +v 9.24 17.79 -6.78 +v 9.24 17.79 -7.64 +v 7.25 17.79 -7.64 +v 7.25 17.79 -6.78 +v -7.11 18.64 -6.78 +v -7.11 18.64 -7.64 +v -9.09 18.64 -7.64 +v -9.09 18.64 -6.78 +v -7.11 17.79 -6.78 +v -7.11 17.79 -7.64 +v -9.09 17.79 -7.64 +v -9.09 17.79 -6.78 +v -9.92 18.64 -6.55 +v -10.78 18.64 -6.55 +v -10.78 18.64 -4.56 +v -9.92 18.64 -4.56 +v -9.92 17.79 -6.55 +v -10.78 17.79 -6.55 +v -10.78 17.79 -4.56 +v -9.92 17.79 -4.56 +v -9.92 18.64 -3.82 +v -10.78 18.64 -3.82 +v -10.78 18.64 -1.84 +v -9.92 18.64 -1.84 +v -9.92 17.79 -3.82 +v -10.78 17.79 -3.82 +v -10.78 17.79 -1.84 +v -9.92 17.79 -1.84 +v -9.92 18.64 -1.10 +v -10.78 18.64 -1.10 +v -10.78 18.64 0.88 +v -9.92 18.64 0.88 +v -9.92 17.79 -1.10 +v -10.78 17.79 -1.10 +v -10.78 17.79 0.88 +v -9.92 17.79 0.88 +v -9.92 18.64 1.63 +v -10.78 18.64 1.63 +v -10.78 18.64 3.61 +v -9.92 18.64 3.61 +v -9.92 17.79 1.63 +v -10.78 17.79 1.63 +v -10.78 17.79 3.61 +v -9.92 17.79 3.61 +v -7.11 18.64 7.48 +v -7.11 18.64 6.62 +v -9.09 18.64 6.62 +v -9.09 18.64 7.48 +v -7.11 17.79 7.48 +v -7.11 17.79 6.62 +v -9.09 17.79 6.62 +v -9.09 17.79 7.48 +v -4.39 18.64 7.48 +v -4.39 18.64 6.62 +v -6.37 18.64 6.62 +v -6.37 18.64 7.48 +v -4.39 17.79 7.48 +v -4.39 17.79 6.62 +v -6.37 17.79 6.62 +v -6.37 17.79 7.48 +v -1.66 18.64 7.48 +v -1.66 18.64 6.62 +v -3.64 18.64 6.62 +v -3.64 18.64 7.48 +v -1.66 17.79 7.48 +v -1.66 17.79 6.62 +v -3.64 17.79 6.62 +v -3.64 17.79 7.48 +v 1.06 18.64 7.48 +v 1.06 18.64 6.62 +v -0.92 18.64 6.62 +v -0.92 18.64 7.48 +v 1.06 17.79 7.48 +v 1.06 17.79 6.62 +v -0.92 17.79 6.62 +v -0.92 17.79 7.48 +v 3.79 18.64 7.48 +v 3.79 18.64 6.62 +v 1.80 18.64 6.62 +v 1.80 18.64 7.48 +v 3.79 17.79 7.48 +v 3.79 17.79 6.62 +v 1.80 17.79 6.62 +v 1.80 17.79 7.48 +v 9.24 18.64 7.48 +v 9.24 18.64 6.62 +v 7.25 18.64 6.62 +v 7.25 18.64 7.48 +v 9.24 17.79 7.48 +v 9.24 17.79 6.62 +v 7.25 17.79 6.62 +v 7.25 17.79 7.48 +v 6.51 18.64 7.48 +v 6.51 18.64 6.62 +v 4.53 18.64 6.62 +v 4.53 18.64 7.48 +v 6.51 17.79 7.48 +v 6.51 17.79 6.62 +v 4.53 17.79 6.62 +v 4.53 17.79 7.48 +v 10.85 18.64 -6.55 +v 9.99 18.64 -6.55 +v 9.99 18.64 -4.56 +v 10.85 18.64 -4.56 +v 10.85 17.79 -6.55 +v 9.99 17.79 -6.55 +v 9.99 17.79 -4.56 +v 10.85 17.79 -4.56 +v 10.85 18.64 -3.82 +v 9.99 18.64 -3.82 +v 9.99 18.64 -1.84 +v 10.85 18.64 -1.84 +v 10.85 17.79 -3.82 +v 9.99 17.79 -3.82 +v 9.99 17.79 -1.84 +v 10.85 17.79 -1.84 +v 10.85 18.64 -1.10 +v 9.99 18.64 -1.10 +v 9.99 18.64 0.88 +v 10.85 18.64 0.88 +v 10.85 17.79 -1.10 +v 9.99 17.79 -1.10 +v 9.99 17.79 0.88 +v 10.85 17.79 0.88 +v 10.85 18.64 1.63 +v 9.99 18.64 1.63 +v 9.99 18.64 3.61 +v 10.85 18.64 3.61 +v 10.85 17.79 1.63 +v 9.99 17.79 1.63 +v 9.99 17.79 3.61 +v 10.85 17.79 3.61 +v 10.85 18.64 4.35 +v 9.99 18.64 4.35 +v 9.99 18.64 6.33 +v 10.85 18.64 6.33 +v 10.85 17.79 4.35 +v 9.99 17.79 4.35 +v 9.99 17.79 6.33 +v 10.85 17.79 6.33 +v 11.17 6.95 -11.03 +v 11.17 6.95 -12.83 +v -11.17 6.95 -12.83 +v -11.17 6.95 -11.03 +v 11.17 -0.02 -12.83 +v -11.17 -0.02 -12.83 +v -19.96 4.66 -6.77 +v -19.60 5.22 -6.77 +v -19.60 2.88 -6.77 +v -19.96 2.92 -6.77 +v -20.24 2.96 -6.83 +v -20.24 2.71 -6.83 +v -20.24 2.71 -6.75 +v -20.24 2.96 -6.75 +v -19.60 5.63 -6.83 +v -20.15 4.82 -6.83 +v -20.15 4.82 -6.75 +v -19.60 5.63 -6.75 +v -18.96 2.71 -6.83 +v -18.96 2.96 -6.83 +v -18.96 2.96 -6.75 +v -18.96 2.71 -6.75 +v -19.60 2.63 -6.83 +v -19.05 2.71 -6.83 +v -19.05 2.71 -6.75 +v -19.60 2.63 -6.75 +v -20.15 2.71 -6.92 +v -20.15 2.96 -6.92 +v -19.96 2.92 -6.92 +v -19.60 5.22 -6.83 +v -19.96 4.66 -6.83 +v -19.05 2.96 -6.92 +v -19.05 2.71 -6.92 +v -19.24 2.94 -6.92 +v -19.60 2.63 -6.92 +v -19.60 2.88 -6.92 +v -19.24 4.66 -6.77 +v -19.24 2.94 -6.77 +v -19.05 4.82 -6.83 +v -19.05 4.82 -6.75 +v -20.15 2.71 -6.83 +v -20.15 2.71 -6.75 +v -19.24 4.66 -6.83 +v -19.96 2.92 -6.83 +v -19.24 2.94 -6.83 +v -19.60 2.88 -6.83 +v -19.05 2.96 -6.83 +v -19.05 2.96 -6.75 +v -20.15 2.96 -6.83 +v -20.15 2.96 -6.75 +v -20.24 2.96 -6.92 +v -20.24 2.71 -6.92 +v -18.96 2.71 -6.92 +v -18.96 2.96 -6.92 +v -6.81 4.66 -12.83 +v -6.45 5.22 -12.83 +v -6.45 2.88 -12.83 +v -6.81 2.92 -12.83 +v -7.09 2.96 -12.89 +v -7.09 2.71 -12.89 +v -7.09 2.71 -12.81 +v -7.09 2.96 -12.81 +v -6.45 5.63 -12.89 +v -6.99 4.82 -12.89 +v -6.99 4.82 -12.81 +v -6.45 5.63 -12.81 +v -5.81 2.71 -12.89 +v -5.81 2.96 -12.89 +v -5.81 2.96 -12.81 +v -5.81 2.71 -12.81 +v -6.45 2.63 -12.89 +v -5.90 2.71 -12.89 +v -5.90 2.71 -12.81 +v -6.45 2.63 -12.81 +v -6.99 2.71 -12.98 +v -6.99 2.96 -12.98 +v -6.81 2.92 -12.98 +v -6.45 5.22 -12.89 +v -6.81 4.66 -12.89 +v -5.90 2.96 -12.98 +v -5.90 2.71 -12.98 +v -6.09 2.94 -12.98 +v -6.45 2.63 -12.98 +v -6.45 2.88 -12.98 +v -6.09 4.66 -12.83 +v -6.09 2.94 -12.83 +v -5.90 4.82 -12.89 +v -5.90 4.82 -12.81 +v -6.99 2.71 -12.89 +v -6.99 2.71 -12.81 +v -6.09 4.66 -12.89 +v -6.81 2.92 -12.89 +v -6.09 2.94 -12.89 +v -6.45 2.88 -12.89 +v -5.90 2.96 -12.89 +v -5.90 2.96 -12.81 +v -6.99 2.96 -12.89 +v -6.99 2.96 -12.81 +v -7.09 2.96 -12.98 +v -7.09 2.71 -12.98 +v -5.81 2.71 -12.98 +v -5.81 2.96 -12.98 +v -4.17 10.56 -11.04 +v -3.81 11.12 -11.04 +v -3.81 8.77 -11.04 +v -4.17 8.82 -11.04 +v -4.45 8.86 -11.10 +v -4.45 8.61 -11.10 +v -4.45 8.61 -11.02 +v -4.45 8.86 -11.02 +v -3.81 11.53 -11.10 +v -4.36 10.72 -11.10 +v -4.36 10.72 -11.02 +v -3.81 11.53 -11.02 +v -3.17 8.61 -11.10 +v -3.17 8.86 -11.10 +v -3.17 8.86 -11.02 +v -3.17 8.61 -11.02 +v -3.81 8.52 -11.10 +v -3.27 8.61 -11.10 +v -3.27 8.61 -11.02 +v -3.81 8.52 -11.02 +v -4.36 8.61 -11.19 +v -4.36 8.86 -11.19 +v -4.17 8.82 -11.19 +v -3.81 11.12 -11.10 +v -4.17 10.56 -11.10 +v -3.27 8.86 -11.19 +v -3.27 8.61 -11.19 +v -3.45 8.83 -11.19 +v -3.81 8.52 -11.19 +v -3.81 8.77 -11.19 +v -3.45 10.56 -11.04 +v -3.45 8.83 -11.04 +v -3.27 10.72 -11.10 +v -3.27 10.72 -11.02 +v -4.36 8.61 -11.10 +v -4.36 8.61 -11.02 +v -3.45 10.56 -11.10 +v -4.17 8.82 -11.10 +v -3.45 8.83 -11.10 +v -3.81 8.77 -11.10 +v -3.27 8.86 -11.10 +v -3.27 8.86 -11.02 +v -4.36 8.86 -11.10 +v -4.36 8.86 -11.02 +v -4.45 8.86 -11.19 +v -4.45 8.61 -11.19 +v -3.17 8.61 -11.19 +v -3.17 8.86 -11.19 +v 3.09 10.56 -11.04 +v 3.44 11.12 -11.04 +v 3.44 8.77 -11.04 +v 3.09 8.82 -11.04 +v 2.81 8.86 -11.10 +v 2.81 8.61 -11.10 +v 2.81 8.61 -11.02 +v 2.81 8.86 -11.02 +v 3.44 11.53 -11.10 +v 2.90 10.72 -11.10 +v 2.90 10.72 -11.02 +v 3.44 11.53 -11.02 +v 4.08 8.61 -11.10 +v 4.08 8.86 -11.10 +v 4.08 8.86 -11.02 +v 4.08 8.61 -11.02 +v 3.44 8.52 -11.10 +v 3.99 8.61 -11.10 +v 3.99 8.61 -11.02 +v 3.44 8.52 -11.02 +v 2.90 8.61 -11.19 +v 2.90 8.86 -11.19 +v 3.09 8.82 -11.19 +v 3.44 11.12 -11.10 +v 3.09 10.56 -11.10 +v 3.99 8.86 -11.19 +v 3.99 8.61 -11.19 +v 3.80 8.83 -11.19 +v 3.44 8.52 -11.19 +v 3.44 8.77 -11.19 +v 3.80 10.56 -11.04 +v 3.80 8.83 -11.04 +v 3.99 10.72 -11.10 +v 3.99 10.72 -11.02 +v 2.90 8.61 -11.10 +v 2.90 8.61 -11.02 +v 3.80 10.56 -11.10 +v 3.09 8.82 -11.10 +v 3.80 8.83 -11.10 +v 3.44 8.77 -11.10 +v 3.99 8.86 -11.10 +v 3.99 8.86 -11.02 +v 2.90 8.86 -11.10 +v 2.90 8.86 -11.02 +v 2.81 8.86 -11.19 +v 2.81 8.61 -11.19 +v 4.08 8.61 -11.19 +v 4.08 8.86 -11.19 +v 5.72 4.66 -12.83 +v 6.08 5.22 -12.83 +v 6.08 2.88 -12.83 +v 5.72 2.92 -12.83 +v 5.44 2.96 -12.89 +v 5.44 2.71 -12.89 +v 5.44 2.71 -12.81 +v 5.44 2.96 -12.81 +v 6.08 5.63 -12.89 +v 5.54 4.82 -12.89 +v 5.54 4.82 -12.81 +v 6.08 5.63 -12.81 +v 6.72 2.71 -12.89 +v 6.72 2.96 -12.89 +v 6.72 2.96 -12.81 +v 6.72 2.71 -12.81 +v 6.08 2.63 -12.89 +v 6.63 2.71 -12.89 +v 6.63 2.71 -12.81 +v 6.08 2.63 -12.81 +v 5.54 2.71 -12.98 +v 5.54 2.96 -12.98 +v 5.72 2.92 -12.98 +v 6.08 5.22 -12.89 +v 5.72 4.66 -12.89 +v 6.63 2.96 -12.98 +v 6.63 2.71 -12.98 +v 6.44 2.94 -12.98 +v 6.08 2.63 -12.98 +v 6.08 2.88 -12.98 +v 6.44 4.66 -12.83 +v 6.44 2.94 -12.83 +v 6.63 4.82 -12.89 +v 6.63 4.82 -12.81 +v 5.54 2.71 -12.89 +v 5.54 2.71 -12.81 +v 6.44 4.66 -12.89 +v 5.72 2.92 -12.89 +v 6.44 2.94 -12.89 +v 6.08 2.88 -12.89 +v 6.63 2.96 -12.89 +v 6.63 2.96 -12.81 +v 5.54 2.96 -12.89 +v 5.54 2.96 -12.81 +v 5.44 2.96 -12.98 +v 5.44 2.71 -12.98 +v 6.72 2.71 -12.98 +v 6.72 2.96 -12.98 +v -6.30 20.76 -3.63 +v -5.94 21.32 -3.63 +v -5.94 18.98 -3.63 +v -6.30 19.02 -3.63 +v -6.58 19.06 -3.69 +v -6.58 18.81 -3.69 +v -6.58 18.81 -3.60 +v -6.58 19.06 -3.60 +v -5.94 21.73 -3.69 +v -6.49 20.92 -3.69 +v -6.49 20.92 -3.60 +v -5.94 21.73 -3.60 +v -5.30 18.81 -3.69 +v -5.30 19.06 -3.69 +v -5.30 19.06 -3.60 +v -5.30 18.81 -3.60 +v -5.94 18.73 -3.69 +v -5.40 18.81 -3.69 +v -5.40 18.81 -3.60 +v -5.94 18.73 -3.60 +v -6.49 18.81 -3.78 +v -6.49 19.06 -3.78 +v -6.30 19.02 -3.78 +v -5.94 21.32 -3.69 +v -6.30 20.76 -3.69 +v -5.40 19.06 -3.78 +v -5.40 18.81 -3.78 +v -5.58 19.04 -3.78 +v -5.94 18.73 -3.78 +v -5.94 18.98 -3.78 +v -5.58 20.76 -3.63 +v -5.58 19.04 -3.63 +v -5.40 20.92 -3.69 +v -5.40 20.92 -3.60 +v -6.49 18.81 -3.69 +v -6.49 18.81 -3.60 +v -5.58 20.76 -3.69 +v -6.30 19.02 -3.69 +v -5.58 19.04 -3.69 +v -5.94 18.98 -3.69 +v -5.40 19.06 -3.69 +v -5.40 19.06 -3.60 +v -6.49 19.06 -3.69 +v -6.49 19.06 -3.60 +v -6.58 19.06 -3.78 +v -6.58 18.81 -3.78 +v -5.30 18.81 -3.78 +v -5.30 19.06 -3.78 +v 5.89 20.76 -3.63 +v 6.25 21.32 -3.63 +v 6.25 18.98 -3.63 +v 5.89 19.02 -3.63 +v 5.61 19.06 -3.69 +v 5.61 18.81 -3.69 +v 5.61 18.81 -3.60 +v 5.61 19.06 -3.60 +v 6.25 21.73 -3.69 +v 5.70 20.92 -3.69 +v 5.70 20.92 -3.60 +v 6.25 21.73 -3.60 +v 6.89 18.81 -3.69 +v 6.89 19.06 -3.69 +v 6.89 19.06 -3.60 +v 6.89 18.81 -3.60 +v 6.25 18.73 -3.69 +v 6.79 18.81 -3.69 +v 6.79 18.81 -3.60 +v 6.25 18.73 -3.60 +v 5.70 18.81 -3.78 +v 5.70 19.06 -3.78 +v 5.89 19.02 -3.78 +v 6.25 21.32 -3.69 +v 5.89 20.76 -3.69 +v 6.79 19.06 -3.78 +v 6.79 18.81 -3.78 +v 6.61 19.04 -3.78 +v 6.25 18.73 -3.78 +v 6.25 18.98 -3.78 +v 6.61 20.76 -3.63 +v 6.61 19.04 -3.63 +v 6.79 20.92 -3.69 +v 6.79 20.92 -3.60 +v 5.70 18.81 -3.69 +v 5.70 18.81 -3.60 +v 6.61 20.76 -3.69 +v 5.89 19.02 -3.69 +v 6.61 19.04 -3.69 +v 6.25 18.98 -3.69 +v 6.79 19.06 -3.69 +v 6.79 19.06 -3.60 +v 5.70 19.06 -3.69 +v 5.70 19.06 -3.60 +v 5.61 19.06 -3.78 +v 5.61 18.81 -3.78 +v 6.89 18.81 -3.78 +v 6.89 19.06 -3.78 +v -8.76 20.76 0.36 +v -8.76 21.32 -0.00 +v -8.76 18.98 -0.00 +v -8.76 19.02 0.36 +v -8.82 19.06 0.64 +v -8.82 18.81 0.64 +v -8.74 18.81 0.64 +v -8.74 19.06 0.64 +v -8.82 21.73 -0.00 +v -8.82 20.92 0.55 +v -8.74 20.92 0.55 +v -8.74 21.73 -0.00 +v -8.82 18.81 -0.64 +v -8.82 19.06 -0.64 +v -8.74 19.06 -0.64 +v -8.74 18.81 -0.64 +v -8.82 18.73 -0.00 +v -8.82 18.81 -0.55 +v -8.74 18.81 -0.55 +v -8.74 18.73 -0.00 +v -8.91 18.81 0.55 +v -8.91 19.06 0.55 +v -8.91 19.02 0.36 +v -8.82 21.32 -0.00 +v -8.82 20.76 0.36 +v -8.91 19.06 -0.55 +v -8.91 18.81 -0.55 +v -8.91 19.04 -0.36 +v -8.91 18.73 -0.00 +v -8.91 18.98 -0.00 +v -8.76 20.76 -0.36 +v -8.76 19.04 -0.36 +v -8.82 20.92 -0.55 +v -8.74 20.92 -0.55 +v -8.82 18.81 0.55 +v -8.74 18.81 0.55 +v -8.82 20.76 -0.36 +v -8.82 19.02 0.36 +v -8.82 19.04 -0.36 +v -8.82 18.98 -0.00 +v -8.82 19.06 -0.55 +v -8.74 19.06 -0.55 +v -8.82 19.06 0.55 +v -8.74 19.06 0.55 +v -8.91 19.06 0.64 +v -8.91 18.81 0.64 +v -8.91 18.81 -0.64 +v -8.91 19.06 -0.64 +v -23.42 4.66 -0.35 +v -23.42 2.92 -0.35 +v -23.42 2.88 0.01 +v -23.42 5.22 0.01 +v -23.48 2.96 -0.63 +v -23.40 2.96 -0.63 +v -23.40 2.71 -0.63 +v -23.48 2.71 -0.63 +v -23.48 5.63 0.01 +v -23.40 5.63 0.01 +v -23.40 4.82 -0.54 +v -23.48 4.82 -0.54 +v -23.48 2.71 0.65 +v -23.40 2.71 0.65 +v -23.40 2.96 0.65 +v -23.48 2.96 0.65 +v -23.48 2.63 0.01 +v -23.40 2.63 0.01 +v -23.40 2.71 0.55 +v -23.48 2.71 0.55 +v -23.57 2.71 -0.54 +v -23.57 2.92 -0.35 +v -23.57 2.96 -0.54 +v -23.48 5.22 0.01 +v -23.48 4.66 -0.35 +v -23.57 2.96 0.55 +v -23.57 2.94 0.37 +v -23.57 2.71 0.55 +v -23.57 2.63 0.01 +v -23.57 2.88 0.01 +v -23.42 4.66 0.37 +v -23.42 2.94 0.37 +v -23.48 4.82 0.55 +v -23.40 4.82 0.55 +v -23.48 2.71 -0.54 +v -23.40 2.71 -0.54 +v -23.48 4.66 0.37 +v -23.48 2.92 -0.35 +v -23.48 2.94 0.37 +v -23.48 2.88 0.01 +v -23.48 2.96 0.55 +v -23.40 2.96 0.55 +v -23.40 2.96 -0.54 +v -23.48 2.96 -0.54 +v -23.57 2.71 -0.63 +v -23.57 2.96 -0.63 +v -23.57 2.96 0.65 +v -23.57 2.71 0.65 +v -19.96 4.66 6.78 +v -19.96 2.92 6.78 +v -19.60 2.88 6.78 +v -19.60 5.22 6.78 +v -20.24 2.96 6.85 +v -20.24 2.96 6.76 +v -20.24 2.71 6.76 +v -20.24 2.71 6.85 +v -19.60 5.63 6.85 +v -19.60 5.63 6.76 +v -20.15 4.82 6.76 +v -20.15 4.82 6.85 +v -18.96 2.71 6.85 +v -18.96 2.71 6.76 +v -18.96 2.96 6.76 +v -18.96 2.96 6.85 +v -19.60 2.63 6.85 +v -19.60 2.63 6.76 +v -19.05 2.71 6.76 +v -19.05 2.71 6.85 +v -20.15 2.71 6.94 +v -19.96 2.92 6.94 +v -20.15 2.96 6.94 +v -19.60 5.22 6.85 +v -19.96 4.66 6.85 +v -19.05 2.96 6.94 +v -19.24 2.94 6.94 +v -19.05 2.71 6.94 +v -19.60 2.63 6.94 +v -19.60 2.88 6.94 +v -19.24 4.66 6.78 +v -19.24 2.94 6.78 +v -19.05 4.82 6.85 +v -19.05 4.82 6.76 +v -20.15 2.71 6.85 +v -20.15 2.71 6.76 +v -19.24 4.66 6.85 +v -19.96 2.92 6.85 +v -19.24 2.94 6.85 +v -19.60 2.88 6.85 +v -19.05 2.96 6.85 +v -19.05 2.96 6.76 +v -20.15 2.96 6.76 +v -20.15 2.96 6.85 +v -20.24 2.71 6.94 +v -20.24 2.96 6.94 +v -18.96 2.96 6.94 +v -18.96 2.71 6.94 +v -5.42 9.62 11.04 +v -5.42 7.88 11.04 +v -5.06 7.83 11.04 +v -5.06 10.18 11.04 +v -5.70 7.92 11.10 +v -5.70 7.92 11.01 +v -5.70 7.67 11.01 +v -5.70 7.67 11.10 +v -5.06 10.59 11.10 +v -5.06 10.59 11.01 +v -5.61 9.78 11.01 +v -5.61 9.78 11.10 +v -4.43 7.67 11.10 +v -4.43 7.67 11.01 +v -4.43 7.92 11.01 +v -4.43 7.92 11.10 +v -5.06 7.58 11.10 +v -5.06 7.58 11.01 +v -4.52 7.67 11.01 +v -4.52 7.67 11.10 +v -5.61 7.67 11.19 +v -5.42 7.88 11.19 +v -5.61 7.92 11.19 +v -5.06 10.18 11.10 +v -5.42 9.62 11.10 +v -4.52 7.92 11.19 +v -4.71 7.89 11.19 +v -4.52 7.67 11.19 +v -5.06 7.58 11.19 +v -5.06 7.83 11.19 +v -4.71 9.62 11.04 +v -4.71 7.89 11.04 +v -4.52 9.78 11.10 +v -4.52 9.78 11.01 +v -5.61 7.67 11.10 +v -5.61 7.67 11.01 +v -4.71 9.62 11.10 +v -5.42 7.88 11.10 +v -4.71 7.89 11.10 +v -5.06 7.83 11.10 +v -4.52 7.92 11.10 +v -4.52 7.92 11.01 +v -5.61 7.92 11.01 +v -5.61 7.92 11.10 +v -5.70 7.67 11.19 +v -5.70 7.92 11.19 +v -4.43 7.92 11.19 +v -4.43 7.67 11.19 +v 3.43 9.62 11.04 +v 3.43 7.88 11.04 +v 3.79 7.83 11.04 +v 3.79 10.18 11.04 +v 3.15 7.92 11.10 +v 3.15 7.92 11.01 +v 3.15 7.67 11.01 +v 3.15 7.67 11.10 +v 3.79 10.59 11.10 +v 3.79 10.59 11.01 +v 3.24 9.78 11.01 +v 3.24 9.78 11.10 +v 4.43 7.67 11.10 +v 4.43 7.67 11.01 +v 4.43 7.92 11.01 +v 4.43 7.92 11.10 +v 3.79 7.58 11.10 +v 3.79 7.58 11.01 +v 4.33 7.67 11.01 +v 4.33 7.67 11.10 +v 3.24 7.67 11.19 +v 3.43 7.88 11.19 +v 3.24 7.92 11.19 +v 3.79 10.18 11.10 +v 3.43 9.62 11.10 +v 4.33 7.92 11.19 +v 4.15 7.89 11.19 +v 4.33 7.67 11.19 +v 3.79 7.58 11.19 +v 3.79 7.83 11.19 +v 4.15 9.62 11.04 +v 4.15 7.89 11.04 +v 4.33 9.78 11.10 +v 4.33 9.78 11.01 +v 3.24 7.67 11.10 +v 3.24 7.67 11.01 +v 4.15 9.62 11.10 +v 3.43 7.88 11.10 +v 4.15 7.89 11.10 +v 3.79 7.83 11.10 +v 4.33 7.92 11.10 +v 4.33 7.92 11.01 +v 3.24 7.92 11.01 +v 3.24 7.92 11.10 +v 3.15 7.67 11.19 +v 3.15 7.92 11.19 +v 4.43 7.92 11.19 +v 4.43 7.67 11.19 +v -0.84 4.66 11.04 +v -0.84 2.92 11.04 +v -0.48 2.88 11.04 +v -0.48 5.22 11.04 +v -1.12 2.96 11.10 +v -1.12 2.96 11.01 +v -1.12 2.71 11.01 +v -1.12 2.71 11.10 +v -0.48 5.63 11.10 +v -0.48 5.63 11.01 +v -1.03 4.82 11.01 +v -1.03 4.82 11.10 +v 0.15 2.71 11.10 +v 0.15 2.71 11.01 +v 0.15 2.96 11.01 +v 0.15 2.96 11.10 +v -0.48 2.63 11.10 +v -0.48 2.63 11.01 +v 0.06 2.71 11.01 +v 0.06 2.71 11.10 +v -1.03 2.71 11.19 +v -0.84 2.92 11.19 +v -1.03 2.96 11.19 +v -0.48 5.22 11.10 +v -0.84 4.66 11.10 +v 0.06 2.96 11.19 +v -0.13 2.94 11.19 +v 0.06 2.71 11.19 +v -0.48 2.63 11.19 +v -0.48 2.88 11.19 +v -0.13 4.66 11.04 +v -0.13 2.94 11.04 +v 0.06 4.82 11.10 +v 0.06 4.82 11.01 +v -1.03 2.71 11.10 +v -1.03 2.71 11.01 +v -0.13 4.66 11.10 +v -0.84 2.92 11.10 +v -0.13 2.94 11.10 +v -0.48 2.88 11.10 +v 0.06 2.96 11.10 +v 0.06 2.96 11.01 +v -1.03 2.96 11.01 +v -1.03 2.96 11.10 +v -1.12 2.71 11.19 +v -1.12 2.96 11.19 +v 0.15 2.96 11.19 +v 0.15 2.71 11.19 +v 0.43 20.76 3.64 +v 0.07 21.32 3.64 +v 0.07 18.98 3.64 +v 0.43 19.02 3.64 +v 0.71 19.06 3.70 +v 0.71 18.81 3.70 +v 0.71 18.81 3.61 +v 0.71 19.06 3.61 +v 0.07 21.73 3.70 +v 0.62 20.92 3.70 +v 0.62 20.92 3.61 +v 0.07 21.73 3.61 +v -0.57 18.81 3.70 +v -0.57 19.06 3.70 +v -0.57 19.06 3.61 +v -0.57 18.81 3.61 +v 0.07 18.73 3.70 +v -0.47 18.81 3.70 +v -0.47 18.81 3.61 +v 0.07 18.73 3.61 +v 0.62 18.81 3.79 +v 0.62 19.06 3.79 +v 0.43 19.02 3.79 +v 0.07 21.32 3.70 +v 0.43 20.76 3.70 +v -0.47 19.06 3.79 +v -0.47 18.81 3.79 +v -0.29 19.04 3.79 +v 0.07 18.73 3.79 +v 0.07 18.98 3.79 +v -0.29 20.76 3.64 +v -0.29 19.04 3.64 +v -0.47 20.92 3.70 +v -0.47 20.92 3.61 +v 0.62 18.81 3.70 +v 0.62 18.81 3.61 +v -0.29 20.76 3.70 +v 0.43 19.02 3.70 +v -0.29 19.04 3.70 +v 0.07 18.98 3.70 +v -0.47 19.06 3.70 +v -0.47 19.06 3.61 +v 0.62 19.06 3.70 +v 0.62 19.06 3.61 +v 0.71 19.06 3.79 +v 0.71 18.81 3.79 +v -0.57 18.81 3.79 +v -0.57 19.06 3.79 +v 6.58 20.76 3.64 +v 6.22 21.32 3.64 +v 6.22 18.98 3.64 +v 6.58 19.02 3.64 +v 6.86 19.06 3.70 +v 6.86 18.81 3.70 +v 6.86 18.81 3.61 +v 6.86 19.06 3.61 +v 6.22 21.73 3.70 +v 6.76 20.92 3.70 +v 6.76 20.92 3.61 +v 6.22 21.73 3.61 +v 5.58 18.81 3.70 +v 5.58 19.06 3.70 +v 5.58 19.06 3.61 +v 5.58 18.81 3.61 +v 6.22 18.73 3.70 +v 5.67 18.81 3.70 +v 5.67 18.81 3.61 +v 6.22 18.73 3.61 +v 6.76 18.81 3.79 +v 6.76 19.06 3.79 +v 6.58 19.02 3.79 +v 6.22 21.32 3.70 +v 6.58 20.76 3.70 +v 5.67 19.06 3.79 +v 5.67 18.81 3.79 +v 5.86 19.04 3.79 +v 6.22 18.73 3.79 +v 6.22 18.98 3.79 +v 5.86 20.76 3.64 +v 5.86 19.04 3.64 +v 5.67 20.92 3.70 +v 5.67 20.92 3.61 +v 6.76 18.81 3.70 +v 6.76 18.81 3.61 +v 5.86 20.76 3.70 +v 6.58 19.02 3.70 +v 5.86 19.04 3.70 +v 6.22 18.98 3.70 +v 5.67 19.06 3.70 +v 5.67 19.06 3.61 +v 6.76 19.06 3.70 +v 6.76 19.06 3.61 +v 6.86 19.06 3.79 +v 6.86 18.81 3.79 +v 5.58 18.81 3.79 +v 5.58 19.06 3.79 +v 12.89 4.66 -3.98 +v 12.89 5.22 -3.62 +v 12.89 2.88 -3.62 +v 12.89 2.92 -3.98 +v 12.96 2.96 -4.26 +v 12.96 2.71 -4.26 +v 12.87 2.71 -4.26 +v 12.87 2.96 -4.26 +v 12.96 5.63 -3.62 +v 12.96 4.82 -4.17 +v 12.87 4.82 -4.17 +v 12.87 5.63 -3.62 +v 12.96 2.71 -2.98 +v 12.96 2.96 -2.98 +v 12.87 2.96 -2.98 +v 12.87 2.71 -2.98 +v 12.96 2.63 -3.62 +v 12.96 2.71 -3.08 +v 12.87 2.71 -3.08 +v 12.87 2.63 -3.62 +v 13.05 2.71 -4.17 +v 13.05 2.96 -4.17 +v 13.05 2.92 -3.98 +v 12.96 5.22 -3.62 +v 12.96 4.66 -3.98 +v 13.05 2.96 -3.08 +v 13.05 2.71 -3.08 +v 13.05 2.94 -3.26 +v 13.05 2.63 -3.62 +v 13.05 2.88 -3.62 +v 12.89 4.66 -3.26 +v 12.89 2.94 -3.26 +v 12.96 4.82 -3.08 +v 12.87 4.82 -3.08 +v 12.96 2.71 -4.17 +v 12.87 2.71 -4.17 +v 12.96 4.66 -3.26 +v 12.96 2.92 -3.98 +v 12.96 2.94 -3.26 +v 12.96 2.88 -3.62 +v 12.96 2.96 -3.08 +v 12.87 2.96 -3.08 +v 12.96 2.96 -4.17 +v 12.87 2.96 -4.17 +v 13.05 2.96 -4.26 +v 13.05 2.71 -4.26 +v 13.05 2.71 -2.98 +v 13.05 2.96 -2.98 +v 12.89 4.66 3.26 +v 12.89 5.22 3.62 +v 12.89 2.88 3.62 +v 12.89 2.92 3.26 +v 12.96 2.96 2.98 +v 12.96 2.71 2.98 +v 12.87 2.71 2.98 +v 12.87 2.96 2.98 +v 12.96 5.63 3.62 +v 12.96 4.82 3.08 +v 12.87 4.82 3.08 +v 12.87 5.63 3.62 +v 12.96 2.71 4.26 +v 12.96 2.96 4.26 +v 12.87 2.96 4.26 +v 12.87 2.71 4.26 +v 12.96 2.63 3.62 +v 12.96 2.71 4.17 +v 12.87 2.71 4.17 +v 12.87 2.63 3.62 +v 13.05 2.71 3.08 +v 13.05 2.96 3.08 +v 13.05 2.92 3.26 +v 12.96 5.22 3.62 +v 12.96 4.66 3.26 +v 13.05 2.96 4.17 +v 13.05 2.71 4.17 +v 13.05 2.94 3.98 +v 13.05 2.63 3.62 +v 13.05 2.88 3.62 +v 12.89 4.66 3.98 +v 12.89 2.94 3.98 +v 12.96 4.82 4.17 +v 12.87 4.82 4.17 +v 12.96 2.71 3.08 +v 12.87 2.71 3.08 +v 12.96 4.66 3.98 +v 12.96 2.92 3.26 +v 12.96 2.94 3.98 +v 12.96 2.88 3.62 +v 12.96 2.96 4.17 +v 12.87 2.96 4.17 +v 12.96 2.96 3.08 +v 12.87 2.96 3.08 +v 13.05 2.96 2.98 +v 13.05 2.71 2.98 +v 13.05 2.71 4.26 +v 13.05 2.96 4.26 +v 8.75 20.76 0.36 +v 8.75 19.02 0.36 +v 8.75 18.98 -0.00 +v 8.75 21.32 -0.00 +v 8.81 19.06 0.64 +v 8.73 19.06 0.64 +v 8.73 18.81 0.64 +v 8.81 18.81 0.64 +v 8.81 21.73 -0.00 +v 8.73 21.73 -0.00 +v 8.73 20.92 0.55 +v 8.81 20.92 0.55 +v 8.81 18.81 -0.64 +v 8.73 18.81 -0.64 +v 8.73 19.06 -0.64 +v 8.81 19.06 -0.64 +v 8.81 18.73 -0.00 +v 8.73 18.73 -0.00 +v 8.73 18.81 -0.55 +v 8.81 18.81 -0.55 +v 8.90 18.81 0.55 +v 8.90 19.02 0.36 +v 8.90 19.06 0.55 +v 8.81 21.32 -0.00 +v 8.81 20.76 0.36 +v 8.90 19.06 -0.55 +v 8.90 19.04 -0.36 +v 8.90 18.81 -0.55 +v 8.90 18.73 -0.00 +v 8.90 18.98 -0.00 +v 8.75 20.76 -0.36 +v 8.75 19.04 -0.36 +v 8.81 20.92 -0.55 +v 8.73 20.92 -0.55 +v 8.81 18.81 0.55 +v 8.73 18.81 0.55 +v 8.81 20.76 -0.36 +v 8.81 19.02 0.36 +v 8.81 19.04 -0.36 +v 8.81 18.98 -0.00 +v 8.81 19.06 -0.55 +v 8.73 19.06 -0.55 +v 8.73 19.06 0.55 +v 8.81 19.06 0.55 +v 8.90 18.81 0.64 +v 8.90 19.06 0.64 +v 8.90 19.06 -0.64 +v 8.90 18.81 -0.64 +v -5.91 20.76 3.64 +v -6.27 21.32 3.64 +v -6.27 18.98 3.64 +v -5.91 19.02 3.64 +v -5.63 19.06 3.70 +v -5.63 18.81 3.70 +v -5.63 18.81 3.61 +v -5.63 19.06 3.61 +v -6.27 21.73 3.70 +v -5.73 20.92 3.70 +v -5.73 20.92 3.61 +v -6.27 21.73 3.61 +v -6.91 18.81 3.70 +v -6.91 19.06 3.70 +v -6.91 19.06 3.61 +v -6.91 18.81 3.61 +v -6.27 18.73 3.70 +v -6.82 18.81 3.70 +v -6.82 18.81 3.61 +v -6.27 18.73 3.61 +v -5.73 18.81 3.79 +v -5.73 19.06 3.79 +v -5.91 19.02 3.79 +v -6.27 21.32 3.70 +v -5.91 20.76 3.70 +v -6.82 19.06 3.79 +v -6.82 18.81 3.79 +v -6.63 19.04 3.79 +v -6.27 18.73 3.79 +v -6.27 18.98 3.79 +v -6.63 20.76 3.64 +v -6.63 19.04 3.64 +v -6.82 20.92 3.70 +v -6.82 20.92 3.61 +v -5.73 18.81 3.70 +v -5.73 18.81 3.61 +v -6.63 20.76 3.70 +v -5.91 19.02 3.70 +v -6.63 19.04 3.70 +v -6.27 18.98 3.70 +v -6.82 19.06 3.70 +v -6.82 19.06 3.61 +v -5.73 19.06 3.70 +v -5.73 19.06 3.61 +v -5.63 19.06 3.79 +v -5.63 18.81 3.79 +v -6.91 18.81 3.79 +v -6.91 19.06 3.79 +v 1.22 3.89 -13.04 +v 1.22 0.00 -13.04 +v 0.00 0.00 -13.04 +v 0.00 4.45 -13.04 +v -2.44 3.02 -13.04 +v -1.22 3.89 -13.04 +v -1.22 0.00 -13.04 +v -2.44 0.00 -13.04 +v 2.44 3.02 -13.04 +v 2.44 0.00 -13.04 +v 2.76 0.00 -12.61 +v 2.76 0.00 -13.28 +v 2.72 2.63 -13.28 +v 2.72 2.63 -12.61 +v 2.32 0.00 -13.28 +v 2.28 2.21 -13.28 +v 2.32 0.00 -12.61 +v 2.28 2.21 -12.61 +v 1.57 4.51 -13.28 +v 1.57 4.51 -12.61 +v 1.32 3.79 -13.28 +v 1.32 3.79 -12.61 +v 0.00 5.20 -13.28 +v 0.00 5.20 -12.61 +v 0.00 4.45 -13.28 +v 0.00 4.45 -12.61 +v -1.57 4.51 -13.28 +v -1.57 4.51 -12.61 +v -1.32 3.79 -13.28 +v -1.32 3.79 -12.61 +v -2.72 2.63 -13.28 +v -2.72 2.63 -12.61 +v -2.28 2.21 -13.28 +v -2.28 2.21 -12.61 +v -2.76 0.00 -13.28 +v -2.76 0.00 -12.61 +v -2.32 0.00 -13.28 +v -2.32 0.00 -12.61 +v -23.02 0.02 -7.19 +v -23.81 0.02 -7.26 +v -23.50 3.76 -6.94 +v -22.95 3.76 -6.89 +v -23.10 0.02 -6.35 +v -23.01 3.76 -6.25 +v -23.88 0.02 -6.42 +v -23.56 3.76 -6.30 +v -23.00 6.77 -7.20 +v -23.83 6.77 -7.27 +v -23.08 7.23 -6.33 +v -23.90 7.23 -6.41 +v -23.14 6.61 -6.66 +v -23.14 6.39 0.01 +v -23.82 6.39 0.01 +v -23.82 6.61 -6.66 +v -23.82 7.03 0.01 +v -23.82 7.24 -6.66 +v -23.14 7.03 0.01 +v -23.14 7.24 -6.66 +v -23.14 6.61 6.68 +v -23.82 6.61 6.68 +v -23.82 7.24 6.68 +v -23.14 7.24 6.68 +v -10.64 6.61 -6.65 +v -17.31 6.39 -6.65 +v -17.31 6.39 -7.33 +v -10.64 6.61 -7.33 +v -17.31 7.03 -7.33 +v -10.64 7.24 -7.33 +v -17.31 7.03 -6.65 +v -10.64 7.24 -6.65 +v -23.99 6.61 -6.65 +v -23.99 6.61 -7.33 +v -23.99 7.24 -7.33 +v -23.99 7.24 -6.65 +v -23.02 0.02 7.20 +v -22.95 3.76 6.91 +v -23.50 3.76 6.95 +v -23.81 0.02 7.27 +v -23.10 0.02 6.37 +v -23.01 3.76 6.27 +v -23.88 0.02 6.44 +v -23.56 3.76 6.32 +v -23.00 6.77 7.22 +v -23.83 6.77 7.29 +v -23.08 7.23 6.35 +v -23.90 7.23 6.42 +v -10.64 6.61 6.68 +v -10.64 6.61 7.36 +v -17.31 6.39 7.36 +v -17.31 6.39 6.68 +v -10.64 7.24 7.36 +v -17.31 7.03 7.36 +v -10.64 7.24 6.68 +v -17.31 7.03 6.68 +v -23.99 6.61 7.36 +v -23.99 6.61 6.68 +v -23.99 7.24 7.36 +v -23.99 7.24 6.68 +v 8.74 6.44 10.70 +v 8.74 6.44 11.59 +v 0.00 6.16 11.59 +v 0.00 6.16 10.70 +v 8.74 7.27 11.59 +v 0.00 6.98 11.59 +v 8.74 7.27 10.70 +v 0.00 6.98 10.70 +v -8.74 6.44 11.59 +v -8.74 6.44 10.70 +v -8.74 7.27 11.59 +v -8.74 7.27 10.70 +v 8.74 17.79 -0.00 +v 8.74 27.72 -0.00 +v 8.74 23.62 3.62 +v 0.00 17.79 -3.62 +v 0.00 23.02 -3.62 +v 8.74 23.62 -3.62 +v -8.74 17.79 -0.00 +v -8.74 27.60 -0.00 +v -8.74 23.62 -3.62 +v 0.00 17.79 3.62 +v 0.00 23.02 3.62 +v -8.74 23.62 3.62 +v 8.34 17.58 -3.11 +v 8.50 20.48 -3.15 +v 8.50 20.48 -3.73 +v 8.34 17.58 -3.92 +v 8.34 24.35 -3.11 +v 8.34 23.76 -3.83 +v 9.14 17.58 -3.11 +v 9.09 20.48 -3.15 +v 9.14 24.35 -3.11 +v 9.14 17.58 -3.92 +v 9.09 20.48 -3.73 +v 9.14 23.76 -3.83 +v -0.81 20.18 -3.56 +v -0.81 17.74 -3.56 +v -0.81 17.74 -3.74 +v -0.81 20.18 -3.74 +v -0.95 20.13 -3.74 +v -0.95 17.74 -3.74 +v -0.95 17.74 -3.56 +v -0.95 20.13 -3.56 +v -1.04 20.10 -3.76 +v -1.04 20.10 -3.58 +v -1.04 20.32 -3.58 +v -1.04 20.32 -3.76 +v 1.04 20.32 -3.58 +v 1.04 20.10 -3.58 +v 1.04 20.10 -3.76 +v 1.04 20.32 -3.76 +v -0.39 20.29 -3.76 +v -0.39 20.29 -3.58 +v -0.39 20.51 -3.76 +v -0.39 20.51 -3.58 +v 0.94 20.15 -3.56 +v 0.94 17.74 -3.56 +v 0.94 17.74 -3.74 +v 0.94 20.15 -3.74 +v 0.80 17.74 -3.74 +v 0.80 20.19 -3.74 +v 0.80 17.74 -3.56 +v 0.80 20.19 -3.56 +v 0.39 20.29 -3.76 +v 0.39 20.29 -3.58 +v 0.39 20.51 -3.76 +v 0.39 20.51 -3.58 +v 0.00 20.34 -3.76 +v 0.00 20.34 -3.58 +v 0.00 20.56 -3.76 +v 0.00 20.56 -3.58 +v -0.01 17.69 -4.00 +v 0.78 17.69 -4.00 +v 0.78 17.66 -3.95 +v -0.01 17.66 -3.95 +v -0.01 17.76 -4.01 +v 0.78 17.76 -4.01 +v 0.78 17.75 -3.95 +v 0.78 17.85 -3.95 +v 0.78 17.85 -3.64 +v 0.78 17.75 -3.64 +v 0.78 17.82 -4.00 +v 0.78 17.66 -3.64 +v -0.01 17.85 -3.95 +v -0.01 17.85 -3.64 +v -0.01 17.82 -4.00 +v -0.80 17.66 -3.95 +v -0.80 17.69 -4.00 +v -0.80 17.76 -4.01 +v -0.80 17.85 -3.64 +v -0.80 17.85 -3.95 +v -0.80 17.75 -3.95 +v -0.80 17.75 -3.64 +v -0.80 17.82 -4.00 +v -0.80 17.66 -3.64 +v 0.86 20.19 -3.66 +v 0.86 17.72 -3.66 +v 0.02 17.72 -3.66 +v 0.02 20.45 -3.66 +v -0.82 20.19 -3.66 +v -0.82 17.72 -3.66 +v -9.14 17.58 -3.11 +v -8.97 20.48 -3.15 +v -8.97 20.48 -3.73 +v -9.14 17.58 -3.92 +v -9.14 24.35 -3.11 +v -9.14 23.76 -3.83 +v -8.34 17.58 -3.11 +v -8.39 20.48 -3.15 +v -8.34 24.35 -3.11 +v -8.34 17.58 -3.92 +v -8.39 20.48 -3.73 +v -8.34 23.76 -3.83 +v -9.14 17.58 3.11 +v -9.14 17.58 3.92 +v -8.97 20.48 3.73 +v -8.97 20.48 3.15 +v -9.14 23.76 3.83 +v -9.14 24.35 3.11 +v -8.34 17.58 3.11 +v -8.39 20.48 3.15 +v -8.34 24.35 3.11 +v -8.39 20.48 3.73 +v -8.34 17.58 3.92 +v -8.34 23.76 3.83 +v 8.34 17.58 3.11 +v 8.34 17.58 3.92 +v 8.50 20.48 3.73 +v 8.50 20.48 3.15 +v 8.34 23.76 3.83 +v 8.34 24.35 3.11 +v 9.14 17.58 3.11 +v 9.09 20.48 3.15 +v 9.14 24.35 3.11 +v 9.09 20.48 3.73 +v 9.14 17.58 3.92 +v 9.14 23.76 3.83 +v 12.59 6.44 -8.74 +v 13.48 6.44 -8.74 +v 13.48 6.16 -0.00 +v 12.59 6.16 -0.00 +v 13.48 7.27 -8.74 +v 13.48 6.98 -0.00 +v 12.59 7.27 -8.74 +v 12.59 6.98 -0.00 +v 13.48 6.44 8.74 +v 12.59 6.44 8.74 +v 13.48 7.27 8.74 +v 12.59 7.27 8.74 +v -9.92 18.64 4.67 +v -10.78 18.64 4.67 +v -10.78 18.64 6.66 +v -9.92 18.64 6.66 +v -9.92 17.79 4.67 +v -10.78 17.79 4.67 +v -10.78 17.79 6.66 +v -9.92 17.79 6.66 +v -12.40 7.80 6.90 +v -12.40 7.80 6.03 +v -14.38 7.80 6.03 +v -14.38 7.80 6.90 +v -12.40 6.95 6.90 +v -12.40 6.95 6.03 +v -14.38 6.95 6.03 +v -14.38 6.95 6.90 +v -12.40 7.80 -5.99 +v -12.40 7.80 -6.86 +v -14.38 7.80 -6.86 +v -14.38 7.80 -5.99 +v -12.40 6.95 -5.99 +v -12.40 6.95 -6.86 +v -14.38 6.95 -6.86 +v -14.38 6.95 -5.99 +v -16.55 0.00 12.98 +v -16.55 7.76 12.98 +v -17.17 7.76 10.68 +v -17.17 0.00 10.68 +v -14.87 0.00 14.66 +v -14.87 7.76 14.66 +v -12.57 0.00 15.28 +v -12.57 7.76 15.28 +v -10.27 0.00 14.66 +v -10.27 7.76 14.66 +v -8.58 0.00 12.98 +v -8.58 7.76 12.98 +v -7.97 0.00 10.68 +v -7.97 7.76 10.68 +v -8.58 0.00 8.38 +v -8.58 7.76 8.38 +v -10.27 0.00 6.69 +v -10.27 7.76 6.69 +v -12.57 0.00 6.08 +v -12.57 7.76 6.08 +v -14.87 0.00 6.69 +v -14.87 7.76 6.69 +v -16.55 0.00 8.38 +v -16.55 7.76 8.38 +v -16.78 7.76 13.11 +v -16.78 8.57 13.11 +v -17.43 8.57 10.68 +v -17.43 7.76 10.68 +v -15.00 7.76 14.89 +v -15.00 8.57 14.89 +v -12.57 7.76 15.54 +v -12.57 8.57 15.54 +v -10.13 7.76 14.89 +v -10.13 8.57 14.89 +v -8.35 7.76 13.11 +v -8.35 8.57 13.11 +v -7.70 7.76 10.68 +v -7.70 8.57 10.68 +v -8.35 7.76 8.24 +v -8.35 8.57 8.24 +v -10.13 7.76 6.46 +v -10.13 8.57 6.46 +v -12.57 7.76 5.81 +v -12.57 8.57 5.81 +v -15.00 7.76 6.46 +v -15.00 8.57 6.46 +v -16.78 7.76 8.24 +v -16.78 8.57 8.24 +v -17.17 8.57 10.68 +v -16.55 8.57 12.98 +v -14.87 8.57 14.66 +v -12.57 8.57 15.28 +v -10.27 8.57 14.66 +v -8.58 8.57 12.98 +v -7.97 8.57 10.68 +v -8.58 8.57 8.38 +v -10.27 8.57 6.69 +v -12.57 8.57 6.08 +v -14.87 8.57 6.69 +v -16.55 8.57 8.38 +v -16.55 16.89 12.98 +v -17.17 16.89 10.68 +v -14.87 16.89 14.66 +v -12.57 16.89 15.28 +v -10.27 16.89 14.66 +v -8.58 16.89 12.98 +v -7.97 16.89 10.68 +v -8.58 16.89 8.38 +v -10.27 16.89 6.69 +v -12.57 16.89 6.08 +v -14.87 16.89 6.69 +v -16.55 16.89 8.38 +v -17.13 21.30 13.31 +v -17.47 21.30 13.51 +v -18.23 21.30 10.68 +v -17.83 21.30 10.68 +v -15.20 21.30 15.24 +v -15.40 21.30 15.58 +v -12.57 21.30 15.94 +v -12.57 21.30 16.34 +v -9.93 21.30 15.24 +v -9.73 21.30 15.58 +v -8.01 21.30 13.31 +v -7.66 21.30 13.51 +v -7.30 21.30 10.68 +v -6.90 21.30 10.68 +v -8.01 21.30 8.04 +v -7.66 21.30 7.84 +v -9.93 21.30 6.12 +v -9.73 21.30 5.77 +v -12.57 21.30 5.41 +v -12.57 21.30 5.01 +v -15.20 21.30 6.12 +v -15.40 21.30 5.77 +v -17.13 21.30 8.04 +v -17.47 21.30 7.84 +v -16.17 24.76 12.76 +v -16.72 24.76 10.68 +v -14.64 24.76 14.28 +v -12.57 24.76 14.83 +v -10.49 24.76 14.28 +v -8.97 24.76 12.76 +v -8.41 24.76 10.68 +v -8.97 24.76 8.60 +v -10.49 24.76 7.08 +v -12.57 24.76 6.52 +v -14.64 24.76 7.08 +v -16.17 24.76 8.60 +v -16.13 28.50 12.74 +v -16.69 28.50 10.68 +v -14.63 28.50 14.24 +v -12.57 28.50 14.80 +v -10.51 28.50 14.24 +v -9.00 28.50 12.74 +v -8.45 28.50 10.68 +v -9.00 28.50 8.62 +v -10.51 28.50 7.11 +v -12.57 28.50 6.56 +v -14.63 28.50 7.11 +v -16.13 28.50 8.62 +v -17.13 17.36 13.31 +v -17.83 17.36 10.68 +v -15.20 17.36 15.24 +v -12.57 17.36 15.94 +v -9.93 17.36 15.24 +v -8.01 17.36 13.31 +v -7.30 17.36 10.68 +v -8.01 17.36 8.04 +v -9.93 17.36 6.12 +v -12.57 17.36 5.41 +v -15.20 17.36 6.12 +v -17.13 17.36 8.04 +v -17.91 20.21 10.37 +v -17.91 19.23 10.37 +v -17.91 19.21 10.80 +v -17.91 20.52 10.80 +v -17.81 19.26 10.03 +v -17.81 19.12 10.03 +v -17.91 19.12 10.04 +v -17.91 19.26 10.04 +v -17.89 20.75 10.80 +v -17.84 20.29 10.15 +v -17.94 20.29 10.15 +v -17.98 20.75 10.81 +v -17.68 19.12 11.55 +v -17.68 19.26 11.55 +v -17.78 19.26 11.56 +v -17.78 19.12 11.56 +v -17.89 19.07 10.80 +v -17.73 19.12 11.45 +v -17.82 19.12 11.45 +v -17.98 19.07 10.81 +v -18.05 19.12 10.16 +v -18.08 19.23 10.39 +v -18.05 19.26 10.16 +v -17.98 20.21 10.38 +v -17.98 20.52 10.81 +v -17.93 19.26 11.46 +v -18.01 19.24 11.24 +v -17.93 19.12 11.46 +v -18.09 19.07 10.82 +v -18.09 19.21 10.82 +v -17.83 20.21 11.23 +v -17.83 19.24 11.23 +v -17.73 20.29 11.45 +v -17.82 20.29 11.45 +v -17.84 19.12 10.15 +v -17.94 19.12 10.15 +v -17.90 20.21 11.23 +v -17.98 19.23 10.38 +v -17.90 19.24 11.23 +v -17.98 19.21 10.81 +v -17.82 19.26 11.45 +v -17.73 19.26 11.45 +v -17.84 19.26 10.15 +v -17.94 19.26 10.15 +v -18.02 19.12 10.05 +v -18.02 19.26 10.05 +v -17.88 19.26 11.57 +v -17.88 19.12 11.57 +v -12.87 20.21 16.02 +v -12.87 19.23 16.02 +v -12.44 19.21 16.02 +v -12.44 20.52 16.02 +v -13.21 19.26 15.92 +v -13.21 19.12 15.92 +v -13.20 19.12 16.02 +v -13.20 19.26 16.02 +v -12.44 20.75 16.00 +v -13.10 20.29 15.95 +v -13.09 20.29 16.05 +v -12.43 20.75 16.10 +v -11.69 19.12 15.79 +v -11.69 19.26 15.79 +v -11.68 19.26 15.89 +v -11.68 19.12 15.89 +v -12.44 19.07 16.00 +v -11.80 19.12 15.84 +v -11.79 19.12 15.94 +v -12.43 19.07 16.10 +v -13.08 19.12 16.16 +v -12.85 19.23 16.20 +v -13.08 19.26 16.16 +v -12.86 20.21 16.09 +v -12.43 20.52 16.10 +v -11.78 19.26 16.04 +v -12.00 19.24 16.12 +v -11.78 19.12 16.04 +v -12.42 19.07 16.20 +v -12.42 19.21 16.20 +v -12.01 20.21 15.94 +v -12.01 19.24 15.94 +v -11.80 20.29 15.84 +v -11.79 20.29 15.94 +v -13.10 19.12 15.95 +v -13.09 19.12 16.05 +v -12.01 20.21 16.01 +v -12.86 19.23 16.09 +v -12.01 19.24 16.01 +v -12.43 19.21 16.10 +v -11.79 19.26 15.94 +v -11.80 19.26 15.84 +v -13.10 19.26 15.95 +v -13.09 19.26 16.05 +v -13.19 19.12 16.13 +v -13.19 19.26 16.13 +v -11.67 19.26 16.00 +v -11.67 19.12 16.00 +v -9.24 23.34 12.52 +v -8.56 24.92 12.99 +v -9.10 24.92 13.76 +v -9.78 23.34 13.29 +v -9.53 28.41 12.29 +v -8.63 28.41 12.92 +v -9.18 28.41 13.70 +v -10.08 28.41 13.07 +v -12.87 27.21 14.81 +v -12.87 26.24 14.81 +v -12.44 26.21 14.82 +v -12.44 27.52 14.82 +v -13.21 26.26 14.72 +v -13.21 26.12 14.72 +v -13.20 26.12 14.82 +v -13.20 26.26 14.82 +v -12.44 27.75 14.80 +v -13.10 27.30 14.75 +v -13.09 27.30 14.85 +v -12.43 27.75 14.89 +v -11.69 26.12 14.59 +v -11.69 26.26 14.59 +v -11.68 26.26 14.69 +v -11.68 26.12 14.69 +v -12.44 26.07 14.80 +v -11.80 26.12 14.64 +v -11.79 26.12 14.73 +v -12.43 26.07 14.89 +v -13.08 26.12 14.96 +v -12.85 26.24 14.99 +v -13.08 26.26 14.96 +v -12.86 27.21 14.89 +v -12.43 27.52 14.89 +v -11.78 26.26 14.84 +v -12.00 26.25 14.92 +v -11.78 26.12 14.84 +v -12.42 26.07 15.00 +v -12.42 26.21 15.00 +v -12.01 27.21 14.74 +v -12.01 26.25 14.74 +v -11.80 27.30 14.64 +v -11.79 27.30 14.73 +v -13.10 26.12 14.75 +v -13.09 26.12 14.85 +v -12.01 27.21 14.81 +v -12.86 26.24 14.89 +v -12.01 26.25 14.81 +v -12.43 26.21 14.89 +v -11.79 26.26 14.73 +v -11.80 26.26 14.64 +v -13.10 26.26 14.75 +v -13.09 26.26 14.85 +v -13.19 26.12 14.93 +v -13.19 26.26 14.93 +v -11.67 26.26 14.79 +v -11.67 26.12 14.79 +v -14.41 23.34 14.01 +v -14.88 24.92 14.68 +v -15.65 24.92 14.14 +v -15.18 23.34 13.46 +v -14.18 28.41 13.71 +v -14.81 28.41 14.61 +v -15.59 28.41 14.07 +v -14.96 28.41 13.17 +v -8.43 27.21 10.98 +v -8.43 26.24 10.98 +v -8.42 26.21 10.55 +v -8.42 27.52 10.55 +v -8.52 26.26 11.32 +v -8.52 26.12 11.32 +v -8.42 26.12 11.31 +v -8.42 26.26 11.31 +v -8.45 27.75 10.55 +v -8.49 27.30 11.21 +v -8.39 27.30 11.20 +v -8.35 27.75 10.54 +v -8.65 26.12 9.80 +v -8.65 26.26 9.80 +v -8.56 26.26 9.79 +v -8.56 26.12 9.79 +v -8.45 26.07 10.55 +v -8.61 26.12 9.91 +v -8.51 26.12 9.90 +v -8.35 26.07 10.54 +v -8.29 26.12 11.19 +v -8.25 26.24 10.96 +v -8.29 26.26 11.19 +v -8.35 27.21 10.97 +v -8.35 27.52 10.54 +v -8.40 26.26 9.89 +v -8.32 26.25 10.11 +v -8.40 26.12 9.89 +v -8.24 26.07 10.53 +v -8.24 26.21 10.53 +v -8.50 27.21 10.13 +v -8.50 26.25 10.13 +v -8.61 27.30 9.91 +v -8.51 27.30 9.90 +v -8.49 26.12 11.21 +v -8.39 26.12 11.20 +v -8.43 27.21 10.12 +v -8.35 26.24 10.97 +v -8.43 26.25 10.12 +v -8.35 26.21 10.54 +v -8.51 26.26 9.90 +v -8.61 26.26 9.91 +v -8.49 26.26 11.21 +v -8.39 26.26 11.20 +v -8.32 26.12 11.30 +v -8.32 26.26 11.30 +v -8.45 26.26 9.78 +v -8.45 26.12 9.78 +v -13.04 12.70 6.81 +v -13.04 14.28 5.99 +v -12.09 14.28 5.99 +v -12.09 12.70 6.81 +v -13.04 17.34 6.74 +v -13.04 17.34 5.64 +v -12.09 17.34 5.64 +v -12.09 17.34 6.74 +v -8.98 12.70 12.20 +v -8.27 14.28 12.61 +v -8.74 14.28 13.43 +v -9.46 12.70 13.02 +v -8.92 17.34 12.24 +v -7.97 17.34 12.79 +v -8.44 17.34 13.61 +v -9.39 17.34 13.06 +v -12.09 12.70 14.54 +v -12.09 14.28 15.36 +v -13.04 14.28 15.36 +v -13.04 12.70 14.54 +v -12.09 17.34 14.62 +v -12.09 17.34 15.71 +v -13.04 17.34 15.71 +v -13.04 17.34 14.62 +v -10.73 23.34 7.35 +v -10.25 24.92 6.67 +v -9.48 24.92 7.22 +v -9.95 23.34 7.89 +v -10.95 28.41 7.65 +v -10.32 28.41 6.74 +v -9.55 28.41 7.29 +v -10.18 28.41 8.19 +v -9.46 12.70 8.34 +v -8.74 14.28 7.92 +v -8.27 14.28 8.74 +v -8.98 12.70 9.15 +v -9.39 17.34 8.30 +v -8.44 17.34 7.75 +v -7.97 17.34 8.57 +v -8.92 17.34 9.12 +v -7.23 20.21 10.98 +v -7.23 19.23 10.98 +v -7.22 19.21 10.55 +v -7.22 20.52 10.55 +v -7.32 19.26 11.32 +v -7.32 19.12 11.32 +v -7.22 19.12 11.31 +v -7.22 19.26 11.31 +v -7.24 20.75 10.55 +v -7.29 20.29 11.21 +v -7.19 20.29 11.20 +v -7.15 20.75 10.54 +v -7.45 19.12 9.80 +v -7.45 19.26 9.80 +v -7.35 19.26 9.79 +v -7.35 19.12 9.79 +v -7.24 19.07 10.55 +v -7.41 19.12 9.91 +v -7.31 19.12 9.90 +v -7.15 19.07 10.54 +v -7.09 19.12 11.19 +v -7.05 19.23 10.96 +v -7.09 19.26 11.19 +v -7.15 20.21 10.97 +v -7.15 20.52 10.54 +v -7.20 19.26 9.89 +v -7.12 19.24 10.11 +v -7.20 19.12 9.89 +v -7.04 19.07 10.53 +v -7.04 19.21 10.53 +v -7.30 20.21 10.13 +v -7.30 19.24 10.13 +v -7.41 20.29 9.91 +v -7.31 20.29 9.90 +v -7.29 19.12 11.21 +v -7.19 19.12 11.20 +v -7.23 20.21 10.12 +v -7.15 19.23 10.97 +v -7.23 19.24 10.12 +v -7.15 19.21 10.54 +v -7.31 19.26 9.90 +v -7.41 19.26 9.91 +v -7.29 19.26 11.21 +v -7.19 19.26 11.20 +v -7.11 19.12 11.30 +v -7.11 19.26 11.30 +v -7.25 19.26 9.78 +v -7.25 19.12 9.78 +v -12.26 27.21 6.54 +v -12.26 26.24 6.54 +v -12.69 26.21 6.53 +v -12.69 27.52 6.53 +v -11.92 26.26 6.63 +v -11.92 26.12 6.63 +v -11.93 26.12 6.53 +v -11.93 26.26 6.53 +v -12.69 27.75 6.56 +v -12.03 27.30 6.60 +v -12.04 27.30 6.51 +v -12.70 27.75 6.46 +v -13.44 26.12 6.76 +v -13.44 26.26 6.76 +v -13.45 26.26 6.67 +v -13.45 26.12 6.67 +v -12.69 26.07 6.56 +v -13.34 26.12 6.72 +v -13.34 26.12 6.62 +v -12.70 26.07 6.46 +v -12.05 26.12 6.40 +v -12.28 26.24 6.36 +v -12.05 26.26 6.40 +v -12.27 27.21 6.47 +v -12.70 27.52 6.46 +v -13.35 26.26 6.51 +v -13.13 26.25 6.43 +v -13.35 26.12 6.51 +v -12.71 26.07 6.35 +v -12.71 26.21 6.35 +v -13.12 27.21 6.61 +v -13.12 26.25 6.61 +v -13.34 27.30 6.72 +v -13.34 27.30 6.62 +v -12.03 26.12 6.60 +v -12.04 26.12 6.51 +v -13.12 27.21 6.54 +v -12.27 26.24 6.47 +v -13.12 26.25 6.54 +v -12.70 26.21 6.46 +v -13.34 26.26 6.62 +v -13.34 26.26 6.72 +v -12.03 26.26 6.60 +v -12.04 26.26 6.51 +v -11.94 26.12 6.43 +v -11.94 26.26 6.43 +v -13.46 26.26 6.56 +v -13.46 26.12 6.56 +v -16.15 12.70 9.15 +v -16.86 14.28 8.74 +v -16.39 14.28 7.92 +v -15.67 12.70 8.34 +v -16.21 17.34 9.12 +v -17.17 17.34 8.57 +v -16.69 17.34 7.75 +v -15.74 17.34 8.30 +v -12.26 20.21 5.34 +v -12.26 19.23 5.34 +v -12.69 19.21 5.33 +v -12.69 20.52 5.33 +v -11.92 19.26 5.43 +v -11.92 19.12 5.43 +v -11.93 19.12 5.33 +v -11.93 19.26 5.33 +v -12.69 20.75 5.36 +v -12.03 20.29 5.40 +v -12.04 20.29 5.30 +v -12.70 20.75 5.26 +v -13.44 19.12 5.56 +v -13.44 19.26 5.56 +v -13.45 19.26 5.47 +v -13.45 19.12 5.47 +v -12.69 19.07 5.36 +v -13.34 19.12 5.52 +v -13.34 19.12 5.42 +v -12.70 19.07 5.26 +v -12.05 19.12 5.20 +v -12.28 19.23 5.16 +v -12.05 19.26 5.20 +v -12.27 20.21 5.26 +v -12.70 20.52 5.26 +v -13.35 19.26 5.31 +v -13.13 19.24 5.23 +v -13.35 19.12 5.31 +v -12.71 19.07 5.15 +v -12.71 19.21 5.15 +v -13.12 20.21 5.41 +v -13.12 19.24 5.41 +v -13.34 20.29 5.52 +v -13.34 20.29 5.42 +v -12.03 19.12 5.40 +v -12.04 19.12 5.30 +v -13.12 20.21 5.34 +v -12.27 19.23 5.26 +v -13.12 19.24 5.34 +v -12.70 19.21 5.26 +v -13.34 19.26 5.42 +v -13.34 19.26 5.52 +v -12.03 19.26 5.40 +v -12.04 19.26 5.30 +v -11.94 19.12 5.23 +v -11.94 19.26 5.23 +v -13.46 19.26 5.36 +v -13.46 19.12 5.36 +v -15.89 23.34 8.84 +v -16.57 24.92 8.36 +v -16.03 24.92 7.59 +v -15.35 23.34 8.06 +v -15.60 28.41 9.06 +v -16.50 28.41 8.43 +v -15.96 28.41 7.66 +v -15.06 28.41 8.29 +v -16.70 27.21 10.37 +v -16.70 26.24 10.37 +v -16.71 26.21 10.80 +v -16.71 27.52 10.80 +v -16.61 26.26 10.03 +v -16.61 26.12 10.03 +v -16.71 26.12 10.04 +v -16.71 26.26 10.04 +v -16.69 27.75 10.80 +v -16.64 27.30 10.15 +v -16.74 27.30 10.15 +v -16.78 27.75 10.81 +v -16.48 26.12 11.55 +v -16.48 26.26 11.55 +v -16.58 26.26 11.56 +v -16.58 26.12 11.56 +v -16.69 26.07 10.80 +v -16.53 26.12 11.45 +v -16.62 26.12 11.45 +v -16.78 26.07 10.81 +v -16.84 26.12 10.16 +v -16.88 26.24 10.39 +v -16.84 26.26 10.16 +v -16.78 27.21 10.38 +v -16.78 27.52 10.81 +v -16.73 26.26 11.46 +v -16.81 26.25 11.24 +v -16.73 26.12 11.46 +v -16.89 26.07 10.82 +v -16.89 26.21 10.82 +v -16.63 27.21 11.23 +v -16.63 26.25 11.23 +v -16.53 27.30 11.45 +v -16.62 27.30 11.45 +v -16.64 26.12 10.15 +v -16.74 26.12 10.15 +v -16.70 27.21 11.23 +v -16.78 26.24 10.38 +v -16.70 26.25 11.23 +v -16.78 26.21 10.81 +v -16.62 26.26 11.45 +v -16.53 26.26 11.45 +v -16.64 26.26 10.15 +v -16.74 26.26 10.15 +v -16.82 26.12 10.05 +v -16.82 26.26 10.05 +v -16.68 26.26 11.57 +v -16.68 26.12 11.57 +v -15.67 12.70 13.02 +v -16.39 14.28 13.43 +v -16.86 14.28 12.61 +v -16.15 12.70 12.20 +v -15.74 17.34 13.06 +v -16.69 17.34 13.61 +v -17.17 17.34 12.79 +v -16.21 17.34 12.24 +v -16.83 28.50 13.14 +v -16.83 30.29 13.14 +v -17.49 30.29 10.68 +v -17.49 28.50 10.68 +v -15.03 28.50 14.94 +v -15.03 30.29 14.94 +v -12.57 28.50 15.60 +v -12.57 30.29 15.60 +v -10.10 28.50 14.94 +v -10.10 30.29 14.94 +v -8.30 28.50 13.14 +v -8.30 30.29 13.14 +v -7.64 28.50 10.68 +v -7.64 30.29 10.68 +v -8.30 28.50 8.21 +v -8.30 30.29 8.21 +v -10.10 28.50 6.41 +v -10.10 30.29 6.41 +v -12.57 28.50 5.75 +v -12.57 30.29 5.75 +v -15.03 28.50 6.41 +v -15.03 30.29 6.41 +v -16.83 28.50 8.21 +v -16.83 30.29 8.21 +v -16.21 30.29 12.78 +v -16.78 30.29 10.68 +v -15.03 30.90 14.94 +v -14.67 30.90 14.32 +v -16.21 30.90 12.78 +v -16.83 30.90 13.14 +v -12.57 30.29 14.89 +v -14.67 30.29 14.32 +v -10.10 30.90 14.94 +v -10.46 30.90 14.32 +v -12.57 30.90 14.89 +v -12.57 30.90 15.60 +v -8.92 30.29 12.78 +v -10.46 30.29 14.32 +v -7.64 30.90 10.68 +v -8.36 30.90 10.68 +v -8.92 30.90 12.78 +v -8.30 30.90 13.14 +v -8.92 30.29 8.57 +v -8.36 30.29 10.68 +v -10.10 30.90 6.41 +v -10.46 30.90 7.03 +v -8.92 30.90 8.57 +v -8.30 30.90 8.21 +v -12.57 30.29 6.47 +v -10.46 30.29 7.03 +v -15.03 30.90 6.41 +v -14.67 30.90 7.03 +v -12.57 30.90 6.47 +v -12.57 30.90 5.75 +v -16.21 30.29 8.57 +v -14.67 30.29 7.03 +v -17.49 30.90 10.68 +v -16.78 30.90 10.68 +v -16.21 30.90 8.57 +v -16.83 30.90 8.21 +v -16.21 29.42 12.78 +v -16.78 29.42 10.68 +v -14.67 29.42 14.32 +v -12.57 29.42 14.89 +v -10.46 29.42 14.32 +v -8.92 29.42 12.78 +v -8.36 29.42 10.68 +v -8.92 29.42 8.57 +v -10.46 29.42 7.03 +v -12.57 29.42 6.47 +v -14.67 29.42 7.03 +v -16.21 29.42 8.57 +v -12.57 29.42 10.68 +v 17.17 7.76 10.68 +v 16.55 7.76 12.98 +v 16.55 0.00 12.98 +v 17.17 0.00 10.68 +v 14.87 7.76 14.66 +v 14.87 0.00 14.66 +v 12.57 7.76 15.28 +v 12.57 0.00 15.28 +v 10.27 7.76 14.66 +v 10.27 0.00 14.66 +v 8.58 7.76 12.98 +v 8.58 0.00 12.98 +v 7.97 7.76 10.68 +v 7.97 0.00 10.68 +v 8.58 7.76 8.38 +v 8.58 0.00 8.38 +v 10.27 7.76 6.69 +v 10.27 0.00 6.69 +v 12.57 7.76 6.08 +v 12.57 0.00 6.08 +v 14.87 7.76 6.69 +v 14.87 0.00 6.69 +v 16.55 7.76 8.38 +v 16.55 0.00 8.38 +v 16.78 7.76 13.11 +v 17.43 7.76 10.68 +v 17.43 8.57 10.68 +v 16.78 8.57 13.11 +v 15.00 7.76 14.89 +v 15.00 8.57 14.89 +v 12.57 7.76 15.54 +v 12.57 8.57 15.54 +v 10.13 7.76 14.89 +v 10.13 8.57 14.89 +v 8.35 7.76 13.11 +v 8.35 8.57 13.11 +v 7.70 7.76 10.68 +v 7.70 8.57 10.68 +v 8.35 7.76 8.24 +v 8.35 8.57 8.24 +v 10.13 7.76 6.46 +v 10.13 8.57 6.46 +v 12.57 7.76 5.81 +v 12.57 8.57 5.81 +v 15.00 7.76 6.46 +v 15.00 8.57 6.46 +v 16.78 7.76 8.24 +v 16.78 8.57 8.24 +v 17.17 8.57 10.68 +v 16.55 8.57 12.98 +v 14.87 8.57 14.66 +v 12.57 8.57 15.28 +v 10.27 8.57 14.66 +v 8.58 8.57 12.98 +v 7.97 8.57 10.68 +v 8.58 8.57 8.38 +v 10.27 8.57 6.69 +v 12.57 8.57 6.08 +v 14.87 8.57 6.69 +v 16.55 8.57 8.38 +v 17.17 16.89 10.68 +v 16.55 16.89 12.98 +v 14.87 16.89 14.66 +v 12.57 16.89 15.28 +v 10.27 16.89 14.66 +v 8.58 16.89 12.98 +v 7.97 16.89 10.68 +v 8.58 16.89 8.38 +v 10.27 16.89 6.69 +v 12.57 16.89 6.08 +v 14.87 16.89 6.69 +v 16.55 16.89 8.38 +v 17.13 21.30 13.31 +v 17.83 21.30 10.68 +v 18.23 21.30 10.68 +v 17.47 21.30 13.51 +v 15.20 21.30 15.24 +v 15.40 21.30 15.58 +v 12.57 21.30 15.94 +v 12.57 21.30 16.34 +v 9.93 21.30 15.24 +v 9.73 21.30 15.58 +v 8.01 21.30 13.31 +v 7.66 21.30 13.51 +v 7.30 21.30 10.68 +v 6.90 21.30 10.68 +v 8.01 21.30 8.04 +v 7.66 21.30 7.84 +v 9.93 21.30 6.12 +v 9.73 21.30 5.77 +v 12.57 21.30 5.41 +v 12.57 21.30 5.01 +v 15.20 21.30 6.12 +v 15.40 21.30 5.77 +v 17.13 21.30 8.04 +v 17.47 21.30 7.84 +v 16.72 24.76 10.68 +v 16.17 24.76 12.76 +v 14.64 24.76 14.28 +v 12.57 24.76 14.83 +v 10.49 24.76 14.28 +v 8.97 24.76 12.76 +v 8.41 24.76 10.68 +v 8.97 24.76 8.60 +v 10.49 24.76 7.08 +v 12.57 24.76 6.52 +v 14.64 24.76 7.08 +v 16.17 24.76 8.60 +v 16.69 28.50 10.68 +v 16.13 28.50 12.74 +v 14.63 28.50 14.24 +v 12.57 28.50 14.80 +v 10.51 28.50 14.24 +v 9.00 28.50 12.74 +v 8.45 28.50 10.68 +v 9.00 28.50 8.62 +v 10.51 28.50 7.11 +v 12.57 28.50 6.56 +v 14.63 28.50 7.11 +v 16.13 28.50 8.62 +v 17.83 17.36 10.68 +v 17.13 17.36 13.31 +v 15.20 17.36 15.24 +v 12.57 17.36 15.94 +v 9.93 17.36 15.24 +v 8.01 17.36 13.31 +v 7.30 17.36 10.68 +v 8.01 17.36 8.04 +v 9.93 17.36 6.12 +v 12.57 17.36 5.41 +v 15.20 17.36 6.12 +v 17.13 17.36 8.04 +v 17.91 20.21 10.37 +v 17.91 20.52 10.80 +v 17.91 19.21 10.80 +v 17.91 19.23 10.37 +v 17.81 19.26 10.03 +v 17.91 19.26 10.04 +v 17.91 19.12 10.04 +v 17.81 19.12 10.03 +v 17.89 20.75 10.80 +v 17.98 20.75 10.81 +v 17.94 20.29 10.15 +v 17.84 20.29 10.15 +v 17.68 19.12 11.55 +v 17.78 19.12 11.56 +v 17.78 19.26 11.56 +v 17.68 19.26 11.55 +v 17.89 19.07 10.80 +v 17.98 19.07 10.81 +v 17.82 19.12 11.45 +v 17.73 19.12 11.45 +v 18.05 19.12 10.16 +v 18.05 19.26 10.16 +v 18.08 19.23 10.39 +v 17.98 20.52 10.81 +v 17.98 20.21 10.38 +v 17.93 19.26 11.46 +v 17.93 19.12 11.46 +v 18.01 19.24 11.24 +v 18.09 19.07 10.82 +v 18.09 19.21 10.82 +v 17.83 20.21 11.23 +v 17.83 19.24 11.23 +v 17.73 20.29 11.45 +v 17.82 20.29 11.45 +v 17.84 19.12 10.15 +v 17.94 19.12 10.15 +v 17.90 20.21 11.23 +v 17.98 19.23 10.38 +v 17.90 19.24 11.23 +v 17.98 19.21 10.81 +v 17.82 19.26 11.45 +v 17.73 19.26 11.45 +v 17.94 19.26 10.15 +v 17.84 19.26 10.15 +v 18.02 19.26 10.05 +v 18.02 19.12 10.05 +v 17.88 19.12 11.57 +v 17.88 19.26 11.57 +v 12.87 20.21 16.02 +v 12.44 20.52 16.02 +v 12.44 19.21 16.02 +v 12.87 19.23 16.02 +v 13.21 19.26 15.92 +v 13.20 19.26 16.02 +v 13.20 19.12 16.02 +v 13.21 19.12 15.92 +v 12.44 20.75 16.00 +v 12.43 20.75 16.10 +v 13.09 20.29 16.05 +v 13.10 20.29 15.95 +v 11.69 19.12 15.79 +v 11.68 19.12 15.89 +v 11.68 19.26 15.89 +v 11.69 19.26 15.79 +v 12.44 19.07 16.00 +v 12.43 19.07 16.10 +v 11.79 19.12 15.94 +v 11.80 19.12 15.84 +v 13.08 19.12 16.16 +v 13.08 19.26 16.16 +v 12.85 19.23 16.20 +v 12.43 20.52 16.10 +v 12.86 20.21 16.09 +v 11.78 19.26 16.04 +v 11.78 19.12 16.04 +v 12.00 19.24 16.12 +v 12.42 19.07 16.20 +v 12.42 19.21 16.20 +v 12.01 20.21 15.94 +v 12.01 19.24 15.94 +v 11.80 20.29 15.84 +v 11.79 20.29 15.94 +v 13.10 19.12 15.95 +v 13.09 19.12 16.05 +v 12.01 20.21 16.01 +v 12.86 19.23 16.09 +v 12.01 19.24 16.01 +v 12.43 19.21 16.10 +v 11.79 19.26 15.94 +v 11.80 19.26 15.84 +v 13.09 19.26 16.05 +v 13.10 19.26 15.95 +v 13.19 19.26 16.13 +v 13.19 19.12 16.13 +v 11.67 19.12 16.00 +v 11.67 19.26 16.00 +v 9.24 23.34 12.52 +v 9.78 23.34 13.29 +v 9.10 24.92 13.76 +v 8.56 24.92 12.99 +v 8.63 28.41 12.92 +v 9.53 28.41 12.29 +v 9.18 28.41 13.70 +v 10.08 28.41 13.07 +v 12.87 27.21 14.81 +v 12.44 27.52 14.82 +v 12.44 26.21 14.82 +v 12.87 26.24 14.81 +v 13.21 26.26 14.72 +v 13.20 26.26 14.82 +v 13.20 26.12 14.82 +v 13.21 26.12 14.72 +v 12.44 27.75 14.80 +v 12.43 27.75 14.89 +v 13.09 27.30 14.85 +v 13.10 27.30 14.75 +v 11.69 26.12 14.59 +v 11.68 26.12 14.69 +v 11.68 26.26 14.69 +v 11.69 26.26 14.59 +v 12.44 26.07 14.80 +v 12.43 26.07 14.89 +v 11.79 26.12 14.73 +v 11.80 26.12 14.64 +v 13.08 26.12 14.96 +v 13.08 26.26 14.96 +v 12.85 26.24 14.99 +v 12.43 27.52 14.89 +v 12.86 27.21 14.89 +v 11.78 26.26 14.84 +v 11.78 26.12 14.84 +v 12.00 26.25 14.92 +v 12.42 26.07 15.00 +v 12.42 26.21 15.00 +v 12.01 27.21 14.74 +v 12.01 26.25 14.74 +v 11.80 27.30 14.64 +v 11.79 27.30 14.73 +v 13.10 26.12 14.75 +v 13.09 26.12 14.85 +v 12.01 27.21 14.81 +v 12.86 26.24 14.89 +v 12.01 26.25 14.81 +v 12.43 26.21 14.89 +v 11.79 26.26 14.73 +v 11.80 26.26 14.64 +v 13.09 26.26 14.85 +v 13.10 26.26 14.75 +v 13.19 26.26 14.93 +v 13.19 26.12 14.93 +v 11.67 26.12 14.79 +v 11.67 26.26 14.79 +v 14.41 23.34 14.01 +v 15.18 23.34 13.46 +v 15.65 24.92 14.14 +v 14.88 24.92 14.68 +v 14.81 28.41 14.61 +v 14.18 28.41 13.71 +v 15.59 28.41 14.07 +v 14.96 28.41 13.17 +v 8.43 27.21 10.98 +v 8.42 27.52 10.55 +v 8.42 26.21 10.55 +v 8.43 26.24 10.98 +v 8.52 26.26 11.32 +v 8.42 26.26 11.31 +v 8.42 26.12 11.31 +v 8.52 26.12 11.32 +v 8.45 27.75 10.55 +v 8.35 27.75 10.54 +v 8.39 27.30 11.20 +v 8.49 27.30 11.21 +v 8.65 26.12 9.80 +v 8.56 26.12 9.79 +v 8.56 26.26 9.79 +v 8.65 26.26 9.80 +v 8.45 26.07 10.55 +v 8.35 26.07 10.54 +v 8.51 26.12 9.90 +v 8.61 26.12 9.91 +v 8.29 26.12 11.19 +v 8.29 26.26 11.19 +v 8.25 26.24 10.96 +v 8.35 27.52 10.54 +v 8.35 27.21 10.97 +v 8.40 26.26 9.89 +v 8.40 26.12 9.89 +v 8.32 26.25 10.11 +v 8.24 26.07 10.53 +v 8.24 26.21 10.53 +v 8.50 27.21 10.13 +v 8.50 26.25 10.13 +v 8.61 27.30 9.91 +v 8.51 27.30 9.90 +v 8.49 26.12 11.21 +v 8.39 26.12 11.20 +v 8.43 27.21 10.12 +v 8.35 26.24 10.97 +v 8.43 26.25 10.12 +v 8.35 26.21 10.54 +v 8.51 26.26 9.90 +v 8.61 26.26 9.91 +v 8.39 26.26 11.20 +v 8.49 26.26 11.21 +v 8.32 26.26 11.30 +v 8.32 26.12 11.30 +v 8.45 26.12 9.78 +v 8.45 26.26 9.78 +v 13.04 12.70 6.81 +v 12.09 12.70 6.81 +v 12.09 14.28 5.99 +v 13.04 14.28 5.99 +v 13.04 17.34 5.64 +v 13.04 17.34 6.74 +v 12.09 17.34 5.64 +v 12.09 17.34 6.74 +v 8.98 12.70 12.20 +v 9.46 12.70 13.02 +v 8.74 14.28 13.43 +v 8.27 14.28 12.61 +v 7.97 17.34 12.79 +v 8.92 17.34 12.24 +v 8.44 17.34 13.61 +v 9.39 17.34 13.06 +v 12.09 12.70 14.54 +v 13.04 12.70 14.54 +v 13.04 14.28 15.36 +v 12.09 14.28 15.36 +v 12.09 17.34 15.71 +v 12.09 17.34 14.62 +v 13.04 17.34 15.71 +v 13.04 17.34 14.62 +v 10.73 23.34 7.35 +v 9.95 23.34 7.89 +v 9.48 24.92 7.22 +v 10.25 24.92 6.67 +v 10.32 28.41 6.74 +v 10.95 28.41 7.65 +v 9.55 28.41 7.29 +v 10.18 28.41 8.19 +v 9.46 12.70 8.34 +v 8.98 12.70 9.15 +v 8.27 14.28 8.74 +v 8.74 14.28 7.92 +v 8.44 17.34 7.75 +v 9.39 17.34 8.30 +v 7.97 17.34 8.57 +v 8.92 17.34 9.12 +v 7.23 20.21 10.98 +v 7.22 20.52 10.55 +v 7.22 19.21 10.55 +v 7.23 19.23 10.98 +v 7.32 19.26 11.32 +v 7.22 19.26 11.31 +v 7.22 19.12 11.31 +v 7.32 19.12 11.32 +v 7.24 20.75 10.55 +v 7.15 20.75 10.54 +v 7.19 20.29 11.20 +v 7.29 20.29 11.21 +v 7.45 19.12 9.80 +v 7.35 19.12 9.79 +v 7.35 19.26 9.79 +v 7.45 19.26 9.80 +v 7.24 19.07 10.55 +v 7.15 19.07 10.54 +v 7.31 19.12 9.90 +v 7.41 19.12 9.91 +v 7.09 19.12 11.19 +v 7.09 19.26 11.19 +v 7.05 19.23 10.96 +v 7.15 20.52 10.54 +v 7.15 20.21 10.97 +v 7.20 19.26 9.89 +v 7.20 19.12 9.89 +v 7.12 19.24 10.11 +v 7.04 19.07 10.53 +v 7.04 19.21 10.53 +v 7.30 20.21 10.13 +v 7.30 19.24 10.13 +v 7.41 20.29 9.91 +v 7.31 20.29 9.90 +v 7.29 19.12 11.21 +v 7.19 19.12 11.20 +v 7.23 20.21 10.12 +v 7.15 19.23 10.97 +v 7.23 19.24 10.12 +v 7.15 19.21 10.54 +v 7.31 19.26 9.90 +v 7.41 19.26 9.91 +v 7.19 19.26 11.20 +v 7.29 19.26 11.21 +v 7.11 19.26 11.30 +v 7.11 19.12 11.30 +v 7.25 19.12 9.78 +v 7.25 19.26 9.78 +v 12.26 27.21 6.54 +v 12.69 27.52 6.53 +v 12.69 26.21 6.53 +v 12.26 26.24 6.54 +v 11.92 26.26 6.63 +v 11.93 26.26 6.53 +v 11.93 26.12 6.53 +v 11.92 26.12 6.63 +v 12.69 27.75 6.56 +v 12.70 27.75 6.46 +v 12.04 27.30 6.51 +v 12.03 27.30 6.60 +v 13.44 26.12 6.76 +v 13.45 26.12 6.67 +v 13.45 26.26 6.67 +v 13.44 26.26 6.76 +v 12.69 26.07 6.56 +v 12.70 26.07 6.46 +v 13.34 26.12 6.62 +v 13.34 26.12 6.72 +v 12.05 26.12 6.40 +v 12.05 26.26 6.40 +v 12.28 26.24 6.36 +v 12.70 27.52 6.46 +v 12.27 27.21 6.47 +v 13.35 26.26 6.51 +v 13.35 26.12 6.51 +v 13.13 26.25 6.43 +v 12.71 26.07 6.35 +v 12.71 26.21 6.35 +v 13.12 27.21 6.61 +v 13.12 26.25 6.61 +v 13.34 27.30 6.72 +v 13.34 27.30 6.62 +v 12.03 26.12 6.60 +v 12.04 26.12 6.51 +v 13.12 27.21 6.54 +v 12.27 26.24 6.47 +v 13.12 26.25 6.54 +v 12.70 26.21 6.46 +v 13.34 26.26 6.62 +v 13.34 26.26 6.72 +v 12.04 26.26 6.51 +v 12.03 26.26 6.60 +v 11.94 26.26 6.43 +v 11.94 26.12 6.43 +v 13.46 26.12 6.56 +v 13.46 26.26 6.56 +v 16.15 12.70 9.15 +v 15.67 12.70 8.34 +v 16.39 14.28 7.92 +v 16.86 14.28 8.74 +v 17.17 17.34 8.57 +v 16.21 17.34 9.12 +v 16.69 17.34 7.75 +v 15.74 17.34 8.30 +v 12.26 20.21 5.34 +v 12.69 20.52 5.33 +v 12.69 19.21 5.33 +v 12.26 19.23 5.34 +v 11.92 19.26 5.43 +v 11.93 19.26 5.33 +v 11.93 19.12 5.33 +v 11.92 19.12 5.43 +v 12.69 20.75 5.36 +v 12.70 20.75 5.26 +v 12.04 20.29 5.30 +v 12.03 20.29 5.40 +v 13.44 19.12 5.56 +v 13.45 19.12 5.47 +v 13.45 19.26 5.47 +v 13.44 19.26 5.56 +v 12.69 19.07 5.36 +v 12.70 19.07 5.26 +v 13.34 19.12 5.42 +v 13.34 19.12 5.52 +v 12.05 19.12 5.20 +v 12.05 19.26 5.20 +v 12.28 19.23 5.16 +v 12.70 20.52 5.26 +v 12.27 20.21 5.26 +v 13.35 19.26 5.31 +v 13.35 19.12 5.31 +v 13.13 19.24 5.23 +v 12.71 19.07 5.15 +v 12.71 19.21 5.15 +v 13.12 20.21 5.41 +v 13.12 19.24 5.41 +v 13.34 20.29 5.52 +v 13.34 20.29 5.42 +v 12.03 19.12 5.40 +v 12.04 19.12 5.30 +v 13.12 20.21 5.34 +v 12.27 19.23 5.26 +v 13.12 19.24 5.34 +v 12.70 19.21 5.26 +v 13.34 19.26 5.42 +v 13.34 19.26 5.52 +v 12.04 19.26 5.30 +v 12.03 19.26 5.40 +v 11.94 19.26 5.23 +v 11.94 19.12 5.23 +v 13.46 19.12 5.36 +v 13.46 19.26 5.36 +v 15.89 23.34 8.84 +v 15.35 23.34 8.06 +v 16.03 24.92 7.59 +v 16.57 24.92 8.36 +v 16.50 28.41 8.43 +v 15.60 28.41 9.06 +v 15.96 28.41 7.66 +v 15.06 28.41 8.29 +v 16.70 27.21 10.37 +v 16.71 27.52 10.80 +v 16.71 26.21 10.80 +v 16.70 26.24 10.37 +v 16.61 26.26 10.03 +v 16.71 26.26 10.04 +v 16.71 26.12 10.04 +v 16.61 26.12 10.03 +v 16.69 27.75 10.80 +v 16.78 27.75 10.81 +v 16.74 27.30 10.15 +v 16.64 27.30 10.15 +v 16.48 26.12 11.55 +v 16.58 26.12 11.56 +v 16.58 26.26 11.56 +v 16.48 26.26 11.55 +v 16.69 26.07 10.80 +v 16.78 26.07 10.81 +v 16.62 26.12 11.45 +v 16.53 26.12 11.45 +v 16.84 26.12 10.16 +v 16.84 26.26 10.16 +v 16.88 26.24 10.39 +v 16.78 27.52 10.81 +v 16.78 27.21 10.38 +v 16.73 26.26 11.46 +v 16.73 26.12 11.46 +v 16.81 26.25 11.24 +v 16.89 26.07 10.82 +v 16.89 26.21 10.82 +v 16.63 27.21 11.23 +v 16.63 26.25 11.23 +v 16.53 27.30 11.45 +v 16.62 27.30 11.45 +v 16.64 26.12 10.15 +v 16.74 26.12 10.15 +v 16.70 27.21 11.23 +v 16.78 26.24 10.38 +v 16.70 26.25 11.23 +v 16.78 26.21 10.81 +v 16.62 26.26 11.45 +v 16.53 26.26 11.45 +v 16.74 26.26 10.15 +v 16.64 26.26 10.15 +v 16.82 26.26 10.05 +v 16.82 26.12 10.05 +v 16.68 26.12 11.57 +v 16.68 26.26 11.57 +v 15.67 12.70 13.02 +v 16.15 12.70 12.20 +v 16.86 14.28 12.61 +v 16.39 14.28 13.43 +v 16.69 17.34 13.61 +v 15.74 17.34 13.06 +v 17.17 17.34 12.79 +v 16.21 17.34 12.24 +v 16.83 28.50 13.14 +v 17.49 28.50 10.68 +v 17.49 30.29 10.68 +v 16.83 30.29 13.14 +v 15.03 28.50 14.94 +v 15.03 30.29 14.94 +v 12.57 28.50 15.60 +v 12.57 30.29 15.60 +v 10.10 28.50 14.94 +v 10.10 30.29 14.94 +v 8.30 28.50 13.14 +v 8.30 30.29 13.14 +v 7.64 28.50 10.68 +v 7.64 30.29 10.68 +v 8.30 28.50 8.21 +v 8.30 30.29 8.21 +v 10.10 28.50 6.41 +v 10.10 30.29 6.41 +v 12.57 28.50 5.75 +v 12.57 30.29 5.75 +v 15.03 28.50 6.41 +v 15.03 30.29 6.41 +v 16.83 28.50 8.21 +v 16.83 30.29 8.21 +v 16.78 30.29 10.68 +v 16.21 30.29 12.78 +v 15.03 30.90 14.94 +v 16.83 30.90 13.14 +v 16.21 30.90 12.78 +v 14.67 30.90 14.32 +v 14.67 30.29 14.32 +v 12.57 30.29 14.89 +v 10.10 30.90 14.94 +v 12.57 30.90 15.60 +v 12.57 30.90 14.89 +v 10.46 30.90 14.32 +v 10.46 30.29 14.32 +v 8.92 30.29 12.78 +v 7.64 30.90 10.68 +v 8.30 30.90 13.14 +v 8.92 30.90 12.78 +v 8.36 30.90 10.68 +v 8.36 30.29 10.68 +v 8.92 30.29 8.57 +v 10.10 30.90 6.41 +v 8.30 30.90 8.21 +v 8.92 30.90 8.57 +v 10.46 30.90 7.03 +v 10.46 30.29 7.03 +v 12.57 30.29 6.47 +v 15.03 30.90 6.41 +v 12.57 30.90 5.75 +v 12.57 30.90 6.47 +v 14.67 30.90 7.03 +v 14.67 30.29 7.03 +v 16.21 30.29 8.57 +v 17.49 30.90 10.68 +v 16.83 30.90 8.21 +v 16.21 30.90 8.57 +v 16.78 30.90 10.68 +v 16.78 29.42 10.68 +v 16.21 29.42 12.78 +v 14.67 29.42 14.32 +v 12.57 29.42 14.89 +v 10.46 29.42 14.32 +v 8.92 29.42 12.78 +v 8.36 29.42 10.68 +v 8.92 29.42 8.57 +v 10.46 29.42 7.03 +v 12.57 29.42 6.47 +v 14.67 29.42 7.03 +v 16.21 29.42 8.57 +v 12.57 29.42 10.68 +v 16.55 0.00 -12.98 +v 16.55 7.76 -12.98 +v 17.17 7.76 -10.68 +v 17.17 0.00 -10.68 +v 14.87 0.00 -14.66 +v 14.87 7.76 -14.66 +v 12.57 0.00 -15.28 +v 12.57 7.76 -15.28 +v 10.27 0.00 -14.66 +v 10.27 7.76 -14.66 +v 8.58 0.00 -12.98 +v 8.58 7.76 -12.98 +v 7.97 0.00 -10.68 +v 7.97 7.76 -10.68 +v 8.58 0.00 -8.38 +v 8.58 7.76 -8.38 +v 10.27 0.00 -6.69 +v 10.27 7.76 -6.69 +v 12.57 0.00 -6.08 +v 12.57 7.76 -6.08 +v 14.87 0.00 -6.69 +v 14.87 7.76 -6.69 +v 16.55 0.00 -8.38 +v 16.55 7.76 -8.38 +v 16.78 7.76 -13.11 +v 16.78 8.57 -13.11 +v 17.43 8.57 -10.68 +v 17.43 7.76 -10.68 +v 15.00 7.76 -14.89 +v 15.00 8.57 -14.89 +v 12.57 7.76 -15.54 +v 12.57 8.57 -15.54 +v 10.13 7.76 -14.89 +v 10.13 8.57 -14.89 +v 8.35 7.76 -13.11 +v 8.35 8.57 -13.11 +v 7.70 7.76 -10.68 +v 7.70 8.57 -10.68 +v 8.35 7.76 -8.24 +v 8.35 8.57 -8.24 +v 10.13 7.76 -6.46 +v 10.13 8.57 -6.46 +v 12.57 7.76 -5.81 +v 12.57 8.57 -5.81 +v 15.00 7.76 -6.46 +v 15.00 8.57 -6.46 +v 16.78 7.76 -8.24 +v 16.78 8.57 -8.24 +v 17.17 8.57 -10.68 +v 16.55 8.57 -12.98 +v 14.87 8.57 -14.66 +v 12.57 8.57 -15.28 +v 10.27 8.57 -14.66 +v 8.58 8.57 -12.98 +v 7.97 8.57 -10.68 +v 8.58 8.57 -8.38 +v 10.27 8.57 -6.69 +v 12.57 8.57 -6.08 +v 14.87 8.57 -6.69 +v 16.55 8.57 -8.38 +v 16.55 16.89 -12.98 +v 17.17 16.89 -10.68 +v 14.87 16.89 -14.66 +v 12.57 16.89 -15.28 +v 10.27 16.89 -14.66 +v 8.58 16.89 -12.98 +v 7.97 16.89 -10.68 +v 8.58 16.89 -8.38 +v 10.27 16.89 -6.69 +v 12.57 16.89 -6.08 +v 14.87 16.89 -6.69 +v 16.55 16.89 -8.38 +v 17.13 21.30 -13.31 +v 17.47 21.30 -13.51 +v 18.23 21.30 -10.68 +v 17.83 21.30 -10.68 +v 15.20 21.30 -15.24 +v 15.40 21.30 -15.58 +v 12.57 21.30 -15.94 +v 12.57 21.30 -16.34 +v 9.93 21.30 -15.24 +v 9.73 21.30 -15.58 +v 8.01 21.30 -13.31 +v 7.66 21.30 -13.51 +v 7.30 21.30 -10.68 +v 6.90 21.30 -10.68 +v 8.01 21.30 -8.04 +v 7.66 21.30 -7.84 +v 9.93 21.30 -6.12 +v 9.73 21.30 -5.77 +v 12.57 21.30 -5.41 +v 12.57 21.30 -5.01 +v 15.20 21.30 -6.12 +v 15.40 21.30 -5.77 +v 17.13 21.30 -8.04 +v 17.47 21.30 -7.84 +v 16.17 24.76 -12.76 +v 16.72 24.76 -10.68 +v 14.64 24.76 -14.28 +v 12.57 24.76 -14.83 +v 10.49 24.76 -14.28 +v 8.97 24.76 -12.76 +v 8.41 24.76 -10.68 +v 8.97 24.76 -8.60 +v 10.49 24.76 -7.08 +v 12.57 24.76 -6.52 +v 14.64 24.76 -7.08 +v 16.17 24.76 -8.60 +v 16.13 28.50 -12.74 +v 16.69 28.50 -10.68 +v 14.63 28.50 -14.24 +v 12.57 28.50 -14.80 +v 10.51 28.50 -14.24 +v 9.00 28.50 -12.74 +v 8.45 28.50 -10.68 +v 9.00 28.50 -8.62 +v 10.51 28.50 -7.11 +v 12.57 28.50 -6.56 +v 14.63 28.50 -7.11 +v 16.13 28.50 -8.62 +v 17.13 17.36 -13.31 +v 17.83 17.36 -10.68 +v 15.20 17.36 -15.24 +v 12.57 17.36 -15.94 +v 9.93 17.36 -15.24 +v 8.01 17.36 -13.31 +v 7.30 17.36 -10.68 +v 8.01 17.36 -8.04 +v 9.93 17.36 -6.12 +v 12.57 17.36 -5.41 +v 15.20 17.36 -6.12 +v 17.13 17.36 -8.04 +v 17.91 20.21 -10.37 +v 17.91 19.23 -10.37 +v 17.91 19.21 -10.80 +v 17.91 20.52 -10.80 +v 17.81 19.26 -10.03 +v 17.81 19.12 -10.03 +v 17.91 19.12 -10.04 +v 17.91 19.26 -10.04 +v 17.89 20.75 -10.80 +v 17.84 20.29 -10.15 +v 17.94 20.29 -10.15 +v 17.98 20.75 -10.81 +v 17.68 19.12 -11.55 +v 17.68 19.26 -11.55 +v 17.78 19.26 -11.56 +v 17.78 19.12 -11.56 +v 17.89 19.07 -10.80 +v 17.73 19.12 -11.45 +v 17.82 19.12 -11.45 +v 17.98 19.07 -10.81 +v 18.05 19.12 -10.16 +v 18.08 19.23 -10.39 +v 18.05 19.26 -10.16 +v 17.98 20.21 -10.38 +v 17.98 20.52 -10.81 +v 17.93 19.26 -11.46 +v 18.01 19.24 -11.24 +v 17.93 19.12 -11.46 +v 18.09 19.07 -10.82 +v 18.09 19.21 -10.82 +v 17.83 20.21 -11.23 +v 17.83 19.24 -11.23 +v 17.73 20.29 -11.45 +v 17.82 20.29 -11.45 +v 17.84 19.12 -10.15 +v 17.94 19.12 -10.15 +v 17.90 20.21 -11.23 +v 17.98 19.23 -10.38 +v 17.90 19.24 -11.23 +v 17.98 19.21 -10.81 +v 17.82 19.26 -11.45 +v 17.73 19.26 -11.45 +v 17.84 19.26 -10.15 +v 17.94 19.26 -10.15 +v 18.02 19.12 -10.05 +v 18.02 19.26 -10.05 +v 17.88 19.26 -11.57 +v 17.88 19.12 -11.57 +v 12.87 20.21 -16.02 +v 12.87 19.23 -16.02 +v 12.44 19.21 -16.02 +v 12.44 20.52 -16.02 +v 13.21 19.26 -15.92 +v 13.21 19.12 -15.92 +v 13.20 19.12 -16.02 +v 13.20 19.26 -16.02 +v 12.44 20.75 -16.00 +v 13.10 20.29 -15.95 +v 13.09 20.29 -16.05 +v 12.43 20.75 -16.10 +v 11.69 19.12 -15.79 +v 11.69 19.26 -15.79 +v 11.68 19.26 -15.89 +v 11.68 19.12 -15.89 +v 12.44 19.07 -16.00 +v 11.80 19.12 -15.84 +v 11.79 19.12 -15.94 +v 12.43 19.07 -16.10 +v 13.08 19.12 -16.16 +v 12.85 19.23 -16.20 +v 13.08 19.26 -16.16 +v 12.86 20.21 -16.09 +v 12.43 20.52 -16.10 +v 11.78 19.26 -16.04 +v 12.00 19.24 -16.12 +v 11.78 19.12 -16.04 +v 12.42 19.07 -16.20 +v 12.42 19.21 -16.20 +v 12.01 20.21 -15.94 +v 12.01 19.24 -15.94 +v 11.80 20.29 -15.84 +v 11.79 20.29 -15.94 +v 13.10 19.12 -15.95 +v 13.09 19.12 -16.05 +v 12.01 20.21 -16.01 +v 12.86 19.23 -16.09 +v 12.01 19.24 -16.01 +v 12.43 19.21 -16.10 +v 11.79 19.26 -15.94 +v 11.80 19.26 -15.84 +v 13.10 19.26 -15.95 +v 13.09 19.26 -16.05 +v 13.19 19.12 -16.13 +v 13.19 19.26 -16.13 +v 11.67 19.26 -16.00 +v 11.67 19.12 -16.00 +v 9.24 23.34 -12.52 +v 8.56 24.92 -12.99 +v 9.10 24.92 -13.76 +v 9.78 23.34 -13.29 +v 9.53 28.41 -12.29 +v 8.63 28.41 -12.92 +v 9.18 28.41 -13.70 +v 10.08 28.41 -13.07 +v 12.87 27.21 -14.81 +v 12.87 26.24 -14.81 +v 12.44 26.21 -14.82 +v 12.44 27.52 -14.82 +v 13.21 26.26 -14.72 +v 13.21 26.12 -14.72 +v 13.20 26.12 -14.82 +v 13.20 26.26 -14.82 +v 12.44 27.75 -14.80 +v 13.10 27.30 -14.75 +v 13.09 27.30 -14.85 +v 12.43 27.75 -14.89 +v 11.69 26.12 -14.59 +v 11.69 26.26 -14.59 +v 11.68 26.26 -14.69 +v 11.68 26.12 -14.69 +v 12.44 26.07 -14.80 +v 11.80 26.12 -14.64 +v 11.79 26.12 -14.73 +v 12.43 26.07 -14.89 +v 13.08 26.12 -14.96 +v 12.85 26.24 -14.99 +v 13.08 26.26 -14.96 +v 12.86 27.21 -14.89 +v 12.43 27.52 -14.89 +v 11.78 26.26 -14.84 +v 12.00 26.25 -14.92 +v 11.78 26.12 -14.84 +v 12.42 26.07 -15.00 +v 12.42 26.21 -15.00 +v 12.01 27.21 -14.74 +v 12.01 26.25 -14.74 +v 11.80 27.30 -14.64 +v 11.79 27.30 -14.73 +v 13.10 26.12 -14.75 +v 13.09 26.12 -14.85 +v 12.01 27.21 -14.81 +v 12.86 26.24 -14.89 +v 12.01 26.25 -14.81 +v 12.43 26.21 -14.89 +v 11.79 26.26 -14.73 +v 11.80 26.26 -14.64 +v 13.10 26.26 -14.75 +v 13.09 26.26 -14.85 +v 13.19 26.12 -14.93 +v 13.19 26.26 -14.93 +v 11.67 26.26 -14.79 +v 11.67 26.12 -14.79 +v 14.41 23.34 -14.01 +v 14.88 24.92 -14.68 +v 15.65 24.92 -14.14 +v 15.18 23.34 -13.46 +v 14.18 28.41 -13.71 +v 14.81 28.41 -14.61 +v 15.59 28.41 -14.07 +v 14.96 28.41 -13.17 +v 8.43 27.21 -10.98 +v 8.43 26.24 -10.98 +v 8.42 26.21 -10.55 +v 8.42 27.52 -10.55 +v 8.52 26.26 -11.32 +v 8.52 26.12 -11.32 +v 8.42 26.12 -11.31 +v 8.42 26.26 -11.31 +v 8.45 27.75 -10.55 +v 8.49 27.30 -11.21 +v 8.39 27.30 -11.20 +v 8.35 27.75 -10.54 +v 8.65 26.12 -9.80 +v 8.65 26.26 -9.80 +v 8.56 26.26 -9.79 +v 8.56 26.12 -9.79 +v 8.45 26.07 -10.55 +v 8.61 26.12 -9.91 +v 8.51 26.12 -9.90 +v 8.35 26.07 -10.54 +v 8.29 26.12 -11.19 +v 8.25 26.24 -10.96 +v 8.29 26.26 -11.19 +v 8.35 27.21 -10.97 +v 8.35 27.52 -10.54 +v 8.40 26.26 -9.89 +v 8.32 26.25 -10.11 +v 8.40 26.12 -9.89 +v 8.24 26.07 -10.53 +v 8.24 26.21 -10.53 +v 8.50 27.21 -10.13 +v 8.50 26.25 -10.13 +v 8.61 27.30 -9.91 +v 8.51 27.30 -9.90 +v 8.49 26.12 -11.21 +v 8.39 26.12 -11.20 +v 8.43 27.21 -10.12 +v 8.35 26.24 -10.97 +v 8.43 26.25 -10.12 +v 8.35 26.21 -10.54 +v 8.51 26.26 -9.90 +v 8.61 26.26 -9.91 +v 8.49 26.26 -11.21 +v 8.39 26.26 -11.20 +v 8.32 26.12 -11.30 +v 8.32 26.26 -11.30 +v 8.45 26.26 -9.78 +v 8.45 26.12 -9.78 +v 13.04 12.70 -6.81 +v 13.04 14.28 -5.99 +v 12.09 14.28 -5.99 +v 12.09 12.70 -6.81 +v 13.04 17.34 -6.74 +v 13.04 17.34 -5.64 +v 12.09 17.34 -5.64 +v 12.09 17.34 -6.74 +v 8.98 12.70 -12.20 +v 8.27 14.28 -12.61 +v 8.74 14.28 -13.43 +v 9.46 12.70 -13.02 +v 8.92 17.34 -12.24 +v 7.97 17.34 -12.79 +v 8.44 17.34 -13.61 +v 9.39 17.34 -13.06 +v 12.09 12.70 -14.54 +v 12.09 14.28 -15.36 +v 13.04 14.28 -15.36 +v 13.04 12.70 -14.54 +v 12.09 17.34 -14.62 +v 12.09 17.34 -15.71 +v 13.04 17.34 -15.71 +v 13.04 17.34 -14.62 +v 10.73 23.34 -7.35 +v 10.25 24.92 -6.67 +v 9.48 24.92 -7.22 +v 9.95 23.34 -7.89 +v 10.95 28.41 -7.65 +v 10.32 28.41 -6.74 +v 9.55 28.41 -7.29 +v 10.18 28.41 -8.19 +v 9.46 12.70 -8.34 +v 8.74 14.28 -7.92 +v 8.27 14.28 -8.74 +v 8.98 12.70 -9.15 +v 9.39 17.34 -8.30 +v 8.44 17.34 -7.75 +v 7.97 17.34 -8.57 +v 8.92 17.34 -9.12 +v 7.23 20.21 -10.98 +v 7.23 19.23 -10.98 +v 7.22 19.21 -10.55 +v 7.22 20.52 -10.55 +v 7.32 19.26 -11.32 +v 7.32 19.12 -11.32 +v 7.22 19.12 -11.31 +v 7.22 19.26 -11.31 +v 7.24 20.75 -10.55 +v 7.29 20.29 -11.21 +v 7.19 20.29 -11.20 +v 7.15 20.75 -10.54 +v 7.45 19.12 -9.80 +v 7.45 19.26 -9.80 +v 7.35 19.26 -9.79 +v 7.35 19.12 -9.79 +v 7.24 19.07 -10.55 +v 7.41 19.12 -9.91 +v 7.31 19.12 -9.90 +v 7.15 19.07 -10.54 +v 7.09 19.12 -11.19 +v 7.05 19.23 -10.96 +v 7.09 19.26 -11.19 +v 7.15 20.21 -10.97 +v 7.15 20.52 -10.54 +v 7.20 19.26 -9.89 +v 7.12 19.24 -10.11 +v 7.20 19.12 -9.89 +v 7.04 19.07 -10.53 +v 7.04 19.21 -10.53 +v 7.30 20.21 -10.13 +v 7.30 19.24 -10.13 +v 7.41 20.29 -9.91 +v 7.31 20.29 -9.90 +v 7.29 19.12 -11.21 +v 7.19 19.12 -11.20 +v 7.23 20.21 -10.12 +v 7.15 19.23 -10.97 +v 7.23 19.24 -10.12 +v 7.15 19.21 -10.54 +v 7.31 19.26 -9.90 +v 7.41 19.26 -9.91 +v 7.29 19.26 -11.21 +v 7.19 19.26 -11.20 +v 7.11 19.12 -11.30 +v 7.11 19.26 -11.30 +v 7.25 19.26 -9.78 +v 7.25 19.12 -9.78 +v 12.26 27.21 -6.54 +v 12.26 26.24 -6.54 +v 12.69 26.21 -6.53 +v 12.69 27.52 -6.53 +v 11.92 26.26 -6.63 +v 11.92 26.12 -6.63 +v 11.93 26.12 -6.53 +v 11.93 26.26 -6.53 +v 12.69 27.75 -6.56 +v 12.03 27.30 -6.60 +v 12.04 27.30 -6.51 +v 12.70 27.75 -6.46 +v 13.44 26.12 -6.76 +v 13.44 26.26 -6.76 +v 13.45 26.26 -6.67 +v 13.45 26.12 -6.67 +v 12.69 26.07 -6.56 +v 13.34 26.12 -6.72 +v 13.34 26.12 -6.62 +v 12.70 26.07 -6.46 +v 12.05 26.12 -6.40 +v 12.28 26.24 -6.36 +v 12.05 26.26 -6.40 +v 12.27 27.21 -6.47 +v 12.70 27.52 -6.46 +v 13.35 26.26 -6.51 +v 13.13 26.25 -6.43 +v 13.35 26.12 -6.51 +v 12.71 26.07 -6.35 +v 12.71 26.21 -6.35 +v 13.12 27.21 -6.61 +v 13.12 26.25 -6.61 +v 13.34 27.30 -6.72 +v 13.34 27.30 -6.62 +v 12.03 26.12 -6.60 +v 12.04 26.12 -6.51 +v 13.12 27.21 -6.54 +v 12.27 26.24 -6.47 +v 13.12 26.25 -6.54 +v 12.70 26.21 -6.46 +v 13.34 26.26 -6.62 +v 13.34 26.26 -6.72 +v 12.03 26.26 -6.60 +v 12.04 26.26 -6.51 +v 11.94 26.12 -6.43 +v 11.94 26.26 -6.43 +v 13.46 26.26 -6.56 +v 13.46 26.12 -6.56 +v 16.15 12.70 -9.15 +v 16.86 14.28 -8.74 +v 16.39 14.28 -7.92 +v 15.67 12.70 -8.34 +v 16.21 17.34 -9.12 +v 17.17 17.34 -8.57 +v 16.69 17.34 -7.75 +v 15.74 17.34 -8.30 +v 12.26 20.21 -5.34 +v 12.26 19.23 -5.34 +v 12.69 19.21 -5.33 +v 12.69 20.52 -5.33 +v 11.92 19.26 -5.43 +v 11.92 19.12 -5.43 +v 11.93 19.12 -5.33 +v 11.93 19.26 -5.33 +v 12.69 20.75 -5.36 +v 12.03 20.29 -5.40 +v 12.04 20.29 -5.30 +v 12.70 20.75 -5.26 +v 13.44 19.12 -5.56 +v 13.44 19.26 -5.56 +v 13.45 19.26 -5.47 +v 13.45 19.12 -5.47 +v 12.69 19.07 -5.36 +v 13.34 19.12 -5.52 +v 13.34 19.12 -5.42 +v 12.70 19.07 -5.26 +v 12.05 19.12 -5.20 +v 12.28 19.23 -5.16 +v 12.05 19.26 -5.20 +v 12.27 20.21 -5.26 +v 12.70 20.52 -5.26 +v 13.35 19.26 -5.31 +v 13.13 19.24 -5.23 +v 13.35 19.12 -5.31 +v 12.71 19.07 -5.15 +v 12.71 19.21 -5.15 +v 13.12 20.21 -5.41 +v 13.12 19.24 -5.41 +v 13.34 20.29 -5.52 +v 13.34 20.29 -5.42 +v 12.03 19.12 -5.40 +v 12.04 19.12 -5.30 +v 13.12 20.21 -5.34 +v 12.27 19.23 -5.26 +v 13.12 19.24 -5.34 +v 12.70 19.21 -5.26 +v 13.34 19.26 -5.42 +v 13.34 19.26 -5.52 +v 12.03 19.26 -5.40 +v 12.04 19.26 -5.30 +v 11.94 19.12 -5.23 +v 11.94 19.26 -5.23 +v 13.46 19.26 -5.36 +v 13.46 19.12 -5.36 +v 15.89 23.34 -8.84 +v 16.57 24.92 -8.36 +v 16.03 24.92 -7.59 +v 15.35 23.34 -8.06 +v 15.60 28.41 -9.06 +v 16.50 28.41 -8.43 +v 15.96 28.41 -7.66 +v 15.06 28.41 -8.29 +v 16.70 27.21 -10.37 +v 16.70 26.24 -10.37 +v 16.71 26.21 -10.80 +v 16.71 27.52 -10.80 +v 16.61 26.26 -10.03 +v 16.61 26.12 -10.03 +v 16.71 26.12 -10.04 +v 16.71 26.26 -10.04 +v 16.69 27.75 -10.80 +v 16.64 27.30 -10.15 +v 16.74 27.30 -10.15 +v 16.78 27.75 -10.81 +v 16.48 26.12 -11.55 +v 16.48 26.26 -11.55 +v 16.58 26.26 -11.56 +v 16.58 26.12 -11.56 +v 16.69 26.07 -10.80 +v 16.53 26.12 -11.45 +v 16.62 26.12 -11.45 +v 16.78 26.07 -10.81 +v 16.84 26.12 -10.16 +v 16.88 26.24 -10.39 +v 16.84 26.26 -10.16 +v 16.78 27.21 -10.38 +v 16.78 27.52 -10.81 +v 16.73 26.26 -11.46 +v 16.81 26.25 -11.24 +v 16.73 26.12 -11.46 +v 16.89 26.07 -10.82 +v 16.89 26.21 -10.82 +v 16.63 27.21 -11.23 +v 16.63 26.25 -11.23 +v 16.53 27.30 -11.45 +v 16.62 27.30 -11.45 +v 16.64 26.12 -10.15 +v 16.74 26.12 -10.15 +v 16.70 27.21 -11.23 +v 16.78 26.24 -10.38 +v 16.70 26.25 -11.23 +v 16.78 26.21 -10.81 +v 16.62 26.26 -11.45 +v 16.53 26.26 -11.45 +v 16.64 26.26 -10.15 +v 16.74 26.26 -10.15 +v 16.82 26.12 -10.05 +v 16.82 26.26 -10.05 +v 16.68 26.26 -11.57 +v 16.68 26.12 -11.57 +v 15.67 12.70 -13.02 +v 16.39 14.28 -13.43 +v 16.86 14.28 -12.61 +v 16.15 12.70 -12.20 +v 15.74 17.34 -13.06 +v 16.69 17.34 -13.61 +v 17.17 17.34 -12.79 +v 16.21 17.34 -12.24 +v 16.83 28.50 -13.14 +v 16.83 30.29 -13.14 +v 17.49 30.29 -10.68 +v 17.49 28.50 -10.68 +v 15.03 28.50 -14.94 +v 15.03 30.29 -14.94 +v 12.57 28.50 -15.60 +v 12.57 30.29 -15.60 +v 10.10 28.50 -14.94 +v 10.10 30.29 -14.94 +v 8.30 28.50 -13.14 +v 8.30 30.29 -13.14 +v 7.64 28.50 -10.68 +v 7.64 30.29 -10.68 +v 8.30 28.50 -8.21 +v 8.30 30.29 -8.21 +v 10.10 28.50 -6.41 +v 10.10 30.29 -6.41 +v 12.57 28.50 -5.75 +v 12.57 30.29 -5.75 +v 15.03 28.50 -6.41 +v 15.03 30.29 -6.41 +v 16.83 28.50 -8.21 +v 16.83 30.29 -8.21 +v 16.21 30.29 -12.78 +v 16.78 30.29 -10.68 +v 15.03 30.90 -14.94 +v 14.67 30.90 -14.32 +v 16.21 30.90 -12.78 +v 16.83 30.90 -13.14 +v 12.57 30.29 -14.89 +v 14.67 30.29 -14.32 +v 10.10 30.90 -14.94 +v 10.46 30.90 -14.32 +v 12.57 30.90 -14.89 +v 12.57 30.90 -15.60 +v 8.92 30.29 -12.78 +v 10.46 30.29 -14.32 +v 7.64 30.90 -10.68 +v 8.36 30.90 -10.68 +v 8.92 30.90 -12.78 +v 8.30 30.90 -13.14 +v 8.92 30.29 -8.57 +v 8.36 30.29 -10.68 +v 10.10 30.90 -6.41 +v 10.46 30.90 -7.03 +v 8.92 30.90 -8.57 +v 8.30 30.90 -8.21 +v 12.57 30.29 -6.47 +v 10.46 30.29 -7.03 +v 15.03 30.90 -6.41 +v 14.67 30.90 -7.03 +v 12.57 30.90 -6.47 +v 12.57 30.90 -5.75 +v 16.21 30.29 -8.57 +v 14.67 30.29 -7.03 +v 17.49 30.90 -10.68 +v 16.78 30.90 -10.68 +v 16.21 30.90 -8.57 +v 16.83 30.90 -8.21 +v 16.21 29.42 -12.78 +v 16.78 29.42 -10.68 +v 14.67 29.42 -14.32 +v 12.57 29.42 -14.89 +v 10.46 29.42 -14.32 +v 8.92 29.42 -12.78 +v 8.36 29.42 -10.68 +v 8.92 29.42 -8.57 +v 10.46 29.42 -7.03 +v 12.57 29.42 -6.47 +v 14.67 29.42 -7.03 +v 16.21 29.42 -8.57 +v 12.57 29.42 -10.68 +# 4553 vertices + +vn -1.00 0.00 -0.00 +vn -0.48 0.00 -0.88 +vn -0.17 0.00 -0.99 +vn 0.00 0.00 -1.00 +vn 0.17 0.00 -0.99 +vn 0.48 0.00 -0.88 +vn 1.00 0.00 -0.00 +vn 0.48 0.00 0.88 +vn 0.17 0.00 0.99 +vn 0.00 0.00 1.00 +vn -0.17 0.00 0.99 +vn -0.48 0.00 0.88 +vn -0.73 0.00 -0.69 +vn -0.27 0.00 -0.96 +vn -0.08 0.00 -1.00 +vn 0.08 0.00 -1.00 +vn 0.27 0.00 -0.96 +vn 0.73 0.00 -0.69 +vn 0.73 0.00 0.69 +vn 0.27 0.00 0.96 +vn 0.08 0.00 1.00 +vn -0.08 0.00 1.00 +vn -0.27 0.00 0.96 +vn -0.73 0.00 0.69 +vn -0.72 0.00 0.69 +vn 0.00 -1.00 -0.00 +vn 0.00 1.00 -0.00 +vn -0.60 0.56 -0.57 +vn -0.26 0.33 -0.91 +vn -0.07 0.25 -0.96 +vn 0.07 0.25 -0.96 +vn 0.26 0.33 -0.91 +vn 0.60 0.56 -0.57 +vn 0.60 0.56 0.57 +vn 0.26 0.33 0.91 +vn 0.07 0.25 0.96 +vn -0.07 0.25 0.96 +vn -0.26 0.33 0.91 +vn -0.60 0.56 0.57 +vn -0.73 0.01 -0.69 +vn -0.27 0.01 -0.96 +vn -0.08 0.01 -1.00 +vn -0.07 0.01 -1.00 +vn 0.08 0.01 -1.00 +vn 0.27 0.01 -0.96 +vn 0.73 0.01 -0.69 +vn 0.72 0.01 0.69 +vn 0.73 0.01 0.69 +vn 0.27 0.01 0.96 +vn 0.08 0.01 1.00 +vn -0.08 0.01 1.00 +vn -0.07 0.01 1.00 +vn -0.27 0.01 0.96 +vn -0.73 0.01 0.69 +vn -0.72 0.01 0.69 +vn -0.30 -0.91 -0.29 +vn -0.18 -0.75 -0.64 +vn -0.18 -0.74 -0.64 +vn -0.06 -0.65 -0.76 +vn 0.06 -0.65 -0.76 +vn 0.18 -0.75 -0.64 +vn 0.18 -0.74 -0.64 +vn 0.30 -0.91 -0.29 +vn 0.30 -0.91 0.29 +vn 0.18 -0.74 0.64 +vn 0.18 -0.75 0.64 +vn 0.06 -0.65 0.76 +vn -0.06 -0.65 0.76 +vn -0.18 -0.74 0.64 +vn -0.18 -0.75 0.64 +vn -0.30 -0.91 0.29 +vn -1.00 0.00 0.06 +vn -0.02 0.00 1.00 +vn -0.02 0.65 0.76 +vn 0.02 0.00 -1.00 +vn 0.00 -0.99 -0.12 +vn -0.85 0.00 0.52 +vn -0.95 0.12 0.30 +vn -0.62 0.00 -0.78 +vn -0.76 -0.16 -0.63 +vn -0.83 0.00 -0.56 +vn 0.02 0.66 -0.75 +vn -0.00 -0.99 0.12 +vn -0.72 0.09 -0.69 +vn -0.96 -0.21 0.19 +vn 0.02 -0.64 -0.77 +vn -0.02 -0.64 0.77 +vn -0.00 0.99 0.13 +vn 0.00 1.00 -0.10 +vn 0.00 0.99 -0.17 +vn 0.01 0.99 -0.17 +vn -0.00 0.99 0.10 +vn -0.74 0.00 0.67 +vn -0.75 0.00 0.67 +vn -0.54 0.00 -0.84 +vn -0.00 0.00 -1.00 +vn -0.96 0.00 -0.29 +vn -0.95 0.00 -0.30 +vn -0.31 0.95 -0.10 +vn 0.95 0.00 0.30 +vn 0.96 0.00 0.29 +vn 0.03 -1.00 0.01 +vn -0.05 0.00 -1.00 +vn -0.03 0.04 -1.00 +vn 0.10 0.00 -1.00 +vn 0.07 -0.06 -1.00 +vn 0.05 0.00 -1.00 +vn 0.31 0.95 0.10 +vn -0.04 -1.00 -0.01 +vn 0.08 0.04 -1.00 +vn -0.02 -0.06 -1.00 +vn 0.32 -0.94 0.10 +vn -0.32 -0.94 -0.10 +vn -0.04 1.00 -0.01 +vn 0.03 1.00 0.01 +vn 0.05 1.00 0.01 +vn -0.03 1.00 -0.01 +vn -0.07 0.00 -1.00 +vn 0.12 0.00 -0.99 +vn 0.33 -0.45 -0.83 +vn 0.19 -0.00 0.98 +vn 0.37 0.03 -0.93 +vn -0.19 0.00 -0.98 +vn -0.01 0.00 -1.00 +vn -0.96 0.00 -0.30 +vn 0.31 0.95 0.09 +vn -0.18 -0.35 -0.92 +vn 0.37 -0.00 -0.93 +vn -0.19 0.02 -0.98 +vn -0.37 0.00 0.93 +vn 1.00 0.00 -0.06 +vn 0.02 0.65 -0.76 +vn 0.85 0.00 -0.52 +vn 0.95 0.12 -0.30 +vn 0.62 0.00 0.78 +vn 0.76 -0.16 0.63 +vn 0.83 0.00 0.56 +vn 0.82 0.00 0.57 +vn -0.02 0.66 0.75 +vn 0.72 0.09 0.69 +vn 0.96 -0.21 -0.19 +vn 0.00 0.99 -0.13 +vn -0.00 1.00 0.10 +vn -0.00 0.99 0.17 +vn 0.00 0.99 -0.10 +vn 0.75 0.00 -0.67 +vn 0.54 0.00 0.84 +vn 0.00 -0.30 0.95 +vn 0.00 -0.07 1.00 +vn 0.38 -0.49 -0.78 +vn 0.16 0.00 0.99 +vn 0.44 -0.12 -0.89 +vn -0.16 0.00 -0.99 +vn 0.00 -0.30 -0.95 +vn 0.00 -0.07 -1.00 +vn 0.18 -0.35 0.92 +vn -0.37 -0.00 0.93 +vn 0.19 0.02 0.98 +vn 0.37 0.00 -0.93 +vn 0.38 -0.49 0.78 +vn -0.16 0.00 0.99 +vn 0.44 -0.12 0.89 +vn 0.16 0.00 -0.99 +vn 0.01 0.00 1.00 +vn 0.96 0.00 0.30 +vn -0.03 -1.00 -0.01 +vn 0.05 0.00 1.00 +vn 0.03 0.04 1.00 +vn -0.10 0.00 1.00 +vn -0.07 -0.06 1.00 +vn -0.05 0.00 1.00 +vn -0.31 0.95 -0.09 +vn 0.04 -1.00 0.01 +vn -0.08 0.04 1.00 +vn 0.02 -0.06 1.00 +vn 0.04 1.00 0.01 +vn -0.05 1.00 -0.02 +vn 0.07 0.00 1.00 +vn -0.12 0.00 0.99 +vn -0.38 -0.49 0.78 +vn -0.44 -0.12 0.89 +vn -0.43 -0.12 0.89 +vn -0.33 -0.45 0.83 +vn -0.19 -0.00 -0.98 +vn -0.37 0.03 0.93 +vn 0.19 0.00 0.98 +vn -0.38 -0.49 -0.78 +vn -0.44 -0.12 -0.89 +vn -0.43 -0.12 -0.89 +vn 0.72 0.00 0.69 +vn -0.07 0.00 1.00 +vn -0.72 0.00 -0.69 +vn 0.07 0.00 -1.00 +vn 0.72 0.00 -0.69 +vn 0.44 0.00 -0.90 +vn 0.44 0.00 0.90 +vn -0.44 0.00 0.90 +vn -0.44 0.00 -0.90 +vn 0.50 0.87 -0.00 +vn 0.00 0.45 -0.89 +vn -0.50 0.87 -0.00 +vn 0.00 0.42 0.91 +vn 0.08 1.00 -0.00 +vn 0.04 0.55 0.83 +vn -0.00 0.55 0.83 +vn 0.01 0.01 1.00 +vn -0.00 0.55 -0.83 +vn 0.04 0.55 -0.83 +vn 0.01 0.01 -1.00 +vn -0.08 1.00 -0.00 +vn -0.04 0.55 0.83 +vn -0.01 0.01 1.00 +vn -0.04 0.55 -0.83 +vn -0.01 0.01 -1.00 +vn -0.06 0.60 -0.79 +vn -0.91 -0.41 0.00 +vn -0.10 0.98 -0.19 +vn -0.06 0.60 0.79 +vn -0.91 -0.41 -0.00 +vn -0.10 0.98 0.19 +vn -0.05 0.61 -0.79 +vn -0.94 -0.35 -0.00 +vn -0.08 0.98 -0.19 +vn -0.05 0.61 0.79 +vn -0.08 0.98 0.19 +vn -0.04 0.61 -0.79 +vn -0.03 0.61 -0.79 +vn -0.97 -0.25 0.00 +vn -0.97 -0.25 -0.00 +vn -0.06 0.98 -0.19 +vn -0.04 0.61 0.79 +vn -0.03 0.61 0.79 +vn -0.06 0.98 0.19 +vn -0.01 0.61 -0.79 +vn -1.00 -0.07 -0.00 +vn -0.02 0.98 -0.19 +vn -0.01 0.61 0.79 +vn -0.02 0.98 0.19 +vn -1.00 -0.07 0.00 +vn -0.02 0.61 -0.79 +vn -0.99 -0.11 -0.00 +vn -0.02 0.61 0.79 +vn -0.99 -0.11 0.00 +vn 0.06 0.60 -0.79 +vn 0.91 -0.41 0.00 +vn 0.10 0.98 -0.19 +vn 0.06 0.60 0.79 +vn 0.91 -0.41 -0.00 +vn 0.10 0.98 0.19 +vn 0.05 0.61 -0.79 +vn 0.94 -0.35 -0.00 +vn 0.08 0.98 -0.19 +vn 0.05 0.61 0.79 +vn 0.94 -0.35 0.00 +vn 0.08 0.98 0.19 +vn 0.03 0.61 -0.79 +vn 0.04 0.61 -0.79 +vn 0.97 -0.25 0.00 +vn 0.06 0.98 -0.19 +vn 0.03 0.61 0.79 +vn 0.97 -0.25 -0.00 +vn 0.06 0.98 0.19 +vn 0.04 0.61 0.79 +vn 0.01 0.61 -0.79 +vn 1.00 -0.07 -0.00 +vn 0.02 0.98 -0.19 +vn 0.01 0.61 0.79 +vn 0.02 0.98 0.19 +vn 1.00 -0.07 0.00 +vn 0.02 0.61 -0.79 +vn 0.99 -0.11 -0.00 +vn 0.02 0.61 0.79 +vn 0.99 -0.11 0.00 +vn 0.10 0.98 -0.20 +vn 0.10 0.98 0.20 +vn 0.09 0.59 -0.80 +vn -0.82 0.57 0.00 +vn -0.82 0.57 -0.00 +vn 0.15 0.97 -0.20 +vn 0.09 0.59 0.80 +vn 0.15 0.97 0.20 +vn -0.09 0.59 -0.80 +vn 0.82 0.57 0.00 +vn -0.15 0.97 -0.20 +vn -0.09 0.59 0.80 +vn 0.82 0.57 -0.00 +vn -0.15 0.97 0.20 +vn -0.57 0.82 -0.00 +vn 0.08 -1.00 -0.00 +vn 0.57 0.82 -0.00 +vn -0.08 -1.00 -0.00 +vn 0.59 -0.81 -0.00 +vn -0.59 -0.81 -0.00 +vn 0.06 1.00 -0.00 +vn 0.10 0.99 -0.00 +vn -0.06 1.00 -0.00 +vn -0.07 -1.00 -0.00 +vn 0.07 -1.00 -0.00 +vn 0.00 0.37 0.93 +vn 0.00 -0.97 -0.26 +vn 0.00 0.37 -0.93 +vn 0.00 -0.97 0.26 +vn 0.00 -0.36 -0.93 +vn 0.00 -0.36 0.93 +vn 0.00 0.96 0.28 +vn 0.00 0.98 -0.21 +vn 0.00 0.94 -0.35 +vn 0.00 0.98 0.22 +vn 0.00 0.96 -0.28 +vn 0.00 0.98 0.21 +vn 0.00 0.94 0.35 +vn 0.00 0.98 -0.22 +vn 0.11 0.99 -0.00 +vn -0.10 0.99 -0.00 +vn 1.00 0.04 -0.00 +vn 0.87 0.50 -0.00 +vn -1.00 -0.04 -0.00 +vn -0.87 -0.50 -0.00 +vn 0.40 0.92 -0.00 +vn -0.42 -0.91 -0.00 +vn -0.40 0.92 -0.00 +vn 0.42 -0.91 -0.00 +vn -0.87 0.50 -0.00 +vn 0.87 -0.50 -0.00 +vn -1.00 0.04 -0.00 +vn 1.00 -0.04 -0.00 +vn 0.02 0.05 -1.00 +vn 0.95 -0.05 0.30 +vn -0.02 -0.01 1.00 +vn -0.94 0.18 -0.29 +vn 0.03 -0.06 -1.00 +vn 0.02 -0.06 -1.00 +vn 0.96 0.05 0.27 +vn -0.02 0.01 1.00 +vn -0.96 -0.22 -0.19 +vn 0.00 -1.00 -0.05 +vn 0.00 1.00 0.05 +vn 0.00 -1.00 0.05 +vn 0.00 1.00 -0.05 +vn 0.02 -1.00 -0.00 +vn -0.02 1.00 -0.00 +vn -0.01 1.00 -0.00 +vn -0.01 -1.00 -0.00 +vn 0.01 1.00 -0.00 +vn 0.02 0.05 1.00 +vn 0.95 -0.05 -0.30 +vn -0.02 -0.01 -1.00 +vn -0.94 0.18 0.29 +vn 0.03 -0.06 1.00 +vn 0.96 0.05 -0.27 +vn -0.02 0.01 -1.00 +vn -0.96 -0.22 0.19 +vn -0.96 -0.22 0.18 +vn 0.01 -1.00 -0.00 +vn -0.02 -1.00 -0.00 +vn 0.02 1.00 -0.00 +vn -0.99 0.12 -0.00 +vn -1.00 0.01 0.04 +vn -0.99 -0.10 0.07 +vn 0.00 0.01 1.00 +vn 0.00 -0.00 1.00 +vn 1.00 0.01 0.01 +vn 1.00 -0.03 0.02 +vn 0.00 0.04 -1.00 +vn 0.00 0.01 -1.00 +vn 0.00 -0.02 -1.00 +vn 0.13 -0.99 -0.00 +vn -0.13 0.99 -0.00 +vn -0.13 -0.99 -0.00 +vn 0.13 0.99 -0.00 +vn -0.07 1.00 -0.00 +vn 0.07 1.00 -0.00 +vn 0.00 -0.67 -0.74 +vn 0.00 -0.13 -0.99 +vn 0.00 0.67 -0.74 +vn 0.00 0.13 -0.99 +vn 0.00 0.12 -0.99 +vn -1.00 0.01 -0.04 +vn -0.99 -0.10 -0.07 +vn 0.00 -0.00 -1.00 +vn 1.00 0.01 -0.01 +vn 1.00 -0.03 -0.02 +vn 0.00 0.04 1.00 +vn 0.00 -0.02 1.00 +vn 0.72 0.01 -0.69 +vn -0.72 0.01 -0.69 +vn -1.00 0.00 -0.06 +vn -0.02 0.00 -1.00 +vn -0.02 0.65 -0.76 +vn 0.02 0.00 1.00 +vn 0.00 -0.99 0.12 +vn -0.85 0.00 -0.52 +vn -0.95 0.12 -0.30 +vn -0.62 0.00 0.78 +vn -0.76 -0.16 0.63 +vn -0.83 0.00 0.56 +vn 0.02 0.66 0.75 +vn -0.00 -0.99 -0.12 +vn -0.72 0.09 0.69 +vn -0.96 -0.21 -0.19 +vn 0.02 -0.64 0.77 +vn -0.02 -0.64 -0.77 +vn -0.00 0.99 -0.13 +vn 0.00 1.00 0.10 +vn 0.00 0.99 0.17 +vn 0.01 0.99 0.17 +vn -0.00 0.99 -0.10 +vn -0.74 0.00 -0.67 +vn -0.75 0.00 -0.67 +vn -0.54 0.00 0.84 +vn -0.00 0.00 1.00 +vn -0.96 0.00 0.29 +vn -0.95 0.00 0.30 +vn -0.31 0.95 0.10 +vn 0.95 0.00 -0.30 +vn 0.96 0.00 -0.29 +vn 0.03 -1.00 -0.01 +vn -0.03 0.04 1.00 +vn 0.10 0.00 1.00 +vn 0.07 -0.06 1.00 +vn 0.31 0.95 -0.10 +vn -0.04 -1.00 0.01 +vn 0.08 0.04 1.00 +vn -0.02 -0.06 1.00 +vn 0.32 -0.94 -0.10 +vn -0.32 -0.94 0.10 +vn -0.04 1.00 0.01 +vn 0.03 1.00 -0.01 +vn 0.05 1.00 -0.01 +vn -0.03 1.00 0.01 +vn 0.12 0.00 0.99 +vn 0.33 -0.45 0.83 +vn 0.19 -0.00 -0.98 +vn 0.37 0.03 0.93 +vn -0.19 0.00 0.98 +vn -0.01 0.00 1.00 +vn -0.96 0.00 0.30 +vn 0.31 0.95 -0.09 +vn -0.18 -0.35 0.92 +vn 0.37 -0.00 0.93 +vn -0.19 0.02 0.98 +vn -0.37 0.00 -0.93 +vn 1.00 0.00 0.06 +vn 0.02 0.65 0.76 +vn 0.85 0.00 0.52 +vn 0.95 0.12 0.30 +vn 0.62 0.00 -0.78 +vn 0.76 -0.16 -0.63 +vn 0.83 0.00 -0.56 +vn 0.82 0.00 -0.57 +vn -0.02 0.66 -0.75 +vn 0.72 0.09 -0.69 +vn 0.96 -0.21 0.19 +vn 0.00 0.99 0.13 +vn -0.00 1.00 -0.10 +vn -0.00 0.99 -0.17 +vn 0.00 0.99 0.10 +vn 0.75 0.00 0.67 +vn 0.54 0.00 -0.84 +vn 0.18 -0.35 -0.92 +vn -0.37 -0.00 -0.93 +vn 0.19 0.02 -0.98 +vn 0.37 0.00 0.93 +vn 0.01 0.00 -1.00 +vn 0.96 0.00 -0.30 +vn -0.03 -1.00 0.01 +vn 0.03 0.04 -1.00 +vn -0.10 0.00 -1.00 +vn -0.07 -0.06 -1.00 +vn -0.31 0.95 0.09 +vn 0.04 -1.00 -0.01 +vn -0.08 0.04 -1.00 +vn 0.04 1.00 -0.01 +vn -0.05 1.00 0.02 +vn -0.12 0.00 -0.99 +vn -0.33 -0.45 -0.83 +vn -0.19 -0.00 0.98 +vn -0.37 0.03 -0.93 +vn 0.19 0.00 -0.98 +vn 0.74 0.00 -0.67 +vn -0.05 1.00 -0.01 +vn -0.82 0.00 -0.57 +vn 0.05 1.00 0.02 +vn 0.74 0.00 0.67 +vn -0.05 1.00 0.01 +vn -0.82 0.00 0.57 +vn 0.05 1.00 -0.02 +# 487 vertex normals + +vt 0.10 0.10 0.00 +vt 0.07 0.10 0.00 +vt 0.07 0.01 0.00 +vt 0.10 0.01 0.00 +vt 0.05 0.10 0.00 +vt 0.05 0.01 0.00 +vt 0.02 0.10 0.00 +vt 0.02 0.01 0.00 +vt 0.38 0.10 0.00 +vt 0.35 0.10 0.00 +vt 0.35 0.01 0.00 +vt 0.38 0.01 0.00 +vt 0.32 0.10 0.00 +vt 0.32 0.01 0.00 +vt 0.29 0.10 0.00 +vt 0.29 0.01 0.00 +vt 0.27 0.10 0.00 +vt 0.27 0.01 0.00 +vt 0.24 0.10 0.00 +vt 0.24 0.01 0.00 +vt 0.21 0.10 0.00 +vt 0.21 0.01 0.00 +vt 0.17 0.10 0.00 +vt 0.17 0.01 0.00 +vt 0.13 0.10 0.00 +vt 0.13 0.01 0.00 +vt 0.34 0.56 0.00 +vt 0.37 0.56 0.00 +vt 0.37 0.57 0.00 +vt 0.34 0.57 0.00 +vt 0.30 0.56 0.00 +vt 0.30 0.57 0.00 +vt 0.27 0.56 0.00 +vt 0.27 0.57 0.00 +vt 0.61 0.56 0.00 +vt 0.64 0.56 0.00 +vt 0.64 0.57 0.00 +vt 0.61 0.57 0.00 +vt 0.58 0.56 0.00 +vt 0.58 0.57 0.00 +vt 0.55 0.56 0.00 +vt 0.55 0.57 0.00 +vt 0.52 0.56 0.00 +vt 0.52 0.57 0.00 +vt 0.49 0.56 0.00 +vt 0.49 0.57 0.00 +vt 0.46 0.56 0.00 +vt 0.46 0.57 0.00 +vt 0.43 0.56 0.00 +vt 0.43 0.57 0.00 +vt 0.40 0.56 0.00 +vt 0.40 0.57 0.00 +vt 0.97 0.27 0.00 +vt 0.96 0.28 0.00 +vt 0.94 0.27 0.00 +vt 0.93 0.26 0.00 +vt 0.93 0.25 0.00 +vt 0.93 0.24 0.00 +vt 0.93 0.23 0.00 +vt 0.94 0.23 0.00 +vt 0.94 0.22 0.00 +vt 0.96 0.22 0.00 +vt 0.97 0.23 0.00 +vt 0.97 0.22 0.00 +vt 0.98 0.24 0.00 +vt 0.98 0.23 0.00 +vt 0.99 0.25 0.00 +vt 0.98 0.26 0.00 +vt 0.81 0.06 0.00 +vt 0.81 0.16 0.00 +vt 0.78 0.16 0.00 +vt 0.78 0.06 0.00 +vt 0.76 0.16 0.00 +vt 0.76 0.06 0.00 +vt 0.73 0.16 0.00 +vt 0.73 0.06 0.00 +vt 0.71 0.16 0.00 +vt 0.71 0.06 0.00 +vt 0.69 0.16 0.00 +vt 0.69 0.06 0.00 +vt 0.98 0.06 0.00 +vt 0.98 0.16 0.00 +vt 0.95 0.16 0.00 +vt 0.95 0.06 0.00 +vt 0.93 0.16 0.00 +vt 0.93 0.06 0.00 +vt 0.91 0.16 0.00 +vt 0.91 0.06 0.00 +vt 0.88 0.16 0.00 +vt 0.88 0.06 0.00 +vt 0.86 0.16 0.00 +vt 0.86 0.07 0.00 +vt 0.83 0.16 0.00 +vt 0.83 0.07 0.00 +vt 0.98 0.28 0.00 +vt 0.96 0.29 0.00 +vt 0.99 0.27 0.00 +vt 1.00 0.25 0.00 +vt 0.99 0.23 0.00 +vt 0.98 0.22 0.00 +vt 0.96 0.21 0.00 +vt 0.92 0.23 0.00 +vt 0.92 0.25 0.00 +vt 0.93 0.27 0.00 +vt 0.92 0.27 0.00 +vt 0.94 0.28 0.00 +vt 0.11 0.23 0.00 +vt 0.09 0.22 0.00 +vt 0.10 0.18 0.00 +vt 0.13 0.19 0.00 +vt 0.14 0.24 0.00 +vt 0.15 0.19 0.00 +vt 0.17 0.24 0.00 +vt 0.18 0.20 0.00 +vt 0.21 0.24 0.00 +vt 0.20 0.20 0.00 +vt 0.24 0.24 0.00 +vt 0.23 0.19 0.00 +vt 0.27 0.23 0.00 +vt 0.25 0.19 0.00 +vt 0.30 0.22 0.00 +vt 0.28 0.18 0.00 +vt 0.32 0.21 0.00 +vt 0.30 0.17 0.00 +vt 0.35 0.19 0.00 +vt 0.32 0.16 0.00 +vt 0.03 0.19 0.00 +vt 0.01 0.17 0.00 +vt 0.04 0.14 0.00 +vt 0.06 0.16 0.00 +vt 0.06 0.21 0.00 +vt 0.08 0.17 0.00 +vt 0.12 0.14 0.00 +vt 0.14 0.15 0.00 +vt 0.16 0.15 0.00 +vt 0.18 0.16 0.00 +vt 0.20 0.16 0.00 +vt 0.22 0.15 0.00 +vt 0.24 0.15 0.00 +vt 0.26 0.14 0.00 +vt 0.28 0.13 0.00 +vt 0.31 0.12 0.00 +vt 0.06 0.11 0.00 +vt 0.08 0.12 0.00 +vt 0.10 0.13 0.00 +vt 0.14 0.12 0.00 +vt 0.12 0.12 0.00 +vt 0.12 0.11 0.00 +vt 0.14 0.11 0.00 +vt 0.10 0.12 0.00 +vt 0.10 0.11 0.00 +vt 0.35 0.12 0.00 +vt 0.33 0.12 0.00 +vt 0.33 0.11 0.00 +vt 0.35 0.11 0.00 +vt 0.31 0.11 0.00 +vt 0.29 0.12 0.00 +vt 0.29 0.11 0.00 +vt 0.27 0.12 0.00 +vt 0.27 0.11 0.00 +vt 0.24 0.12 0.00 +vt 0.24 0.11 0.00 +vt 0.22 0.12 0.00 +vt 0.22 0.11 0.00 +vt 0.20 0.12 0.00 +vt 0.20 0.11 0.00 +vt 0.18 0.12 0.00 +vt 0.18 0.11 0.00 +vt 0.16 0.12 0.00 +vt 0.16 0.11 0.00 +vt 0.67 0.06 0.00 +vt 0.64 0.06 0.00 +vt 0.64 0.01 0.00 +vt 0.67 0.01 0.00 +vt 0.60 0.06 0.00 +vt 0.60 0.01 0.00 +vt 0.99 0.06 0.00 +vt 0.96 0.06 0.00 +vt 0.96 0.01 0.00 +vt 0.99 0.01 0.00 +vt 0.93 0.01 0.00 +vt 0.89 0.06 0.00 +vt 0.89 0.01 0.00 +vt 0.86 0.06 0.00 +vt 0.86 0.01 0.00 +vt 0.83 0.06 0.00 +vt 0.83 0.01 0.00 +vt 0.80 0.06 0.00 +vt 0.80 0.01 0.00 +vt 0.77 0.06 0.00 +vt 0.77 0.01 0.00 +vt 0.73 0.01 0.00 +vt 0.70 0.06 0.00 +vt 0.70 0.01 0.00 +vt 0.95 0.87 0.00 +vt 0.93 0.89 0.00 +vt 0.92 0.82 0.00 +vt 0.95 0.82 0.00 +vt 0.92 0.79 0.00 +vt 0.90 0.79 0.00 +vt 0.90 0.77 0.00 +vt 0.92 0.77 0.00 +vt 0.99 0.56 0.00 +vt 0.98 0.56 0.00 +vt 0.98 0.52 0.00 +vt 0.99 0.52 0.00 +vt 0.93 0.78 0.00 +vt 0.96 0.78 0.00 +vt 0.96 0.79 0.00 +vt 0.96 0.81 0.00 +vt 0.94 0.81 0.00 +vt 0.93 0.90 0.00 +vt 0.95 0.88 0.00 +vt 0.96 0.88 0.00 +vt 0.89 0.79 0.00 +vt 0.89 0.81 0.00 +vt 0.90 0.87 0.00 +vt 0.90 0.82 0.00 +vt 0.99 0.60 0.00 +vt 0.98 0.60 0.00 +vt 0.99 0.66 0.00 +vt 0.99 0.59 0.00 +vt 0.99 0.46 0.00 +vt 0.92 0.76 0.00 +vt 0.86 0.76 0.00 +vt 0.86 0.77 0.00 +vt 0.96 0.83 0.00 +vt 0.95 0.83 0.00 +vt 0.98 0.66 0.00 +vt 0.98 0.46 0.00 +vt 0.96 0.76 0.00 +vt 0.92 0.75 0.00 +vt 0.96 0.75 0.00 +vt 0.86 0.75 0.00 +vt 0.93 0.77 0.00 +vt 0.96 0.77 0.00 +vt 0.97 0.76 0.00 +vt 0.97 0.77 0.00 +vt 0.97 0.75 0.00 +vt 0.97 0.79 0.00 +vt 0.98 0.80 0.00 +vt 0.97 0.78 0.00 +vt 0.62 0.90 0.00 +vt 0.63 0.90 0.00 +vt 0.63 0.93 0.00 +vt 0.62 0.93 0.00 +vt 0.66 0.90 0.00 +vt 0.64 0.93 0.00 +vt 0.64 0.98 0.00 +vt 0.66 0.98 0.00 +vt 0.63 0.99 0.00 +vt 0.62 0.99 0.00 +vt 0.60 0.18 0.00 +vt 0.63 0.18 0.00 +vt 0.63 0.20 0.00 +vt 0.60 0.20 0.00 +vt 0.56 0.18 0.00 +vt 0.56 0.20 0.00 +vt 0.53 0.18 0.00 +vt 0.53 0.20 0.00 +vt 0.89 0.18 0.00 +vt 0.92 0.18 0.00 +vt 0.92 0.20 0.00 +vt 0.89 0.20 0.00 +vt 0.86 0.18 0.00 +vt 0.86 0.20 0.00 +vt 0.82 0.18 0.00 +vt 0.82 0.20 0.00 +vt 0.79 0.18 0.00 +vt 0.79 0.20 0.00 +vt 0.76 0.18 0.00 +vt 0.76 0.20 0.00 +vt 0.73 0.18 0.00 +vt 0.73 0.20 0.00 +vt 0.69 0.18 0.00 +vt 0.69 0.20 0.00 +vt 0.66 0.18 0.00 +vt 0.66 0.20 0.00 +vt 0.86 0.88 0.00 +vt 0.83 0.89 0.00 +vt 0.83 0.88 0.00 +vt 0.85 0.88 0.00 +vt 0.88 0.87 0.00 +vt 0.87 0.86 0.00 +vt 0.88 0.84 0.00 +vt 0.88 0.81 0.00 +vt 0.87 0.82 0.00 +vt 0.86 0.79 0.00 +vt 0.85 0.80 0.00 +vt 0.83 0.79 0.00 +vt 0.83 0.80 0.00 +vt 0.81 0.79 0.00 +vt 0.81 0.80 0.00 +vt 0.79 0.81 0.00 +vt 0.79 0.82 0.00 +vt 0.78 0.84 0.00 +vt 0.79 0.84 0.00 +vt 0.79 0.87 0.00 +vt 0.79 0.86 0.00 +vt 0.81 0.88 0.00 +vt 0.60 0.67 0.00 +vt 0.58 0.67 0.00 +vt 0.58 0.66 0.00 +vt 0.61 0.66 0.00 +vt 0.64 0.67 0.00 +vt 0.64 0.66 0.00 +vt 0.68 0.67 0.00 +vt 0.68 0.66 0.00 +vt 0.72 0.67 0.00 +vt 0.72 0.66 0.00 +vt 0.76 0.67 0.00 +vt 0.76 0.66 0.00 +vt 0.79 0.67 0.00 +vt 0.79 0.66 0.00 +vt 0.81 0.67 0.00 +vt 0.81 0.66 0.00 +vt 0.84 0.67 0.00 +vt 0.84 0.66 0.00 +vt 0.88 0.67 0.00 +vt 0.88 0.66 0.00 +vt 0.53 0.67 0.00 +vt 0.49 0.67 0.00 +vt 0.50 0.66 0.00 +vt 0.53 0.66 0.00 +vt 0.56 0.67 0.00 +vt 0.56 0.66 0.00 +vt 0.66 0.16 0.00 +vt 0.63 0.17 0.00 +vt 0.63 0.12 0.00 +vt 0.68 0.14 0.00 +vt 0.68 0.12 0.00 +vt 0.68 0.09 0.00 +vt 0.66 0.07 0.00 +vt 0.63 0.07 0.00 +vt 0.61 0.07 0.00 +vt 0.59 0.09 0.00 +vt 0.59 0.12 0.00 +vt 0.59 0.14 0.00 +vt 0.61 0.16 0.00 +vt 0.60 0.21 0.00 +vt 0.56 0.21 0.00 +vt 0.64 0.68 0.00 +vt 0.60 0.68 0.00 +vt 0.92 0.21 0.00 +vt 0.89 0.21 0.00 +vt 0.72 0.68 0.00 +vt 0.68 0.68 0.00 +vt 0.86 0.21 0.00 +vt 0.82 0.21 0.00 +vt 0.79 0.68 0.00 +vt 0.76 0.68 0.00 +vt 0.79 0.21 0.00 +vt 0.76 0.21 0.00 +vt 0.84 0.68 0.00 +vt 0.81 0.68 0.00 +vt 0.73 0.21 0.00 +vt 0.69 0.21 0.00 +vt 0.53 0.68 0.00 +vt 0.49 0.68 0.00 +vt 0.66 0.21 0.00 +vt 0.63 0.21 0.00 +vt 0.58 0.68 0.00 +vt 0.56 0.68 0.00 +vt 0.24 0.62 0.00 +vt 0.00 0.62 0.00 +vt 0.05 0.71 0.00 +vt 0.19 0.71 0.00 +vt 0.00 0.41 0.00 +vt 0.28 0.41 0.00 +vt 0.24 0.49 0.00 +vt 0.05 0.49 0.00 +vt 0.01 0.52 0.00 +vt 0.29 0.52 0.00 +vt 0.24 0.59 0.00 +vt 0.05 0.59 0.00 +vt 0.38 0.32 0.00 +vt 0.53 0.32 0.00 +vt 0.53 0.42 0.00 +vt 0.38 0.42 0.00 +vt 0.67 0.21 0.00 +vt 0.49 0.21 0.00 +vt 0.49 0.30 0.00 +vt 0.67 0.30 0.00 +vt 0.46 0.89 0.00 +vt 0.27 0.89 0.00 +vt 0.27 0.99 0.00 +vt 0.46 0.99 0.00 +vt 0.62 0.80 0.00 +vt 0.77 0.80 0.00 +vt 0.77 0.88 0.00 +vt 0.62 0.88 0.00 +vt 0.24 0.73 0.00 +vt 0.32 0.73 0.00 +vt 0.31 0.72 0.00 +vt 0.24 0.72 0.00 +vt 0.32 0.63 0.00 +vt 0.31 0.64 0.00 +vt 0.24 0.63 0.00 +vt 0.24 0.64 0.00 +vt 0.19 0.33 0.00 +vt 0.19 0.25 0.00 +vt 0.20 0.27 0.00 +vt 0.20 0.31 0.00 +vt 0.31 0.25 0.00 +vt 0.30 0.27 0.00 +vt 0.31 0.33 0.00 +vt 0.30 0.31 0.00 +vt 0.14 0.26 0.00 +vt 0.14 0.40 0.00 +vt 0.18 0.34 0.00 +vt 0.18 0.26 0.00 +vt 0.36 0.40 0.00 +vt 0.32 0.34 0.00 +vt 0.36 0.26 0.00 +vt 0.32 0.26 0.00 +vt 0.49 0.15 0.00 +vt 0.49 0.25 0.00 +vt 0.36 0.25 0.00 +vt 0.36 0.15 0.00 +vt 0.41 0.01 0.00 +vt 0.58 0.01 0.00 +vt 0.58 0.14 0.00 +vt 0.41 0.14 0.00 +vt 0.58 0.42 0.00 +vt 0.58 0.54 0.00 +vt 0.45 0.53 0.00 +vt 0.45 0.45 0.00 +vt 0.71 0.95 0.00 +vt 0.66 0.89 0.00 +vt 0.14 0.94 0.00 +vt 0.01 0.95 0.00 +vt 0.76 0.89 0.00 +vt 0.32 0.41 0.00 +vt 0.32 0.53 0.00 +vt 0.27 0.95 0.00 +vt 0.80 0.98 0.00 +vt 0.80 0.93 0.00 +vt 0.81 0.93 0.00 +vt 0.81 0.98 0.00 +vt 0.78 0.98 0.00 +vt 0.78 0.93 0.00 +vt 0.77 0.93 0.00 +vt 0.77 0.98 0.00 +vt 0.77 0.99 0.00 +vt 0.78 0.99 0.00 +vt 0.73 0.93 0.00 +vt 0.74 0.93 0.00 +vt 0.74 0.98 0.00 +vt 0.73 0.98 0.00 +vt 0.76 0.98 0.00 +vt 0.86 0.48 0.00 +vt 0.86 0.45 0.00 +vt 0.94 0.45 0.00 +vt 0.94 0.48 0.00 +vt 0.95 0.40 0.00 +vt 0.99 0.40 0.00 +vt 0.99 0.45 0.00 +vt 0.95 0.45 0.00 +vt 0.99 0.35 0.00 +vt 0.90 0.35 0.00 +vt 0.90 0.39 0.00 +vt 0.99 0.39 0.00 +vt 0.68 0.24 0.00 +vt 0.71 0.24 0.00 +vt 0.71 0.62 0.00 +vt 0.68 0.62 0.00 +vt 0.61 0.69 0.00 +vt 0.80 0.69 0.00 +vt 0.80 0.76 0.00 +vt 0.61 0.76 0.00 +vt 0.87 0.95 0.00 +vt 0.86 0.97 0.00 +vt 0.86 0.91 0.00 +vt 0.87 0.91 0.00 +vt 0.90 0.94 0.00 +vt 0.90 0.91 0.00 +vt 0.91 0.91 0.00 +vt 0.91 0.94 0.00 +vt 0.98 0.83 0.00 +vt 0.98 0.76 0.00 +vt 0.89 0.94 0.00 +vt 0.89 0.91 0.00 +vt 0.95 0.93 0.00 +vt 0.97 0.93 0.00 +vt 0.97 0.94 0.00 +vt 0.97 0.97 0.00 +vt 0.97 0.99 0.00 +vt 0.96 0.99 0.00 +vt 0.86 0.98 0.00 +vt 0.87 0.97 0.00 +vt 0.88 0.97 0.00 +vt 0.86 0.99 0.00 +vt 0.90 0.99 0.00 +vt 0.90 0.97 0.00 +vt 0.91 0.99 0.00 +vt 0.93 0.97 0.00 +vt 0.93 0.98 0.00 +vt 0.85 0.95 0.00 +vt 0.85 0.91 0.00 +vt 0.98 0.90 0.00 +vt 0.93 0.93 0.00 +vt 0.84 0.97 0.00 +vt 0.85 0.97 0.00 +vt 0.99 0.78 0.00 +vt 0.99 0.67 0.00 +vt 0.99 0.83 0.00 +vt 0.99 0.89 0.00 +vt 0.99 0.99 0.00 +vt 0.93 0.95 0.00 +vt 0.93 0.96 0.00 +vt 0.90 0.96 0.00 +vt 0.90 0.95 0.00 +vt 0.96 0.95 0.00 +vt 0.96 0.96 0.00 +vt 0.84 0.92 0.00 +vt 0.85 0.92 0.00 +vt 0.98 0.99 0.00 +vt 0.98 0.67 0.00 +vt 0.88 0.92 0.00 +vt 0.97 0.95 0.00 +vt 0.89 0.95 0.00 +vt 0.95 0.92 0.00 +vt 0.97 0.92 0.00 +vt 0.93 0.92 0.00 +vt 0.98 0.95 0.00 +vt 0.98 0.96 0.00 +vt 0.97 0.96 0.00 +vt 0.98 0.94 0.00 +vt 0.89 0.99 0.00 +vt 0.89 0.97 0.00 +vt 0.88 0.96 0.00 +vt 0.88 0.95 0.00 +vt 0.89 0.96 0.00 +vt 0.04 0.35 0.00 +vt 0.04 0.25 0.00 +vt 0.07 0.25 0.00 +vt 0.07 0.36 0.00 +vt 0.13 0.33 0.00 +vt 0.10 0.35 0.00 +vt 0.10 0.25 0.00 +vt 0.13 0.25 0.00 +vt 0.01 0.33 0.00 +vt 0.01 0.25 0.00 +vt 0.93 0.52 0.00 +vt 0.94 0.52 0.00 +vt 0.94 0.58 0.00 +vt 0.93 0.58 0.00 +vt 0.92 0.49 0.00 +vt 0.91 0.49 0.00 +vt 0.91 0.54 0.00 +vt 0.92 0.55 0.00 +vt 0.97 0.52 0.00 +vt 0.95 0.52 0.00 +vt 0.95 0.58 0.00 +vt 0.97 0.58 0.00 +vt 0.94 0.64 0.00 +vt 0.93 0.64 0.00 +vt 0.89 0.58 0.00 +vt 0.89 0.59 0.00 +vt 0.95 0.64 0.00 +vt 0.97 0.64 0.00 +vt 0.94 0.69 0.00 +vt 0.93 0.69 0.00 +vt 0.86 0.59 0.00 +vt 0.86 0.61 0.00 +vt 0.95 0.69 0.00 +vt 0.97 0.69 0.00 +vt 0.83 0.58 0.00 +vt 0.83 0.59 0.00 +vt 0.81 0.54 0.00 +vt 0.80 0.55 0.00 +vt 0.81 0.49 0.00 +vt 0.80 0.49 0.00 +vt 0.82 0.22 0.00 +vt 0.85 0.22 0.00 +vt 0.84 0.39 0.00 +vt 0.81 0.39 0.00 +vt 0.76 0.22 0.00 +vt 0.80 0.22 0.00 +vt 0.79 0.38 0.00 +vt 0.76 0.38 0.00 +vt 0.82 0.52 0.00 +vt 0.85 0.52 0.00 +vt 0.80 0.51 0.00 +vt 0.76 0.53 0.00 +vt 0.18 0.92 0.00 +vt 0.09 0.92 0.00 +vt 0.09 0.93 0.00 +vt 0.18 0.93 0.00 +vt 0.00 0.90 0.00 +vt 0.10 0.89 0.00 +vt 0.10 0.90 0.00 +vt 0.00 0.91 0.00 +vt 0.00 0.92 0.00 +vt 0.00 0.93 0.00 +vt 0.20 0.90 0.00 +vt 0.20 0.91 0.00 +vt 0.20 0.93 0.00 +vt 0.23 0.90 0.00 +vt 0.23 0.93 0.00 +vt 0.26 0.76 0.00 +vt 0.26 0.90 0.00 +vt 0.22 0.84 0.00 +vt 0.22 0.76 0.00 +vt 0.11 0.81 0.00 +vt 0.11 0.87 0.00 +vt 0.02 0.88 0.00 +vt 0.02 0.81 0.00 +vt 0.31 0.84 0.00 +vt 0.31 0.76 0.00 +vt 0.11 0.74 0.00 +vt 0.11 0.80 0.00 +vt 0.01 0.80 0.00 +vt 0.01 0.74 0.00 +vt 0.20 0.81 0.00 +vt 0.20 0.88 0.00 +vt 0.20 0.74 0.00 +vt 0.20 0.80 0.00 +vt 0.36 0.65 0.00 +vt 0.36 0.75 0.00 +vt 0.34 0.75 0.00 +vt 0.33 0.65 0.00 +vt 0.36 0.89 0.00 +vt 0.33 0.87 0.00 +vt 0.45 0.67 0.00 +vt 0.45 0.76 0.00 +vt 0.43 0.76 0.00 +vt 0.42 0.67 0.00 +vt 0.45 0.89 0.00 +vt 0.42 0.89 0.00 +vt 0.41 0.66 0.00 +vt 0.38 0.66 0.00 +vt 0.39 0.77 0.00 +vt 0.41 0.77 0.00 +vt 0.38 0.88 0.00 +vt 0.41 0.88 0.00 +vt 0.72 0.62 0.00 +vt 0.72 0.52 0.00 +vt 0.73 0.52 0.00 +vt 0.73 0.62 0.00 +vt 0.74 0.62 0.00 +vt 0.74 0.43 0.00 +vt 0.73 0.43 0.00 +vt 0.59 0.58 0.00 +vt 0.64 0.58 0.00 +vt 0.64 0.63 0.00 +vt 0.59 0.63 0.00 +vt 0.75 0.42 0.00 +vt 0.73 0.42 0.00 +vt 0.73 0.36 0.00 +vt 0.75 0.36 0.00 +vt 0.92 0.71 0.00 +vt 0.97 0.71 0.00 +vt 0.92 0.73 0.00 +vt 0.73 0.29 0.00 +vt 0.73 0.24 0.00 +vt 0.75 0.24 0.00 +vt 0.75 0.29 0.00 +vt 0.86 0.72 0.00 +vt 0.86 0.73 0.00 +vt 0.81 0.72 0.00 +vt 0.81 0.70 0.00 +vt 0.73 0.33 0.00 +vt 0.75 0.33 0.00 +vt 0.89 0.74 0.00 +vt 0.89 0.72 0.00 +vt 0.83 0.62 0.00 +vt 0.92 0.62 0.00 +vt 0.92 0.61 0.00 +vt 0.83 0.61 0.00 +vt 0.83 0.63 0.00 +vt 0.92 0.63 0.00 +vt 0.71 0.65 0.00 +vt 0.71 0.66 0.00 +vt 0.75 0.66 0.00 +vt 0.75 0.65 0.00 +vt 0.71 0.64 0.00 +vt 0.75 0.64 0.00 +vt 0.58 0.64 0.00 +vt 0.62 0.66 0.00 +vt 0.62 0.64 0.00 +vt 0.92 0.64 0.00 +vt 0.83 0.64 0.00 +vt 0.75 0.61 0.00 +vt 0.75 0.62 0.00 +vt 0.75 0.63 0.00 +vt 0.67 0.66 0.00 +vt 0.67 0.64 0.00 +vt 0.41 0.65 0.00 +vt 0.41 0.57 0.00 +vt 0.44 0.57 0.00 +vt 0.44 0.66 0.00 +vt 0.48 0.65 0.00 +vt 0.48 0.57 0.00 +# 694 texture coords + +o castle +g castle +f 1/1/1 2/2/2 3/3/2 +f 3/3/2 4/4/1 1/1/1 +f 2/2/2 5/5/3 6/6/3 +f 6/6/3 3/3/2 2/2/2 +f 5/5/3 7/7/4 8/8/4 +f 8/8/4 6/6/3 5/5/3 +f 7/9/4 9/10/5 10/11/5 +f 10/11/5 8/12/4 7/9/4 +f 9/10/5 11/13/6 12/14/6 +f 12/14/6 10/11/5 9/10/5 +f 11/13/6 13/15/7 14/16/7 +f 14/16/7 12/14/6 11/13/6 +f 13/15/7 15/17/8 16/18/8 +f 16/18/8 14/16/7 13/15/7 +f 15/17/8 17/19/9 18/20/9 +f 18/20/9 16/18/8 15/17/8 +f 17/19/9 19/21/10 20/22/10 +f 20/22/10 18/20/9 17/19/9 +f 19/21/10 21/23/11 22/24/11 +f 22/24/11 20/22/10 19/21/10 +f 21/23/11 23/25/12 24/26/12 +f 24/26/12 22/24/11 21/23/11 +f 23/25/12 1/1/1 4/4/1 +f 4/4/1 24/26/12 23/25/12 +f 25/27/13 26/28/13 27/29/13 +f 27/29/13 28/30/13 25/27/13 +f 29/31/14 25/27/14 28/30/14 +f 28/30/14 30/32/14 29/31/14 +f 31/33/15 29/31/15 30/32/15 +f 30/32/15 32/34/15 31/33/15 +f 33/35/16 31/36/16 32/37/16 +f 32/37/16 34/38/16 33/35/16 +f 35/39/17 33/35/17 34/38/17 +f 34/38/17 36/40/17 35/39/17 +f 37/41/18 35/39/18 36/40/18 +f 36/40/18 38/42/18 37/41/18 +f 39/43/19 37/41/19 38/42/19 +f 38/42/19 40/44/19 39/43/19 +f 41/45/20 39/43/20 40/44/20 +f 40/44/20 42/46/20 41/45/20 +f 43/47/21 41/45/21 42/46/21 +f 42/46/21 44/48/21 43/47/21 +f 45/49/22 43/47/22 44/48/22 +f 44/48/22 46/50/22 45/49/22 +f 47/51/23 45/49/23 46/50/23 +f 46/50/23 48/52/23 47/51/23 +f 26/28/24 47/51/25 48/52/25 +f 48/52/25 27/29/24 26/28/24 +f 2/53/26 1/54/26 26/54/26 +f 26/54/26 25/53/26 2/53/26 +f 1/54/26 23/55/26 47/55/26 +f 47/55/26 26/54/26 1/54/26 +f 23/55/26 21/56/26 45/56/26 +f 45/56/26 47/55/26 23/55/26 +f 21/56/26 19/57/26 43/57/26 +f 43/57/26 45/56/26 21/56/26 +f 19/57/26 17/58/26 41/59/26 +f 41/59/26 43/57/26 19/57/26 +f 17/58/26 15/60/26 39/61/26 +f 39/61/26 41/59/26 17/58/26 +f 15/60/26 13/62/26 37/62/26 +f 37/62/26 39/61/26 15/60/26 +f 13/62/26 11/63/26 35/64/26 +f 35/64/26 37/62/26 13/62/26 +f 11/63/26 9/65/26 33/66/26 +f 33/66/26 35/64/26 11/63/26 +f 9/65/26 7/67/26 31/67/26 +f 31/67/26 33/66/26 9/65/26 +f 7/67/26 5/68/26 29/68/26 +f 29/68/26 31/67/26 7/67/26 +f 5/68/26 2/53/26 25/53/26 +f 25/53/26 29/68/26 5/68/26 +f 49/54/27 50/53/27 28/53/27 +f 28/53/27 27/54/27 49/54/27 +f 50/53/27 51/68/27 30/68/27 +f 30/68/27 28/53/27 50/53/27 +f 51/68/27 52/67/27 32/67/27 +f 32/67/27 30/68/27 51/68/27 +f 52/67/27 53/65/27 34/66/27 +f 34/66/27 32/67/27 52/67/27 +f 53/65/27 54/63/27 36/64/27 +f 36/64/27 34/66/27 53/65/27 +f 54/63/27 55/62/27 38/62/27 +f 38/62/27 36/64/27 54/63/27 +f 55/62/27 56/60/27 40/61/27 +f 40/61/27 38/62/27 55/62/27 +f 56/60/27 57/58/27 42/59/27 +f 42/59/27 40/61/27 56/60/27 +f 57/58/27 58/57/27 44/57/27 +f 44/57/27 42/59/27 57/58/27 +f 58/57/27 59/56/27 46/56/27 +f 46/56/27 44/57/27 58/57/27 +f 59/56/27 60/55/27 48/55/27 +f 48/55/27 46/56/27 59/56/27 +f 60/55/27 49/54/27 27/54/27 +f 27/54/27 48/55/27 60/55/27 +f 49/69/1 61/70/1 62/71/2 +f 62/71/2 50/72/2 49/69/1 +f 50/72/2 62/71/2 63/73/14 +f 63/73/14 51/74/14 50/72/2 +f 51/74/15 63/73/15 64/75/15 +f 64/75/15 52/76/15 51/74/15 +f 52/76/16 64/75/16 65/77/5 +f 65/77/5 53/78/5 52/76/16 +f 53/78/5 65/77/5 66/79/6 +f 66/79/6 54/80/6 53/78/5 +f 54/81/6 66/82/6 67/83/7 +f 67/83/7 55/84/7 54/81/6 +f 55/84/7 67/83/7 68/85/8 +f 68/85/8 56/86/8 55/84/7 +f 56/86/8 68/85/8 69/87/9 +f 69/87/9 57/88/9 56/86/8 +f 57/88/9 69/87/9 70/89/10 +f 70/89/10 58/90/10 57/88/9 +f 58/90/10 70/89/10 71/91/11 +f 71/91/11 59/92/11 58/90/10 +f 59/92/11 71/91/11 72/93/12 +f 72/93/12 60/94/12 59/92/11 +f 60/94/12 72/93/12 61/70/1 +f 61/70/1 49/69/1 60/94/12 +f 73/95/26 74/96/26 75/96/26 +f 75/96/26 76/95/26 73/95/26 +f 77/97/26 73/95/26 76/95/26 +f 76/95/26 78/97/26 77/97/26 +f 79/67/26 77/97/26 78/97/26 +f 78/97/26 80/98/26 79/67/26 +f 81/99/26 79/67/26 80/98/26 +f 80/98/26 82/99/26 81/99/26 +f 83/100/26 81/99/26 82/99/26 +f 82/99/26 84/100/26 83/100/26 +f 85/101/26 83/100/26 84/100/26 +f 84/100/26 86/101/26 85/101/26 +f 87/61/26 85/101/26 86/101/26 +f 86/101/26 88/61/26 87/61/26 +f 89/59/26 87/61/26 88/61/26 +f 88/61/26 90/102/26 89/59/26 +f 91/103/26 89/59/26 90/102/26 +f 90/102/26 92/103/26 91/103/26 +f 93/104/26 91/103/26 92/103/26 +f 92/103/26 94/105/26 93/104/26 +f 95/106/26 93/104/26 94/105/26 +f 94/105/26 96/106/26 95/106/26 +f 74/96/26 95/106/26 96/106/26 +f 96/106/26 75/96/26 74/96/26 +f 76/107/28 75/108/28 97/109/28 +f 97/109/28 98/110/28 76/107/28 +f 78/111/29 76/107/29 98/110/29 +f 98/110/29 99/112/29 78/111/29 +f 80/113/30 78/111/30 99/112/30 +f 99/112/30 100/114/30 80/113/30 +f 82/115/31 80/113/31 100/114/31 +f 100/114/31 101/116/31 82/115/31 +f 84/117/32 82/115/32 101/116/32 +f 101/116/32 102/118/32 84/117/32 +f 86/119/33 84/117/33 102/118/33 +f 102/118/33 103/120/33 86/119/33 +f 88/121/34 86/119/34 103/120/34 +f 103/120/34 104/122/34 88/121/34 +f 90/123/35 88/121/35 104/122/35 +f 104/122/35 105/124/35 90/123/35 +f 92/125/36 90/123/36 105/124/36 +f 105/124/36 106/126/36 92/125/36 +f 94/127/37 92/128/37 106/129/37 +f 106/129/37 107/130/37 94/127/37 +f 96/131/38 94/127/38 107/130/38 +f 107/130/38 108/132/38 96/131/38 +f 75/108/39 96/131/39 108/132/39 +f 108/132/39 97/109/39 75/108/39 +f 98/110/40 97/109/40 109/133/40 +f 109/133/40 110/134/40 98/110/40 +f 99/112/41 98/110/41 110/134/41 +f 110/134/41 111/135/41 99/112/41 +f 100/114/42 99/112/42 111/135/42 +f 111/135/42 112/136/43 100/114/42 +f 101/116/44 100/114/44 112/136/44 +f 112/136/44 113/137/44 101/116/44 +f 102/118/45 101/116/45 113/137/45 +f 113/137/45 114/138/45 102/118/45 +f 103/120/46 102/118/46 114/138/46 +f 114/138/46 115/139/46 103/120/46 +f 104/122/47 103/120/48 115/139/48 +f 115/139/48 116/140/48 104/122/47 +f 105/124/49 104/122/49 116/140/49 +f 116/140/49 117/141/49 105/124/49 +f 106/126/50 105/124/50 117/141/50 +f 117/141/50 118/142/50 106/126/50 +f 107/130/51 106/129/51 118/143/52 +f 118/143/52 119/144/51 107/130/51 +f 108/132/53 107/130/53 119/144/53 +f 119/144/53 120/145/53 108/132/53 +f 97/109/54 108/132/55 120/145/54 +f 120/145/54 109/133/54 97/109/54 +f 121/146/56 122/147/56 62/148/56 +f 62/148/56 61/149/56 121/146/56 +f 122/147/57 123/150/58 63/151/58 +f 63/151/58 62/148/57 122/147/57 +f 123/152/59 124/153/59 64/154/59 +f 64/154/59 63/155/59 123/152/59 +f 124/153/60 125/142/60 65/156/60 +f 65/156/60 64/154/60 124/153/60 +f 125/142/61 126/157/62 66/158/61 +f 66/158/61 65/156/62 125/142/61 +f 126/157/63 127/159/63 67/160/63 +f 67/160/63 66/158/63 126/157/63 +f 127/159/64 128/161/64 68/162/64 +f 68/162/64 67/160/64 127/159/64 +f 128/161/65 129/163/66 69/164/66 +f 69/164/66 68/162/66 128/161/65 +f 129/163/67 130/165/67 70/166/67 +f 70/166/67 69/164/67 129/163/67 +f 130/165/68 131/167/68 71/168/68 +f 71/168/68 70/166/68 130/165/68 +f 131/167/69 132/169/70 72/170/70 +f 72/170/70 71/168/70 131/167/69 +f 132/169/71 121/146/71 61/149/71 +f 61/149/71 72/170/71 132/169/71 +f 74/171/1 73/172/2 122/173/2 +f 122/173/2 121/174/1 74/171/1 +f 73/172/2 77/175/3 123/176/3 +f 123/176/3 122/173/2 73/172/2 +f 77/177/3 79/178/4 124/179/4 +f 124/179/4 123/180/3 77/177/3 +f 79/178/4 81/86/5 125/181/5 +f 125/181/5 124/179/4 79/178/4 +f 81/86/5 83/182/6 126/183/6 +f 126/183/6 125/181/5 81/86/5 +f 83/182/6 85/184/7 127/185/7 +f 127/185/7 126/183/6 83/182/6 +f 85/184/7 87/186/8 128/187/8 +f 128/187/8 127/185/7 85/184/7 +f 87/186/8 89/188/9 129/189/9 +f 129/189/9 128/187/8 87/186/8 +f 89/188/9 91/190/10 130/191/10 +f 130/191/10 129/189/9 89/188/9 +f 91/190/10 93/76/11 131/192/11 +f 131/192/11 130/191/10 91/190/10 +f 93/76/11 95/193/12 132/194/12 +f 132/194/12 131/192/11 93/76/11 +f 95/193/12 74/171/1 121/174/1 +f 121/174/1 132/194/12 95/193/12 +f 133/195/72 134/196/72 135/197/72 +f 135/197/72 136/198/72 133/195/72 +f 137/199/73 138/200/73 139/201/73 +f 139/201/73 140/202/73 137/199/73 +f 141/203/74 142/204/74 143/205/74 +f 143/205/74 144/206/74 141/203/74 +f 145/202/75 146/201/75 147/200/75 +f 147/200/75 148/199/75 145/202/75 +f 149/207/76 150/207/76 151/208/76 +f 151/208/76 152/209/76 149/207/76 +f 153/209/77 154/210/77 155/211/77 +f 142/212/78 156/196/78 157/213/78 +f 157/213/78 143/214/78 142/212/78 +f 158/210/79 159/209/79 160/211/79 +f 161/215/80 162/216/80 160/211/80 +f 160/211/80 159/209/80 161/215/80 +f 163/217/81 164/218/81 135/197/81 +f 135/197/81 134/196/81 163/217/81 +f 165/219/82 166/220/82 142/204/82 +f 142/204/82 141/203/82 165/219/82 +f 167/209/83 168/208/83 150/207/83 +f 150/207/83 149/207/83 167/209/83 +f 142/212/84 166/214/84 169/213/84 +f 169/213/84 156/196/84 142/212/84 +f 161/215/85 153/209/85 155/211/85 +f 155/211/85 162/216/85 161/215/85 +f 170/221/75 157/222/75 133/222/75 +f 133/222/75 136/221/75 170/221/75 +f 157/222/86 156/203/86 134/203/86 +f 134/203/86 133/222/86 157/222/86 +f 156/203/87 169/206/87 163/206/87 +f 163/206/87 134/203/87 156/203/87 +f 169/206/73 171/223/73 164/223/73 +f 164/223/73 163/206/73 169/206/73 +f 171/224/88 172/225/88 135/226/88 +f 135/226/88 164/224/88 171/224/88 +f 172/225/89 170/224/89 136/224/89 +f 136/224/89 135/226/89 172/225/89 +f 166/214/79 173/227/79 171/228/79 +f 171/228/79 169/213/79 166/214/79 +f 173/229/75 166/220/75 165/219/75 +f 165/219/75 174/221/75 173/229/75 +f 144/206/73 143/205/73 175/230/73 +f 175/230/73 176/223/73 144/206/73 +f 175/227/77 143/214/77 157/213/77 +f 157/213/77 170/228/77 175/227/77 +f 139/201/73 138/200/73 177/199/73 +f 177/199/73 178/202/73 139/201/73 +f 175/231/90 170/224/90 155/232/90 +f 155/232/90 154/233/91 175/231/90 +f 170/224/89 172/225/89 162/234/89 +f 162/234/89 155/232/89 170/224/89 +f 172/225/88 171/224/88 160/232/88 +f 160/232/88 162/234/88 172/225/88 +f 171/224/92 173/231/92 158/233/92 +f 158/233/92 160/232/92 171/224/92 +f 147/200/75 146/201/75 179/202/75 +f 179/202/75 180/199/75 147/200/75 +f 151/208/76 150/207/76 161/235/76 +f 161/235/76 159/236/76 151/208/76 +f 150/207/83 168/208/83 153/236/83 +f 153/236/83 161/235/83 150/207/83 +f 176/236/27 175/231/27 138/237/27 +f 138/237/27 137/238/27 176/236/27 +f 175/231/27 154/233/27 177/239/27 +f 177/239/27 138/237/27 175/231/27 +f 154/210/93 153/209/93 178/240/94 +f 178/240/94 177/241/94 154/210/93 +f 153/236/26 168/208/26 139/242/26 +f 139/242/26 178/238/26 153/236/26 +f 168/208/26 167/209/26 140/240/26 +f 140/240/26 139/242/26 168/208/26 +f 152/209/26 151/208/26 146/242/26 +f 146/242/26 145/240/26 152/209/26 +f 151/208/26 159/236/26 179/238/26 +f 179/238/26 146/242/26 151/208/26 +f 159/209/95 158/210/95 180/241/95 +f 180/241/95 179/240/95 159/209/95 +f 158/233/27 173/231/27 147/237/27 +f 147/237/27 180/239/27 158/233/27 +f 173/231/27 174/236/27 148/238/27 +f 148/238/27 147/237/27 173/231/27 +f 181/195/96 182/196/96 183/197/96 +f 183/197/96 184/198/96 181/195/96 +f 185/199/97 186/200/98 187/201/98 +f 187/201/98 188/202/97 185/199/97 +f 189/203/99 190/204/99 191/205/99 +f 191/205/99 192/206/99 189/203/99 +f 193/202/100 194/201/101 195/200/101 +f 195/200/101 196/199/100 193/202/100 +f 197/207/102 198/207/102 199/208/102 +f 199/208/102 200/209/102 197/207/102 +f 201/209/103 202/210/103 203/211/103 +f 190/212/104 204/196/104 205/213/104 +f 205/213/104 191/214/104 190/212/104 +f 206/210/105 207/209/105 208/211/105 +f 209/215/106 210/216/106 208/211/106 +f 208/211/106 207/209/106 209/215/106 +f 211/217/107 212/218/107 183/197/107 +f 183/197/107 182/196/107 211/217/107 +f 213/219/108 214/220/108 190/204/108 +f 190/204/108 189/203/108 213/219/108 +f 215/209/109 216/208/109 198/207/109 +f 198/207/109 197/207/109 215/209/109 +f 190/212/110 214/214/110 217/213/110 +f 217/213/110 204/196/110 190/212/110 +f 209/215/111 201/209/111 203/211/111 +f 203/211/111 210/216/111 209/215/111 +f 218/221/100 205/222/100 181/222/101 +f 181/222/101 184/221/101 218/221/100 +f 205/222/112 204/203/112 182/203/112 +f 182/203/112 181/222/112 205/222/112 +f 204/203/113 217/206/113 211/206/113 +f 211/206/113 182/203/113 204/203/113 +f 217/206/98 219/223/98 212/223/98 +f 212/223/98 211/206/98 217/206/98 +f 219/224/114 220/225/114 183/226/114 +f 183/226/114 212/224/114 219/224/114 +f 220/225/115 218/224/115 184/224/115 +f 184/224/115 183/226/115 220/225/115 +f 214/214/105 221/227/105 219/228/105 +f 219/228/105 217/213/105 214/214/105 +f 221/229/100 214/220/100 213/219/100 +f 213/219/100 222/221/100 221/229/100 +f 192/206/98 191/205/98 223/230/98 +f 223/230/98 224/223/98 192/206/98 +f 223/227/103 191/214/103 205/213/103 +f 205/213/103 218/228/103 223/227/103 +f 187/201/98 186/200/98 225/199/97 +f 225/199/97 226/202/97 187/201/98 +f 223/231/116 218/224/116 203/232/116 +f 203/232/116 202/233/116 223/231/116 +f 218/224/115 220/225/115 210/234/115 +f 210/234/115 203/232/115 218/224/115 +f 220/225/114 219/224/114 208/232/114 +f 208/232/114 210/234/114 220/225/114 +f 219/224/117 221/231/117 206/233/117 +f 206/233/117 208/232/117 219/224/117 +f 195/200/101 194/201/101 227/202/100 +f 227/202/100 228/199/100 195/200/101 +f 199/208/102 198/207/102 209/235/102 +f 209/235/102 207/236/102 199/208/102 +f 198/207/109 216/208/109 201/236/109 +f 201/236/109 209/235/109 198/207/109 +f 224/236/27 223/231/27 186/237/27 +f 186/237/27 185/238/27 224/236/27 +f 223/231/27 202/233/27 225/239/27 +f 225/239/27 186/237/27 223/231/27 +f 202/210/118 201/209/118 226/240/118 +f 226/240/118 225/241/118 202/210/118 +f 201/236/26 216/208/26 187/242/26 +f 187/242/26 226/238/26 201/236/26 +f 216/208/26 215/209/26 188/240/26 +f 188/240/26 187/242/26 216/208/26 +f 200/209/26 199/208/26 194/242/26 +f 194/242/26 193/240/26 200/209/26 +f 199/208/26 207/236/26 227/238/26 +f 227/238/26 194/242/26 199/208/26 +f 207/209/119 206/210/119 228/241/119 +f 228/241/119 227/240/119 207/209/119 +f 206/233/27 221/231/27 195/237/27 +f 195/237/27 228/239/27 206/233/27 +f 221/231/27 222/236/27 196/238/27 +f 196/238/27 195/237/27 221/231/27 +f 229/243/120 230/244/120 231/245/120 +f 231/245/120 232/246/120 229/243/120 +f 229/247/121 232/248/121 233/249/121 +f 233/249/121 234/250/121 229/247/121 +f 232/246/122 231/245/122 235/251/122 +f 235/251/122 233/252/122 232/246/122 +f 231/248/123 230/247/123 236/250/123 +f 236/250/123 235/249/123 231/248/123 +f 237/195/124 238/196/124 239/197/124 +f 239/197/124 240/198/124 237/195/124 +f 241/199/125 242/200/98 243/201/98 +f 243/201/98 244/202/125 241/199/125 +f 245/203/99 246/204/99 247/205/99 +f 247/205/99 248/206/99 245/203/99 +f 249/202/100 250/201/101 251/200/101 +f 251/200/101 252/199/100 249/202/100 +f 253/207/102 254/207/102 255/208/102 +f 255/208/102 256/209/102 253/207/102 +f 257/209/103 258/210/103 259/211/103 +f 246/212/104 260/196/104 261/213/104 +f 261/213/104 247/214/104 246/212/104 +f 262/210/105 263/209/105 264/211/105 +f 265/215/106 266/216/106 264/211/106 +f 264/211/106 263/209/106 265/215/106 +f 267/217/107 268/218/107 239/197/107 +f 239/197/107 238/196/107 267/217/107 +f 269/219/126 270/220/126 246/204/108 +f 246/204/108 245/203/108 269/219/126 +f 271/209/109 272/208/109 254/207/109 +f 254/207/109 253/207/109 271/209/109 +f 246/212/110 270/214/110 273/213/110 +f 273/213/110 260/196/110 246/212/110 +f 265/215/111 257/209/111 259/211/111 +f 259/211/111 266/216/111 265/215/111 +f 274/221/100 261/222/100 237/222/100 +f 237/222/100 240/221/100 274/221/100 +f 261/222/112 260/203/112 238/203/112 +f 238/203/112 237/222/112 261/222/112 +f 260/203/113 273/206/113 267/206/113 +f 267/206/113 238/203/113 260/203/113 +f 273/206/98 275/223/98 268/223/98 +f 268/223/98 267/206/98 273/206/98 +f 275/224/114 276/225/114 239/226/114 +f 239/226/114 268/224/114 275/224/114 +f 276/225/115 274/224/115 240/224/115 +f 240/224/115 239/226/115 276/225/115 +f 270/214/105 277/227/105 275/228/105 +f 275/228/105 273/213/105 270/214/105 +f 277/229/101 270/220/101 269/219/101 +f 269/219/101 278/221/101 277/229/101 +f 248/206/98 247/205/97 279/230/97 +f 279/230/97 280/223/98 248/206/98 +f 279/227/103 247/214/103 261/213/103 +f 261/213/103 274/228/103 279/227/103 +f 243/201/98 242/200/98 281/199/97 +f 281/199/97 282/202/97 243/201/98 +f 279/231/116 274/224/116 259/232/116 +f 259/232/116 258/233/116 279/231/116 +f 274/224/115 276/225/115 266/234/115 +f 266/234/115 259/232/115 274/224/115 +f 276/225/114 275/224/114 264/232/114 +f 264/232/114 266/234/114 276/225/114 +f 275/224/117 277/231/117 262/233/117 +f 262/233/117 264/232/117 275/224/117 +f 251/200/101 250/201/101 283/202/100 +f 283/202/100 284/199/100 251/200/101 +f 255/208/102 254/207/102 265/235/102 +f 265/235/102 263/236/102 255/208/102 +f 254/207/109 272/208/109 257/236/109 +f 257/236/109 265/235/109 254/207/109 +f 280/236/27 279/231/27 242/237/27 +f 242/237/27 241/238/27 280/236/27 +f 279/231/27 258/233/27 281/239/27 +f 281/239/27 242/237/27 279/231/27 +f 258/210/118 257/209/118 282/240/118 +f 282/240/118 281/241/118 258/210/118 +f 257/236/26 272/208/26 243/242/26 +f 243/242/26 282/238/26 257/236/26 +f 272/208/26 271/209/26 244/240/26 +f 244/240/26 243/242/26 272/208/26 +f 256/209/26 255/208/26 250/242/26 +f 250/242/26 249/240/26 256/209/26 +f 255/208/26 263/236/26 283/238/26 +f 283/238/26 250/242/26 255/208/26 +f 263/209/119 262/210/119 284/241/119 +f 284/241/119 283/240/119 263/209/119 +f 262/233/27 277/231/27 251/237/27 +f 251/237/27 284/239/27 262/233/27 +f 277/231/27 278/236/27 252/238/27 +f 252/238/27 251/237/27 277/231/27 +f 285/243/127 286/244/127 287/245/127 +f 287/245/127 288/246/127 285/243/127 +f 285/247/128 288/248/128 289/249/128 +f 289/249/128 290/250/128 285/247/128 +f 288/246/129 287/245/129 291/251/129 +f 291/251/129 289/252/129 288/246/129 +f 287/248/130 286/247/130 292/250/130 +f 292/250/130 291/249/130 287/248/130 +f 293/195/131 294/196/131 295/197/131 +f 295/197/131 296/198/131 293/195/131 +f 297/199/75 298/200/75 299/201/75 +f 299/201/75 300/202/75 297/199/75 +f 301/203/132 302/204/132 303/205/132 +f 303/205/132 304/206/132 301/203/132 +f 305/202/73 306/201/73 307/200/73 +f 307/200/73 308/199/73 305/202/73 +f 309/207/83 310/207/83 311/208/83 +f 311/208/83 312/209/83 309/207/83 +f 313/209/133 314/210/133 315/211/133 +f 302/212/134 316/196/134 317/213/134 +f 317/213/134 303/214/134 302/212/134 +f 318/210/135 319/209/135 320/211/135 +f 321/215/136 322/216/136 320/211/136 +f 320/211/136 319/209/136 321/215/136 +f 323/217/137 324/218/137 295/197/138 +f 295/197/138 294/196/138 323/217/137 +f 325/219/139 326/220/139 302/204/139 +f 302/204/139 301/203/139 325/219/139 +f 327/209/76 328/208/76 310/207/76 +f 310/207/76 309/207/76 327/209/76 +f 302/212/140 326/214/140 329/213/140 +f 329/213/140 316/196/140 302/212/140 +f 321/215/141 313/209/141 315/211/141 +f 315/211/141 322/216/141 321/215/141 +f 330/221/73 317/222/73 293/222/73 +f 293/222/73 296/221/73 330/221/73 +f 317/222/87 316/203/87 294/203/87 +f 294/203/87 293/222/87 317/222/87 +f 316/203/86 329/206/86 323/206/86 +f 323/206/86 294/203/86 316/203/86 +f 329/206/75 331/223/75 324/223/75 +f 324/223/75 323/206/75 329/206/75 +f 331/224/142 332/225/142 295/226/142 +f 295/226/142 324/224/142 331/224/142 +f 332/225/143 330/224/143 296/224/143 +f 296/224/143 295/226/143 332/225/143 +f 326/214/135 333/227/135 331/228/135 +f 331/228/135 329/213/135 326/214/135 +f 333/229/73 326/220/73 325/219/73 +f 325/219/73 334/221/73 333/229/73 +f 304/206/75 303/205/75 335/230/75 +f 335/230/75 336/223/75 304/206/75 +f 335/227/133 303/214/133 317/213/133 +f 317/213/133 330/228/133 335/227/133 +f 299/201/75 298/200/75 337/199/75 +f 337/199/75 338/202/75 299/201/75 +f 335/231/144 330/224/144 315/232/144 +f 315/232/144 314/233/144 335/231/144 +f 330/224/143 332/225/143 322/234/143 +f 322/234/143 315/232/143 330/224/143 +f 332/225/142 331/224/142 320/232/142 +f 320/232/142 322/234/142 332/225/142 +f 331/224/145 333/231/145 318/233/145 +f 318/233/145 320/232/145 331/224/145 +f 307/200/73 306/201/73 339/202/73 +f 339/202/73 340/199/73 307/200/73 +f 311/208/83 310/207/83 321/235/83 +f 321/235/83 319/236/83 311/208/83 +f 310/207/76 328/208/76 313/236/76 +f 313/236/76 321/235/76 310/207/76 +f 336/236/27 335/231/27 298/237/27 +f 298/237/27 297/238/27 336/236/27 +f 335/231/27 314/233/27 337/239/27 +f 337/239/27 298/237/27 335/231/27 +f 314/210/146 313/209/146 338/240/146 +f 338/240/146 337/241/146 314/210/146 +f 313/236/26 328/208/26 299/242/26 +f 299/242/26 338/238/26 313/236/26 +f 328/208/26 327/209/26 300/240/26 +f 300/240/26 299/242/26 328/208/26 +f 312/209/26 311/208/26 306/242/26 +f 306/242/26 305/240/26 312/209/26 +f 311/208/26 319/236/26 339/238/26 +f 339/238/26 306/242/26 311/208/26 +f 319/209/147 318/210/147 340/241/147 +f 340/241/147 339/240/147 319/209/147 +f 318/233/27 333/231/27 307/237/27 +f 307/237/27 340/239/27 318/233/27 +f 333/231/27 334/236/27 308/238/27 +f 308/238/27 307/237/27 333/231/27 +f 341/243/148 342/244/148 343/245/148 +f 343/245/148 344/246/148 341/243/148 +f 341/247/1 344/248/1 345/249/1 +f 345/249/1 346/250/1 341/247/1 +f 344/246/149 343/245/149 347/251/149 +f 347/251/149 345/252/149 344/246/149 +f 343/248/7 342/247/7 348/250/7 +f 348/250/7 347/249/7 343/248/7 +f 349/243/150 350/244/150 351/245/150 +f 351/245/150 352/246/150 349/243/150 +f 349/247/151 352/248/151 353/249/151 +f 353/249/151 354/250/151 349/247/151 +f 352/246/152 351/245/152 355/251/152 +f 355/251/152 353/252/152 352/246/152 +f 351/248/153 350/247/153 356/250/153 +f 356/250/153 355/249/153 351/248/153 +f 357/243/154 358/244/154 359/245/154 +f 359/245/154 360/246/154 357/243/154 +f 357/247/7 360/248/7 361/249/7 +f 361/249/7 362/250/7 357/247/7 +f 360/246/155 359/245/155 363/251/155 +f 363/251/155 361/252/155 360/246/155 +f 359/248/1 358/247/1 364/250/1 +f 364/250/1 363/249/1 359/248/1 +f 365/243/156 366/244/156 367/245/156 +f 367/245/156 368/246/156 365/243/156 +f 365/247/157 368/248/157 369/249/157 +f 369/249/157 370/250/157 365/247/157 +f 368/246/158 367/245/158 371/251/158 +f 371/251/158 369/252/158 368/246/158 +f 367/248/159 366/247/159 372/250/159 +f 372/250/159 371/249/159 367/248/159 +f 373/243/160 374/244/160 375/245/160 +f 375/245/160 376/246/160 373/243/160 +f 373/247/161 376/248/161 377/249/161 +f 377/249/161 378/250/161 373/247/161 +f 376/246/162 375/245/162 379/251/162 +f 379/251/162 377/252/162 376/246/162 +f 375/248/163 374/247/163 380/250/163 +f 380/250/163 379/249/163 375/248/163 +f 381/195/131 382/196/131 383/197/131 +f 383/197/131 384/198/131 381/195/131 +f 385/199/75 386/200/75 387/201/75 +f 387/201/75 388/202/75 385/199/75 +f 389/203/132 390/204/132 391/205/132 +f 391/205/132 392/206/132 389/203/132 +f 393/202/73 394/201/73 395/200/73 +f 395/200/73 396/199/73 393/202/73 +f 397/207/83 398/207/83 399/208/83 +f 399/208/83 400/209/83 397/207/83 +f 401/209/133 402/210/133 403/211/133 +f 390/212/134 404/196/134 405/213/134 +f 405/213/134 391/214/134 390/212/134 +f 406/210/135 407/209/135 408/211/135 +f 409/215/136 410/216/136 408/211/136 +f 408/211/136 407/209/136 409/215/136 +f 411/217/137 412/218/137 383/197/138 +f 383/197/138 382/196/138 411/217/137 +f 413/219/139 414/220/139 390/204/139 +f 390/204/139 389/203/139 413/219/139 +f 415/209/76 416/208/76 398/207/76 +f 398/207/76 397/207/76 415/209/76 +f 390/212/140 414/214/140 417/213/140 +f 417/213/140 404/196/140 390/212/140 +f 409/215/141 401/209/141 403/211/141 +f 403/211/141 410/216/141 409/215/141 +f 418/221/73 405/222/73 381/222/73 +f 381/222/73 384/221/73 418/221/73 +f 405/222/87 404/203/87 382/203/87 +f 382/203/87 381/222/87 405/222/87 +f 404/203/86 417/206/86 411/206/86 +f 411/206/86 382/203/86 404/203/86 +f 417/206/75 419/223/75 412/223/75 +f 412/223/75 411/206/75 417/206/75 +f 419/224/142 420/225/142 383/226/142 +f 383/226/142 412/224/142 419/224/142 +f 420/225/143 418/224/143 384/224/143 +f 384/224/143 383/226/143 420/225/143 +f 414/214/135 421/227/135 419/228/135 +f 419/228/135 417/213/135 414/214/135 +f 421/229/73 414/220/73 413/219/73 +f 413/219/73 422/221/73 421/229/73 +f 392/206/75 391/205/75 423/230/75 +f 423/230/75 424/223/75 392/206/75 +f 423/227/133 391/214/133 405/213/133 +f 405/213/133 418/228/133 423/227/133 +f 387/201/75 386/200/75 425/199/75 +f 425/199/75 426/202/75 387/201/75 +f 423/231/144 418/224/144 403/232/144 +f 403/232/144 402/233/144 423/231/144 +f 418/224/143 420/225/143 410/234/143 +f 410/234/143 403/232/143 418/224/143 +f 420/225/142 419/224/142 408/232/142 +f 408/232/142 410/234/142 420/225/142 +f 419/224/145 421/231/145 406/233/145 +f 406/233/145 408/232/145 419/224/145 +f 395/200/73 394/201/73 427/202/73 +f 427/202/73 428/199/73 395/200/73 +f 399/208/83 398/207/83 409/235/83 +f 409/235/83 407/236/83 399/208/83 +f 398/207/76 416/208/76 401/236/76 +f 401/236/76 409/235/76 398/207/76 +f 424/236/27 423/231/27 386/237/27 +f 386/237/27 385/238/27 424/236/27 +f 423/231/27 402/233/27 425/239/27 +f 425/239/27 386/237/27 423/231/27 +f 402/210/146 401/209/146 426/240/146 +f 426/240/146 425/241/146 402/210/146 +f 401/236/26 416/208/26 387/242/26 +f 387/242/26 426/238/26 401/236/26 +f 416/208/26 415/209/26 388/240/26 +f 388/240/26 387/242/26 416/208/26 +f 400/209/26 399/208/26 394/242/26 +f 394/242/26 393/240/26 400/209/26 +f 399/208/26 407/236/26 427/238/26 +f 427/238/26 394/242/26 399/208/26 +f 407/209/147 406/210/147 428/241/147 +f 428/241/147 427/240/147 407/209/147 +f 406/233/27 421/231/27 395/237/27 +f 395/237/27 428/239/27 406/233/27 +f 421/231/27 422/236/27 396/238/27 +f 396/238/27 395/237/27 421/231/27 +f 429/195/164 430/196/10 431/197/10 +f 431/197/10 432/198/164 429/195/164 +f 433/199/165 434/200/165 435/201/165 +f 435/201/165 436/202/165 433/199/165 +f 437/203/108 438/204/108 439/205/108 +f 439/205/108 440/206/108 437/203/108 +f 441/202/125 442/201/125 443/200/125 +f 443/200/125 444/199/125 441/202/125 +f 445/207/166 446/207/166 447/208/166 +f 447/208/166 448/209/166 445/207/166 +f 449/209/167 450/210/167 451/211/167 +f 438/212/168 452/196/168 453/213/168 +f 453/213/168 439/214/168 438/212/168 +f 454/210/169 455/209/169 456/211/169 +f 457/215/170 458/216/170 456/211/170 +f 456/211/170 455/209/170 457/215/170 +f 459/217/171 460/218/171 431/197/171 +f 431/197/171 430/196/171 459/217/171 +f 461/219/172 462/220/99 438/204/99 +f 438/204/99 437/203/99 461/219/172 +f 463/209/173 464/208/173 446/207/173 +f 446/207/173 445/207/173 463/209/173 +f 438/212/174 462/214/174 465/213/174 +f 465/213/174 452/196/174 438/212/174 +f 457/215/175 449/209/175 451/211/175 +f 451/211/175 458/216/175 457/215/175 +f 466/221/125 453/222/125 429/222/125 +f 429/222/125 432/221/125 466/221/125 +f 453/222/113 452/203/113 430/203/113 +f 430/203/113 429/222/113 453/222/113 +f 452/203/112 465/206/112 459/206/112 +f 459/206/112 430/203/112 452/203/112 +f 465/206/165 467/223/165 460/223/165 +f 460/223/165 459/206/165 465/206/165 +f 467/224/176 468/225/176 431/226/176 +f 431/226/176 460/224/176 467/224/176 +f 468/225/117 466/224/117 432/224/117 +f 432/224/117 431/226/117 468/225/117 +f 462/214/169 469/227/169 467/228/169 +f 467/228/169 465/213/169 462/214/169 +f 469/229/125 462/220/125 461/219/125 +f 461/219/125 470/221/125 469/229/125 +f 440/206/165 439/205/165 471/230/165 +f 471/230/165 472/223/165 440/206/165 +f 471/227/167 439/214/167 453/213/167 +f 453/213/167 466/228/167 471/227/167 +f 435/201/165 434/200/165 473/199/165 +f 473/199/165 474/202/165 435/201/165 +f 471/231/177 466/224/177 451/232/177 +f 451/232/177 450/233/177 471/231/177 +f 466/224/117 468/225/117 458/234/117 +f 458/234/117 451/232/117 466/224/117 +f 468/225/176 467/224/176 456/232/176 +f 456/232/176 458/234/176 468/225/176 +f 467/224/115 469/231/115 454/233/115 +f 454/233/115 456/232/115 467/224/115 +f 443/200/125 442/201/125 475/202/125 +f 475/202/125 476/199/125 443/200/125 +f 447/208/166 446/207/166 457/235/166 +f 457/235/166 455/236/166 447/208/166 +f 446/207/173 464/208/173 449/236/173 +f 449/236/173 457/235/173 446/207/173 +f 472/236/27 471/231/27 434/237/27 +f 434/237/27 433/238/27 472/236/27 +f 471/231/27 450/233/27 473/239/27 +f 473/239/27 434/237/27 471/231/27 +f 450/210/178 449/209/178 474/240/178 +f 474/240/178 473/241/178 450/210/178 +f 449/236/26 464/208/26 435/242/26 +f 435/242/26 474/238/26 449/236/26 +f 464/208/26 463/209/26 436/240/26 +f 436/240/26 435/242/26 464/208/26 +f 448/209/26 447/208/26 442/242/26 +f 442/242/26 441/240/26 448/209/26 +f 447/208/26 455/236/26 475/238/26 +f 475/238/26 442/242/26 447/208/26 +f 455/209/179 454/210/179 476/241/179 +f 476/241/179 475/240/179 455/209/179 +f 454/233/27 469/231/27 443/237/27 +f 443/237/27 476/239/27 454/233/27 +f 469/231/27 470/236/27 444/238/27 +f 444/238/27 443/237/27 469/231/27 +f 477/243/180 478/244/180 479/245/180 +f 479/245/180 480/246/180 477/243/180 +f 477/247/153 480/248/153 481/249/153 +f 481/249/153 482/250/153 477/247/153 +f 480/246/181 479/245/181 483/251/181 +f 483/251/181 481/252/182 480/246/181 +f 479/248/151 478/247/151 484/250/151 +f 484/250/151 483/249/151 479/248/151 +f 485/195/10 486/196/10 487/197/10 +f 487/197/10 488/198/10 485/195/10 +f 489/199/165 490/200/165 491/201/165 +f 491/201/165 492/202/165 489/199/165 +f 493/203/108 494/204/108 495/205/108 +f 495/205/108 496/206/108 493/203/108 +f 497/202/125 498/201/125 499/200/125 +f 499/200/125 500/199/125 497/202/125 +f 501/207/166 502/207/166 503/208/166 +f 503/208/166 504/209/166 501/207/166 +f 505/209/167 506/210/167 507/211/167 +f 494/212/168 508/196/168 509/213/168 +f 509/213/168 495/214/168 494/212/168 +f 510/210/169 511/209/169 512/211/169 +f 513/215/170 514/216/170 512/211/170 +f 512/211/170 511/209/170 513/215/170 +f 515/217/171 516/218/171 487/197/171 +f 487/197/171 486/196/171 515/217/171 +f 517/219/99 518/220/99 494/204/172 +f 494/204/172 493/203/99 517/219/99 +f 519/209/173 520/208/173 502/207/173 +f 502/207/173 501/207/173 519/209/173 +f 494/212/174 518/214/174 521/213/174 +f 521/213/174 508/196/174 494/212/174 +f 513/215/175 505/209/175 507/211/175 +f 507/211/175 514/216/175 513/215/175 +f 522/221/125 509/222/125 485/222/125 +f 485/222/125 488/221/125 522/221/125 +f 509/222/113 508/203/113 486/203/113 +f 486/203/113 485/222/113 509/222/113 +f 508/203/112 521/206/112 515/206/112 +f 515/206/112 486/203/112 508/203/112 +f 521/206/165 523/223/165 516/223/165 +f 516/223/165 515/206/165 521/206/165 +f 523/224/176 524/225/176 487/226/176 +f 487/226/176 516/224/176 523/224/176 +f 524/225/117 522/224/117 488/224/117 +f 488/224/117 487/226/117 524/225/117 +f 518/214/169 525/227/169 523/228/169 +f 523/228/169 521/213/169 518/214/169 +f 525/229/125 518/220/125 517/219/125 +f 517/219/125 526/221/125 525/229/125 +f 496/206/165 495/205/165 527/230/165 +f 527/230/165 528/223/165 496/206/165 +f 527/227/167 495/214/167 509/213/167 +f 509/213/167 522/228/167 527/227/167 +f 491/201/165 490/200/165 529/199/165 +f 529/199/165 530/202/165 491/201/165 +f 527/231/177 522/224/177 507/232/177 +f 507/232/177 506/233/177 527/231/177 +f 522/224/117 524/225/117 514/234/117 +f 514/234/117 507/232/117 522/224/117 +f 524/225/176 523/224/176 512/232/176 +f 512/232/176 514/234/176 524/225/176 +f 523/224/115 525/231/115 510/233/115 +f 510/233/115 512/232/115 523/224/115 +f 499/200/125 498/201/125 531/202/125 +f 531/202/125 532/199/125 499/200/125 +f 503/208/166 502/207/166 513/235/166 +f 513/235/166 511/236/166 503/208/166 +f 502/207/173 520/208/173 505/236/173 +f 505/236/173 513/235/173 502/207/173 +f 528/236/27 527/231/27 490/237/27 +f 490/237/27 489/238/27 528/236/27 +f 527/231/27 506/233/27 529/239/27 +f 529/239/27 490/237/27 527/231/27 +f 506/210/178 505/209/178 530/240/178 +f 530/240/178 529/241/178 506/210/178 +f 505/236/26 520/208/26 491/242/26 +f 491/242/26 530/238/26 505/236/26 +f 520/208/26 519/209/26 492/240/26 +f 492/240/26 491/242/26 520/208/26 +f 504/209/26 503/208/26 498/242/26 +f 498/242/26 497/240/26 504/209/26 +f 503/208/26 511/236/26 531/238/26 +f 531/238/26 498/242/26 503/208/26 +f 511/209/179 510/210/179 532/241/179 +f 532/241/179 531/240/179 511/209/179 +f 510/233/27 525/231/27 499/237/27 +f 499/237/27 532/239/27 510/233/27 +f 525/231/27 526/236/27 500/238/27 +f 500/238/27 499/237/27 525/231/27 +f 533/243/183 534/244/183 535/245/183 +f 535/245/183 536/246/183 533/243/183 +f 533/247/184 536/248/184 537/249/184 +f 537/249/184 538/250/184 533/247/184 +f 536/246/185 535/245/185 539/251/185 +f 539/251/185 537/252/185 536/246/185 +f 535/248/186 534/247/186 540/250/186 +f 540/250/186 539/249/186 535/248/186 +f 541/195/72 542/196/72 543/197/72 +f 543/197/72 544/198/72 541/195/72 +f 545/199/73 546/200/73 547/201/73 +f 547/201/73 548/202/73 545/199/73 +f 549/203/74 550/204/74 551/205/74 +f 551/205/74 552/206/74 549/203/74 +f 553/202/75 554/201/75 555/200/75 +f 555/200/75 556/199/75 553/202/75 +f 557/207/76 558/207/76 559/208/76 +f 559/208/76 560/209/76 557/207/76 +f 561/209/77 562/210/77 563/211/77 +f 550/212/78 564/196/78 565/213/78 +f 565/213/78 551/214/78 550/212/78 +f 566/210/79 567/209/79 568/211/79 +f 569/215/80 570/216/80 568/211/80 +f 568/211/80 567/209/80 569/215/80 +f 571/217/81 572/218/81 543/197/81 +f 543/197/81 542/196/81 571/217/81 +f 573/219/82 574/220/82 550/204/82 +f 550/204/82 549/203/82 573/219/82 +f 575/209/83 576/208/83 558/207/83 +f 558/207/83 557/207/83 575/209/83 +f 550/212/84 574/214/84 577/213/84 +f 577/213/84 564/196/84 550/212/84 +f 569/215/85 561/209/85 563/211/85 +f 563/211/85 570/216/85 569/215/85 +f 578/221/75 565/222/75 541/222/75 +f 541/222/75 544/221/75 578/221/75 +f 565/222/86 564/203/86 542/203/86 +f 542/203/86 541/222/86 565/222/86 +f 564/203/87 577/206/87 571/206/87 +f 571/206/87 542/203/87 564/203/87 +f 577/206/73 579/223/73 572/223/73 +f 572/223/73 571/206/73 577/206/73 +f 579/224/88 580/225/88 543/226/88 +f 543/226/88 572/224/88 579/224/88 +f 580/225/89 578/224/89 544/224/89 +f 544/224/89 543/226/89 580/225/89 +f 574/214/79 581/227/79 579/228/79 +f 579/228/79 577/213/79 574/214/79 +f 581/229/75 574/220/75 573/219/75 +f 573/219/75 582/221/75 581/229/75 +f 552/206/73 551/205/73 583/230/73 +f 583/230/73 584/223/73 552/206/73 +f 583/227/77 551/214/77 565/213/77 +f 565/213/77 578/228/77 583/227/77 +f 547/201/73 546/200/73 585/199/73 +f 585/199/73 586/202/73 547/201/73 +f 583/231/90 578/224/90 563/232/90 +f 563/232/90 562/233/90 583/231/90 +f 578/224/89 580/225/89 570/234/89 +f 570/234/89 563/232/89 578/224/89 +f 580/225/88 579/224/88 568/232/88 +f 568/232/88 570/234/88 580/225/88 +f 579/224/92 581/231/92 566/233/92 +f 566/233/92 568/232/92 579/224/92 +f 555/200/75 554/201/75 587/202/75 +f 587/202/75 588/199/75 555/200/75 +f 559/208/76 558/207/76 569/235/76 +f 569/235/76 567/236/76 559/208/76 +f 558/207/83 576/208/83 561/236/83 +f 561/236/83 569/235/83 558/207/83 +f 584/236/27 583/231/27 546/237/27 +f 546/237/27 545/238/27 584/236/27 +f 583/231/27 562/233/27 585/239/27 +f 585/239/27 546/237/27 583/231/27 +f 562/210/94 561/209/94 586/240/94 +f 586/240/94 585/241/94 562/210/94 +f 561/236/26 576/208/26 547/242/26 +f 547/242/26 586/238/26 561/236/26 +f 576/208/26 575/209/26 548/240/26 +f 548/240/26 547/242/26 576/208/26 +f 560/209/26 559/208/26 554/242/26 +f 554/242/26 553/240/26 560/209/26 +f 559/208/26 567/236/26 587/238/26 +f 587/238/26 554/242/26 559/208/26 +f 567/209/95 566/210/95 588/241/95 +f 588/241/95 587/240/95 567/209/95 +f 566/233/27 581/231/27 555/237/27 +f 555/237/27 588/239/27 566/233/27 +f 581/231/27 582/236/27 556/238/27 +f 556/238/27 555/237/27 581/231/27 +f 589/243/187 590/244/187 591/245/187 +f 591/245/187 592/246/187 589/243/187 +f 589/247/163 592/248/163 593/249/163 +f 593/249/163 594/250/163 589/247/163 +f 592/246/188 591/245/188 595/251/189 +f 595/251/189 593/252/188 592/246/188 +f 591/248/161 590/247/161 596/250/161 +f 596/250/161 595/249/161 591/248/161 +f 597/253/13 598/254/13 599/255/13 +f 599/255/13 600/256/13 597/253/13 +f 601/257/14 597/253/14 600/256/14 +f 600/256/14 602/258/14 601/257/14 +f 603/259/118 601/257/118 602/258/118 +f 602/258/118 604/260/15 603/259/118 +f 605/261/16 603/262/16 604/263/16 +f 604/263/16 606/264/16 605/261/16 +f 607/265/17 605/261/17 606/264/17 +f 606/264/17 608/266/17 607/265/17 +f 609/267/18 607/265/18 608/266/18 +f 608/266/18 610/268/18 609/267/18 +f 611/269/190 609/267/19 610/268/19 +f 610/268/19 612/270/190 611/269/190 +f 613/271/20 611/269/20 612/270/20 +f 612/270/20 614/272/20 613/271/20 +f 615/273/21 613/271/21 614/272/21 +f 614/272/21 616/274/21 615/273/21 +f 617/275/191 615/273/191 616/274/22 +f 616/274/22 618/276/191 617/275/191 +f 619/277/23 617/275/23 618/276/23 +f 618/276/23 620/278/23 619/277/23 +f 598/254/24 619/277/25 620/278/25 +f 620/278/25 599/255/24 598/254/24 +f 600/279/27 599/280/27 621/281/27 +f 621/281/27 622/282/27 600/279/27 +f 623/283/27 624/279/27 625/282/27 +f 625/282/27 626/284/27 623/283/27 +f 604/285/27 602/283/27 627/284/27 +f 627/284/27 628/285/27 604/285/27 +f 629/286/27 630/285/27 631/285/27 +f 631/285/27 632/287/27 629/286/27 +f 608/288/27 606/286/27 633/287/27 +f 633/287/27 634/289/27 608/288/27 +f 635/290/27 636/288/27 637/289/27 +f 637/289/27 638/291/27 635/290/27 +f 612/292/27 610/290/27 639/291/27 +f 639/291/27 640/293/27 612/292/27 +f 641/294/27 642/292/27 643/293/27 +f 643/293/27 644/295/27 641/294/27 +f 616/296/27 614/294/27 645/295/27 +f 645/295/27 646/297/27 616/296/27 +f 647/298/27 648/296/27 649/297/27 +f 649/297/27 650/299/27 647/298/27 +f 620/300/27 618/298/27 651/299/27 +f 651/299/27 652/300/27 620/300/27 +f 653/280/27 654/300/27 655/300/27 +f 655/300/27 656/281/27 653/280/27 +f 622/301/19 621/302/19 657/303/19 +f 657/303/19 658/304/19 622/301/19 +f 627/305/20 622/301/20 658/304/20 +f 658/304/20 659/306/20 627/305/20 +f 628/307/21 627/305/21 659/306/21 +f 659/306/21 660/308/21 628/307/21 +f 633/309/22 628/307/22 660/308/22 +f 660/308/22 661/310/22 633/309/22 +f 634/311/23 633/309/23 661/310/23 +f 661/310/23 662/312/23 634/311/23 +f 639/313/24 634/311/24 662/312/24 +f 662/312/24 663/314/24 639/313/24 +f 640/315/192 639/313/13 663/314/13 +f 663/314/13 664/316/192 640/315/192 +f 645/317/14 640/315/14 664/316/14 +f 664/316/14 665/318/14 645/317/14 +f 646/319/15 645/317/15 665/318/15 +f 665/318/15 666/320/15 646/319/15 +f 651/321/16 646/322/16 666/323/193 +f 666/323/193 667/324/16 651/321/16 +f 652/325/17 651/321/17 667/324/17 +f 667/324/17 668/326/17 652/325/17 +f 621/302/18 652/325/194 668/326/194 +f 668/326/194 657/303/18 621/302/18 +f 658/327/27 657/328/27 669/329/27 +f 659/330/27 658/327/27 669/329/27 +f 660/331/27 659/330/27 669/329/27 +f 661/332/27 660/331/27 669/329/27 +f 662/333/27 661/332/27 669/329/27 +f 663/334/27 662/333/27 669/329/27 +f 664/335/27 663/334/27 669/329/27 +f 665/336/27 664/335/27 669/329/27 +f 666/337/27 665/336/27 669/329/27 +f 667/338/27 666/337/27 669/329/27 +f 668/339/27 667/338/27 669/329/27 +f 657/328/27 668/339/27 669/329/27 +f 602/258/14 600/256/14 624/340/14 +f 624/340/14 623/341/14 602/258/14 +f 600/279/161 622/282/161 625/282/161 +f 625/282/161 624/279/161 600/279/161 +f 622/301/20 627/305/20 626/342/20 +f 626/342/20 625/343/20 622/301/20 +f 627/284/195 602/283/195 623/283/195 +f 623/283/195 626/284/195 627/284/195 +f 606/264/16 604/263/16 630/344/193 +f 630/344/193 629/345/16 606/264/16 +f 604/285/1 628/285/1 631/285/1 +f 631/285/1 630/285/1 604/285/1 +f 628/307/22 633/309/22 632/346/22 +f 632/346/22 631/347/22 628/307/22 +f 633/287/196 606/286/196 629/286/196 +f 629/286/196 632/287/196 633/287/196 +f 610/268/18 608/266/18 636/348/18 +f 636/348/18 635/349/18 610/268/18 +f 608/288/153 634/289/153 637/289/153 +f 637/289/153 636/288/153 608/288/153 +f 634/311/24 639/313/24 638/350/24 +f 638/350/24 637/351/24 634/311/24 +f 639/291/10 610/290/10 635/290/10 +f 635/290/10 638/291/10 639/291/10 +f 614/272/20 612/270/20 642/352/20 +f 642/352/20 641/353/20 614/272/20 +f 612/292/163 640/293/163 643/293/163 +f 643/293/163 642/292/163 612/292/163 +f 640/315/14 645/317/14 644/354/14 +f 644/354/14 643/355/14 640/315/14 +f 645/295/197 614/294/197 641/294/197 +f 641/294/197 644/295/197 645/295/197 +f 618/276/191 616/274/22 648/356/22 +f 648/356/22 647/357/22 618/276/191 +f 616/296/7 646/297/7 649/297/7 +f 649/297/7 648/296/7 616/296/7 +f 646/322/16 651/321/16 650/358/16 +f 650/358/16 649/359/16 646/322/16 +f 651/299/198 618/298/198 647/298/198 +f 647/298/198 650/299/198 651/299/198 +f 599/255/24 620/278/25 654/360/24 +f 654/360/24 653/361/24 599/255/24 +f 620/300/151 652/300/151 655/300/151 +f 655/300/151 654/300/151 620/300/151 +f 652/325/194 621/302/18 656/362/18 +f 656/362/18 655/363/194 652/325/194 +f 621/281/4 599/280/4 653/280/4 +f 653/280/4 656/281/4 621/281/4 +f 670/364/199 671/365/199 672/366/199 +f 672/366/199 673/367/199 670/364/199 +f 671/368/200 674/369/200 675/370/200 +f 675/370/200 672/371/200 671/368/200 +f 674/365/201 676/364/201 677/367/201 +f 677/367/201 675/366/201 674/365/201 +f 676/372/202 670/373/202 673/374/202 +f 673/374/202 677/375/202 676/372/202 +f 678/376/7 679/377/7 680/378/7 +f 680/378/7 681/379/7 678/376/7 +f 679/380/4 682/381/4 683/382/4 +f 683/382/4 680/383/4 679/380/4 +f 684/384/1 685/385/1 686/386/1 +f 686/386/1 687/387/1 684/384/1 +f 688/388/10 678/389/10 681/390/10 +f 681/390/10 689/391/10 688/388/10 +f 676/392/26 674/393/26 683/394/26 +f 683/394/26 689/395/26 676/392/26 +f 683/394/26 674/393/26 671/396/26 +f 671/396/26 680/397/26 683/394/26 +f 680/397/26 671/396/26 670/398/26 +f 670/398/26 681/399/26 680/397/26 +f 681/399/26 670/398/26 676/392/26 +f 676/392/26 689/395/26 681/399/26 +f 673/400/27 672/401/27 690/402/27 +f 690/402/27 691/403/27 673/400/27 +f 672/401/27 675/404/27 692/405/27 +f 692/405/27 690/402/27 672/401/27 +f 675/404/27 677/406/27 693/407/27 +f 693/407/27 692/405/27 675/404/27 +f 677/406/27 673/400/27 691/403/27 +f 691/403/27 693/407/27 677/406/27 +f 688/408/1 689/409/1 694/410/1 +f 694/410/1 695/411/1 688/408/1 +f 689/409/1 683/412/1 696/413/1 +f 696/413/1 694/410/1 689/409/1 +f 683/412/1 682/414/1 697/415/1 +f 697/415/1 696/413/1 683/412/1 +f 695/416/10 694/417/10 686/418/10 +f 686/418/10 685/419/10 695/416/10 +f 694/420/27 696/421/27 687/422/27 +f 687/422/27 686/423/27 694/420/27 +f 696/417/4 697/416/4 684/419/4 +f 684/419/4 687/418/4 696/417/4 +f 698/243/150 699/246/150 700/245/150 +f 700/245/150 701/244/150 698/243/150 +f 698/247/153 702/250/153 703/249/153 +f 703/249/153 699/248/153 698/247/153 +f 699/246/152 703/252/152 704/251/152 +f 704/251/152 700/245/152 699/246/152 +f 700/248/151 704/249/151 705/250/151 +f 705/250/151 701/247/151 700/248/151 +f 706/424/203 707/425/204 708/426/205 +f 708/426/205 709/427/27 706/424/203 +f 710/428/1 711/429/1 707/429/1 +f 707/429/1 706/428/1 710/428/1 +f 712/430/206 708/430/206 707/431/206 +f 707/431/206 711/431/206 712/430/206 +f 706/424/203 709/427/27 713/426/207 +f 713/426/207 714/425/208 706/424/203 +f 710/428/1 706/428/1 714/432/1 +f 714/432/1 715/432/1 710/428/1 +f 714/431/209 713/430/209 716/430/209 +f 716/430/209 715/431/209 714/431/209 +f 717/433/210 709/427/27 708/426/205 +f 708/426/205 718/434/211 717/433/210 +f 719/428/7 717/428/7 718/429/7 +f 718/429/7 720/429/7 719/428/7 +f 718/435/212 708/430/212 712/430/212 +f 712/430/212 720/435/212 718/435/212 +f 717/433/210 721/434/213 713/426/207 +f 713/426/207 709/427/27 717/433/210 +f 719/428/7 722/432/7 721/432/7 +f 721/432/7 717/428/7 719/428/7 +f 716/430/214 713/430/214 721/435/214 +f 721/435/214 722/435/214 716/430/214 +f 723/436/4 724/437/4 725/438/4 +f 725/438/4 726/439/4 723/436/4 +f 724/437/215 723/436/215 727/440/215 +f 727/440/215 728/441/215 724/437/215 +f 723/436/216 726/439/216 729/440/216 +f 729/440/216 727/440/216 723/436/216 +f 730/442/217 728/441/217 727/440/217 +f 727/440/217 731/443/217 730/442/217 +f 732/444/216 731/443/216 727/440/216 +f 727/440/216 729/445/216 732/444/216 +f 733/446/10 734/447/10 735/448/10 +f 735/448/10 736/449/10 733/446/10 +f 734/447/218 737/442/218 738/443/218 +f 738/443/218 735/448/218 734/447/218 +f 735/448/219 738/443/219 739/450/219 +f 739/450/219 736/449/219 735/448/219 +f 738/443/220 737/442/220 730/442/220 +f 730/442/220 731/443/220 738/443/220 +f 732/444/219 739/444/219 738/443/219 +f 738/443/219 731/443/219 732/444/219 +f 740/436/4 741/437/4 742/438/4 +f 742/438/4 743/439/4 740/436/4 +f 741/437/221 740/436/221 744/440/221 +f 744/440/221 745/441/221 741/437/221 +f 740/436/222 743/439/222 746/440/222 +f 746/440/222 744/440/222 740/436/222 +f 747/442/223 745/441/223 744/440/223 +f 744/440/223 748/443/223 747/442/223 +f 749/444/222 748/443/222 744/440/222 +f 744/440/222 746/445/222 749/444/222 +f 750/446/10 751/447/10 752/448/10 +f 752/448/10 753/449/10 750/446/10 +f 751/447/224 754/442/224 755/443/224 +f 755/443/224 752/448/224 751/447/224 +f 752/448/222 755/443/222 756/450/222 +f 756/450/222 753/449/222 752/448/222 +f 755/443/225 754/442/225 747/442/225 +f 747/442/225 748/443/225 755/443/225 +f 749/444/222 756/444/222 755/443/222 +f 755/443/222 748/443/222 749/444/222 +f 757/436/4 758/437/4 759/438/4 +f 759/438/4 760/439/4 757/436/4 +f 758/437/226 757/436/226 761/440/226 +f 761/440/226 762/441/227 758/437/226 +f 757/436/228 760/439/228 763/440/229 +f 763/440/229 761/440/229 757/436/228 +f 764/442/230 762/441/230 761/440/230 +f 761/440/230 765/443/230 764/442/230 +f 766/444/228 765/443/228 761/440/228 +f 761/440/228 763/445/228 766/444/228 +f 767/446/10 768/447/10 769/448/10 +f 769/448/10 770/449/10 767/446/10 +f 768/447/231 771/442/232 772/443/231 +f 772/443/231 769/448/232 768/447/231 +f 769/448/229 772/443/229 773/450/229 +f 773/450/229 770/449/229 769/448/229 +f 772/443/233 771/442/233 764/442/233 +f 764/442/233 765/443/233 772/443/233 +f 766/444/229 773/444/229 772/443/229 +f 772/443/229 765/443/229 766/444/229 +f 774/436/4 775/437/4 776/438/4 +f 776/438/4 777/439/4 774/436/4 +f 775/437/226 774/436/227 778/440/227 +f 778/440/227 779/441/227 775/437/226 +f 774/436/229 777/439/229 780/440/229 +f 780/440/229 778/440/229 774/436/229 +f 781/442/230 779/441/230 778/440/230 +f 778/440/230 782/443/230 781/442/230 +f 783/444/229 782/443/229 778/440/229 +f 778/440/229 780/445/229 783/444/229 +f 784/446/10 785/447/10 786/448/10 +f 786/448/10 787/449/10 784/446/10 +f 785/447/231 788/442/232 789/443/232 +f 789/443/232 786/448/231 785/447/231 +f 786/448/228 789/443/229 790/450/229 +f 790/450/229 787/449/228 786/448/228 +f 789/443/233 788/442/233 781/442/233 +f 781/442/233 782/443/233 789/443/233 +f 783/444/229 790/444/229 789/443/229 +f 789/443/229 782/443/229 783/444/229 +f 791/436/4 792/437/4 793/438/4 +f 793/438/4 794/439/4 791/436/4 +f 792/437/234 791/436/234 795/440/234 +f 795/440/234 796/441/234 792/437/234 +f 791/436/235 794/439/235 797/440/235 +f 797/440/235 795/440/235 791/436/235 +f 798/442/236 796/441/236 795/440/236 +f 795/440/236 799/443/236 798/442/236 +f 800/444/235 799/443/235 795/440/235 +f 795/440/235 797/445/235 800/444/235 +f 801/446/10 802/447/10 803/448/10 +f 803/448/10 804/449/10 801/446/10 +f 802/447/237 805/442/237 806/443/237 +f 806/443/237 803/448/237 802/447/237 +f 803/448/235 806/443/235 807/450/235 +f 807/450/235 804/449/235 803/448/235 +f 806/443/238 805/442/238 798/442/238 +f 798/442/238 799/443/238 806/443/238 +f 800/444/239 807/444/239 806/443/239 +f 806/443/239 799/443/239 800/444/239 +f 808/436/4 809/437/4 810/438/4 +f 810/438/4 811/439/4 808/436/4 +f 809/437/240 808/436/240 812/440/240 +f 812/440/240 813/441/240 809/437/240 +f 808/436/241 811/439/241 814/440/241 +f 814/440/241 812/440/241 808/436/241 +f 815/442/236 813/441/236 812/440/236 +f 812/440/236 816/443/236 815/442/236 +f 817/444/241 816/443/241 812/440/241 +f 812/440/241 814/445/241 817/444/241 +f 818/446/10 819/447/10 820/448/10 +f 820/448/10 821/449/10 818/446/10 +f 819/447/242 822/442/242 823/443/242 +f 823/443/242 820/448/242 819/447/242 +f 820/448/243 823/443/241 824/450/241 +f 824/450/241 821/449/243 820/448/243 +f 823/443/238 822/442/238 815/442/238 +f 815/442/238 816/443/238 823/443/238 +f 817/444/241 824/444/241 823/443/241 +f 823/443/241 816/443/241 817/444/241 +f 825/436/4 826/437/4 827/438/4 +f 827/438/4 828/439/4 825/436/4 +f 826/437/215 825/436/215 829/440/215 +f 829/440/215 830/441/215 826/437/215 +f 825/436/216 828/439/216 831/440/216 +f 831/440/216 829/440/216 825/436/216 +f 832/442/217 830/441/217 829/440/217 +f 829/440/217 833/443/217 832/442/217 +f 834/444/216 833/443/216 829/440/216 +f 829/440/216 831/445/216 834/444/216 +f 835/446/10 836/447/10 837/448/10 +f 837/448/10 838/449/10 835/446/10 +f 836/447/218 839/442/218 840/443/218 +f 840/443/218 837/448/218 836/447/218 +f 837/448/219 840/443/219 841/450/219 +f 841/450/219 838/449/219 837/448/219 +f 840/443/220 839/442/220 832/442/220 +f 832/442/220 833/443/220 840/443/220 +f 834/444/219 841/444/219 840/443/219 +f 840/443/219 833/443/219 834/444/219 +f 842/436/4 843/437/4 844/438/4 +f 844/438/4 845/439/4 842/436/4 +f 843/437/215 842/436/215 846/440/215 +f 846/440/215 847/441/215 843/437/215 +f 842/436/216 845/439/216 848/440/216 +f 848/440/216 846/440/216 842/436/216 +f 849/442/217 847/441/217 846/440/217 +f 846/440/217 850/443/217 849/442/217 +f 851/444/216 850/443/216 846/440/216 +f 846/440/216 848/445/216 851/444/216 +f 852/446/10 853/447/10 854/448/10 +f 854/448/10 855/449/10 852/446/10 +f 853/447/218 856/442/218 857/443/218 +f 857/443/218 854/448/218 853/447/218 +f 854/448/219 857/443/219 858/450/219 +f 858/450/219 855/449/219 854/448/219 +f 857/443/220 856/442/220 849/442/220 +f 849/442/220 850/443/220 857/443/220 +f 851/444/219 858/444/219 857/443/219 +f 857/443/219 850/443/219 851/444/219 +f 859/438/4 860/437/4 861/436/4 +f 861/436/4 862/439/4 859/438/4 +f 863/440/244 861/436/244 860/437/244 +f 860/437/244 864/441/244 863/440/244 +f 865/440/245 862/439/245 861/436/245 +f 861/436/245 863/440/245 865/440/245 +f 863/440/246 864/441/246 866/442/246 +f 866/442/246 867/443/246 863/440/246 +f 868/444/245 865/445/245 863/440/245 +f 863/440/245 867/443/245 868/444/245 +f 869/448/10 870/447/10 871/446/10 +f 871/446/10 872/449/10 869/448/10 +f 873/443/247 874/442/247 870/447/247 +f 870/447/247 869/448/247 873/443/247 +f 875/450/248 873/443/248 869/448/248 +f 869/448/248 872/449/248 875/450/248 +f 866/442/249 874/442/249 873/443/249 +f 873/443/249 867/443/249 866/442/249 +f 868/444/248 867/443/248 873/443/248 +f 873/443/248 875/444/248 868/444/248 +f 876/438/4 877/437/4 878/436/4 +f 878/436/4 879/439/4 876/438/4 +f 880/440/250 878/436/250 877/437/250 +f 877/437/250 881/441/250 880/440/250 +f 882/440/251 879/439/251 878/436/251 +f 878/436/251 880/440/251 882/440/251 +f 880/440/252 881/441/252 883/442/252 +f 883/442/252 884/443/252 880/440/252 +f 885/444/251 882/445/251 880/440/251 +f 880/440/251 884/443/251 885/444/251 +f 886/448/10 887/447/10 888/446/10 +f 888/446/10 889/449/10 886/448/10 +f 890/443/253 891/442/253 887/447/253 +f 887/447/253 886/448/253 890/443/253 +f 892/450/251 890/443/251 886/448/254 +f 886/448/254 889/449/254 892/450/251 +f 883/442/255 891/442/255 890/443/255 +f 890/443/255 884/443/255 883/442/255 +f 885/444/251 884/443/251 890/443/251 +f 890/443/251 892/444/251 885/444/251 +f 893/438/4 894/437/4 895/436/4 +f 895/436/4 896/439/4 893/438/4 +f 897/440/256 895/436/257 894/437/256 +f 894/437/256 898/441/256 897/440/256 +f 899/440/258 896/439/258 895/436/258 +f 895/436/258 897/440/258 899/440/258 +f 897/440/259 898/441/259 900/442/259 +f 900/442/259 901/443/259 897/440/259 +f 902/444/258 899/445/258 897/440/258 +f 897/440/258 901/443/258 902/444/258 +f 903/448/10 904/447/10 905/446/10 +f 905/446/10 906/449/10 903/448/10 +f 907/443/260 908/442/260 904/447/260 +f 904/447/260 903/448/260 907/443/260 +f 909/450/261 907/443/261 903/448/261 +f 903/448/261 906/449/261 909/450/261 +f 900/442/262 908/442/262 907/443/262 +f 907/443/262 901/443/262 900/442/262 +f 902/444/261 901/443/261 907/443/261 +f 907/443/261 909/444/261 902/444/261 +f 910/438/4 911/437/4 912/436/4 +f 912/436/4 913/439/4 910/438/4 +f 914/440/257 912/436/257 911/437/257 +f 911/437/257 915/441/256 914/440/257 +f 916/440/261 913/439/261 912/436/261 +f 912/436/261 914/440/261 916/440/261 +f 914/440/259 915/441/259 917/442/259 +f 917/442/259 918/443/259 914/440/259 +f 919/444/261 916/445/261 914/440/261 +f 914/440/261 918/443/261 919/444/261 +f 920/448/10 921/447/10 922/446/10 +f 922/446/10 923/449/10 920/448/10 +f 924/443/263 925/442/260 921/447/263 +f 921/447/263 920/448/263 924/443/263 +f 926/450/258 924/443/258 920/448/261 +f 920/448/261 923/449/261 926/450/258 +f 917/442/262 925/442/262 924/443/262 +f 924/443/262 918/443/262 917/442/262 +f 919/444/261 918/443/261 924/443/261 +f 924/443/261 926/444/261 919/444/261 +f 927/438/4 928/437/4 929/436/4 +f 929/436/4 930/439/4 927/438/4 +f 931/440/264 929/436/264 928/437/264 +f 928/437/264 932/441/264 931/440/264 +f 933/440/265 930/439/265 929/436/265 +f 929/436/265 931/440/265 933/440/265 +f 931/440/266 932/441/266 934/442/266 +f 934/442/266 935/443/266 931/440/266 +f 936/444/265 933/445/265 931/440/265 +f 931/440/265 935/443/265 936/444/265 +f 937/448/10 938/447/10 939/446/10 +f 939/446/10 940/449/10 937/448/10 +f 941/443/267 942/442/267 938/447/267 +f 938/447/267 937/448/267 941/443/267 +f 943/450/265 941/443/265 937/448/265 +f 937/448/265 940/449/265 943/450/265 +f 934/442/268 942/442/268 941/443/268 +f 941/443/268 935/443/268 934/442/268 +f 936/444/269 935/443/269 941/443/269 +f 941/443/269 943/444/269 936/444/269 +f 944/438/4 945/437/4 946/436/4 +f 946/436/4 947/439/4 944/438/4 +f 948/440/270 946/436/270 945/437/270 +f 945/437/270 949/441/270 948/440/270 +f 950/440/271 947/439/271 946/436/271 +f 946/436/271 948/440/271 950/440/271 +f 948/440/266 949/441/266 951/442/266 +f 951/442/266 952/443/266 948/440/266 +f 953/444/271 950/445/271 948/440/271 +f 948/440/271 952/443/271 953/444/271 +f 954/448/10 955/447/10 956/446/10 +f 956/446/10 957/449/10 954/448/10 +f 958/443/272 959/442/272 955/447/272 +f 955/447/272 954/448/272 958/443/272 +f 960/450/271 958/443/271 954/448/273 +f 954/448/273 957/449/273 960/450/271 +f 951/442/268 959/442/268 958/443/268 +f 958/443/268 952/443/268 951/442/268 +f 953/444/271 952/443/271 958/443/271 +f 958/443/271 960/444/271 953/444/271 +f 961/438/4 962/437/4 963/436/4 +f 963/436/4 964/439/4 961/438/4 +f 965/440/244 963/436/244 962/437/244 +f 962/437/244 966/441/244 965/440/244 +f 967/440/245 964/439/245 963/436/245 +f 963/436/245 965/440/245 967/440/245 +f 965/440/246 966/441/246 968/442/274 +f 968/442/274 969/443/246 965/440/246 +f 970/444/245 967/445/245 965/440/245 +f 965/440/245 969/443/245 970/444/245 +f 971/448/10 972/447/10 973/446/10 +f 973/446/10 974/449/10 971/448/10 +f 975/443/247 976/442/247 972/447/247 +f 972/447/247 971/448/247 975/443/247 +f 977/450/248 975/443/248 971/448/248 +f 971/448/248 974/449/248 977/450/248 +f 968/442/275 976/442/249 975/443/249 +f 975/443/249 969/443/249 968/442/275 +f 970/444/248 969/443/248 975/443/248 +f 975/443/248 977/444/248 970/444/248 +f 978/438/4 979/437/4 980/436/4 +f 980/436/4 981/439/4 978/438/4 +f 982/440/244 980/436/244 979/437/244 +f 979/437/244 983/441/244 982/440/244 +f 984/440/245 981/439/245 980/436/245 +f 980/436/245 982/440/245 984/440/245 +f 982/440/246 983/441/246 985/442/246 +f 985/442/246 986/443/246 982/440/246 +f 987/444/245 984/445/245 982/440/245 +f 982/440/245 986/443/245 987/444/245 +f 988/448/10 989/447/10 990/446/10 +f 990/446/10 991/449/10 988/448/10 +f 992/443/247 993/442/247 989/447/247 +f 989/447/247 988/448/247 992/443/247 +f 994/450/248 992/443/248 988/448/248 +f 988/448/248 991/449/248 994/450/248 +f 985/442/249 993/442/249 992/443/249 +f 992/443/249 986/443/249 985/442/249 +f 987/444/248 986/443/248 992/443/248 +f 992/443/248 994/444/248 987/444/248 +f 995/436/4 996/437/4 997/438/4 +f 997/438/4 998/439/4 995/436/4 +f 996/437/276 995/436/276 999/440/276 +f 999/440/276 1000/441/276 996/437/276 +f 995/436/277 998/439/277 1001/440/278 +f 1001/440/278 999/440/278 995/436/277 +f 1002/442/279 1000/441/279 999/440/279 +f 999/440/279 1003/443/279 1002/442/279 +f 1004/444/277 1003/443/277 999/440/277 +f 999/440/277 1001/445/277 1004/444/277 +f 1005/446/10 1006/447/10 1007/448/10 +f 1007/448/10 1008/449/10 1005/446/10 +f 1006/447/280 1009/442/280 1010/443/280 +f 1010/443/280 1007/448/280 1006/447/280 +f 1007/448/278 1010/443/278 1011/450/278 +f 1011/450/278 1008/449/278 1007/448/278 +f 1010/443/281 1009/442/281 1002/442/281 +f 1002/442/281 1003/443/281 1010/443/281 +f 1004/444/278 1011/444/278 1010/443/278 +f 1010/443/278 1003/443/278 1004/444/278 +f 1012/438/4 1013/437/4 1014/436/4 +f 1014/436/4 1015/439/4 1012/438/4 +f 1016/440/282 1014/436/282 1013/437/282 +f 1013/437/282 1017/441/282 1016/440/282 +f 1018/440/283 1015/439/283 1014/436/283 +f 1014/436/283 1016/440/283 1018/440/283 +f 1016/440/284 1017/441/284 1019/442/284 +f 1019/442/284 1020/443/284 1016/440/284 +f 1021/444/283 1018/445/283 1016/440/283 +f 1016/440/283 1020/443/283 1021/444/283 +f 1022/448/10 1023/447/10 1024/446/10 +f 1024/446/10 1025/449/10 1022/448/10 +f 1026/443/285 1027/442/285 1023/447/285 +f 1023/447/285 1022/448/285 1026/443/285 +f 1028/450/286 1026/443/286 1022/448/286 +f 1022/448/286 1025/449/286 1028/450/286 +f 1019/442/287 1027/442/287 1026/443/287 +f 1026/443/287 1020/443/287 1019/442/287 +f 1021/444/286 1020/443/286 1026/443/286 +f 1026/443/286 1028/444/286 1021/444/286 +f 1029/243/187 1030/244/187 1031/245/187 +f 1031/245/187 1032/246/187 1029/243/187 +f 1029/247/163 1032/248/163 1033/249/163 +f 1033/249/163 1034/250/163 1029/247/163 +f 1032/246/188 1031/245/188 1035/251/188 +f 1035/251/188 1033/252/188 1032/246/188 +f 1031/248/161 1030/247/161 1036/250/161 +f 1036/250/161 1035/249/161 1031/248/161 +f 1037/451/27 1038/452/27 1039/453/27 +f 1039/453/27 1040/454/27 1037/451/27 +f 1041/455/7 1042/456/7 1038/457/7 +f 1038/457/7 1037/458/7 1041/455/7 +f 1042/459/4 1043/460/4 1039/461/4 +f 1039/461/4 1038/462/4 1042/459/4 +f 1043/456/1 1044/455/1 1040/458/1 +f 1040/458/1 1039/457/1 1043/456/1 +f 1044/460/10 1041/459/10 1037/462/10 +f 1037/462/10 1040/461/10 1044/460/10 +f 1045/451/27 1046/452/27 1047/453/27 +f 1047/453/27 1048/454/27 1045/451/27 +f 1049/455/7 1050/456/7 1046/457/7 +f 1046/457/7 1045/458/7 1049/455/7 +f 1050/459/4 1051/460/4 1047/461/4 +f 1047/461/4 1046/462/4 1050/459/4 +f 1051/456/1 1052/455/1 1048/458/1 +f 1048/458/1 1047/457/1 1051/456/1 +f 1052/460/10 1049/459/10 1045/462/10 +f 1045/462/10 1048/461/10 1052/460/10 +f 1053/451/27 1054/452/27 1055/453/27 +f 1055/453/27 1056/454/27 1053/451/27 +f 1057/455/7 1058/456/7 1054/457/7 +f 1054/457/7 1053/458/7 1057/455/7 +f 1058/459/4 1059/460/4 1055/461/4 +f 1055/461/4 1054/462/4 1058/459/4 +f 1059/456/1 1060/455/1 1056/458/1 +f 1056/458/1 1055/457/1 1059/456/1 +f 1060/460/10 1057/459/10 1053/462/10 +f 1053/462/10 1056/461/10 1060/460/10 +f 1061/451/27 1062/452/27 1063/453/27 +f 1063/453/27 1064/454/27 1061/451/27 +f 1065/455/10 1066/456/10 1062/457/10 +f 1062/457/10 1061/458/10 1065/455/10 +f 1066/459/7 1067/460/7 1063/461/7 +f 1063/461/7 1062/462/7 1066/459/7 +f 1067/456/4 1068/455/4 1064/458/4 +f 1064/458/4 1063/457/4 1067/456/4 +f 1068/460/1 1065/459/1 1061/462/1 +f 1061/462/1 1064/461/1 1068/460/1 +f 1069/451/27 1070/452/27 1071/453/27 +f 1071/453/27 1072/454/27 1069/451/27 +f 1073/455/10 1074/456/10 1070/457/10 +f 1070/457/10 1069/458/10 1073/455/10 +f 1074/459/7 1075/460/7 1071/461/7 +f 1071/461/7 1070/462/7 1074/459/7 +f 1075/456/4 1076/455/4 1072/458/4 +f 1072/458/4 1071/457/4 1075/456/4 +f 1076/460/1 1073/459/1 1069/462/1 +f 1069/462/1 1072/461/1 1076/460/1 +f 1077/451/27 1078/452/27 1079/453/27 +f 1079/453/27 1080/454/27 1077/451/27 +f 1081/455/10 1082/456/10 1078/457/10 +f 1078/457/10 1077/458/10 1081/455/10 +f 1082/459/7 1083/460/7 1079/461/7 +f 1079/461/7 1078/462/7 1082/459/7 +f 1083/456/4 1084/455/4 1080/458/4 +f 1080/458/4 1079/457/4 1083/456/4 +f 1084/460/1 1081/459/1 1077/462/1 +f 1077/462/1 1080/461/1 1084/460/1 +f 1085/451/27 1086/452/27 1087/453/27 +f 1087/453/27 1088/454/27 1085/451/27 +f 1089/455/10 1090/456/10 1086/457/10 +f 1086/457/10 1085/458/10 1089/455/10 +f 1090/459/7 1091/460/7 1087/461/7 +f 1087/461/7 1086/462/7 1090/459/7 +f 1091/456/4 1092/455/4 1088/458/4 +f 1088/458/4 1087/457/4 1091/456/4 +f 1092/460/1 1089/459/1 1085/462/1 +f 1085/462/1 1088/461/1 1092/460/1 +f 1093/451/27 1094/452/27 1095/453/27 +f 1095/453/27 1096/454/27 1093/451/27 +f 1097/455/7 1098/456/7 1094/457/7 +f 1094/457/7 1093/458/7 1097/455/7 +f 1098/459/4 1099/460/4 1095/461/4 +f 1095/461/4 1094/462/4 1098/459/4 +f 1099/456/1 1100/455/1 1096/458/1 +f 1096/458/1 1095/457/1 1099/456/1 +f 1100/460/10 1097/459/10 1093/462/10 +f 1093/462/10 1096/461/10 1100/460/10 +f 1101/451/27 1102/452/27 1103/453/27 +f 1103/453/27 1104/454/27 1101/451/27 +f 1105/455/7 1106/456/7 1102/457/7 +f 1102/457/7 1101/458/7 1105/455/7 +f 1106/459/4 1107/460/4 1103/461/4 +f 1103/461/4 1102/462/4 1106/459/4 +f 1107/456/1 1108/455/1 1104/458/1 +f 1104/458/1 1103/457/1 1107/456/1 +f 1108/460/10 1105/459/10 1101/462/10 +f 1101/462/10 1104/461/10 1108/460/10 +f 1109/451/27 1110/452/27 1111/453/27 +f 1111/453/27 1112/454/27 1109/451/27 +f 1113/455/7 1114/456/7 1110/457/7 +f 1110/457/7 1109/458/7 1113/455/7 +f 1114/459/4 1115/460/4 1111/461/4 +f 1111/461/4 1110/462/4 1114/459/4 +f 1115/456/1 1116/455/1 1112/458/1 +f 1112/458/1 1111/457/1 1115/456/1 +f 1116/460/10 1113/459/10 1109/462/10 +f 1109/462/10 1112/461/10 1116/460/10 +f 1117/451/27 1118/452/27 1119/453/27 +f 1119/453/27 1120/454/27 1117/451/27 +f 1121/455/7 1122/456/7 1118/457/7 +f 1118/457/7 1117/458/7 1121/455/7 +f 1122/459/4 1123/460/4 1119/461/4 +f 1119/461/4 1118/462/4 1122/459/4 +f 1123/456/1 1124/455/1 1120/458/1 +f 1120/458/1 1119/457/1 1123/456/1 +f 1124/460/10 1121/459/10 1117/462/10 +f 1117/462/10 1120/461/10 1124/460/10 +f 1125/451/27 1126/452/27 1127/453/27 +f 1127/453/27 1128/454/27 1125/451/27 +f 1129/455/7 1130/456/7 1126/457/7 +f 1126/457/7 1125/458/7 1129/455/7 +f 1130/459/4 1131/460/4 1127/461/4 +f 1127/461/4 1126/462/4 1130/459/4 +f 1131/456/1 1132/455/1 1128/458/1 +f 1128/458/1 1127/457/1 1131/456/1 +f 1132/460/10 1129/459/10 1125/462/10 +f 1125/462/10 1128/461/10 1132/460/10 +f 1133/451/27 1134/452/27 1135/453/27 +f 1135/453/27 1136/454/27 1133/451/27 +f 1137/455/7 1138/456/7 1134/457/7 +f 1134/457/7 1133/458/7 1137/455/7 +f 1138/459/4 1139/460/4 1135/461/4 +f 1135/461/4 1134/462/4 1138/459/4 +f 1139/456/1 1140/455/1 1136/458/1 +f 1136/458/1 1135/457/1 1139/456/1 +f 1140/460/10 1137/459/10 1133/462/10 +f 1133/462/10 1136/461/10 1140/460/10 +f 1141/451/27 1142/452/27 1143/453/27 +f 1143/453/27 1144/454/27 1141/451/27 +f 1145/455/7 1146/456/7 1142/457/7 +f 1142/457/7 1141/458/7 1145/455/7 +f 1146/459/4 1147/460/4 1143/461/4 +f 1143/461/4 1142/462/4 1146/459/4 +f 1147/456/1 1148/455/1 1144/458/1 +f 1144/458/1 1143/457/1 1147/456/1 +f 1148/460/10 1145/459/10 1141/462/10 +f 1141/462/10 1144/461/10 1148/460/10 +f 1149/451/27 1150/452/27 1151/453/27 +f 1151/453/27 1152/454/27 1149/451/27 +f 1153/455/7 1154/456/7 1150/457/7 +f 1150/457/7 1149/458/7 1153/455/7 +f 1154/459/4 1155/460/4 1151/461/4 +f 1151/461/4 1150/462/4 1154/459/4 +f 1155/456/1 1156/455/1 1152/458/1 +f 1152/458/1 1151/457/1 1155/456/1 +f 1156/460/10 1153/459/10 1149/462/10 +f 1149/462/10 1152/461/10 1156/460/10 +f 1157/451/27 1158/452/27 1159/453/27 +f 1159/453/27 1160/454/27 1157/451/27 +f 1161/455/7 1162/456/7 1158/457/7 +f 1158/457/7 1157/458/7 1161/455/7 +f 1162/459/4 1163/460/4 1159/461/4 +f 1159/461/4 1158/462/4 1162/459/4 +f 1163/456/1 1164/455/1 1160/458/1 +f 1160/458/1 1159/457/1 1163/456/1 +f 1164/460/10 1161/459/10 1157/462/10 +f 1157/462/10 1160/461/10 1164/460/10 +f 1165/451/27 1166/452/27 1167/453/27 +f 1167/453/27 1168/454/27 1165/451/27 +f 1169/455/7 1170/456/7 1166/457/7 +f 1166/457/7 1165/458/7 1169/455/7 +f 1170/459/4 1171/460/4 1167/461/4 +f 1167/461/4 1166/462/4 1170/459/4 +f 1171/456/1 1172/455/1 1168/458/1 +f 1168/458/1 1167/457/1 1171/456/1 +f 1172/460/10 1169/459/10 1165/462/10 +f 1165/462/10 1168/461/10 1172/460/10 +f 1173/451/27 1174/452/27 1175/453/27 +f 1175/453/27 1176/454/27 1173/451/27 +f 1177/455/7 1178/456/7 1174/457/7 +f 1174/457/7 1173/458/7 1177/455/7 +f 1178/459/4 1179/460/4 1175/461/4 +f 1175/461/4 1174/462/4 1178/459/4 +f 1179/456/1 1180/455/1 1176/458/1 +f 1176/458/1 1175/457/1 1179/456/1 +f 1180/460/10 1177/459/10 1173/462/10 +f 1173/462/10 1176/461/10 1180/460/10 +f 1181/451/27 1182/452/27 1183/453/27 +f 1183/453/27 1184/454/27 1181/451/27 +f 1185/455/7 1186/456/7 1182/457/7 +f 1182/457/7 1181/458/7 1185/455/7 +f 1186/459/4 1187/460/4 1183/461/4 +f 1183/461/4 1182/462/4 1186/459/4 +f 1187/456/1 1188/455/1 1184/458/1 +f 1184/458/1 1183/457/1 1187/456/1 +f 1188/460/10 1185/459/10 1181/462/10 +f 1181/462/10 1184/461/10 1188/460/10 +f 1189/451/27 1190/452/27 1191/453/27 +f 1191/453/27 1192/454/27 1189/451/27 +f 1193/455/7 1194/456/7 1190/457/7 +f 1190/457/7 1189/458/7 1193/455/7 +f 1194/459/4 1195/460/4 1191/461/4 +f 1191/461/4 1190/462/4 1194/459/4 +f 1195/456/1 1196/455/1 1192/458/1 +f 1192/458/1 1191/457/1 1195/456/1 +f 1196/460/10 1193/459/10 1189/462/10 +f 1189/462/10 1192/461/10 1196/460/10 +f 1197/451/27 1198/452/27 1199/453/27 +f 1199/453/27 1200/454/27 1197/451/27 +f 1201/455/7 1202/456/7 1198/457/7 +f 1198/457/7 1197/458/7 1201/455/7 +f 1202/459/4 1203/460/4 1199/461/4 +f 1199/461/4 1198/462/4 1202/459/4 +f 1203/456/1 1204/455/1 1200/458/1 +f 1200/458/1 1199/457/1 1203/456/1 +f 1204/460/10 1201/459/10 1197/462/10 +f 1197/462/10 1200/461/10 1204/460/10 +f 1205/451/27 1206/452/27 1207/453/27 +f 1207/453/27 1208/454/27 1205/451/27 +f 1209/455/7 1210/456/7 1206/457/7 +f 1206/457/7 1205/458/7 1209/455/7 +f 1210/459/4 1211/460/4 1207/461/4 +f 1207/461/4 1206/462/4 1210/459/4 +f 1211/456/1 1212/455/1 1208/458/1 +f 1208/458/1 1207/457/1 1211/456/1 +f 1212/460/10 1209/459/10 1205/462/10 +f 1205/462/10 1208/461/10 1212/460/10 +f 1213/451/27 1214/452/27 1215/453/27 +f 1215/453/27 1216/454/27 1213/451/27 +f 1217/455/7 1218/456/7 1214/457/7 +f 1214/457/7 1213/458/7 1217/455/7 +f 1218/459/4 1219/460/4 1215/461/4 +f 1215/461/4 1214/462/4 1218/459/4 +f 1219/456/1 1220/455/1 1216/458/1 +f 1216/458/1 1215/457/1 1219/456/1 +f 1220/460/10 1217/459/10 1213/462/10 +f 1213/462/10 1216/461/10 1220/460/10 +f 1221/451/27 1222/452/27 1223/453/27 +f 1223/453/27 1224/454/27 1221/451/27 +f 1225/455/7 1226/456/7 1222/457/7 +f 1222/457/7 1221/458/7 1225/455/7 +f 1226/459/4 1227/460/4 1223/461/4 +f 1223/461/4 1222/462/4 1226/459/4 +f 1227/456/1 1228/455/1 1224/458/1 +f 1224/458/1 1223/457/1 1227/456/1 +f 1228/460/10 1225/459/10 1221/462/10 +f 1221/462/10 1224/461/10 1228/460/10 +f 1229/451/27 1230/452/27 1231/453/27 +f 1231/453/27 1232/454/27 1229/451/27 +f 1233/455/4 1234/456/4 1230/457/4 +f 1230/457/4 1229/458/4 1233/455/4 +f 1234/459/1 1235/460/1 1231/461/1 +f 1231/461/1 1230/462/1 1234/459/1 +f 1235/456/10 1236/455/10 1232/458/10 +f 1232/458/10 1231/457/10 1235/456/10 +f 1236/460/7 1233/459/7 1229/462/7 +f 1229/462/7 1232/461/7 1236/460/7 +f 1237/451/27 1238/452/27 1239/453/27 +f 1239/453/27 1240/454/27 1237/451/27 +f 1241/455/4 1242/456/4 1238/457/4 +f 1238/457/4 1237/458/4 1241/455/4 +f 1242/459/1 1243/460/1 1239/461/1 +f 1239/461/1 1238/462/1 1242/459/1 +f 1243/456/10 1244/455/10 1240/458/10 +f 1240/458/10 1239/457/10 1243/456/10 +f 1244/460/7 1241/459/7 1237/462/7 +f 1237/462/7 1240/461/7 1244/460/7 +f 1245/451/27 1246/452/27 1247/453/27 +f 1247/453/27 1248/454/27 1245/451/27 +f 1249/455/4 1250/456/4 1246/457/4 +f 1246/457/4 1245/458/4 1249/455/4 +f 1250/459/1 1251/460/1 1247/461/1 +f 1247/461/1 1246/462/1 1250/459/1 +f 1251/456/10 1252/455/10 1248/458/10 +f 1248/458/10 1247/457/10 1251/456/10 +f 1252/460/7 1249/459/7 1245/462/7 +f 1245/462/7 1248/461/7 1252/460/7 +f 1253/451/27 1254/452/27 1255/453/27 +f 1255/453/27 1256/454/27 1253/451/27 +f 1257/455/4 1258/456/4 1254/457/4 +f 1254/457/4 1253/458/4 1257/455/4 +f 1258/459/1 1259/460/1 1255/461/1 +f 1255/461/1 1254/462/1 1258/459/1 +f 1259/456/10 1260/455/10 1256/458/10 +f 1256/458/10 1255/457/10 1259/456/10 +f 1260/460/7 1257/459/7 1253/462/7 +f 1253/462/7 1256/461/7 1260/460/7 +f 1261/451/27 1262/452/27 1263/453/27 +f 1263/453/27 1264/454/27 1261/451/27 +f 1265/455/7 1266/456/7 1262/457/7 +f 1262/457/7 1261/458/7 1265/455/7 +f 1266/459/4 1267/460/4 1263/461/4 +f 1263/461/4 1262/462/4 1266/459/4 +f 1267/456/1 1268/455/1 1264/458/1 +f 1264/458/1 1263/457/1 1267/456/1 +f 1268/460/10 1265/459/10 1261/462/10 +f 1261/462/10 1264/461/10 1268/460/10 +f 1269/451/27 1270/452/27 1271/453/27 +f 1271/453/27 1272/454/27 1269/451/27 +f 1273/455/7 1274/456/7 1270/457/7 +f 1270/457/7 1269/458/7 1273/455/7 +f 1274/459/4 1275/460/4 1271/461/4 +f 1271/461/4 1270/462/4 1274/459/4 +f 1275/456/1 1276/455/1 1272/458/1 +f 1272/458/1 1271/457/1 1275/456/1 +f 1276/460/10 1273/459/10 1269/462/10 +f 1269/462/10 1272/461/10 1276/460/10 +f 1277/451/27 1278/452/27 1279/453/27 +f 1279/453/27 1280/454/27 1277/451/27 +f 1281/455/7 1282/456/7 1278/457/7 +f 1278/457/7 1277/458/7 1281/455/7 +f 1282/459/4 1283/460/4 1279/461/4 +f 1279/461/4 1278/462/4 1282/459/4 +f 1283/456/1 1284/455/1 1280/458/1 +f 1280/458/1 1279/457/1 1283/456/1 +f 1284/460/10 1281/459/10 1277/462/10 +f 1277/462/10 1280/461/10 1284/460/10 +f 1285/451/27 1286/452/27 1287/453/27 +f 1287/453/27 1288/454/27 1285/451/27 +f 1289/455/7 1290/456/7 1286/457/7 +f 1286/457/7 1285/458/7 1289/455/7 +f 1290/459/4 1291/460/4 1287/461/4 +f 1287/461/4 1286/462/4 1290/459/4 +f 1291/456/1 1292/455/1 1288/458/1 +f 1288/458/1 1287/457/1 1291/456/1 +f 1292/460/10 1289/459/10 1285/462/10 +f 1285/462/10 1288/461/10 1292/460/10 +f 1293/451/27 1294/452/27 1295/453/27 +f 1295/453/27 1296/454/27 1293/451/27 +f 1297/455/7 1298/456/7 1294/457/7 +f 1294/457/7 1293/458/7 1297/455/7 +f 1298/459/4 1299/460/4 1295/461/4 +f 1295/461/4 1294/462/4 1298/459/4 +f 1299/456/1 1300/455/1 1296/458/1 +f 1296/458/1 1295/457/1 1299/456/1 +f 1300/460/10 1297/459/10 1293/462/10 +f 1293/462/10 1296/461/10 1300/460/10 +f 1301/451/27 1302/452/27 1303/453/27 +f 1303/453/27 1304/454/27 1301/451/27 +f 1305/455/7 1306/456/7 1302/457/7 +f 1302/457/7 1301/458/7 1305/455/7 +f 1306/459/4 1307/460/4 1303/461/4 +f 1303/461/4 1302/462/4 1306/459/4 +f 1307/456/1 1308/455/1 1304/458/1 +f 1304/458/1 1303/457/1 1307/456/1 +f 1308/460/10 1305/459/10 1301/462/10 +f 1301/462/10 1304/461/10 1308/460/10 +f 1309/451/27 1310/452/27 1311/453/27 +f 1311/453/27 1312/454/27 1309/451/27 +f 1313/455/7 1314/456/7 1310/457/7 +f 1310/457/7 1309/458/7 1313/455/7 +f 1314/459/4 1315/460/4 1311/461/4 +f 1311/461/4 1310/462/4 1314/459/4 +f 1315/456/1 1316/455/1 1312/458/1 +f 1312/458/1 1311/457/1 1315/456/1 +f 1316/460/10 1313/459/10 1309/462/10 +f 1309/462/10 1312/461/10 1316/460/10 +f 1317/451/27 1318/452/27 1319/453/27 +f 1319/453/27 1320/454/27 1317/451/27 +f 1321/455/4 1322/456/4 1318/457/4 +f 1318/457/4 1317/458/4 1321/455/4 +f 1322/459/1 1323/460/1 1319/461/1 +f 1319/461/1 1318/462/1 1322/459/1 +f 1323/456/10 1324/455/10 1320/458/10 +f 1320/458/10 1319/457/10 1323/456/10 +f 1324/460/7 1321/459/7 1317/462/7 +f 1317/462/7 1320/461/7 1324/460/7 +f 1325/451/27 1326/452/27 1327/453/27 +f 1327/453/27 1328/454/27 1325/451/27 +f 1329/455/4 1330/456/4 1326/457/4 +f 1326/457/4 1325/458/4 1329/455/4 +f 1330/459/1 1331/460/1 1327/461/1 +f 1327/461/1 1326/462/1 1330/459/1 +f 1331/456/10 1332/455/10 1328/458/10 +f 1328/458/10 1327/457/10 1331/456/10 +f 1332/460/7 1329/459/7 1325/462/7 +f 1325/462/7 1328/461/7 1332/460/7 +f 1333/451/27 1334/452/27 1335/453/27 +f 1335/453/27 1336/454/27 1333/451/27 +f 1337/455/4 1338/456/4 1334/457/4 +f 1334/457/4 1333/458/4 1337/455/4 +f 1338/459/1 1339/460/1 1335/461/1 +f 1335/461/1 1334/462/1 1338/459/1 +f 1339/456/10 1340/455/10 1336/458/10 +f 1336/458/10 1335/457/10 1339/456/10 +f 1340/460/7 1337/459/7 1333/462/7 +f 1333/462/7 1336/461/7 1340/460/7 +f 1341/451/27 1342/452/27 1343/453/27 +f 1343/453/27 1344/454/27 1341/451/27 +f 1345/455/4 1346/456/4 1342/457/4 +f 1342/457/4 1341/458/4 1345/455/4 +f 1346/459/1 1347/460/1 1343/461/1 +f 1343/461/1 1342/462/1 1346/459/1 +f 1347/456/10 1348/455/10 1344/458/10 +f 1344/458/10 1343/457/10 1347/456/10 +f 1348/460/7 1345/459/7 1341/462/7 +f 1341/462/7 1344/461/7 1348/460/7 +f 1349/451/27 1350/452/27 1351/453/27 +f 1351/453/27 1352/454/27 1349/451/27 +f 1353/455/4 1354/456/4 1350/457/4 +f 1350/457/4 1349/458/4 1353/455/4 +f 1354/459/1 1355/460/1 1351/461/1 +f 1351/461/1 1350/462/1 1354/459/1 +f 1355/456/10 1356/455/10 1352/458/10 +f 1352/458/10 1351/457/10 1355/456/10 +f 1356/460/7 1353/459/7 1349/462/7 +f 1349/462/7 1352/461/7 1356/460/7 +f 1357/463/27 1358/464/27 1359/465/27 +f 1359/465/27 1360/466/27 1357/463/27 +f 1361/467/4 1362/468/4 1359/469/4 +f 1359/469/4 1358/470/4 1361/467/4 +f 1363/471/4 1364/472/4 1365/473/4 +f 1365/473/4 1366/474/4 1363/471/4 +f 1367/475/1 1368/476/1 1369/477/1 +f 1369/477/1 1370/478/1 1367/475/1 +f 1371/479/27 1372/480/288 1373/480/288 +f 1373/480/288 1374/479/27 1371/479/27 +f 1375/476/7 1376/475/7 1377/481/7 +f 1377/481/7 1378/482/7 1375/476/7 +f 1379/483/26 1380/484/289 1381/485/289 +f 1381/485/289 1382/483/26 1379/483/26 +f 1383/486/4 1384/487/4 1385/488/4 +f 1386/489/4 1387/490/4 1372/491/4 +f 1372/491/4 1371/492/4 1386/489/4 +f 1388/493/4 1389/494/4 1390/495/4 +f 1391/496/4 1392/497/4 1390/495/4 +f 1390/495/4 1389/494/4 1391/496/4 +f 1393/498/4 1394/499/4 1365/473/4 +f 1365/473/4 1364/472/4 1393/498/4 +f 1395/500/290 1371/479/27 1374/479/27 +f 1374/479/27 1396/500/290 1395/500/290 +f 1397/501/291 1379/483/26 1382/483/26 +f 1382/483/26 1398/501/291 1397/501/291 +f 1395/502/4 1399/503/4 1386/489/4 +f 1386/489/4 1371/492/4 1395/502/4 +f 1391/496/4 1383/486/4 1385/488/4 +f 1385/488/4 1392/497/4 1391/496/4 +f 1387/504/7 1363/504/7 1366/505/7 +f 1366/505/7 1400/505/7 1387/504/7 +f 1386/506/292 1364/506/292 1363/504/292 +f 1363/504/292 1387/504/292 1386/506/292 +f 1399/507/293 1393/507/293 1364/506/293 +f 1364/506/293 1386/506/293 1399/507/293 +f 1401/508/1 1394/508/1 1393/507/1 +f 1393/507/1 1399/507/1 1401/508/1 +f 1402/509/210 1365/510/210 1394/511/210 +f 1394/511/210 1401/512/210 1402/509/210 +f 1400/513/294 1366/514/294 1365/510/294 +f 1365/510/294 1402/509/294 1400/513/294 +f 1403/515/4 1401/516/4 1399/503/4 +f 1399/503/4 1395/502/4 1403/515/4 +f 1395/500/7 1396/500/7 1404/517/7 +f 1404/517/7 1403/517/7 1395/500/7 +f 1372/480/1 1405/518/1 1406/518/1 +f 1406/518/1 1373/480/1 1372/480/1 +f 1405/519/4 1372/491/4 1387/490/4 +f 1387/490/4 1400/474/4 1405/519/4 +f 1367/475/1 1407/481/1 1408/482/1 +f 1408/482/1 1368/476/1 1367/475/1 +f 1400/513/295 1385/513/295 1384/485/295 +f 1384/485/295 1405/520/295 1400/513/295 +f 1402/509/294 1392/509/294 1385/513/294 +f 1385/513/294 1400/513/294 1402/509/294 +f 1401/512/210 1390/512/210 1392/509/210 +f 1392/509/210 1402/509/210 1401/512/210 +f 1403/521/296 1388/521/296 1390/512/296 +f 1390/512/296 1401/512/296 1403/521/296 +f 1375/476/7 1409/477/7 1410/478/7 +f 1410/478/7 1376/475/7 1375/476/7 +f 1379/483/289 1391/522/289 1389/523/289 +f 1389/523/289 1380/484/289 1379/483/289 +f 1397/501/291 1383/524/291 1391/522/291 +f 1391/522/291 1379/483/291 1397/501/291 +f 1405/520/27 1367/525/27 1370/526/27 +f 1370/526/27 1406/527/27 1405/520/27 +f 1384/485/27 1407/528/27 1367/525/27 +f 1367/525/27 1405/520/27 1384/485/27 +f 1383/486/4 1408/486/4 1407/487/4 +f 1407/487/4 1384/487/4 1383/486/4 +f 1397/501/26 1368/501/26 1408/524/26 +f 1408/524/26 1383/524/26 1397/501/26 +f 1398/501/26 1369/501/26 1368/501/26 +f 1368/501/26 1397/501/26 1398/501/26 +f 1380/484/26 1375/484/26 1378/485/26 +f 1378/485/26 1381/485/26 1380/484/26 +f 1389/523/26 1409/523/26 1375/484/26 +f 1375/484/26 1380/484/26 1389/523/26 +f 1388/493/4 1410/529/4 1409/530/4 +f 1409/530/4 1389/494/4 1388/493/4 +f 1403/521/27 1376/531/27 1410/532/27 +f 1410/532/27 1388/521/27 1403/521/27 +f 1404/533/27 1377/531/27 1376/531/27 +f 1376/531/27 1403/521/27 1404/533/27 +f 1411/471/4 1412/472/4 1413/473/4 +f 1413/473/4 1414/474/4 1411/471/4 +f 1415/475/1 1416/476/1 1417/477/1 +f 1417/477/1 1418/478/1 1415/475/1 +f 1419/479/27 1420/480/288 1421/480/288 +f 1421/480/288 1422/479/27 1419/479/27 +f 1423/476/7 1424/475/7 1425/481/7 +f 1425/481/7 1426/482/7 1423/476/7 +f 1427/483/26 1428/484/289 1429/485/289 +f 1429/485/289 1430/483/26 1427/483/26 +f 1431/486/4 1432/487/4 1433/488/4 +f 1434/489/4 1435/490/4 1420/491/4 +f 1420/491/4 1419/492/4 1434/489/4 +f 1436/493/4 1437/494/4 1438/495/4 +f 1439/496/4 1440/497/4 1438/495/4 +f 1438/495/4 1437/494/4 1439/496/4 +f 1441/498/4 1442/499/4 1413/473/4 +f 1413/473/4 1412/472/4 1441/498/4 +f 1443/500/290 1419/479/27 1422/479/27 +f 1422/479/27 1444/500/290 1443/500/290 +f 1445/501/291 1427/483/26 1430/483/26 +f 1430/483/26 1446/501/291 1445/501/291 +f 1443/502/4 1447/503/4 1434/489/4 +f 1434/489/4 1419/492/4 1443/502/4 +f 1439/496/4 1431/486/4 1433/488/4 +f 1433/488/4 1440/497/4 1439/496/4 +f 1435/504/7 1411/504/7 1414/505/7 +f 1414/505/7 1448/505/7 1435/504/7 +f 1434/506/292 1412/506/292 1411/504/292 +f 1411/504/292 1435/504/292 1434/506/292 +f 1447/507/293 1441/507/293 1412/506/293 +f 1412/506/293 1434/506/293 1447/507/293 +f 1449/508/1 1442/508/1 1441/507/1 +f 1441/507/1 1447/507/1 1449/508/1 +f 1450/509/210 1413/510/210 1442/511/210 +f 1442/511/210 1449/512/210 1450/509/210 +f 1448/513/294 1414/514/294 1413/510/294 +f 1413/510/294 1450/509/294 1448/513/294 +f 1451/515/4 1449/516/4 1447/503/4 +f 1447/503/4 1443/502/4 1451/515/4 +f 1443/500/7 1444/500/7 1452/517/7 +f 1452/517/7 1451/517/7 1443/500/7 +f 1420/480/1 1453/518/1 1454/518/1 +f 1454/518/1 1421/480/1 1420/480/1 +f 1453/519/4 1420/491/4 1435/490/4 +f 1435/490/4 1448/474/4 1453/519/4 +f 1415/475/1 1455/481/1 1456/482/1 +f 1456/482/1 1416/476/1 1415/475/1 +f 1448/513/295 1433/513/295 1432/485/295 +f 1432/485/295 1453/520/295 1448/513/295 +f 1450/509/294 1440/509/294 1433/513/294 +f 1433/513/294 1448/513/294 1450/509/294 +f 1449/512/210 1438/512/210 1440/509/210 +f 1440/509/210 1450/509/210 1449/512/210 +f 1451/521/296 1436/521/296 1438/512/296 +f 1438/512/296 1449/512/296 1451/521/296 +f 1423/476/7 1457/477/7 1458/478/7 +f 1458/478/7 1424/475/7 1423/476/7 +f 1427/483/289 1439/522/289 1437/523/289 +f 1437/523/289 1428/484/289 1427/483/289 +f 1445/501/291 1431/524/291 1439/522/291 +f 1439/522/291 1427/483/291 1445/501/291 +f 1453/520/27 1415/525/27 1418/526/27 +f 1418/526/27 1454/527/27 1453/520/27 +f 1432/485/27 1455/528/27 1415/525/27 +f 1415/525/27 1453/520/27 1432/485/27 +f 1431/486/4 1456/486/4 1455/487/4 +f 1455/487/4 1432/487/4 1431/486/4 +f 1445/501/26 1416/501/26 1456/524/26 +f 1456/524/26 1431/524/26 1445/501/26 +f 1446/501/26 1417/501/26 1416/501/26 +f 1416/501/26 1445/501/26 1446/501/26 +f 1428/484/26 1423/484/26 1426/485/26 +f 1426/485/26 1429/485/26 1428/484/26 +f 1437/523/26 1457/523/26 1423/484/26 +f 1423/484/26 1428/484/26 1437/523/26 +f 1436/493/4 1458/529/4 1457/530/4 +f 1457/530/4 1437/494/4 1436/493/4 +f 1451/521/27 1424/531/27 1458/532/27 +f 1458/532/27 1436/521/27 1451/521/27 +f 1452/533/27 1425/531/27 1424/531/27 +f 1424/531/27 1451/521/27 1452/533/27 +f 1459/471/4 1460/472/4 1461/473/4 +f 1461/473/4 1462/474/4 1459/471/4 +f 1463/475/1 1464/476/1 1465/477/1 +f 1465/477/1 1466/478/1 1463/475/1 +f 1467/479/27 1468/480/288 1469/480/288 +f 1469/480/288 1470/479/27 1467/479/27 +f 1471/476/7 1472/475/7 1473/481/7 +f 1473/481/7 1474/482/7 1471/476/7 +f 1475/483/26 1476/484/289 1477/485/289 +f 1477/485/289 1478/483/26 1475/483/26 +f 1479/486/4 1480/487/4 1481/488/4 +f 1482/489/4 1483/490/4 1468/491/4 +f 1468/491/4 1467/492/4 1482/489/4 +f 1484/493/4 1485/494/4 1486/495/4 +f 1487/496/4 1488/497/4 1486/495/4 +f 1486/495/4 1485/494/4 1487/496/4 +f 1489/498/4 1490/499/4 1461/473/4 +f 1461/473/4 1460/472/4 1489/498/4 +f 1491/500/290 1467/479/27 1470/479/27 +f 1470/479/27 1492/500/290 1491/500/290 +f 1493/501/291 1475/483/26 1478/483/26 +f 1478/483/26 1494/501/291 1493/501/291 +f 1491/502/4 1495/503/4 1482/489/4 +f 1482/489/4 1467/492/4 1491/502/4 +f 1487/496/4 1479/486/4 1481/488/4 +f 1481/488/4 1488/497/4 1487/496/4 +f 1483/504/7 1459/504/7 1462/505/7 +f 1462/505/7 1496/505/7 1483/504/7 +f 1482/506/292 1460/506/292 1459/504/292 +f 1459/504/292 1483/504/292 1482/506/292 +f 1495/507/293 1489/507/293 1460/506/293 +f 1460/506/293 1482/506/293 1495/507/293 +f 1497/508/1 1490/508/1 1489/507/1 +f 1489/507/1 1495/507/1 1497/508/1 +f 1498/509/210 1461/510/210 1490/511/210 +f 1490/511/210 1497/512/210 1498/509/210 +f 1496/513/294 1462/514/294 1461/510/294 +f 1461/510/294 1498/509/294 1496/513/294 +f 1499/515/4 1497/516/4 1495/503/4 +f 1495/503/4 1491/502/4 1499/515/4 +f 1491/500/7 1492/500/7 1500/517/7 +f 1500/517/7 1499/517/7 1491/500/7 +f 1468/480/1 1501/518/1 1502/518/1 +f 1502/518/1 1469/480/1 1468/480/1 +f 1501/519/4 1468/491/4 1483/490/4 +f 1483/490/4 1496/474/4 1501/519/4 +f 1463/475/1 1503/481/1 1504/482/1 +f 1504/482/1 1464/476/1 1463/475/1 +f 1496/513/295 1481/513/295 1480/485/295 +f 1480/485/295 1501/520/295 1496/513/295 +f 1498/509/294 1488/509/294 1481/513/294 +f 1481/513/294 1496/513/294 1498/509/294 +f 1497/512/210 1486/512/210 1488/509/210 +f 1488/509/210 1498/509/210 1497/512/210 +f 1499/521/296 1484/521/296 1486/512/296 +f 1486/512/296 1497/512/296 1499/521/296 +f 1471/476/7 1505/477/7 1506/478/7 +f 1506/478/7 1472/475/7 1471/476/7 +f 1475/483/289 1487/522/289 1485/523/289 +f 1485/523/289 1476/484/289 1475/483/289 +f 1493/501/291 1479/524/291 1487/522/291 +f 1487/522/291 1475/483/291 1493/501/291 +f 1501/520/27 1463/525/27 1466/526/27 +f 1466/526/27 1502/527/27 1501/520/27 +f 1480/485/27 1503/528/27 1463/525/27 +f 1463/525/27 1501/520/27 1480/485/27 +f 1479/486/4 1504/486/4 1503/487/4 +f 1503/487/4 1480/487/4 1479/486/4 +f 1493/501/26 1464/501/26 1504/524/26 +f 1504/524/26 1479/524/26 1493/501/26 +f 1494/501/26 1465/501/26 1464/501/26 +f 1464/501/26 1493/501/26 1494/501/26 +f 1476/484/26 1471/484/26 1474/485/26 +f 1474/485/26 1477/485/26 1476/484/26 +f 1485/523/26 1505/523/26 1471/484/26 +f 1471/484/26 1476/484/26 1485/523/26 +f 1484/493/4 1506/529/4 1505/530/4 +f 1505/530/4 1485/494/4 1484/493/4 +f 1499/521/27 1472/531/27 1506/532/27 +f 1506/532/27 1484/521/27 1499/521/27 +f 1500/533/27 1473/531/27 1472/531/27 +f 1472/531/27 1499/521/27 1500/533/27 +f 1507/471/4 1508/472/4 1509/473/4 +f 1509/473/4 1510/474/4 1507/471/4 +f 1511/475/1 1512/476/1 1513/477/1 +f 1513/477/1 1514/478/1 1511/475/1 +f 1515/479/27 1516/480/288 1517/480/288 +f 1517/480/288 1518/479/27 1515/479/27 +f 1519/476/7 1520/475/7 1521/481/7 +f 1521/481/7 1522/482/7 1519/476/7 +f 1523/483/26 1524/484/289 1525/485/289 +f 1525/485/289 1526/483/26 1523/483/26 +f 1527/486/4 1528/487/4 1529/488/4 +f 1530/489/4 1531/490/4 1516/491/4 +f 1516/491/4 1515/492/4 1530/489/4 +f 1532/493/4 1533/494/4 1534/495/4 +f 1535/496/4 1536/497/4 1534/495/4 +f 1534/495/4 1533/494/4 1535/496/4 +f 1537/498/4 1538/499/4 1509/473/4 +f 1509/473/4 1508/472/4 1537/498/4 +f 1539/500/290 1515/479/27 1518/479/27 +f 1518/479/27 1540/500/290 1539/500/290 +f 1541/501/291 1523/483/26 1526/483/26 +f 1526/483/26 1542/501/291 1541/501/291 +f 1539/502/4 1543/503/4 1530/489/4 +f 1530/489/4 1515/492/4 1539/502/4 +f 1535/496/4 1527/486/4 1529/488/4 +f 1529/488/4 1536/497/4 1535/496/4 +f 1531/504/7 1507/504/7 1510/505/7 +f 1510/505/7 1544/505/7 1531/504/7 +f 1530/506/292 1508/506/292 1507/504/292 +f 1507/504/292 1531/504/292 1530/506/292 +f 1543/507/293 1537/507/293 1508/506/293 +f 1508/506/293 1530/506/293 1543/507/293 +f 1545/508/1 1538/508/1 1537/507/1 +f 1537/507/1 1543/507/1 1545/508/1 +f 1546/509/210 1509/510/210 1538/511/210 +f 1538/511/210 1545/512/210 1546/509/210 +f 1544/513/294 1510/514/294 1509/510/294 +f 1509/510/294 1546/509/294 1544/513/294 +f 1547/515/4 1545/516/4 1543/503/4 +f 1543/503/4 1539/502/4 1547/515/4 +f 1539/500/7 1540/500/7 1548/517/7 +f 1548/517/7 1547/517/7 1539/500/7 +f 1516/480/1 1549/518/1 1550/518/1 +f 1550/518/1 1517/480/1 1516/480/1 +f 1549/519/4 1516/491/4 1531/490/4 +f 1531/490/4 1544/474/4 1549/519/4 +f 1511/475/1 1551/481/1 1552/482/1 +f 1552/482/1 1512/476/1 1511/475/1 +f 1544/513/295 1529/513/295 1528/485/295 +f 1528/485/295 1549/520/295 1544/513/295 +f 1546/509/294 1536/509/294 1529/513/294 +f 1529/513/294 1544/513/294 1546/509/294 +f 1545/512/210 1534/512/210 1536/509/210 +f 1536/509/210 1546/509/210 1545/512/210 +f 1547/521/296 1532/521/296 1534/512/296 +f 1534/512/296 1545/512/296 1547/521/296 +f 1519/476/7 1553/477/7 1554/478/7 +f 1554/478/7 1520/475/7 1519/476/7 +f 1523/483/289 1535/522/289 1533/523/289 +f 1533/523/289 1524/484/289 1523/483/289 +f 1541/501/291 1527/524/291 1535/522/291 +f 1535/522/291 1523/483/291 1541/501/291 +f 1549/520/27 1511/525/27 1514/526/27 +f 1514/526/27 1550/527/27 1549/520/27 +f 1528/485/27 1551/528/27 1511/525/27 +f 1511/525/27 1549/520/27 1528/485/27 +f 1527/486/4 1552/486/4 1551/487/4 +f 1551/487/4 1528/487/4 1527/486/4 +f 1541/501/26 1512/501/26 1552/524/26 +f 1552/524/26 1527/524/26 1541/501/26 +f 1542/501/26 1513/501/26 1512/501/26 +f 1512/501/26 1541/501/26 1542/501/26 +f 1524/484/26 1519/484/26 1522/485/26 +f 1522/485/26 1525/485/26 1524/484/26 +f 1533/523/26 1553/523/26 1519/484/26 +f 1519/484/26 1524/484/26 1533/523/26 +f 1532/493/4 1554/529/4 1553/530/4 +f 1553/530/4 1533/494/4 1532/493/4 +f 1547/521/27 1520/531/27 1554/532/27 +f 1554/532/27 1532/521/27 1547/521/27 +f 1548/533/27 1521/531/27 1520/531/27 +f 1520/531/27 1547/521/27 1548/533/27 +f 1555/471/4 1556/472/4 1557/473/4 +f 1557/473/4 1558/474/4 1555/471/4 +f 1559/475/1 1560/476/1 1561/477/1 +f 1561/477/1 1562/478/1 1559/475/1 +f 1563/479/27 1564/480/288 1565/480/288 +f 1565/480/288 1566/479/27 1563/479/27 +f 1567/476/7 1568/475/7 1569/481/7 +f 1569/481/7 1570/482/7 1567/476/7 +f 1571/483/26 1572/484/289 1573/485/289 +f 1573/485/289 1574/483/26 1571/483/26 +f 1575/486/4 1576/487/4 1577/488/4 +f 1578/489/4 1579/490/4 1564/491/4 +f 1564/491/4 1563/492/4 1578/489/4 +f 1580/493/4 1581/494/4 1582/495/4 +f 1583/496/4 1584/497/4 1582/495/4 +f 1582/495/4 1581/494/4 1583/496/4 +f 1585/498/4 1586/499/4 1557/473/4 +f 1557/473/4 1556/472/4 1585/498/4 +f 1587/500/290 1563/479/27 1566/479/27 +f 1566/479/27 1588/500/290 1587/500/290 +f 1589/501/291 1571/483/26 1574/483/26 +f 1574/483/26 1590/501/291 1589/501/291 +f 1587/502/4 1591/503/4 1578/489/4 +f 1578/489/4 1563/492/4 1587/502/4 +f 1583/496/4 1575/486/4 1577/488/4 +f 1577/488/4 1584/497/4 1583/496/4 +f 1579/504/7 1555/504/7 1558/505/7 +f 1558/505/7 1592/505/7 1579/504/7 +f 1578/506/292 1556/506/292 1555/504/292 +f 1555/504/292 1579/504/292 1578/506/292 +f 1591/507/293 1585/507/293 1556/506/293 +f 1556/506/293 1578/506/293 1591/507/293 +f 1593/508/1 1586/508/1 1585/507/1 +f 1585/507/1 1591/507/1 1593/508/1 +f 1594/509/210 1557/510/210 1586/511/210 +f 1586/511/210 1593/512/210 1594/509/210 +f 1592/513/294 1558/514/294 1557/510/294 +f 1557/510/294 1594/509/294 1592/513/294 +f 1595/515/4 1593/516/4 1591/503/4 +f 1591/503/4 1587/502/4 1595/515/4 +f 1587/500/7 1588/500/7 1596/517/7 +f 1596/517/7 1595/517/7 1587/500/7 +f 1564/480/1 1597/518/1 1598/518/1 +f 1598/518/1 1565/480/1 1564/480/1 +f 1597/519/4 1564/491/4 1579/490/4 +f 1579/490/4 1592/474/4 1597/519/4 +f 1559/475/1 1599/481/1 1600/482/1 +f 1600/482/1 1560/476/1 1559/475/1 +f 1592/513/295 1577/513/295 1576/485/295 +f 1576/485/295 1597/520/295 1592/513/295 +f 1594/509/294 1584/509/294 1577/513/294 +f 1577/513/294 1592/513/294 1594/509/294 +f 1593/512/210 1582/512/210 1584/509/210 +f 1584/509/210 1594/509/210 1593/512/210 +f 1595/521/296 1580/521/296 1582/512/296 +f 1582/512/296 1593/512/296 1595/521/296 +f 1567/476/7 1601/477/7 1602/478/7 +f 1602/478/7 1568/475/7 1567/476/7 +f 1571/483/289 1583/522/289 1581/523/289 +f 1581/523/289 1572/484/289 1571/483/289 +f 1589/501/291 1575/524/291 1583/522/291 +f 1583/522/291 1571/483/291 1589/501/291 +f 1597/520/27 1559/525/27 1562/526/27 +f 1562/526/27 1598/527/27 1597/520/27 +f 1576/485/27 1599/528/27 1559/525/27 +f 1559/525/27 1597/520/27 1576/485/27 +f 1575/486/4 1600/486/4 1599/487/4 +f 1599/487/4 1576/487/4 1575/486/4 +f 1589/501/26 1560/501/26 1600/524/26 +f 1600/524/26 1575/524/26 1589/501/26 +f 1590/501/26 1561/501/26 1560/501/26 +f 1560/501/26 1589/501/26 1590/501/26 +f 1572/484/26 1567/484/26 1570/485/26 +f 1570/485/26 1573/485/26 1572/484/26 +f 1581/523/26 1601/523/26 1567/484/26 +f 1567/484/26 1572/484/26 1581/523/26 +f 1580/493/4 1602/529/4 1601/530/4 +f 1601/530/4 1581/494/4 1580/493/4 +f 1595/521/27 1568/531/27 1602/532/27 +f 1602/532/27 1580/521/27 1595/521/27 +f 1596/533/27 1569/531/27 1568/531/27 +f 1568/531/27 1595/521/27 1596/533/27 +f 1603/471/4 1604/472/4 1605/473/4 +f 1605/473/4 1606/474/4 1603/471/4 +f 1607/475/1 1608/476/1 1609/477/1 +f 1609/477/1 1610/478/1 1607/475/1 +f 1611/479/27 1612/480/288 1613/480/288 +f 1613/480/288 1614/479/27 1611/479/27 +f 1615/476/7 1616/475/7 1617/481/7 +f 1617/481/7 1618/482/7 1615/476/7 +f 1619/483/26 1620/484/289 1621/485/289 +f 1621/485/289 1622/483/26 1619/483/26 +f 1623/486/4 1624/487/4 1625/488/4 +f 1626/489/4 1627/490/4 1612/491/4 +f 1612/491/4 1611/492/4 1626/489/4 +f 1628/493/4 1629/494/4 1630/495/4 +f 1631/496/4 1632/497/4 1630/495/4 +f 1630/495/4 1629/494/4 1631/496/4 +f 1633/498/4 1634/499/4 1605/473/4 +f 1605/473/4 1604/472/4 1633/498/4 +f 1635/500/290 1611/479/27 1614/479/27 +f 1614/479/27 1636/500/290 1635/500/290 +f 1637/501/291 1619/483/26 1622/483/26 +f 1622/483/26 1638/501/291 1637/501/291 +f 1635/502/4 1639/503/4 1626/489/4 +f 1626/489/4 1611/492/4 1635/502/4 +f 1631/496/4 1623/486/4 1625/488/4 +f 1625/488/4 1632/497/4 1631/496/4 +f 1627/504/7 1603/504/7 1606/505/7 +f 1606/505/7 1640/505/7 1627/504/7 +f 1626/506/292 1604/506/292 1603/504/292 +f 1603/504/292 1627/504/292 1626/506/292 +f 1639/507/293 1633/507/293 1604/506/293 +f 1604/506/293 1626/506/293 1639/507/293 +f 1641/508/1 1634/508/1 1633/507/1 +f 1633/507/1 1639/507/1 1641/508/1 +f 1642/509/210 1605/510/210 1634/511/210 +f 1634/511/210 1641/512/210 1642/509/210 +f 1640/513/294 1606/514/294 1605/510/294 +f 1605/510/294 1642/509/294 1640/513/294 +f 1643/515/4 1641/516/4 1639/503/4 +f 1639/503/4 1635/502/4 1643/515/4 +f 1635/500/7 1636/500/7 1644/517/7 +f 1644/517/7 1643/517/7 1635/500/7 +f 1612/480/1 1645/518/1 1646/518/1 +f 1646/518/1 1613/480/1 1612/480/1 +f 1645/519/4 1612/491/4 1627/490/4 +f 1627/490/4 1640/474/4 1645/519/4 +f 1607/475/1 1647/481/1 1648/482/1 +f 1648/482/1 1608/476/1 1607/475/1 +f 1640/513/295 1625/513/295 1624/485/295 +f 1624/485/295 1645/520/295 1640/513/295 +f 1642/509/294 1632/509/294 1625/513/294 +f 1625/513/294 1640/513/294 1642/509/294 +f 1641/512/210 1630/512/210 1632/509/210 +f 1632/509/210 1642/509/210 1641/512/210 +f 1643/521/296 1628/521/296 1630/512/296 +f 1630/512/296 1641/512/296 1643/521/296 +f 1615/476/7 1649/477/7 1650/478/7 +f 1650/478/7 1616/475/7 1615/476/7 +f 1619/483/289 1631/522/289 1629/523/289 +f 1629/523/289 1620/484/289 1619/483/289 +f 1637/501/291 1623/524/291 1631/522/297 +f 1631/522/297 1619/483/297 1637/501/291 +f 1645/520/27 1607/525/27 1610/526/27 +f 1610/526/27 1646/527/27 1645/520/27 +f 1624/485/27 1647/528/27 1607/525/27 +f 1607/525/27 1645/520/27 1624/485/27 +f 1623/486/4 1648/486/4 1647/487/4 +f 1647/487/4 1624/487/4 1623/486/4 +f 1637/501/26 1608/501/26 1648/524/26 +f 1648/524/26 1623/524/26 1637/501/26 +f 1638/501/26 1609/501/26 1608/501/26 +f 1608/501/26 1637/501/26 1638/501/26 +f 1620/484/26 1615/484/26 1618/485/26 +f 1618/485/26 1621/485/26 1620/484/26 +f 1629/523/26 1649/523/26 1615/484/26 +f 1615/484/26 1620/484/26 1629/523/26 +f 1628/493/4 1650/529/4 1649/530/4 +f 1649/530/4 1629/494/4 1628/493/4 +f 1643/521/27 1616/531/27 1650/532/27 +f 1650/532/27 1628/521/27 1643/521/27 +f 1644/533/27 1617/531/27 1616/531/27 +f 1616/531/27 1643/521/27 1644/533/27 +f 1651/471/4 1652/472/4 1653/473/4 +f 1653/473/4 1654/474/4 1651/471/4 +f 1655/475/1 1656/476/1 1657/477/1 +f 1657/477/1 1658/478/1 1655/475/1 +f 1659/479/27 1660/480/288 1661/480/288 +f 1661/480/288 1662/479/27 1659/479/27 +f 1663/476/7 1664/475/7 1665/481/7 +f 1665/481/7 1666/482/7 1663/476/7 +f 1667/483/26 1668/484/289 1669/485/289 +f 1669/485/289 1670/483/26 1667/483/26 +f 1671/486/4 1672/487/4 1673/488/4 +f 1674/489/4 1675/490/4 1660/491/4 +f 1660/491/4 1659/492/4 1674/489/4 +f 1676/493/4 1677/494/4 1678/495/4 +f 1679/496/4 1680/497/4 1678/495/4 +f 1678/495/4 1677/494/4 1679/496/4 +f 1681/498/4 1682/499/4 1653/473/4 +f 1653/473/4 1652/472/4 1681/498/4 +f 1683/500/290 1659/479/27 1662/479/27 +f 1662/479/27 1684/500/290 1683/500/290 +f 1685/501/291 1667/483/26 1670/483/26 +f 1670/483/26 1686/501/291 1685/501/291 +f 1683/502/4 1687/503/4 1674/489/4 +f 1674/489/4 1659/492/4 1683/502/4 +f 1679/496/4 1671/486/4 1673/488/4 +f 1673/488/4 1680/497/4 1679/496/4 +f 1675/504/7 1651/504/7 1654/505/7 +f 1654/505/7 1688/505/7 1675/504/7 +f 1674/506/292 1652/506/292 1651/504/292 +f 1651/504/292 1675/504/292 1674/506/292 +f 1687/507/293 1681/507/293 1652/506/293 +f 1652/506/293 1674/506/293 1687/507/293 +f 1689/508/1 1682/508/1 1681/507/1 +f 1681/507/1 1687/507/1 1689/508/1 +f 1690/509/210 1653/510/210 1682/511/210 +f 1682/511/210 1689/512/210 1690/509/210 +f 1688/513/294 1654/514/294 1653/510/294 +f 1653/510/294 1690/509/294 1688/513/294 +f 1691/515/4 1689/516/4 1687/503/4 +f 1687/503/4 1683/502/4 1691/515/4 +f 1683/500/7 1684/500/7 1692/517/7 +f 1692/517/7 1691/517/7 1683/500/7 +f 1660/480/1 1693/518/1 1694/518/1 +f 1694/518/1 1661/480/1 1660/480/1 +f 1693/519/4 1660/491/4 1675/490/4 +f 1675/490/4 1688/474/4 1693/519/4 +f 1655/475/1 1695/481/1 1696/482/1 +f 1696/482/1 1656/476/1 1655/475/1 +f 1688/513/295 1673/513/295 1672/485/295 +f 1672/485/295 1693/520/295 1688/513/295 +f 1690/509/294 1680/509/294 1673/513/294 +f 1673/513/294 1688/513/294 1690/509/294 +f 1689/512/210 1678/512/210 1680/509/210 +f 1680/509/210 1690/509/210 1689/512/210 +f 1691/521/296 1676/521/296 1678/512/296 +f 1678/512/296 1689/512/296 1691/521/296 +f 1663/476/7 1697/477/7 1698/478/7 +f 1698/478/7 1664/475/7 1663/476/7 +f 1667/483/298 1679/522/298 1677/523/289 +f 1677/523/289 1668/484/289 1667/483/298 +f 1685/501/291 1671/524/291 1679/522/297 +f 1679/522/297 1667/483/297 1685/501/291 +f 1693/520/27 1655/525/27 1658/526/27 +f 1658/526/27 1694/527/27 1693/520/27 +f 1672/485/27 1695/528/27 1655/525/27 +f 1655/525/27 1693/520/27 1672/485/27 +f 1671/486/4 1696/486/4 1695/487/4 +f 1695/487/4 1672/487/4 1671/486/4 +f 1685/501/26 1656/501/26 1696/524/26 +f 1696/524/26 1671/524/26 1685/501/26 +f 1686/501/26 1657/501/26 1656/501/26 +f 1656/501/26 1685/501/26 1686/501/26 +f 1668/484/26 1663/484/26 1666/485/26 +f 1666/485/26 1669/485/26 1668/484/26 +f 1677/523/26 1697/523/26 1663/484/26 +f 1663/484/26 1668/484/26 1677/523/26 +f 1676/493/4 1698/529/4 1697/530/4 +f 1697/530/4 1677/494/4 1676/493/4 +f 1691/521/27 1664/531/27 1698/532/27 +f 1698/532/27 1676/521/27 1691/521/27 +f 1692/533/27 1665/531/27 1664/531/27 +f 1664/531/27 1691/521/27 1692/533/27 +f 1699/471/1 1700/472/1 1701/473/1 +f 1701/473/1 1702/474/1 1699/471/1 +f 1703/475/10 1704/476/10 1705/477/10 +f 1705/477/10 1706/478/10 1703/475/10 +f 1707/479/27 1708/480/299 1709/480/299 +f 1709/480/299 1710/479/27 1707/479/27 +f 1711/476/4 1712/475/4 1713/481/4 +f 1713/481/4 1714/482/4 1711/476/4 +f 1715/483/26 1716/484/300 1717/485/300 +f 1717/485/300 1718/483/26 1715/483/26 +f 1719/486/1 1720/487/1 1721/488/1 +f 1722/489/1 1723/490/1 1708/491/1 +f 1708/491/1 1707/492/1 1722/489/1 +f 1724/493/1 1725/494/1 1726/495/1 +f 1727/496/1 1728/497/1 1726/495/1 +f 1726/495/1 1725/494/1 1727/496/1 +f 1729/498/1 1730/499/1 1701/473/1 +f 1701/473/1 1700/472/1 1729/498/1 +f 1731/500/301 1707/479/27 1710/479/27 +f 1710/479/27 1732/500/301 1731/500/301 +f 1733/501/302 1715/483/26 1718/483/26 +f 1718/483/26 1734/501/302 1733/501/302 +f 1731/502/1 1735/503/1 1722/489/1 +f 1722/489/1 1707/492/1 1731/502/1 +f 1727/496/1 1719/486/1 1721/488/1 +f 1721/488/1 1728/497/1 1727/496/1 +f 1723/504/4 1699/504/4 1702/505/4 +f 1702/505/4 1736/505/4 1723/504/4 +f 1722/506/303 1700/506/303 1699/504/303 +f 1699/504/303 1723/504/303 1722/506/303 +f 1735/507/304 1729/507/304 1700/506/304 +f 1700/506/304 1722/506/304 1735/507/304 +f 1737/508/10 1730/508/10 1729/507/10 +f 1729/507/10 1735/507/10 1737/508/10 +f 1738/509/305 1701/510/305 1730/511/305 +f 1730/511/305 1737/512/305 1738/509/305 +f 1736/513/306 1702/514/306 1701/510/306 +f 1701/510/306 1738/509/306 1736/513/306 +f 1739/515/1 1737/516/1 1735/503/1 +f 1735/503/1 1731/502/1 1739/515/1 +f 1731/500/4 1732/500/4 1740/517/4 +f 1740/517/4 1739/517/4 1731/500/4 +f 1708/480/10 1741/518/10 1742/518/10 +f 1742/518/10 1709/480/10 1708/480/10 +f 1741/519/1 1708/491/1 1723/490/1 +f 1723/490/1 1736/474/1 1741/519/1 +f 1703/475/10 1743/481/10 1744/482/10 +f 1744/482/10 1704/476/10 1703/475/10 +f 1736/513/307 1721/513/307 1720/485/307 +f 1720/485/307 1741/520/307 1736/513/307 +f 1738/509/306 1728/509/306 1721/513/306 +f 1721/513/306 1736/513/306 1738/509/306 +f 1737/512/305 1726/512/305 1728/509/305 +f 1728/509/305 1738/509/305 1737/512/305 +f 1739/521/308 1724/521/308 1726/512/308 +f 1726/512/308 1737/512/308 1739/521/308 +f 1711/476/4 1745/477/4 1746/478/4 +f 1746/478/4 1712/475/4 1711/476/4 +f 1715/483/300 1727/522/300 1725/523/300 +f 1725/523/300 1716/484/300 1715/483/300 +f 1733/501/302 1719/524/302 1727/522/302 +f 1727/522/302 1715/483/302 1733/501/302 +f 1741/520/27 1703/525/27 1706/526/27 +f 1706/526/27 1742/527/27 1741/520/27 +f 1720/485/27 1743/528/27 1703/525/27 +f 1703/525/27 1741/520/27 1720/485/27 +f 1719/486/1 1744/486/1 1743/487/1 +f 1743/487/1 1720/487/1 1719/486/1 +f 1733/501/26 1704/501/26 1744/524/26 +f 1744/524/26 1719/524/26 1733/501/26 +f 1734/501/26 1705/501/26 1704/501/26 +f 1704/501/26 1733/501/26 1734/501/26 +f 1716/484/26 1711/484/26 1714/485/26 +f 1714/485/26 1717/485/26 1716/484/26 +f 1725/523/26 1745/523/26 1711/484/26 +f 1711/484/26 1716/484/26 1725/523/26 +f 1724/493/1 1746/529/1 1745/530/1 +f 1745/530/1 1725/494/1 1724/493/1 +f 1739/521/27 1712/531/27 1746/532/27 +f 1746/532/27 1724/521/27 1739/521/27 +f 1740/533/27 1713/531/27 1712/531/27 +f 1712/531/27 1739/521/27 1740/533/27 +f 1747/471/1 1748/474/1 1749/473/1 +f 1749/473/1 1750/472/1 1747/471/1 +f 1751/475/4 1752/478/4 1753/477/4 +f 1753/477/4 1754/476/4 1751/475/4 +f 1755/479/27 1756/479/27 1757/480/301 +f 1757/480/301 1758/480/301 1755/479/27 +f 1759/476/10 1760/482/10 1761/481/10 +f 1761/481/10 1762/475/10 1759/476/10 +f 1763/483/26 1764/483/26 1765/485/302 +f 1765/485/302 1766/484/302 1763/483/26 +f 1767/486/1 1768/488/1 1769/487/1 +f 1770/489/1 1755/492/1 1758/491/1 +f 1758/491/1 1771/490/1 1770/489/1 +f 1772/493/1 1773/495/1 1774/494/1 +f 1775/496/1 1774/494/1 1773/495/1 +f 1773/495/1 1776/497/1 1775/496/1 +f 1777/498/1 1750/472/1 1749/473/1 +f 1749/473/1 1778/499/1 1777/498/1 +f 1779/500/299 1780/500/299 1756/479/27 +f 1756/479/27 1755/479/27 1779/500/299 +f 1781/501/300 1782/501/300 1764/483/26 +f 1764/483/26 1763/483/26 1781/501/300 +f 1779/502/1 1755/492/1 1770/489/1 +f 1770/489/1 1783/503/1 1779/502/1 +f 1775/496/1 1776/497/1 1768/488/1 +f 1768/488/1 1767/486/1 1775/496/1 +f 1771/504/10 1784/505/10 1748/505/10 +f 1748/505/10 1747/504/10 1771/504/10 +f 1770/506/304 1771/504/304 1747/504/304 +f 1747/504/304 1750/506/304 1770/506/304 +f 1783/507/303 1770/506/303 1750/506/303 +f 1750/506/303 1777/507/303 1783/507/303 +f 1785/508/4 1783/507/4 1777/507/4 +f 1777/507/4 1778/508/4 1785/508/4 +f 1786/509/309 1785/512/309 1778/511/309 +f 1778/511/309 1749/510/309 1786/509/309 +f 1784/513/310 1786/509/310 1749/510/310 +f 1749/510/310 1748/514/310 1784/513/310 +f 1787/515/1 1779/502/1 1783/503/1 +f 1783/503/1 1785/516/1 1787/515/1 +f 1779/500/10 1787/517/10 1788/517/10 +f 1788/517/10 1780/500/10 1779/500/10 +f 1758/480/4 1757/480/4 1789/518/4 +f 1789/518/4 1790/518/4 1758/480/4 +f 1790/519/1 1784/474/1 1771/490/1 +f 1771/490/1 1758/491/1 1790/519/1 +f 1751/475/4 1754/476/4 1791/482/4 +f 1791/482/4 1792/481/4 1751/475/4 +f 1784/513/311 1790/520/311 1769/485/311 +f 1769/485/311 1768/513/311 1784/513/311 +f 1786/509/310 1784/513/310 1768/513/310 +f 1768/513/310 1776/509/310 1786/509/310 +f 1785/512/309 1786/509/309 1776/509/309 +f 1776/509/309 1773/512/309 1785/512/309 +f 1787/521/312 1785/512/312 1773/512/312 +f 1773/512/312 1772/521/312 1787/521/312 +f 1759/476/10 1762/475/10 1793/478/10 +f 1793/478/10 1794/477/10 1759/476/10 +f 1763/483/302 1766/484/302 1774/523/302 +f 1774/523/302 1775/522/302 1763/483/302 +f 1781/501/300 1763/483/300 1775/522/300 +f 1775/522/300 1767/524/300 1781/501/300 +f 1790/520/27 1789/527/27 1752/526/27 +f 1752/526/27 1751/525/27 1790/520/27 +f 1769/485/27 1790/520/27 1751/525/27 +f 1751/525/27 1792/528/27 1769/485/27 +f 1767/486/1 1769/487/1 1792/487/1 +f 1792/487/1 1791/486/1 1767/486/1 +f 1781/501/26 1767/524/26 1791/524/26 +f 1791/524/26 1754/501/26 1781/501/26 +f 1782/501/26 1781/501/26 1754/501/26 +f 1754/501/26 1753/501/26 1782/501/26 +f 1766/484/26 1765/485/26 1760/485/26 +f 1760/485/26 1759/484/26 1766/484/26 +f 1774/523/26 1766/484/26 1759/484/26 +f 1759/484/26 1794/523/26 1774/523/26 +f 1772/493/1 1774/494/1 1794/530/1 +f 1794/530/1 1793/529/1 1772/493/1 +f 1787/521/27 1772/521/27 1793/532/27 +f 1793/532/27 1762/531/27 1787/521/27 +f 1788/533/27 1787/521/27 1762/531/27 +f 1762/531/27 1761/531/27 1788/533/27 +f 1795/471/10 1796/474/10 1797/473/10 +f 1797/473/10 1798/472/10 1795/471/10 +f 1799/475/1 1800/478/1 1801/477/1 +f 1801/477/1 1802/476/1 1799/475/1 +f 1803/479/27 1804/479/27 1805/480/288 +f 1805/480/288 1806/480/288 1803/479/27 +f 1807/476/7 1808/482/7 1809/481/7 +f 1809/481/7 1810/475/7 1807/476/7 +f 1811/483/26 1812/483/26 1813/485/289 +f 1813/485/289 1814/484/289 1811/483/26 +f 1815/486/10 1816/488/10 1817/487/10 +f 1818/489/10 1803/492/10 1806/491/10 +f 1806/491/10 1819/490/10 1818/489/10 +f 1820/493/10 1821/495/10 1822/494/10 +f 1823/496/10 1822/494/10 1821/495/10 +f 1821/495/10 1824/497/10 1823/496/10 +f 1825/498/10 1798/472/10 1797/473/10 +f 1797/473/10 1826/499/10 1825/498/10 +f 1827/500/290 1828/500/290 1804/479/27 +f 1804/479/27 1803/479/27 1827/500/290 +f 1829/501/291 1830/501/291 1812/483/26 +f 1812/483/26 1811/483/26 1829/501/291 +f 1827/502/10 1803/492/10 1818/489/10 +f 1818/489/10 1831/503/10 1827/502/10 +f 1823/496/10 1824/497/10 1816/488/10 +f 1816/488/10 1815/486/10 1823/496/10 +f 1819/504/7 1832/505/7 1796/505/7 +f 1796/505/7 1795/504/7 1819/504/7 +f 1818/506/292 1819/504/292 1795/504/292 +f 1795/504/292 1798/506/292 1818/506/292 +f 1831/507/293 1818/506/293 1798/506/293 +f 1798/506/293 1825/507/293 1831/507/293 +f 1833/508/1 1831/507/1 1825/507/1 +f 1825/507/1 1826/508/1 1833/508/1 +f 1834/509/210 1833/512/210 1826/511/210 +f 1826/511/210 1797/510/210 1834/509/210 +f 1832/513/294 1834/509/294 1797/510/294 +f 1797/510/294 1796/514/294 1832/513/294 +f 1835/515/10 1827/502/10 1831/503/10 +f 1831/503/10 1833/516/10 1835/515/10 +f 1827/500/7 1835/517/7 1836/517/7 +f 1836/517/7 1828/500/7 1827/500/7 +f 1806/480/1 1805/480/1 1837/518/1 +f 1837/518/1 1838/518/1 1806/480/1 +f 1838/519/10 1832/474/10 1819/490/10 +f 1819/490/10 1806/491/10 1838/519/10 +f 1799/475/1 1802/476/1 1839/482/1 +f 1839/482/1 1840/481/1 1799/475/1 +f 1832/513/313 1838/520/295 1817/485/295 +f 1817/485/295 1816/513/313 1832/513/313 +f 1834/509/294 1832/513/294 1816/513/294 +f 1816/513/294 1824/509/294 1834/509/294 +f 1833/512/210 1834/509/210 1824/509/210 +f 1824/509/210 1821/512/210 1833/512/210 +f 1835/521/296 1833/512/296 1821/512/296 +f 1821/512/296 1820/521/296 1835/521/296 +f 1807/476/7 1810/475/7 1841/478/7 +f 1841/478/7 1842/477/7 1807/476/7 +f 1811/483/289 1814/484/289 1822/523/289 +f 1822/523/289 1823/522/289 1811/483/289 +f 1829/501/291 1811/483/291 1823/522/291 +f 1823/522/291 1815/524/291 1829/501/291 +f 1838/520/27 1837/527/27 1800/526/27 +f 1800/526/27 1799/525/27 1838/520/27 +f 1817/485/27 1838/520/27 1799/525/27 +f 1799/525/27 1840/528/27 1817/485/27 +f 1815/486/10 1817/487/10 1840/487/10 +f 1840/487/10 1839/486/10 1815/486/10 +f 1829/501/26 1815/524/26 1839/524/26 +f 1839/524/26 1802/501/26 1829/501/26 +f 1830/501/26 1829/501/26 1802/501/26 +f 1802/501/26 1801/501/26 1830/501/26 +f 1814/484/26 1813/485/26 1808/485/26 +f 1808/485/26 1807/484/26 1814/484/26 +f 1822/523/26 1814/484/26 1807/484/26 +f 1807/484/26 1842/523/26 1822/523/26 +f 1820/493/10 1822/494/10 1842/530/10 +f 1842/530/10 1841/529/10 1820/493/10 +f 1835/521/27 1820/521/27 1841/532/27 +f 1841/532/27 1810/531/27 1835/521/27 +f 1836/533/27 1835/521/27 1810/531/27 +f 1810/531/27 1809/531/27 1836/533/27 +f 1843/471/10 1844/474/10 1845/473/10 +f 1845/473/10 1846/472/10 1843/471/10 +f 1847/475/1 1848/478/1 1849/477/1 +f 1849/477/1 1850/476/1 1847/475/1 +f 1851/479/27 1852/479/27 1853/480/288 +f 1853/480/288 1854/480/288 1851/479/27 +f 1855/476/7 1856/482/7 1857/481/7 +f 1857/481/7 1858/475/7 1855/476/7 +f 1859/483/26 1860/483/26 1861/485/289 +f 1861/485/289 1862/484/289 1859/483/26 +f 1863/486/10 1864/488/10 1865/487/10 +f 1866/489/10 1851/492/10 1854/491/10 +f 1854/491/10 1867/490/10 1866/489/10 +f 1868/493/10 1869/495/10 1870/494/10 +f 1871/496/10 1870/494/10 1869/495/10 +f 1869/495/10 1872/497/10 1871/496/10 +f 1873/498/10 1846/472/10 1845/473/10 +f 1845/473/10 1874/499/10 1873/498/10 +f 1875/500/290 1876/500/290 1852/479/27 +f 1852/479/27 1851/479/27 1875/500/290 +f 1877/501/291 1878/501/291 1860/483/26 +f 1860/483/26 1859/483/26 1877/501/291 +f 1875/502/10 1851/492/10 1866/489/10 +f 1866/489/10 1879/503/10 1875/502/10 +f 1871/496/10 1872/497/10 1864/488/10 +f 1864/488/10 1863/486/10 1871/496/10 +f 1867/504/7 1880/505/7 1844/505/7 +f 1844/505/7 1843/504/7 1867/504/7 +f 1866/506/292 1867/504/292 1843/504/292 +f 1843/504/292 1846/506/292 1866/506/292 +f 1879/507/293 1866/506/293 1846/506/293 +f 1846/506/293 1873/507/293 1879/507/293 +f 1881/508/1 1879/507/1 1873/507/1 +f 1873/507/1 1874/508/1 1881/508/1 +f 1882/509/210 1881/512/210 1874/511/210 +f 1874/511/210 1845/510/210 1882/509/210 +f 1880/513/294 1882/509/294 1845/510/294 +f 1845/510/294 1844/514/294 1880/513/294 +f 1883/515/10 1875/502/10 1879/503/10 +f 1879/503/10 1881/516/10 1883/515/10 +f 1875/500/7 1883/517/7 1884/517/7 +f 1884/517/7 1876/500/7 1875/500/7 +f 1854/480/1 1853/480/1 1885/518/1 +f 1885/518/1 1886/518/1 1854/480/1 +f 1886/519/10 1880/474/10 1867/490/10 +f 1867/490/10 1854/491/10 1886/519/10 +f 1847/475/1 1850/476/1 1887/482/1 +f 1887/482/1 1888/481/1 1847/475/1 +f 1880/513/295 1886/520/295 1865/485/295 +f 1865/485/295 1864/513/295 1880/513/295 +f 1882/509/294 1880/513/294 1864/513/294 +f 1864/513/294 1872/509/294 1882/509/294 +f 1881/512/210 1882/509/210 1872/509/210 +f 1872/509/210 1869/512/210 1881/512/210 +f 1883/521/296 1881/512/296 1869/512/296 +f 1869/512/296 1868/521/296 1883/521/296 +f 1855/476/7 1858/475/7 1889/478/7 +f 1889/478/7 1890/477/7 1855/476/7 +f 1859/483/289 1862/484/289 1870/523/289 +f 1870/523/289 1871/522/289 1859/483/289 +f 1877/501/291 1859/483/291 1871/522/291 +f 1871/522/291 1863/524/291 1877/501/291 +f 1886/520/27 1885/527/27 1848/526/27 +f 1848/526/27 1847/525/27 1886/520/27 +f 1865/485/27 1886/520/27 1847/525/27 +f 1847/525/27 1888/528/27 1865/485/27 +f 1863/486/10 1865/487/10 1888/487/10 +f 1888/487/10 1887/486/10 1863/486/10 +f 1877/501/26 1863/524/26 1887/524/26 +f 1887/524/26 1850/501/26 1877/501/26 +f 1878/501/26 1877/501/26 1850/501/26 +f 1850/501/26 1849/501/26 1878/501/26 +f 1862/484/26 1861/485/26 1856/485/26 +f 1856/485/26 1855/484/26 1862/484/26 +f 1870/523/26 1862/484/26 1855/484/26 +f 1855/484/26 1890/523/26 1870/523/26 +f 1868/493/10 1870/494/10 1890/530/10 +f 1890/530/10 1889/529/10 1868/493/10 +f 1883/521/27 1868/521/27 1889/532/27 +f 1889/532/27 1858/531/27 1883/521/27 +f 1884/533/27 1883/521/27 1858/531/27 +f 1858/531/27 1857/531/27 1884/533/27 +f 1891/471/10 1892/474/10 1893/473/10 +f 1893/473/10 1894/472/10 1891/471/10 +f 1895/475/1 1896/478/1 1897/477/1 +f 1897/477/1 1898/476/1 1895/475/1 +f 1899/479/27 1900/479/27 1901/480/288 +f 1901/480/288 1902/480/288 1899/479/27 +f 1903/476/7 1904/482/7 1905/481/7 +f 1905/481/7 1906/475/7 1903/476/7 +f 1907/483/26 1908/483/26 1909/485/289 +f 1909/485/289 1910/484/289 1907/483/26 +f 1911/486/10 1912/488/10 1913/487/10 +f 1914/489/10 1899/492/10 1902/491/10 +f 1902/491/10 1915/490/10 1914/489/10 +f 1916/493/10 1917/495/10 1918/494/10 +f 1919/496/10 1918/494/10 1917/495/10 +f 1917/495/10 1920/497/10 1919/496/10 +f 1921/498/10 1894/472/10 1893/473/10 +f 1893/473/10 1922/499/10 1921/498/10 +f 1923/500/290 1924/500/290 1900/479/27 +f 1900/479/27 1899/479/27 1923/500/290 +f 1925/501/291 1926/501/291 1908/483/26 +f 1908/483/26 1907/483/26 1925/501/291 +f 1923/502/10 1899/492/10 1914/489/10 +f 1914/489/10 1927/503/10 1923/502/10 +f 1919/496/10 1920/497/10 1912/488/10 +f 1912/488/10 1911/486/10 1919/496/10 +f 1915/504/7 1928/505/7 1892/505/7 +f 1892/505/7 1891/504/7 1915/504/7 +f 1914/506/292 1915/504/292 1891/504/292 +f 1891/504/292 1894/506/292 1914/506/292 +f 1927/507/293 1914/506/293 1894/506/293 +f 1894/506/293 1921/507/293 1927/507/293 +f 1929/508/1 1927/507/1 1921/507/1 +f 1921/507/1 1922/508/1 1929/508/1 +f 1930/509/210 1929/512/210 1922/511/210 +f 1922/511/210 1893/510/210 1930/509/210 +f 1928/513/294 1930/509/294 1893/510/294 +f 1893/510/294 1892/514/294 1928/513/294 +f 1931/515/10 1923/502/10 1927/503/10 +f 1927/503/10 1929/516/10 1931/515/10 +f 1923/500/7 1931/517/7 1932/517/7 +f 1932/517/7 1924/500/7 1923/500/7 +f 1902/480/1 1901/480/1 1933/518/1 +f 1933/518/1 1934/518/1 1902/480/1 +f 1934/519/10 1928/474/10 1915/490/10 +f 1915/490/10 1902/491/10 1934/519/10 +f 1895/475/1 1898/476/1 1935/482/1 +f 1935/482/1 1936/481/1 1895/475/1 +f 1928/513/295 1934/520/295 1913/485/295 +f 1913/485/295 1912/513/295 1928/513/295 +f 1930/509/294 1928/513/294 1912/513/294 +f 1912/513/294 1920/509/294 1930/509/294 +f 1929/512/210 1930/509/210 1920/509/210 +f 1920/509/210 1917/512/210 1929/512/210 +f 1931/521/296 1929/512/296 1917/512/296 +f 1917/512/296 1916/521/296 1931/521/296 +f 1903/476/7 1906/475/7 1937/478/7 +f 1937/478/7 1938/477/7 1903/476/7 +f 1907/483/289 1910/484/289 1918/523/289 +f 1918/523/289 1919/522/289 1907/483/289 +f 1925/501/291 1907/483/291 1919/522/291 +f 1919/522/291 1911/524/291 1925/501/291 +f 1934/520/27 1933/527/27 1896/526/27 +f 1896/526/27 1895/525/27 1934/520/27 +f 1913/485/27 1934/520/27 1895/525/27 +f 1895/525/27 1936/528/27 1913/485/27 +f 1911/486/10 1913/487/10 1936/487/10 +f 1936/487/10 1935/486/10 1911/486/10 +f 1925/501/26 1911/524/26 1935/524/26 +f 1935/524/26 1898/501/26 1925/501/26 +f 1926/501/26 1925/501/26 1898/501/26 +f 1898/501/26 1897/501/26 1926/501/26 +f 1910/484/26 1909/485/26 1904/485/26 +f 1904/485/26 1903/484/26 1910/484/26 +f 1918/523/26 1910/484/26 1903/484/26 +f 1903/484/26 1938/523/26 1918/523/26 +f 1916/493/10 1918/494/10 1938/530/10 +f 1938/530/10 1937/529/10 1916/493/10 +f 1931/521/27 1916/521/27 1937/532/27 +f 1937/532/27 1906/531/27 1931/521/27 +f 1932/533/27 1931/521/27 1906/531/27 +f 1906/531/27 1905/531/27 1932/533/27 +f 1939/471/10 1940/474/10 1941/473/10 +f 1941/473/10 1942/472/10 1939/471/10 +f 1943/475/1 1944/478/1 1945/477/1 +f 1945/477/1 1946/476/1 1943/475/1 +f 1947/479/27 1948/479/27 1949/480/288 +f 1949/480/288 1950/480/288 1947/479/27 +f 1951/476/7 1952/482/7 1953/481/7 +f 1953/481/7 1954/475/7 1951/476/7 +f 1955/483/26 1956/483/26 1957/485/289 +f 1957/485/289 1958/484/289 1955/483/26 +f 1959/486/10 1960/488/10 1961/487/10 +f 1962/489/10 1947/492/10 1950/491/10 +f 1950/491/10 1963/490/10 1962/489/10 +f 1964/493/10 1965/495/10 1966/494/10 +f 1967/496/10 1966/494/10 1965/495/10 +f 1965/495/10 1968/497/10 1967/496/10 +f 1969/498/10 1942/472/10 1941/473/10 +f 1941/473/10 1970/499/10 1969/498/10 +f 1971/500/290 1972/500/290 1948/479/27 +f 1948/479/27 1947/479/27 1971/500/290 +f 1973/501/291 1974/501/291 1956/483/26 +f 1956/483/26 1955/483/26 1973/501/291 +f 1971/502/10 1947/492/10 1962/489/10 +f 1962/489/10 1975/503/10 1971/502/10 +f 1967/496/10 1968/497/10 1960/488/10 +f 1960/488/10 1959/486/10 1967/496/10 +f 1963/504/7 1976/505/7 1940/505/7 +f 1940/505/7 1939/504/7 1963/504/7 +f 1962/506/292 1963/504/292 1939/504/292 +f 1939/504/292 1942/506/292 1962/506/292 +f 1975/507/293 1962/506/293 1942/506/293 +f 1942/506/293 1969/507/293 1975/507/293 +f 1977/508/1 1975/507/1 1969/507/1 +f 1969/507/1 1970/508/1 1977/508/1 +f 1978/509/210 1977/512/210 1970/511/210 +f 1970/511/210 1941/510/210 1978/509/210 +f 1976/513/294 1978/509/294 1941/510/294 +f 1941/510/294 1940/514/294 1976/513/294 +f 1979/515/10 1971/502/10 1975/503/10 +f 1975/503/10 1977/516/10 1979/515/10 +f 1971/500/7 1979/517/7 1980/517/7 +f 1980/517/7 1972/500/7 1971/500/7 +f 1950/480/1 1949/480/1 1981/518/1 +f 1981/518/1 1982/518/1 1950/480/1 +f 1982/519/10 1976/474/10 1963/490/10 +f 1963/490/10 1950/491/10 1982/519/10 +f 1943/475/1 1946/476/1 1983/482/1 +f 1983/482/1 1984/481/1 1943/475/1 +f 1976/513/295 1982/520/295 1961/485/295 +f 1961/485/295 1960/513/295 1976/513/295 +f 1978/509/294 1976/513/294 1960/513/294 +f 1960/513/294 1968/509/294 1978/509/294 +f 1977/512/210 1978/509/210 1968/509/210 +f 1968/509/210 1965/512/210 1977/512/210 +f 1979/521/296 1977/512/296 1965/512/296 +f 1965/512/296 1964/521/296 1979/521/296 +f 1951/476/7 1954/475/7 1985/478/7 +f 1985/478/7 1986/477/7 1951/476/7 +f 1955/483/289 1958/484/289 1966/523/289 +f 1966/523/289 1967/522/289 1955/483/289 +f 1973/501/291 1955/483/291 1967/522/291 +f 1967/522/291 1959/524/291 1973/501/291 +f 1982/520/27 1981/527/27 1944/526/27 +f 1944/526/27 1943/525/27 1982/520/27 +f 1961/485/27 1982/520/27 1943/525/27 +f 1943/525/27 1984/528/27 1961/485/27 +f 1959/486/10 1961/487/10 1984/487/10 +f 1984/487/10 1983/486/10 1959/486/10 +f 1973/501/26 1959/524/26 1983/524/26 +f 1983/524/26 1946/501/26 1973/501/26 +f 1974/501/26 1973/501/26 1946/501/26 +f 1946/501/26 1945/501/26 1974/501/26 +f 1958/484/26 1957/485/26 1952/485/26 +f 1952/485/26 1951/484/26 1958/484/26 +f 1966/523/26 1958/484/26 1951/484/26 +f 1951/484/26 1986/523/26 1966/523/26 +f 1964/493/10 1966/494/10 1986/530/10 +f 1986/530/10 1985/529/10 1964/493/10 +f 1979/521/27 1964/521/27 1985/532/27 +f 1985/532/27 1954/531/27 1979/521/27 +f 1980/533/27 1979/521/27 1954/531/27 +f 1954/531/27 1953/531/27 1980/533/27 +f 1987/471/10 1988/472/10 1989/473/10 +f 1989/473/10 1990/474/10 1987/471/10 +f 1991/475/7 1992/476/7 1993/477/7 +f 1993/477/7 1994/478/7 1991/475/7 +f 1995/479/27 1996/480/290 1997/480/290 +f 1997/480/290 1998/479/27 1995/479/27 +f 1999/476/1 2000/475/1 2001/481/1 +f 2001/481/1 2002/482/1 1999/476/1 +f 2003/483/26 2004/484/291 2005/485/291 +f 2005/485/291 2006/483/26 2003/483/26 +f 2007/486/10 2008/487/10 2009/488/10 +f 2010/489/10 2011/490/10 1996/491/10 +f 1996/491/10 1995/492/10 2010/489/10 +f 2012/493/10 2013/494/10 2014/495/10 +f 2015/496/10 2016/497/10 2014/495/10 +f 2014/495/10 2013/494/10 2015/496/10 +f 2017/498/10 2018/499/10 1989/473/10 +f 1989/473/10 1988/472/10 2017/498/10 +f 2019/500/288 1995/479/27 1998/479/27 +f 1998/479/27 2020/500/288 2019/500/288 +f 2021/501/289 2003/483/26 2006/483/26 +f 2006/483/26 2022/501/289 2021/501/289 +f 2019/502/10 2023/503/10 2010/489/10 +f 2010/489/10 1995/492/10 2019/502/10 +f 2015/496/10 2007/486/10 2009/488/10 +f 2009/488/10 2016/497/10 2015/496/10 +f 2011/504/1 1987/504/1 1990/505/1 +f 1990/505/1 2024/505/1 2011/504/1 +f 2010/506/293 1988/506/293 1987/504/293 +f 1987/504/293 2011/504/293 2010/506/293 +f 2023/507/292 2017/507/292 1988/506/292 +f 1988/506/292 2010/506/292 2023/507/292 +f 2025/508/7 2018/508/7 2017/507/7 +f 2017/507/7 2023/507/7 2025/508/7 +f 2026/509/203 1989/510/203 2018/511/203 +f 2018/511/203 2025/512/203 2026/509/203 +f 2024/513/296 1990/514/296 1989/510/296 +f 1989/510/296 2026/509/296 2024/513/296 +f 2027/515/10 2025/516/10 2023/503/10 +f 2023/503/10 2019/502/10 2027/515/10 +f 2019/500/1 2020/500/1 2028/517/1 +f 2028/517/1 2027/517/1 2019/500/1 +f 1996/480/7 2029/518/7 2030/518/7 +f 2030/518/7 1997/480/7 1996/480/7 +f 2029/519/10 1996/491/10 2011/490/10 +f 2011/490/10 2024/474/10 2029/519/10 +f 1991/475/7 2031/481/7 2032/482/7 +f 2032/482/7 1992/476/7 1991/475/7 +f 2024/513/314 2009/513/314 2008/485/314 +f 2008/485/314 2029/520/314 2024/513/314 +f 2026/509/296 2016/509/296 2009/513/296 +f 2009/513/296 2024/513/296 2026/509/296 +f 2025/512/203 2014/512/203 2016/509/203 +f 2016/509/203 2026/509/203 2025/512/203 +f 2027/521/294 2012/521/294 2014/512/294 +f 2014/512/294 2025/512/294 2027/521/294 +f 1999/476/1 2033/477/1 2034/478/1 +f 2034/478/1 2000/475/1 1999/476/1 +f 2003/483/291 2015/522/291 2013/523/291 +f 2013/523/291 2004/484/291 2003/483/291 +f 2021/501/289 2007/524/289 2015/522/289 +f 2015/522/289 2003/483/289 2021/501/289 +f 2029/520/27 1991/525/27 1994/526/27 +f 1994/526/27 2030/527/27 2029/520/27 +f 2008/485/27 2031/528/27 1991/525/27 +f 1991/525/27 2029/520/27 2008/485/27 +f 2007/486/10 2032/486/10 2031/487/10 +f 2031/487/10 2008/487/10 2007/486/10 +f 2021/501/26 1992/501/26 2032/524/26 +f 2032/524/26 2007/524/26 2021/501/26 +f 2022/501/26 1993/501/26 1992/501/26 +f 1992/501/26 2021/501/26 2022/501/26 +f 2004/484/26 1999/484/26 2002/485/26 +f 2002/485/26 2005/485/26 2004/484/26 +f 2013/523/26 2033/523/26 1999/484/26 +f 1999/484/26 2004/484/26 2013/523/26 +f 2012/493/10 2034/529/10 2033/530/10 +f 2033/530/10 2013/494/10 2012/493/10 +f 2027/521/27 2000/531/27 2034/532/27 +f 2034/532/27 2012/521/27 2027/521/27 +f 2028/533/27 2001/531/27 2000/531/27 +f 2000/531/27 2027/521/27 2028/533/27 +f 2035/471/10 2036/472/10 2037/473/10 +f 2037/473/10 2038/474/10 2035/471/10 +f 2039/475/7 2040/476/7 2041/477/7 +f 2041/477/7 2042/478/7 2039/475/7 +f 2043/479/27 2044/480/290 2045/480/290 +f 2045/480/290 2046/479/27 2043/479/27 +f 2047/476/1 2048/475/1 2049/481/1 +f 2049/481/1 2050/482/1 2047/476/1 +f 2051/483/26 2052/484/291 2053/485/291 +f 2053/485/291 2054/483/26 2051/483/26 +f 2055/486/10 2056/487/10 2057/488/10 +f 2058/489/10 2059/490/10 2044/491/10 +f 2044/491/10 2043/492/10 2058/489/10 +f 2060/493/10 2061/494/10 2062/495/10 +f 2063/496/10 2064/497/10 2062/495/10 +f 2062/495/10 2061/494/10 2063/496/10 +f 2065/498/10 2066/499/10 2037/473/10 +f 2037/473/10 2036/472/10 2065/498/10 +f 2067/500/288 2043/479/27 2046/479/27 +f 2046/479/27 2068/500/288 2067/500/288 +f 2069/501/289 2051/483/26 2054/483/26 +f 2054/483/26 2070/501/289 2069/501/289 +f 2067/502/10 2071/503/10 2058/489/10 +f 2058/489/10 2043/492/10 2067/502/10 +f 2063/496/10 2055/486/10 2057/488/10 +f 2057/488/10 2064/497/10 2063/496/10 +f 2059/504/1 2035/504/1 2038/505/1 +f 2038/505/1 2072/505/1 2059/504/1 +f 2058/506/293 2036/506/293 2035/504/293 +f 2035/504/293 2059/504/293 2058/506/293 +f 2071/507/292 2065/507/292 2036/506/292 +f 2036/506/292 2058/506/292 2071/507/292 +f 2073/508/7 2066/508/7 2065/507/7 +f 2065/507/7 2071/507/7 2073/508/7 +f 2074/509/203 2037/510/203 2066/511/203 +f 2066/511/203 2073/512/203 2074/509/203 +f 2072/513/296 2038/514/296 2037/510/296 +f 2037/510/296 2074/509/296 2072/513/296 +f 2075/515/10 2073/516/10 2071/503/10 +f 2071/503/10 2067/502/10 2075/515/10 +f 2067/500/1 2068/500/1 2076/517/1 +f 2076/517/1 2075/517/1 2067/500/1 +f 2044/480/7 2077/518/7 2078/518/7 +f 2078/518/7 2045/480/7 2044/480/7 +f 2077/519/10 2044/491/10 2059/490/10 +f 2059/490/10 2072/474/10 2077/519/10 +f 2039/475/7 2079/481/7 2080/482/7 +f 2080/482/7 2040/476/7 2039/475/7 +f 2072/513/314 2057/513/314 2056/485/314 +f 2056/485/314 2077/520/314 2072/513/314 +f 2074/509/296 2064/509/296 2057/513/296 +f 2057/513/296 2072/513/296 2074/509/296 +f 2073/512/203 2062/512/203 2064/509/203 +f 2064/509/203 2074/509/203 2073/512/203 +f 2075/521/294 2060/521/294 2062/512/294 +f 2062/512/294 2073/512/294 2075/521/294 +f 2047/476/1 2081/477/1 2082/478/1 +f 2082/478/1 2048/475/1 2047/476/1 +f 2051/483/291 2063/522/291 2061/523/291 +f 2061/523/291 2052/484/291 2051/483/291 +f 2069/501/289 2055/524/289 2063/522/298 +f 2063/522/298 2051/483/298 2069/501/289 +f 2077/520/27 2039/525/27 2042/526/27 +f 2042/526/27 2078/527/27 2077/520/27 +f 2056/485/27 2079/528/27 2039/525/27 +f 2039/525/27 2077/520/27 2056/485/27 +f 2055/486/10 2080/486/10 2079/487/10 +f 2079/487/10 2056/487/10 2055/486/10 +f 2069/501/26 2040/501/26 2080/524/26 +f 2080/524/26 2055/524/26 2069/501/26 +f 2070/501/26 2041/501/26 2040/501/26 +f 2040/501/26 2069/501/26 2070/501/26 +f 2052/484/26 2047/484/26 2050/485/26 +f 2050/485/26 2053/485/26 2052/484/26 +f 2061/523/26 2081/523/26 2047/484/26 +f 2047/484/26 2052/484/26 2061/523/26 +f 2060/493/10 2082/529/10 2081/530/10 +f 2081/530/10 2061/494/10 2060/493/10 +f 2075/521/27 2048/531/27 2082/532/27 +f 2082/532/27 2060/521/27 2075/521/27 +f 2076/533/27 2049/531/27 2048/531/27 +f 2048/531/27 2075/521/27 2076/533/27 +f 2083/471/7 2084/472/7 2085/473/7 +f 2085/473/7 2086/474/7 2083/471/7 +f 2087/475/4 2088/476/4 2089/477/4 +f 2089/477/4 2090/478/4 2087/475/4 +f 2091/479/27 2092/480/301 2093/480/301 +f 2093/480/301 2094/479/27 2091/479/27 +f 2095/476/10 2096/475/10 2097/481/10 +f 2097/481/10 2098/482/10 2095/476/10 +f 2099/483/26 2100/484/302 2101/485/302 +f 2101/485/302 2102/483/26 2099/483/26 +f 2103/486/7 2104/487/7 2105/488/7 +f 2106/489/7 2107/490/7 2092/491/7 +f 2092/491/7 2091/492/7 2106/489/7 +f 2108/493/7 2109/494/7 2110/495/7 +f 2111/496/7 2112/497/7 2110/495/7 +f 2110/495/7 2109/494/7 2111/496/7 +f 2113/498/7 2114/499/7 2085/473/7 +f 2085/473/7 2084/472/7 2113/498/7 +f 2115/500/299 2091/479/27 2094/479/27 +f 2094/479/27 2116/500/299 2115/500/299 +f 2117/501/300 2099/483/26 2102/483/26 +f 2102/483/26 2118/501/300 2117/501/300 +f 2115/502/7 2119/503/7 2106/489/7 +f 2106/489/7 2091/492/7 2115/502/7 +f 2111/496/7 2103/486/7 2105/488/7 +f 2105/488/7 2112/497/7 2111/496/7 +f 2107/504/10 2083/504/10 2086/505/10 +f 2086/505/10 2120/505/10 2107/504/10 +f 2106/506/304 2084/506/304 2083/504/304 +f 2083/504/304 2107/504/304 2106/506/304 +f 2119/507/303 2113/507/303 2084/506/303 +f 2084/506/303 2106/506/303 2119/507/303 +f 2121/508/4 2114/508/4 2113/507/4 +f 2113/507/4 2119/507/4 2121/508/4 +f 2122/509/309 2085/510/309 2114/511/309 +f 2114/511/309 2121/512/309 2122/509/309 +f 2120/513/310 2086/514/310 2085/510/310 +f 2085/510/310 2122/509/310 2120/513/310 +f 2123/515/7 2121/516/7 2119/503/7 +f 2119/503/7 2115/502/7 2123/515/7 +f 2115/500/10 2116/500/10 2124/517/10 +f 2124/517/10 2123/517/10 2115/500/10 +f 2092/480/4 2125/518/4 2126/518/4 +f 2126/518/4 2093/480/4 2092/480/4 +f 2125/519/7 2092/491/7 2107/490/7 +f 2107/490/7 2120/474/7 2125/519/7 +f 2087/475/4 2127/481/4 2128/482/4 +f 2128/482/4 2088/476/4 2087/475/4 +f 2120/513/311 2105/513/311 2104/485/311 +f 2104/485/311 2125/520/311 2120/513/311 +f 2122/509/310 2112/509/310 2105/513/310 +f 2105/513/310 2120/513/310 2122/509/310 +f 2121/512/309 2110/512/309 2112/509/309 +f 2112/509/309 2122/509/309 2121/512/309 +f 2123/521/312 2108/521/312 2110/512/312 +f 2110/512/312 2121/512/312 2123/521/312 +f 2095/476/10 2129/477/10 2130/478/10 +f 2130/478/10 2096/475/10 2095/476/10 +f 2099/483/302 2111/522/302 2109/523/302 +f 2109/523/302 2100/484/302 2099/483/302 +f 2117/501/300 2103/524/300 2111/522/300 +f 2111/522/300 2099/483/300 2117/501/300 +f 2125/520/27 2087/525/27 2090/526/27 +f 2090/526/27 2126/527/27 2125/520/27 +f 2104/485/27 2127/528/27 2087/525/27 +f 2087/525/27 2125/520/27 2104/485/27 +f 2103/486/7 2128/486/7 2127/487/7 +f 2127/487/7 2104/487/7 2103/486/7 +f 2117/501/26 2088/501/26 2128/524/26 +f 2128/524/26 2103/524/26 2117/501/26 +f 2118/501/26 2089/501/26 2088/501/26 +f 2088/501/26 2117/501/26 2118/501/26 +f 2100/484/26 2095/484/26 2098/485/26 +f 2098/485/26 2101/485/26 2100/484/26 +f 2109/523/26 2129/523/26 2095/484/26 +f 2095/484/26 2100/484/26 2109/523/26 +f 2108/493/7 2130/529/7 2129/530/7 +f 2129/530/7 2109/494/7 2108/493/7 +f 2123/521/27 2096/531/27 2130/532/27 +f 2130/532/27 2108/521/27 2123/521/27 +f 2124/533/27 2097/531/27 2096/531/27 +f 2096/531/27 2123/521/27 2124/533/27 +f 2131/471/7 2132/472/7 2133/473/7 +f 2133/473/7 2134/474/7 2131/471/7 +f 2135/475/4 2136/476/4 2137/477/4 +f 2137/477/4 2138/478/4 2135/475/4 +f 2139/479/27 2140/480/301 2141/480/301 +f 2141/480/301 2142/479/27 2139/479/27 +f 2143/476/10 2144/475/10 2145/481/10 +f 2145/481/10 2146/482/10 2143/476/10 +f 2147/483/26 2148/484/302 2149/485/302 +f 2149/485/302 2150/483/26 2147/483/26 +f 2151/486/7 2152/487/7 2153/488/7 +f 2154/489/7 2155/490/7 2140/491/7 +f 2140/491/7 2139/492/7 2154/489/7 +f 2156/493/7 2157/494/7 2158/495/7 +f 2159/496/7 2160/497/7 2158/495/7 +f 2158/495/7 2157/494/7 2159/496/7 +f 2161/498/7 2162/499/7 2133/473/7 +f 2133/473/7 2132/472/7 2161/498/7 +f 2163/500/299 2139/479/27 2142/479/27 +f 2142/479/27 2164/500/299 2163/500/299 +f 2165/501/300 2147/483/26 2150/483/26 +f 2150/483/26 2166/501/300 2165/501/300 +f 2163/502/7 2167/503/7 2154/489/7 +f 2154/489/7 2139/492/7 2163/502/7 +f 2159/496/7 2151/486/7 2153/488/7 +f 2153/488/7 2160/497/7 2159/496/7 +f 2155/504/10 2131/504/10 2134/505/10 +f 2134/505/10 2168/505/10 2155/504/10 +f 2154/506/304 2132/506/304 2131/504/304 +f 2131/504/304 2155/504/304 2154/506/304 +f 2167/507/303 2161/507/303 2132/506/303 +f 2132/506/303 2154/506/303 2167/507/303 +f 2169/508/4 2162/508/4 2161/507/4 +f 2161/507/4 2167/507/4 2169/508/4 +f 2170/509/309 2133/510/309 2162/511/309 +f 2162/511/309 2169/512/309 2170/509/309 +f 2168/513/310 2134/514/310 2133/510/310 +f 2133/510/310 2170/509/310 2168/513/310 +f 2171/515/7 2169/516/7 2167/503/7 +f 2167/503/7 2163/502/7 2171/515/7 +f 2163/500/10 2164/500/10 2172/517/10 +f 2172/517/10 2171/517/10 2163/500/10 +f 2140/480/4 2173/518/4 2174/518/4 +f 2174/518/4 2141/480/4 2140/480/4 +f 2173/519/7 2140/491/7 2155/490/7 +f 2155/490/7 2168/474/7 2173/519/7 +f 2135/475/4 2175/481/4 2176/482/4 +f 2176/482/4 2136/476/4 2135/475/4 +f 2168/513/311 2153/513/311 2152/485/311 +f 2152/485/311 2173/520/311 2168/513/311 +f 2170/509/310 2160/509/310 2153/513/310 +f 2153/513/310 2168/513/310 2170/509/310 +f 2169/512/309 2158/512/309 2160/509/309 +f 2160/509/309 2170/509/309 2169/512/309 +f 2171/521/312 2156/521/312 2158/512/312 +f 2158/512/312 2169/512/312 2171/521/312 +f 2143/476/10 2177/477/10 2178/478/10 +f 2178/478/10 2144/475/10 2143/476/10 +f 2147/483/302 2159/522/302 2157/523/302 +f 2157/523/302 2148/484/302 2147/483/302 +f 2165/501/300 2151/524/300 2159/522/300 +f 2159/522/300 2147/483/300 2165/501/300 +f 2173/520/27 2135/525/27 2138/526/27 +f 2138/526/27 2174/527/27 2173/520/27 +f 2152/485/27 2175/528/27 2135/525/27 +f 2135/525/27 2173/520/27 2152/485/27 +f 2151/486/7 2176/486/7 2175/487/7 +f 2175/487/7 2152/487/7 2151/486/7 +f 2165/501/26 2136/501/26 2176/524/26 +f 2176/524/26 2151/524/26 2165/501/26 +f 2166/501/26 2137/501/26 2136/501/26 +f 2136/501/26 2165/501/26 2166/501/26 +f 2148/484/26 2143/484/26 2146/485/26 +f 2146/485/26 2149/485/26 2148/484/26 +f 2157/523/26 2177/523/26 2143/484/26 +f 2143/484/26 2148/484/26 2157/523/26 +f 2156/493/7 2178/529/7 2177/530/7 +f 2177/530/7 2157/494/7 2156/493/7 +f 2171/521/27 2144/531/27 2178/532/27 +f 2178/532/27 2156/521/27 2171/521/27 +f 2172/533/27 2145/531/27 2144/531/27 +f 2144/531/27 2171/521/27 2172/533/27 +f 2179/471/7 2180/474/7 2181/473/7 +f 2181/473/7 2182/472/7 2179/471/7 +f 2183/475/10 2184/478/10 2185/477/10 +f 2185/477/10 2186/476/10 2183/475/10 +f 2187/479/27 2188/479/27 2189/480/299 +f 2189/480/299 2190/480/299 2187/479/27 +f 2191/476/4 2192/482/4 2193/481/4 +f 2193/481/4 2194/475/4 2191/476/4 +f 2195/483/26 2196/483/26 2197/485/300 +f 2197/485/300 2198/484/300 2195/483/26 +f 2199/486/7 2200/488/7 2201/487/7 +f 2202/489/7 2187/492/7 2190/491/7 +f 2190/491/7 2203/490/7 2202/489/7 +f 2204/493/7 2205/495/7 2206/494/7 +f 2207/496/7 2206/494/7 2205/495/7 +f 2205/495/7 2208/497/7 2207/496/7 +f 2209/498/7 2182/472/7 2181/473/7 +f 2181/473/7 2210/499/7 2209/498/7 +f 2211/500/301 2212/500/301 2188/479/27 +f 2188/479/27 2187/479/27 2211/500/301 +f 2213/501/302 2214/501/302 2196/483/26 +f 2196/483/26 2195/483/26 2213/501/302 +f 2211/502/7 2187/492/7 2202/489/7 +f 2202/489/7 2215/503/7 2211/502/7 +f 2207/496/7 2208/497/7 2200/488/7 +f 2200/488/7 2199/486/7 2207/496/7 +f 2203/504/4 2216/505/4 2180/505/4 +f 2180/505/4 2179/504/4 2203/504/4 +f 2202/506/303 2203/504/303 2179/504/303 +f 2179/504/303 2182/506/303 2202/506/303 +f 2215/507/304 2202/506/304 2182/506/304 +f 2182/506/304 2209/507/304 2215/507/304 +f 2217/508/10 2215/507/10 2209/507/10 +f 2209/507/10 2210/508/10 2217/508/10 +f 2218/509/305 2217/512/305 2210/511/305 +f 2210/511/305 2181/510/305 2218/509/305 +f 2216/513/306 2218/509/306 2181/510/306 +f 2181/510/306 2180/514/306 2216/513/306 +f 2219/515/7 2211/502/7 2215/503/7 +f 2215/503/7 2217/516/7 2219/515/7 +f 2211/500/4 2219/517/4 2220/517/4 +f 2220/517/4 2212/500/4 2211/500/4 +f 2190/480/10 2189/480/10 2221/518/10 +f 2221/518/10 2222/518/10 2190/480/10 +f 2222/519/7 2216/474/7 2203/490/7 +f 2203/490/7 2190/491/7 2222/519/7 +f 2183/475/10 2186/476/10 2223/482/10 +f 2223/482/10 2224/481/10 2183/475/10 +f 2216/513/307 2222/520/307 2201/485/307 +f 2201/485/307 2200/513/307 2216/513/307 +f 2218/509/306 2216/513/306 2200/513/306 +f 2200/513/306 2208/509/306 2218/509/306 +f 2217/512/305 2218/509/305 2208/509/305 +f 2208/509/305 2205/512/305 2217/512/305 +f 2219/521/308 2217/512/308 2205/512/308 +f 2205/512/308 2204/521/308 2219/521/308 +f 2191/476/4 2194/475/4 2225/478/4 +f 2225/478/4 2226/477/4 2191/476/4 +f 2195/483/300 2198/484/300 2206/523/300 +f 2206/523/300 2207/522/300 2195/483/300 +f 2213/501/302 2195/483/302 2207/522/302 +f 2207/522/302 2199/524/302 2213/501/302 +f 2222/520/27 2221/527/27 2184/526/27 +f 2184/526/27 2183/525/27 2222/520/27 +f 2201/485/27 2222/520/27 2183/525/27 +f 2183/525/27 2224/528/27 2201/485/27 +f 2199/486/7 2201/487/7 2224/487/7 +f 2224/487/7 2223/486/7 2199/486/7 +f 2213/501/26 2199/524/26 2223/524/26 +f 2223/524/26 2186/501/26 2213/501/26 +f 2214/501/26 2213/501/26 2186/501/26 +f 2186/501/26 2185/501/26 2214/501/26 +f 2198/484/26 2197/485/26 2192/485/26 +f 2192/485/26 2191/484/26 2198/484/26 +f 2206/523/26 2198/484/26 2191/484/26 +f 2191/484/26 2226/523/26 2206/523/26 +f 2204/493/7 2206/494/7 2226/530/7 +f 2226/530/7 2225/529/7 2204/493/7 +f 2219/521/27 2204/521/27 2225/532/27 +f 2225/532/27 2194/531/27 2219/521/27 +f 2220/533/27 2219/521/27 2194/531/27 +f 2194/531/27 2193/531/27 2220/533/27 +f 2227/471/10 2228/472/10 2229/473/10 +f 2229/473/10 2230/474/10 2227/471/10 +f 2231/475/7 2232/476/7 2233/477/7 +f 2233/477/7 2234/478/7 2231/475/7 +f 2235/479/27 2236/480/290 2237/480/290 +f 2237/480/290 2238/479/27 2235/479/27 +f 2239/476/1 2240/475/1 2241/481/1 +f 2241/481/1 2242/482/1 2239/476/1 +f 2243/483/26 2244/484/291 2245/485/291 +f 2245/485/291 2246/483/26 2243/483/26 +f 2247/486/10 2248/487/10 2249/488/10 +f 2250/489/10 2251/490/10 2236/491/10 +f 2236/491/10 2235/492/10 2250/489/10 +f 2252/493/10 2253/494/10 2254/495/10 +f 2255/496/10 2256/497/10 2254/495/10 +f 2254/495/10 2253/494/10 2255/496/10 +f 2257/498/10 2258/499/10 2229/473/10 +f 2229/473/10 2228/472/10 2257/498/10 +f 2259/500/288 2235/479/27 2238/479/27 +f 2238/479/27 2260/500/288 2259/500/288 +f 2261/501/289 2243/483/26 2246/483/26 +f 2246/483/26 2262/501/289 2261/501/289 +f 2259/502/10 2263/503/10 2250/489/10 +f 2250/489/10 2235/492/10 2259/502/10 +f 2255/496/10 2247/486/10 2249/488/10 +f 2249/488/10 2256/497/10 2255/496/10 +f 2251/504/1 2227/504/1 2230/505/1 +f 2230/505/1 2264/505/1 2251/504/1 +f 2250/506/293 2228/506/293 2227/504/293 +f 2227/504/293 2251/504/293 2250/506/293 +f 2263/507/292 2257/507/292 2228/506/292 +f 2228/506/292 2250/506/292 2263/507/292 +f 2265/508/7 2258/508/7 2257/507/7 +f 2257/507/7 2263/507/7 2265/508/7 +f 2266/509/203 2229/510/203 2258/511/203 +f 2258/511/203 2265/512/203 2266/509/203 +f 2264/513/296 2230/514/296 2229/510/296 +f 2229/510/296 2266/509/296 2264/513/296 +f 2267/515/10 2265/516/10 2263/503/10 +f 2263/503/10 2259/502/10 2267/515/10 +f 2259/500/1 2260/500/1 2268/517/1 +f 2268/517/1 2267/517/1 2259/500/1 +f 2236/480/7 2269/518/7 2270/518/7 +f 2270/518/7 2237/480/7 2236/480/7 +f 2269/519/10 2236/491/10 2251/490/10 +f 2251/490/10 2264/474/10 2269/519/10 +f 2231/475/7 2271/481/7 2272/482/7 +f 2272/482/7 2232/476/7 2231/475/7 +f 2264/513/314 2249/513/314 2248/485/314 +f 2248/485/314 2269/520/314 2264/513/314 +f 2266/509/296 2256/509/296 2249/513/296 +f 2249/513/296 2264/513/296 2266/509/296 +f 2265/512/203 2254/512/203 2256/509/203 +f 2256/509/203 2266/509/203 2265/512/203 +f 2267/521/294 2252/521/294 2254/512/294 +f 2254/512/294 2265/512/294 2267/521/294 +f 2239/476/1 2273/477/1 2274/478/1 +f 2274/478/1 2240/475/1 2239/476/1 +f 2243/483/297 2255/522/297 2253/523/291 +f 2253/523/291 2244/484/291 2243/483/297 +f 2261/501/289 2247/524/289 2255/522/289 +f 2255/522/289 2243/483/289 2261/501/289 +f 2269/520/27 2231/525/27 2234/526/27 +f 2234/526/27 2270/527/27 2269/520/27 +f 2248/485/27 2271/528/27 2231/525/27 +f 2231/525/27 2269/520/27 2248/485/27 +f 2247/486/10 2272/486/10 2271/487/10 +f 2271/487/10 2248/487/10 2247/486/10 +f 2261/501/26 2232/501/26 2272/524/26 +f 2272/524/26 2247/524/26 2261/501/26 +f 2262/501/26 2233/501/26 2232/501/26 +f 2232/501/26 2261/501/26 2262/501/26 +f 2244/484/26 2239/484/26 2242/485/26 +f 2242/485/26 2245/485/26 2244/484/26 +f 2253/523/26 2273/523/26 2239/484/26 +f 2239/484/26 2244/484/26 2253/523/26 +f 2252/493/10 2274/529/10 2273/530/10 +f 2273/530/10 2253/494/10 2252/493/10 +f 2267/521/27 2240/531/27 2274/532/27 +f 2274/532/27 2252/521/27 2267/521/27 +f 2268/533/27 2241/531/27 2240/531/27 +f 2240/531/27 2267/521/27 2268/533/27 +f 2275/534/4 2276/535/4 2277/536/4 +f 2277/536/4 2278/537/4 2275/534/4 +f 2279/538/4 2280/539/4 2281/540/4 +f 2281/540/4 2282/541/4 2279/538/4 +f 2283/542/4 2284/543/4 2276/535/4 +f 2276/535/4 2275/534/4 2283/542/4 +f 2280/539/4 2278/537/4 2277/536/4 +f 2277/536/4 2281/540/4 2280/539/4 +f 2285/544/315 2286/545/315 2287/546/316 +f 2287/546/316 2288/547/316 2285/544/315 +f 2286/548/4 2289/549/4 2290/550/4 +f 2290/550/4 2287/551/4 2286/548/4 +f 2289/552/317 2291/553/317 2292/554/318 +f 2292/554/318 2290/555/318 2289/552/317 +f 2288/547/316 2287/546/316 2293/556/319 +f 2293/556/319 2294/557/319 2288/547/316 +f 2287/551/4 2290/550/4 2295/558/4 +f 2295/558/4 2293/559/4 2287/551/4 +f 2290/555/318 2292/554/318 2296/560/320 +f 2296/560/320 2295/561/320 2290/555/318 +f 2294/557/319 2293/556/319 2297/562/27 +f 2297/562/27 2298/563/27 2294/557/319 +f 2293/559/4 2295/558/4 2299/564/4 +f 2299/564/4 2297/565/4 2293/559/4 +f 2295/561/320 2296/560/320 2300/566/26 +f 2300/566/26 2299/567/26 2295/561/320 +f 2298/563/27 2297/562/27 2301/556/321 +f 2301/556/321 2302/557/321 2298/563/27 +f 2297/565/4 2299/564/4 2303/568/4 +f 2303/568/4 2301/569/4 2297/565/4 +f 2299/567/26 2300/566/26 2304/560/322 +f 2304/560/322 2303/561/322 2299/567/26 +f 2302/557/321 2301/556/321 2305/546/323 +f 2305/546/323 2306/547/323 2302/557/321 +f 2301/569/4 2303/568/4 2307/570/4 +f 2307/570/4 2305/571/4 2301/569/4 +f 2303/561/322 2304/560/322 2308/554/324 +f 2308/554/324 2307/555/324 2303/561/322 +f 2306/547/323 2305/546/323 2309/545/325 +f 2309/545/325 2310/544/325 2306/547/323 +f 2305/571/4 2307/570/4 2311/572/4 +f 2311/572/4 2309/573/4 2305/571/4 +f 2307/555/324 2308/554/324 2312/553/326 +f 2312/553/326 2311/552/326 2307/555/324 +f 2313/574/327 2314/575/327 2315/576/327 +f 2315/576/327 2316/577/327 2313/574/327 +f 2317/578/328 2313/579/328 2316/580/328 +f 2316/580/328 2318/581/328 2317/578/328 +f 2319/579/329 2317/578/329 2318/581/329 +f 2318/581/329 2320/580/329 2319/579/329 +f 2319/578/330 2320/581/330 2315/580/330 +f 2315/580/330 2314/579/330 2319/578/330 +f 2321/582/331 2316/577/331 2315/576/331 +f 2315/576/331 2322/583/332 2321/582/331 +f 2318/581/333 2316/580/333 2321/584/333 +f 2321/584/333 2323/585/333 2318/581/333 +f 2324/584/334 2320/580/334 2318/581/334 +f 2318/581/334 2323/585/334 2324/584/334 +f 2322/584/335 2315/580/335 2320/581/335 +f 2320/581/335 2324/585/335 2322/584/335 +f 2325/586/336 2326/587/26 2327/588/26 +f 2327/588/26 2328/589/336 2325/586/336 +f 2328/590/1 2327/591/1 2329/592/1 +f 2329/592/1 2330/593/1 2328/590/1 +f 2330/589/337 2329/588/27 2331/587/27 +f 2331/587/27 2332/586/337 2330/589/337 +f 2327/588/26 2326/587/26 2333/594/338 +f 2333/594/338 2334/595/338 2327/588/26 +f 2329/592/1 2327/591/1 2334/596/1 +f 2334/596/1 2335/597/1 2329/592/1 +f 2331/587/27 2329/588/27 2335/595/339 +f 2335/595/339 2336/594/339 2331/587/27 +f 2337/586/340 2338/587/26 2339/588/26 +f 2339/588/26 2340/589/340 2337/586/340 +f 2340/590/4 2339/591/4 2341/592/4 +f 2341/592/4 2342/593/4 2340/590/4 +f 2342/589/341 2341/588/27 2343/587/27 +f 2343/587/27 2344/586/342 2342/589/341 +f 2339/588/26 2338/587/26 2345/594/343 +f 2345/594/343 2346/595/343 2339/588/26 +f 2341/592/4 2339/591/4 2346/596/4 +f 2346/596/4 2347/597/4 2341/592/4 +f 2343/587/27 2341/588/27 2347/595/344 +f 2347/595/344 2348/594/344 2343/587/27 +f 2347/598/1 2346/596/1 2345/599/1 +f 2345/599/1 2348/600/1 2347/598/1 +f 2349/574/345 2350/577/345 2351/576/345 +f 2351/576/345 2352/575/345 2349/574/345 +f 2353/578/346 2354/581/346 2350/580/346 +f 2350/580/346 2349/579/346 2353/578/346 +f 2355/579/347 2356/580/347 2354/581/347 +f 2354/581/347 2353/578/347 2355/579/347 +f 2355/578/348 2352/579/348 2351/580/348 +f 2351/580/348 2356/581/348 2355/578/348 +f 2357/582/175 2358/583/349 2351/576/349 +f 2351/576/349 2350/577/349 2357/582/175 +f 2354/581/350 2359/585/350 2357/584/350 +f 2357/584/350 2350/580/350 2354/581/350 +f 2360/584/351 2359/585/351 2354/581/351 +f 2354/581/351 2356/580/351 2360/584/351 +f 2358/584/352 2360/585/352 2356/581/353 +f 2356/581/353 2351/580/352 2358/584/352 +f 2361/586/340 2362/589/340 2363/588/26 +f 2363/588/26 2364/587/26 2361/586/340 +f 2362/590/10 2365/593/10 2366/592/10 +f 2366/592/10 2363/591/10 2362/590/10 +f 2365/589/341 2367/586/342 2368/587/27 +f 2368/587/27 2366/588/27 2365/589/341 +f 2363/588/26 2369/595/343 2370/594/343 +f 2370/594/343 2364/587/26 2363/588/26 +f 2366/592/10 2371/597/10 2369/596/10 +f 2369/596/10 2363/591/10 2366/592/10 +f 2368/587/27 2372/594/344 2371/595/344 +f 2371/595/344 2366/588/27 2368/587/27 +f 2370/599/1 2369/596/1 2371/598/1 +f 2371/598/1 2372/600/1 2370/599/1 +f 2373/586/354 2374/589/340 2375/588/26 +f 2375/588/26 2376/587/26 2373/586/354 +f 2374/590/10 2377/593/10 2378/592/10 +f 2378/592/10 2375/591/10 2374/590/10 +f 2377/589/342 2379/586/341 2380/587/27 +f 2380/587/27 2378/588/27 2377/589/342 +f 2375/588/26 2381/595/355 2382/594/355 +f 2382/594/355 2376/587/26 2375/588/26 +f 2378/592/10 2383/597/10 2381/596/10 +f 2381/596/10 2375/591/10 2378/592/10 +f 2380/587/27 2384/594/356 2383/595/344 +f 2383/595/344 2378/588/27 2380/587/27 +f 2385/601/7 2386/602/7 2387/603/7 +f 2387/603/7 691/604/7 2385/601/7 +f 2388/605/4 2389/606/4 2390/607/4 +f 2390/607/4 690/608/4 2388/605/4 +f 2391/601/1 2392/602/1 2393/609/1 +f 2393/609/1 692/610/1 2391/601/1 +f 2394/611/10 2395/612/10 2396/613/10 +f 2396/613/10 693/614/10 2394/611/10 +f 690/610/7 2390/609/7 2386/602/7 +f 2386/602/7 2385/601/7 690/610/7 +f 693/604/1 2396/603/1 2392/602/1 +f 2392/602/1 2391/601/1 693/604/1 +f 692/615/4 2393/616/4 2389/606/4 +f 2389/606/4 2388/605/4 692/615/4 +f 691/617/10 2387/618/10 2395/612/10 +f 2395/612/10 2394/611/10 691/617/10 +f 2397/619/357 2398/620/358 2399/621/358 +f 2399/621/358 2400/622/357 2397/619/357 +f 2398/620/358 2401/623/359 2402/624/359 +f 2402/624/359 2399/621/358 2398/620/358 +f 2403/625/360 2404/626/10 2398/627/10 +f 2398/627/10 2397/628/360 2403/625/360 +f 2398/627/10 2404/626/10 2405/629/361 +f 2405/629/361 2401/630/361 2398/627/10 +f 2403/619/315 2406/622/315 2407/621/362 +f 2407/621/362 2404/620/362 2403/619/315 +f 2404/620/362 2407/621/362 2408/624/363 +f 2408/624/363 2405/623/363 2404/620/362 +f 2406/631/364 2400/632/364 2399/633/365 +f 2399/633/365 2407/634/365 2406/631/364 +f 2399/633/365 2402/635/366 2408/636/366 +f 2408/636/366 2407/634/365 2399/633/365 +f 2409/637/7 2410/638/7 2411/639/7 +f 2411/639/7 2412/640/7 2409/637/7 +f 2413/640/4 2412/641/4 2411/642/4 +f 2411/642/4 2414/643/4 2413/640/4 +f 2413/637/1 2414/638/1 2415/639/1 +f 2415/639/1 2416/640/1 2413/637/1 +f 2417/644/1 2418/645/1 2419/646/1 +f 2419/646/1 2420/647/1 2417/644/1 +f 2421/647/7 2422/644/7 2423/645/7 +f 2423/645/7 2424/646/7 2421/647/7 +f 2418/648/367 2417/649/367 2425/650/367 +f 2425/650/367 2426/651/367 2418/648/367 +f 2425/652/4 2417/567/4 2420/653/4 +f 2420/653/4 2427/654/4 2425/652/4 +f 2420/648/368 2419/649/368 2428/650/368 +f 2428/650/368 2427/651/368 2420/648/368 +f 2429/637/7 2430/638/7 2431/639/7 +f 2431/639/7 2432/640/7 2429/637/7 +f 2432/640/4 2431/643/4 2433/642/4 +f 2433/642/4 2434/641/4 2432/640/4 +f 2434/637/1 2433/638/1 2435/639/1 +f 2435/639/1 2436/640/1 2434/637/1 +f 2437/655/369 2423/656/369 2422/657/369 +f 2422/657/369 2438/658/369 2437/655/369 +f 2437/659/4 2439/660/4 2424/661/4 +f 2424/661/4 2423/662/4 2437/659/4 +f 2440/655/370 2421/656/370 2424/657/370 +f 2424/657/370 2439/658/370 2440/655/370 +f 2441/663/298 2442/664/298 2426/651/298 +f 2426/651/298 2425/650/298 2441/663/298 +f 2427/654/4 2443/665/4 2441/666/4 +f 2441/666/4 2425/652/4 2427/654/4 +f 2444/663/371 2443/664/371 2427/651/371 +f 2427/651/371 2428/650/371 2444/663/371 +f 2437/655/297 2438/658/297 2442/664/297 +f 2442/664/297 2441/663/297 2437/655/297 +f 2439/660/4 2437/659/4 2441/666/4 +f 2441/666/4 2443/665/4 2439/660/4 +f 2440/655/372 2439/658/372 2443/664/372 +f 2443/664/372 2444/663/372 2440/655/372 +f 2445/667/373 2446/668/373 2447/669/373 +f 2447/669/373 2448/670/373 2445/667/373 +f 2449/671/374 2450/672/374 2446/668/374 +f 2446/668/374 2445/667/374 2449/671/374 +f 2451/673/7 2452/674/7 2453/675/7 +f 2453/675/7 2454/676/7 2451/673/7 +f 2451/673/7 2450/673/7 2455/673/7 +f 2455/673/7 2452/674/7 2451/673/7 +f 2451/673/7 2447/677/7 2446/677/7 +f 2446/677/7 2450/673/7 2451/673/7 +f 2456/678/7 2447/677/7 2451/673/7 +f 2451/673/7 2454/676/7 2456/678/7 +f 2453/679/27 2452/303/27 2457/680/27 +f 2457/680/27 2458/681/27 2453/679/27 +f 2452/682/375 2455/672/375 2459/671/375 +f 2459/671/375 2457/683/375 2452/682/375 +f 2455/672/376 2450/672/377 2449/671/377 +f 2449/671/377 2459/671/376 2455/672/376 +f 2460/684/373 2461/685/373 2445/667/373 +f 2445/667/373 2448/670/373 2460/684/373 +f 2461/685/374 2462/686/374 2449/671/374 +f 2449/671/374 2445/667/374 2461/685/374 +f 2463/678/1 2464/677/1 2465/673/1 +f 2465/673/1 2466/676/1 2463/678/1 +f 2465/673/1 2464/677/1 2467/677/1 +f 2467/677/1 2462/673/1 2465/673/1 +f 2465/673/1 2462/673/1 2461/673/1 +f 2461/673/1 2460/674/1 2465/673/1 +f 2465/673/1 2460/674/1 2468/675/1 +f 2468/675/1 2466/676/1 2465/673/1 +f 2457/680/27 2464/687/27 2463/688/27 +f 2463/688/27 2458/681/27 2457/680/27 +f 2459/671/375 2467/686/375 2464/678/375 +f 2464/678/375 2457/683/375 2459/671/375 +f 2449/671/377 2462/686/377 2467/686/376 +f 2467/686/376 2459/671/376 2449/671/377 +f 2469/689/4 2470/690/4 2471/691/4 +f 2471/691/4 2472/692/4 2469/689/4 +f 2473/693/4 2472/692/4 2471/691/4 +f 2471/691/4 2474/694/4 2473/693/4 +f 2475/619/357 2476/620/358 2477/621/358 +f 2477/621/358 2478/622/357 2475/619/357 +f 2476/620/358 2479/623/359 2480/624/359 +f 2480/624/359 2477/621/358 2476/620/358 +f 2481/625/360 2482/626/10 2476/627/10 +f 2476/627/10 2475/628/360 2481/625/360 +f 2476/627/10 2482/626/10 2483/629/361 +f 2483/629/361 2479/630/361 2476/627/10 +f 2481/619/315 2484/622/315 2485/621/362 +f 2485/621/362 2482/620/362 2481/619/315 +f 2482/620/362 2485/621/362 2486/624/363 +f 2486/624/363 2483/623/363 2482/620/362 +f 2484/631/364 2478/632/364 2477/633/365 +f 2477/633/365 2485/634/365 2484/631/364 +f 2477/633/365 2480/635/366 2486/636/366 +f 2486/636/366 2485/634/365 2477/633/365 +f 2487/619/357 2488/622/357 2489/621/378 +f 2489/621/378 2490/620/378 2487/619/357 +f 2490/620/378 2489/621/378 2491/624/379 +f 2491/624/379 2492/623/379 2490/620/378 +f 2493/625/365 2487/628/365 2490/627/4 +f 2490/627/4 2494/626/4 2493/625/365 +f 2490/627/4 2492/630/380 2495/629/380 +f 2495/629/380 2494/626/4 2490/627/4 +f 2493/619/315 2494/620/381 2496/621/381 +f 2496/621/381 2497/622/315 2493/619/315 +f 2494/620/381 2495/623/382 2498/624/382 +f 2498/624/382 2496/621/381 2494/620/381 +f 2497/631/383 2496/634/360 2489/633/360 +f 2489/633/360 2488/632/383 2497/631/383 +f 2489/633/360 2496/634/360 2498/636/384 +f 2498/636/384 2491/635/384 2489/633/360 +f 2499/619/357 2500/622/357 2501/621/378 +f 2501/621/378 2502/620/378 2499/619/357 +f 2502/620/378 2501/621/378 2503/624/379 +f 2503/624/379 2504/623/379 2502/620/378 +f 2505/625/365 2499/628/365 2502/627/4 +f 2502/627/4 2506/626/4 2505/625/365 +f 2502/627/4 2504/630/380 2507/629/380 +f 2507/629/380 2506/626/4 2502/627/4 +f 2505/619/315 2506/620/381 2508/621/381 +f 2508/621/381 2509/622/315 2505/619/315 +f 2506/620/381 2507/623/382 2510/624/382 +f 2510/624/382 2508/621/381 2506/620/381 +f 2509/631/383 2508/634/360 2501/633/360 +f 2501/633/360 2500/632/383 2509/631/383 +f 2501/633/360 2508/634/360 2510/636/384 +f 2510/636/384 2503/635/384 2501/633/360 +f 2511/586/336 2512/589/336 2513/588/26 +f 2513/588/26 2514/587/26 2511/586/336 +f 2512/590/7 2515/593/7 2516/592/7 +f 2516/592/7 2513/591/7 2512/590/7 +f 2515/589/337 2517/586/337 2518/587/27 +f 2518/587/27 2516/588/27 2515/589/337 +f 2513/588/26 2519/595/338 2520/594/338 +f 2520/594/338 2514/587/26 2513/588/26 +f 2516/592/7 2521/597/7 2519/596/7 +f 2519/596/7 2513/591/7 2516/592/7 +f 2518/587/27 2522/594/339 2521/595/339 +f 2521/595/339 2516/588/27 2518/587/27 +f 2523/451/27 2524/452/27 2525/453/27 +f 2525/453/27 2526/454/27 2523/451/27 +f 2527/455/4 2528/456/4 2524/457/4 +f 2524/457/4 2523/458/4 2527/455/4 +f 2528/459/1 2529/460/1 2525/461/1 +f 2525/461/1 2524/462/1 2528/459/1 +f 2529/456/10 2530/455/10 2526/458/10 +f 2526/458/10 2525/457/10 2529/456/10 +f 2530/460/7 2527/459/7 2523/462/7 +f 2523/462/7 2526/461/7 2530/460/7 +f 2531/451/27 2532/452/27 2533/453/27 +f 2533/453/27 2534/454/27 2531/451/27 +f 2535/455/7 2536/456/7 2532/457/7 +f 2532/457/7 2531/458/7 2535/455/7 +f 2536/459/4 2537/460/4 2533/461/4 +f 2533/461/4 2532/462/4 2536/459/4 +f 2537/456/1 2538/455/1 2534/458/1 +f 2534/458/1 2533/457/1 2537/456/1 +f 2538/460/10 2535/459/10 2531/462/10 +f 2531/462/10 2534/461/10 2538/460/10 +f 2539/451/27 2540/452/27 2541/453/27 +f 2541/453/27 2542/454/27 2539/451/27 +f 2543/455/7 2544/456/7 2540/457/7 +f 2540/457/7 2539/458/7 2543/455/7 +f 2544/459/4 2545/460/4 2541/461/4 +f 2541/461/4 2540/462/4 2544/459/4 +f 2545/456/1 2546/455/1 2542/458/1 +f 2542/458/1 2541/457/1 2545/456/1 +f 2546/460/10 2543/459/10 2539/462/10 +f 2539/462/10 2542/461/10 2546/460/10 +f 2547/3/12 2548/2/12 2549/1/1 +f 2549/1/1 2550/4/1 2547/3/12 +f 2551/6/11 2552/5/11 2548/2/12 +f 2548/2/12 2547/3/12 2551/6/11 +f 2553/8/10 2554/7/10 2552/5/11 +f 2552/5/11 2551/6/11 2553/8/10 +f 2555/11/9 2556/10/9 2554/9/10 +f 2554/9/10 2553/12/10 2555/11/9 +f 2557/14/8 2558/13/8 2556/10/9 +f 2556/10/9 2555/11/9 2557/14/8 +f 2559/16/7 2560/15/7 2558/13/8 +f 2558/13/8 2557/14/8 2559/16/7 +f 2561/18/6 2562/17/6 2560/15/7 +f 2560/15/7 2559/16/7 2561/18/6 +f 2563/20/5 2564/19/5 2562/17/6 +f 2562/17/6 2561/18/6 2563/20/5 +f 2565/22/4 2566/21/4 2564/19/5 +f 2564/19/5 2563/20/5 2565/22/4 +f 2567/24/3 2568/23/3 2566/21/4 +f 2566/21/4 2565/22/4 2567/24/3 +f 2569/26/2 2570/25/2 2568/23/3 +f 2568/23/3 2567/24/3 2569/26/2 +f 2550/4/1 2549/1/1 2570/25/2 +f 2570/25/2 2569/26/2 2550/4/1 +f 2571/27/24 2572/30/24 2573/29/24 +f 2573/29/24 2574/28/24 2571/27/24 +f 2575/31/23 2576/32/23 2572/30/23 +f 2572/30/23 2571/27/23 2575/31/23 +f 2577/33/22 2578/34/22 2576/32/22 +f 2576/32/22 2575/31/22 2577/33/22 +f 2579/35/21 2580/38/21 2578/37/21 +f 2578/37/21 2577/36/21 2579/35/21 +f 2581/39/20 2582/40/20 2580/38/20 +f 2580/38/20 2579/35/20 2581/39/20 +f 2583/41/19 2584/42/19 2582/40/19 +f 2582/40/19 2581/39/19 2583/41/19 +f 2585/43/18 2586/44/18 2584/42/18 +f 2584/42/18 2583/41/18 2585/43/18 +f 2587/45/17 2588/46/17 2586/44/17 +f 2586/44/17 2585/43/17 2587/45/17 +f 2589/47/16 2590/48/16 2588/46/16 +f 2588/46/16 2587/45/16 2589/47/16 +f 2591/49/15 2592/50/15 2590/48/15 +f 2590/48/15 2589/47/15 2591/49/15 +f 2593/51/14 2594/52/14 2592/50/14 +f 2592/50/14 2591/49/14 2593/51/14 +f 2574/28/13 2573/29/13 2594/52/192 +f 2594/52/192 2593/51/192 2574/28/13 +f 2548/53/26 2571/53/26 2574/54/26 +f 2574/54/26 2549/54/26 2548/53/26 +f 2549/54/26 2574/54/26 2593/55/26 +f 2593/55/26 2570/55/26 2549/54/26 +f 2570/55/26 2593/55/26 2591/56/26 +f 2591/56/26 2568/56/26 2570/55/26 +f 2568/56/26 2591/56/26 2589/57/26 +f 2589/57/26 2566/57/26 2568/56/26 +f 2566/57/26 2589/57/26 2587/59/26 +f 2587/59/26 2564/58/26 2566/57/26 +f 2564/58/26 2587/59/26 2585/61/26 +f 2585/61/26 2562/60/26 2564/58/26 +f 2562/60/26 2585/61/26 2583/62/26 +f 2583/62/26 2560/62/26 2562/60/26 +f 2560/62/26 2583/62/26 2581/64/26 +f 2581/64/26 2558/63/26 2560/62/26 +f 2558/63/26 2581/64/26 2579/66/26 +f 2579/66/26 2556/65/26 2558/63/26 +f 2556/65/26 2579/66/26 2577/67/26 +f 2577/67/26 2554/67/26 2556/65/26 +f 2554/67/26 2577/67/26 2575/68/26 +f 2575/68/26 2552/68/26 2554/67/26 +f 2552/68/26 2575/68/26 2571/53/26 +f 2571/53/26 2548/53/26 2552/68/26 +f 2595/54/27 2573/54/27 2572/53/27 +f 2572/53/27 2596/53/27 2595/54/27 +f 2596/53/27 2572/53/27 2576/68/27 +f 2576/68/27 2597/68/27 2596/53/27 +f 2597/68/27 2576/68/27 2578/67/27 +f 2578/67/27 2598/67/27 2597/68/27 +f 2598/67/27 2578/67/27 2580/66/27 +f 2580/66/27 2599/65/27 2598/67/27 +f 2599/65/27 2580/66/27 2582/64/27 +f 2582/64/27 2600/63/27 2599/65/27 +f 2600/63/27 2582/64/27 2584/62/27 +f 2584/62/27 2601/62/27 2600/63/27 +f 2601/62/27 2584/62/27 2586/61/27 +f 2586/61/27 2602/60/27 2601/62/27 +f 2602/60/27 2586/61/27 2588/59/27 +f 2588/59/27 2603/58/27 2602/60/27 +f 2603/58/27 2588/59/27 2590/57/27 +f 2590/57/27 2604/57/27 2603/58/27 +f 2604/57/27 2590/57/27 2592/56/27 +f 2592/56/27 2605/56/27 2604/57/27 +f 2605/56/27 2592/56/27 2594/55/27 +f 2594/55/27 2606/55/27 2605/56/27 +f 2606/55/27 2594/55/27 2573/54/27 +f 2573/54/27 2595/54/27 2606/55/27 +f 2607/71/12 2608/70/1 2595/69/1 +f 2595/69/1 2596/72/12 2607/71/12 +f 2609/73/23 2607/71/12 2596/72/12 +f 2596/72/12 2597/74/23 2609/73/23 +f 2610/75/22 2609/73/22 2597/74/22 +f 2597/74/22 2598/76/22 2610/75/22 +f 2611/77/9 2610/75/21 2598/76/21 +f 2598/76/21 2599/78/9 2611/77/9 +f 2612/79/8 2611/77/9 2599/78/9 +f 2599/78/9 2600/80/8 2612/79/8 +f 2613/83/7 2612/82/8 2600/81/8 +f 2600/81/8 2601/84/7 2613/83/7 +f 2614/85/6 2613/83/7 2601/84/7 +f 2601/84/7 2602/86/6 2614/85/6 +f 2615/87/5 2614/85/6 2602/86/6 +f 2602/86/6 2603/88/5 2615/87/5 +f 2616/89/4 2615/87/5 2603/88/5 +f 2603/88/5 2604/90/4 2616/89/4 +f 2617/91/3 2616/89/4 2604/90/4 +f 2604/90/4 2605/92/3 2617/91/3 +f 2618/93/2 2617/91/3 2605/92/3 +f 2605/92/3 2606/94/2 2618/93/2 +f 2608/70/1 2618/93/2 2606/94/2 +f 2606/94/2 2595/69/1 2608/70/1 +f 2619/95/26 2620/95/26 2621/96/26 +f 2621/96/26 2622/96/26 2619/95/26 +f 2623/97/26 2624/97/26 2620/95/26 +f 2620/95/26 2619/95/26 2623/97/26 +f 2625/67/26 2626/98/26 2624/97/26 +f 2624/97/26 2623/97/26 2625/67/26 +f 2627/99/26 2628/99/26 2626/98/26 +f 2626/98/26 2625/67/26 2627/99/26 +f 2629/100/26 2630/100/26 2628/99/26 +f 2628/99/26 2627/99/26 2629/100/26 +f 2631/101/26 2632/101/26 2630/100/26 +f 2630/100/26 2629/100/26 2631/101/26 +f 2633/61/26 2634/61/26 2632/101/26 +f 2632/101/26 2631/101/26 2633/61/26 +f 2635/59/26 2636/102/26 2634/61/26 +f 2634/61/26 2633/61/26 2635/59/26 +f 2637/103/26 2638/103/26 2636/102/26 +f 2636/102/26 2635/59/26 2637/103/26 +f 2639/104/26 2640/105/26 2638/103/26 +f 2638/103/26 2637/103/26 2639/104/26 +f 2641/106/26 2642/106/26 2640/105/26 +f 2640/105/26 2639/104/26 2641/106/26 +f 2622/96/26 2621/96/26 2642/106/26 +f 2642/106/26 2641/106/26 2622/96/26 +f 2620/107/39 2643/110/39 2644/109/39 +f 2644/109/39 2621/108/39 2620/107/39 +f 2624/111/38 2645/112/38 2643/110/38 +f 2643/110/38 2620/107/38 2624/111/38 +f 2626/113/37 2646/114/37 2645/112/37 +f 2645/112/37 2624/111/37 2626/113/37 +f 2628/115/36 2647/116/36 2646/114/36 +f 2646/114/36 2626/113/36 2628/115/36 +f 2630/117/35 2648/118/35 2647/116/35 +f 2647/116/35 2628/115/35 2630/117/35 +f 2632/119/34 2649/120/34 2648/118/34 +f 2648/118/34 2630/117/34 2632/119/34 +f 2634/121/33 2650/122/33 2649/120/33 +f 2649/120/33 2632/119/33 2634/121/33 +f 2636/123/32 2651/124/32 2650/122/32 +f 2650/122/32 2634/121/32 2636/123/32 +f 2638/125/31 2652/126/31 2651/124/31 +f 2651/124/31 2636/123/31 2638/125/31 +f 2640/127/30 2653/130/30 2652/129/30 +f 2652/129/30 2638/128/30 2640/127/30 +f 2642/131/29 2654/132/29 2653/130/29 +f 2653/130/29 2640/127/29 2642/131/29 +f 2621/108/28 2644/109/28 2654/132/28 +f 2654/132/28 2642/131/28 2621/108/28 +f 2643/110/54 2655/134/54 2656/133/54 +f 2656/133/54 2644/109/54 2643/110/54 +f 2645/112/53 2657/135/53 2655/134/53 +f 2655/134/53 2643/110/53 2645/112/53 +f 2646/114/51 2658/136/52 2657/135/51 +f 2657/135/51 2645/112/51 2646/114/51 +f 2647/116/50 2659/137/50 2658/136/50 +f 2658/136/50 2646/114/50 2647/116/50 +f 2648/118/49 2660/138/49 2659/137/49 +f 2659/137/49 2647/116/49 2648/118/49 +f 2649/120/48 2661/139/48 2660/138/48 +f 2660/138/48 2648/118/48 2649/120/48 +f 2650/122/385 2662/140/46 2661/139/46 +f 2661/139/46 2649/120/46 2650/122/385 +f 2651/124/45 2663/141/45 2662/140/45 +f 2662/140/45 2650/122/45 2651/124/45 +f 2652/126/44 2664/142/44 2663/141/44 +f 2663/141/44 2651/124/44 2652/126/44 +f 2653/130/42 2665/144/42 2664/143/43 +f 2664/143/43 2652/129/42 2653/130/42 +f 2654/132/41 2666/145/41 2665/144/41 +f 2665/144/41 2653/130/41 2654/132/41 +f 2644/109/40 2656/133/40 2666/145/40 +f 2666/145/40 2654/132/386 2644/109/40 +f 2607/148/71 2667/147/71 2668/146/71 +f 2668/146/71 2608/149/71 2607/148/71 +f 2609/151/69 2669/150/70 2667/147/70 +f 2667/147/70 2607/148/69 2609/151/69 +f 2610/154/68 2670/153/68 2669/152/68 +f 2669/152/68 2609/155/68 2610/154/68 +f 2611/156/67 2671/142/67 2670/153/67 +f 2670/153/67 2610/154/67 2611/156/67 +f 2612/158/65 2672/157/66 2671/142/66 +f 2671/142/66 2611/156/65 2612/158/65 +f 2613/160/64 2673/159/64 2672/157/64 +f 2672/157/64 2612/158/64 2613/160/64 +f 2614/162/63 2674/161/63 2673/159/63 +f 2673/159/63 2613/160/63 2614/162/63 +f 2615/164/62 2675/163/61 2674/161/61 +f 2674/161/61 2614/162/62 2615/164/62 +f 2616/166/60 2676/165/60 2675/163/60 +f 2675/163/60 2615/164/60 2616/166/60 +f 2617/168/59 2677/167/59 2676/165/59 +f 2676/165/59 2616/166/59 2617/168/59 +f 2618/170/58 2678/169/57 2677/167/57 +f 2677/167/57 2617/168/57 2618/170/58 +f 2608/149/56 2668/146/56 2678/169/56 +f 2678/169/56 2618/170/56 2608/149/56 +f 2667/173/12 2619/172/12 2622/171/1 +f 2622/171/1 2668/174/1 2667/173/12 +f 2669/176/11 2623/175/11 2619/172/12 +f 2619/172/12 2667/173/12 2669/176/11 +f 2670/179/10 2625/178/10 2623/177/11 +f 2623/177/11 2669/180/11 2670/179/10 +f 2671/181/9 2627/86/9 2625/178/10 +f 2625/178/10 2670/179/10 2671/181/9 +f 2672/183/8 2629/182/8 2627/86/9 +f 2627/86/9 2671/181/9 2672/183/8 +f 2673/185/7 2631/184/7 2629/182/8 +f 2629/182/8 2672/183/8 2673/185/7 +f 2674/187/6 2633/186/6 2631/184/7 +f 2631/184/7 2673/185/7 2674/187/6 +f 2675/189/5 2635/188/5 2633/186/6 +f 2633/186/6 2674/187/6 2675/189/5 +f 2676/191/4 2637/190/4 2635/188/5 +f 2635/188/5 2675/189/5 2676/191/4 +f 2677/192/3 2639/76/3 2637/190/4 +f 2637/190/4 2676/191/4 2677/192/3 +f 2678/194/2 2641/193/2 2639/76/3 +f 2639/76/3 2677/192/3 2678/194/2 +f 2668/174/1 2622/171/1 2641/193/2 +f 2641/193/2 2678/194/2 2668/174/1 +f 2679/195/387 2680/198/387 2681/197/387 +f 2681/197/387 2682/196/387 2679/195/387 +f 2683/199/388 2684/202/388 2685/201/388 +f 2685/201/388 2686/200/388 2683/199/388 +f 2687/203/389 2688/206/389 2689/205/389 +f 2689/205/389 2690/204/389 2687/203/389 +f 2691/202/390 2692/199/390 2693/200/390 +f 2693/200/390 2694/201/390 2691/202/390 +f 2695/207/391 2696/209/391 2697/208/391 +f 2697/208/391 2698/207/391 2695/207/391 +f 2699/209/392 2700/211/392 2701/210/392 +f 2690/212/393 2689/214/393 2702/213/393 +f 2702/213/393 2703/196/393 2690/212/393 +f 2704/210/394 2705/211/394 2706/209/394 +f 2707/215/395 2706/209/395 2705/211/395 +f 2705/211/395 2708/216/395 2707/215/395 +f 2709/217/396 2682/196/396 2681/197/396 +f 2681/197/396 2710/218/396 2709/217/396 +f 2711/219/397 2687/203/397 2690/204/397 +f 2690/204/397 2712/220/397 2711/219/397 +f 2713/209/398 2695/207/398 2698/207/398 +f 2698/207/398 2714/208/398 2713/209/398 +f 2690/212/399 2703/196/399 2715/213/399 +f 2715/213/399 2712/214/399 2690/212/399 +f 2707/215/400 2708/216/400 2700/211/400 +f 2700/211/400 2699/209/400 2707/215/400 +f 2716/221/390 2680/221/390 2679/222/390 +f 2679/222/390 2702/222/390 2716/221/390 +f 2702/222/401 2679/222/401 2682/203/401 +f 2682/203/401 2703/203/401 2702/222/401 +f 2703/203/402 2682/203/402 2709/206/402 +f 2709/206/402 2715/206/402 2703/203/402 +f 2715/206/388 2709/206/388 2710/223/388 +f 2710/223/388 2717/223/388 2715/206/388 +f 2717/224/403 2710/224/403 2681/226/403 +f 2681/226/403 2718/225/403 2717/224/403 +f 2718/225/404 2681/226/404 2680/224/404 +f 2680/224/404 2716/224/404 2718/225/404 +f 2712/214/394 2715/213/394 2717/228/394 +f 2717/228/394 2719/227/394 2712/214/394 +f 2719/229/390 2720/221/390 2711/219/390 +f 2711/219/390 2712/220/390 2719/229/390 +f 2688/206/388 2721/223/388 2722/230/388 +f 2722/230/388 2689/205/388 2688/206/388 +f 2722/227/392 2716/228/392 2702/213/392 +f 2702/213/392 2689/214/392 2722/227/392 +f 2685/201/388 2723/202/388 2724/199/388 +f 2724/199/388 2686/200/388 2685/201/388 +f 2722/231/405 2701/233/406 2700/232/405 +f 2700/232/405 2716/224/405 2722/231/405 +f 2716/224/404 2700/232/404 2708/234/404 +f 2708/234/404 2718/225/404 2716/224/404 +f 2718/225/403 2708/234/403 2705/232/403 +f 2705/232/403 2717/224/403 2718/225/403 +f 2717/224/407 2705/232/407 2704/233/407 +f 2704/233/407 2719/231/407 2717/224/407 +f 2693/200/390 2725/199/390 2726/202/390 +f 2726/202/390 2694/201/390 2693/200/390 +f 2697/208/391 2706/236/391 2707/235/391 +f 2707/235/391 2698/207/391 2697/208/391 +f 2698/207/398 2707/235/398 2699/236/398 +f 2699/236/398 2714/208/398 2698/207/398 +f 2721/236/27 2683/238/27 2686/237/27 +f 2686/237/27 2722/231/27 2721/236/27 +f 2722/231/27 2686/237/27 2724/239/27 +f 2724/239/27 2701/233/27 2722/231/27 +f 2701/210/408 2724/241/409 2723/240/409 +f 2723/240/409 2699/209/408 2701/210/408 +f 2699/236/26 2723/238/26 2685/242/26 +f 2685/242/26 2714/208/26 2699/236/26 +f 2714/208/26 2685/242/26 2684/240/26 +f 2684/240/26 2713/209/26 2714/208/26 +f 2696/209/26 2691/240/26 2694/242/26 +f 2694/242/26 2697/208/26 2696/209/26 +f 2697/208/26 2694/242/26 2726/238/26 +f 2726/238/26 2706/236/26 2697/208/26 +f 2706/209/410 2726/240/410 2725/241/410 +f 2725/241/410 2704/210/410 2706/209/410 +f 2704/233/27 2725/239/27 2693/237/27 +f 2693/237/27 2719/231/27 2704/233/27 +f 2719/231/27 2693/237/27 2692/238/27 +f 2692/238/27 2720/236/27 2719/231/27 +f 2727/195/411 2728/198/411 2729/197/411 +f 2729/197/411 2730/196/411 2727/195/411 +f 2731/199/412 2732/202/412 2733/201/413 +f 2733/201/413 2734/200/413 2731/199/412 +f 2735/203/414 2736/206/414 2737/205/414 +f 2737/205/414 2738/204/414 2735/203/414 +f 2739/202/415 2740/199/415 2741/200/416 +f 2741/200/416 2742/201/416 2739/202/415 +f 2743/207/417 2744/209/417 2745/208/417 +f 2745/208/417 2746/207/417 2743/207/417 +f 2747/209/171 2748/211/171 2749/210/171 +f 2738/212/418 2737/214/418 2750/213/418 +f 2750/213/418 2751/196/418 2738/212/418 +f 2752/210/419 2753/211/419 2754/209/419 +f 2755/215/420 2754/209/420 2753/211/420 +f 2753/211/420 2756/216/420 2755/215/420 +f 2757/217/167 2730/196/167 2729/197/167 +f 2729/197/167 2758/218/167 2757/217/167 +f 2759/219/421 2735/203/421 2738/204/421 +f 2738/204/421 2760/220/421 2759/219/421 +f 2761/209/422 2743/207/422 2746/207/422 +f 2746/207/422 2762/208/422 2761/209/422 +f 2738/212/423 2751/196/423 2763/213/423 +f 2763/213/423 2760/214/423 2738/212/423 +f 2755/215/424 2756/216/424 2748/211/424 +f 2748/211/424 2747/209/424 2755/215/424 +f 2764/221/415 2728/221/416 2727/222/416 +f 2727/222/416 2750/222/415 2764/221/415 +f 2750/222/425 2727/222/425 2730/203/425 +f 2730/203/425 2751/203/425 2750/222/425 +f 2751/203/426 2730/203/426 2757/206/426 +f 2757/206/426 2763/206/426 2751/203/426 +f 2763/206/413 2757/206/413 2758/223/413 +f 2758/223/413 2765/223/413 2763/206/413 +f 2765/224/427 2758/224/427 2729/226/427 +f 2729/226/427 2766/225/427 2765/224/427 +f 2766/225/428 2729/226/428 2728/224/428 +f 2728/224/428 2764/224/428 2766/225/428 +f 2760/214/419 2763/213/419 2765/228/419 +f 2765/228/419 2767/227/419 2760/214/419 +f 2767/229/415 2768/221/415 2759/219/415 +f 2759/219/415 2760/220/415 2767/229/415 +f 2736/206/413 2769/223/413 2770/230/413 +f 2770/230/413 2737/205/413 2736/206/413 +f 2770/227/171 2764/228/171 2750/213/171 +f 2750/213/171 2737/214/171 2770/227/171 +f 2733/201/413 2771/202/412 2772/199/412 +f 2772/199/412 2734/200/413 2733/201/413 +f 2770/231/429 2749/233/429 2748/232/429 +f 2748/232/429 2764/224/429 2770/231/429 +f 2764/224/428 2748/232/428 2756/234/428 +f 2756/234/428 2766/225/428 2764/224/428 +f 2766/225/427 2756/234/427 2753/232/427 +f 2753/232/427 2765/224/427 2766/225/427 +f 2765/224/430 2753/232/430 2752/233/430 +f 2752/233/430 2767/231/430 2765/224/430 +f 2741/200/416 2773/199/415 2774/202/415 +f 2774/202/415 2742/201/416 2741/200/416 +f 2745/208/417 2754/236/417 2755/235/417 +f 2755/235/417 2746/207/417 2745/208/417 +f 2746/207/422 2755/235/422 2747/236/422 +f 2747/236/422 2762/208/422 2746/207/422 +f 2769/236/27 2731/238/27 2734/237/27 +f 2734/237/27 2770/231/27 2769/236/27 +f 2770/231/27 2734/237/27 2772/239/27 +f 2772/239/27 2749/233/27 2770/231/27 +f 2749/210/191 2772/241/191 2771/240/191 +f 2771/240/191 2747/209/191 2749/210/191 +f 2747/236/26 2771/238/26 2733/242/26 +f 2733/242/26 2762/208/26 2747/236/26 +f 2762/208/26 2733/242/26 2732/240/26 +f 2732/240/26 2761/209/26 2762/208/26 +f 2744/209/26 2739/240/26 2742/242/26 +f 2742/242/26 2745/208/26 2744/209/26 +f 2745/208/26 2742/242/26 2774/238/26 +f 2774/238/26 2754/236/26 2745/208/26 +f 2754/209/431 2774/240/431 2773/241/431 +f 2773/241/431 2752/210/431 2754/209/431 +f 2752/233/27 2773/239/27 2741/237/27 +f 2741/237/27 2767/231/27 2752/233/27 +f 2767/231/27 2741/237/27 2740/238/27 +f 2740/238/27 2768/236/27 2767/231/27 +f 2775/243/432 2776/246/432 2777/245/432 +f 2777/245/432 2778/244/432 2775/243/432 +f 2775/247/433 2779/250/433 2780/249/433 +f 2780/249/433 2776/248/433 2775/247/433 +f 2776/246/434 2780/252/434 2781/251/434 +f 2781/251/434 2777/245/434 2776/246/434 +f 2777/248/435 2781/249/435 2782/250/435 +f 2782/250/435 2778/247/435 2777/248/435 +f 2783/195/436 2784/198/436 2785/197/436 +f 2785/197/436 2786/196/436 2783/195/436 +f 2787/199/437 2788/202/437 2789/201/413 +f 2789/201/413 2790/200/413 2787/199/437 +f 2791/203/414 2792/206/414 2793/205/414 +f 2793/205/414 2794/204/414 2791/203/414 +f 2795/202/415 2796/199/415 2797/200/416 +f 2797/200/416 2798/201/416 2795/202/415 +f 2799/207/417 2800/209/417 2801/208/417 +f 2801/208/417 2802/207/417 2799/207/417 +f 2803/209/171 2804/211/171 2805/210/171 +f 2794/212/418 2793/214/418 2806/213/418 +f 2806/213/418 2807/196/418 2794/212/418 +f 2808/210/419 2809/211/419 2810/209/419 +f 2811/215/420 2810/209/420 2809/211/420 +f 2809/211/420 2812/216/420 2811/215/420 +f 2813/217/167 2786/196/167 2785/197/167 +f 2785/197/167 2814/218/167 2813/217/167 +f 2815/219/438 2791/203/421 2794/204/421 +f 2794/204/421 2816/220/438 2815/219/438 +f 2817/209/422 2799/207/422 2802/207/422 +f 2802/207/422 2818/208/422 2817/209/422 +f 2794/212/423 2807/196/423 2819/213/423 +f 2819/213/423 2816/214/423 2794/212/423 +f 2811/215/424 2812/216/424 2804/211/424 +f 2804/211/424 2803/209/424 2811/215/424 +f 2820/221/415 2784/221/415 2783/222/415 +f 2783/222/415 2806/222/415 2820/221/415 +f 2806/222/425 2783/222/425 2786/203/425 +f 2786/203/425 2807/203/425 2806/222/425 +f 2807/203/426 2786/203/426 2813/206/426 +f 2813/206/426 2819/206/426 2807/203/426 +f 2819/206/413 2813/206/413 2814/223/413 +f 2814/223/413 2821/223/413 2819/206/413 +f 2821/224/427 2814/224/427 2785/226/427 +f 2785/226/427 2822/225/427 2821/224/427 +f 2822/225/428 2785/226/428 2784/224/428 +f 2784/224/428 2820/224/428 2822/225/428 +f 2816/214/419 2819/213/419 2821/228/419 +f 2821/228/419 2823/227/419 2816/214/419 +f 2823/229/416 2824/221/416 2815/219/416 +f 2815/219/416 2816/220/416 2823/229/416 +f 2792/206/413 2825/223/413 2826/230/412 +f 2826/230/412 2793/205/412 2792/206/413 +f 2826/227/171 2820/228/171 2806/213/171 +f 2806/213/171 2793/214/171 2826/227/171 +f 2789/201/413 2827/202/412 2828/199/412 +f 2828/199/412 2790/200/413 2789/201/413 +f 2826/231/429 2805/233/429 2804/232/429 +f 2804/232/429 2820/224/429 2826/231/429 +f 2820/224/428 2804/232/428 2812/234/428 +f 2812/234/428 2822/225/428 2820/224/428 +f 2822/225/427 2812/234/427 2809/232/427 +f 2809/232/427 2821/224/427 2822/225/427 +f 2821/224/430 2809/232/430 2808/233/430 +f 2808/233/430 2823/231/430 2821/224/430 +f 2797/200/416 2829/199/415 2830/202/415 +f 2830/202/415 2798/201/416 2797/200/416 +f 2801/208/417 2810/236/417 2811/235/417 +f 2811/235/417 2802/207/417 2801/208/417 +f 2802/207/422 2811/235/422 2803/236/422 +f 2803/236/422 2818/208/422 2802/207/422 +f 2825/236/27 2787/238/27 2790/237/27 +f 2790/237/27 2826/231/27 2825/236/27 +f 2826/231/27 2790/237/27 2828/239/27 +f 2828/239/27 2805/233/27 2826/231/27 +f 2805/210/191 2828/241/191 2827/240/191 +f 2827/240/191 2803/209/191 2805/210/191 +f 2803/236/26 2827/238/26 2789/242/26 +f 2789/242/26 2818/208/26 2803/236/26 +f 2818/208/26 2789/242/26 2788/240/26 +f 2788/240/26 2817/209/26 2818/208/26 +f 2800/209/26 2795/240/26 2798/242/26 +f 2798/242/26 2801/208/26 2800/209/26 +f 2801/208/26 2798/242/26 2830/238/26 +f 2830/238/26 2810/236/26 2801/208/26 +f 2810/209/431 2830/240/431 2829/241/431 +f 2829/241/431 2808/210/431 2810/209/431 +f 2808/233/27 2829/239/27 2797/237/27 +f 2797/237/27 2823/231/27 2808/233/27 +f 2823/231/27 2797/237/27 2796/238/27 +f 2796/238/27 2824/236/27 2823/231/27 +f 2831/243/439 2832/246/439 2833/245/439 +f 2833/245/439 2834/244/439 2831/243/439 +f 2831/247/440 2835/250/440 2836/249/440 +f 2836/249/440 2832/248/440 2831/247/440 +f 2832/246/441 2836/252/441 2837/251/441 +f 2837/251/441 2833/245/441 2832/246/441 +f 2833/248/442 2837/249/442 2838/250/442 +f 2838/250/442 2834/247/442 2833/248/442 +f 2839/195/443 2840/198/443 2841/197/443 +f 2841/197/443 2842/196/443 2839/195/443 +f 2843/199/390 2844/202/390 2845/201/390 +f 2845/201/390 2846/200/390 2843/199/390 +f 2847/203/444 2848/206/444 2849/205/444 +f 2849/205/444 2850/204/444 2847/203/444 +f 2851/202/388 2852/199/388 2853/200/388 +f 2853/200/388 2854/201/388 2851/202/388 +f 2855/207/398 2856/209/398 2857/208/398 +f 2857/208/398 2858/207/398 2855/207/398 +f 2859/209/445 2860/211/445 2861/210/445 +f 2850/212/446 2849/214/446 2862/213/446 +f 2862/213/446 2863/196/446 2850/212/446 +f 2864/210/447 2865/211/447 2866/209/447 +f 2867/215/448 2866/209/448 2865/211/448 +f 2865/211/448 2868/216/448 2867/215/448 +f 2869/217/449 2842/196/450 2841/197/450 +f 2841/197/450 2870/218/449 2869/217/449 +f 2871/219/451 2847/203/451 2850/204/451 +f 2850/204/451 2872/220/451 2871/219/451 +f 2873/209/391 2855/207/391 2858/207/391 +f 2858/207/391 2874/208/391 2873/209/391 +f 2850/212/452 2863/196/452 2875/213/452 +f 2875/213/452 2872/214/452 2850/212/452 +f 2867/215/453 2868/216/453 2860/211/453 +f 2860/211/453 2859/209/453 2867/215/453 +f 2876/221/388 2840/221/388 2839/222/388 +f 2839/222/388 2862/222/388 2876/221/388 +f 2862/222/402 2839/222/402 2842/203/402 +f 2842/203/402 2863/203/402 2862/222/402 +f 2863/203/401 2842/203/401 2869/206/401 +f 2869/206/401 2875/206/401 2863/203/401 +f 2875/206/390 2869/206/390 2870/223/390 +f 2870/223/390 2877/223/390 2875/206/390 +f 2877/224/454 2870/224/454 2841/226/454 +f 2841/226/454 2878/225/454 2877/224/454 +f 2878/225/455 2841/226/455 2840/224/455 +f 2840/224/455 2876/224/455 2878/225/455 +f 2872/214/447 2875/213/447 2877/228/447 +f 2877/228/447 2879/227/447 2872/214/447 +f 2879/229/388 2880/221/388 2871/219/388 +f 2871/219/388 2872/220/388 2879/229/388 +f 2848/206/390 2881/223/390 2882/230/390 +f 2882/230/390 2849/205/390 2848/206/390 +f 2882/227/445 2876/228/445 2862/213/445 +f 2862/213/445 2849/214/445 2882/227/445 +f 2845/201/390 2883/202/390 2884/199/390 +f 2884/199/390 2846/200/390 2845/201/390 +f 2882/231/456 2861/233/456 2860/232/456 +f 2860/232/456 2876/224/456 2882/231/456 +f 2876/224/455 2860/232/455 2868/234/455 +f 2868/234/455 2878/225/455 2876/224/455 +f 2878/225/454 2868/234/454 2865/232/454 +f 2865/232/454 2877/224/454 2878/225/454 +f 2877/224/457 2865/232/457 2864/233/457 +f 2864/233/457 2879/231/457 2877/224/457 +f 2853/200/388 2885/199/388 2886/202/388 +f 2886/202/388 2854/201/388 2853/200/388 +f 2857/208/398 2866/236/398 2867/235/398 +f 2867/235/398 2858/207/398 2857/208/398 +f 2858/207/391 2867/235/391 2859/236/391 +f 2859/236/391 2874/208/391 2858/207/391 +f 2881/236/27 2843/238/27 2846/237/27 +f 2846/237/27 2882/231/27 2881/236/27 +f 2882/231/27 2846/237/27 2884/239/27 +f 2884/239/27 2861/233/27 2882/231/27 +f 2861/210/458 2884/241/458 2883/240/458 +f 2883/240/458 2859/209/458 2861/210/458 +f 2859/236/26 2883/238/26 2845/242/26 +f 2845/242/26 2874/208/26 2859/236/26 +f 2874/208/26 2845/242/26 2844/240/26 +f 2844/240/26 2873/209/26 2874/208/26 +f 2856/209/26 2851/240/26 2854/242/26 +f 2854/242/26 2857/208/26 2856/209/26 +f 2857/208/26 2854/242/26 2886/238/26 +f 2886/238/26 2866/236/26 2857/208/26 +f 2866/209/459 2886/240/459 2885/241/459 +f 2885/241/459 2864/210/459 2866/209/459 +f 2864/233/27 2885/239/27 2853/237/27 +f 2853/237/27 2879/231/27 2864/233/27 +f 2879/231/27 2853/237/27 2852/238/27 +f 2852/238/27 2880/236/27 2879/231/27 +f 2887/243/154 2888/246/154 2889/245/154 +f 2889/245/154 2890/244/154 2887/243/154 +f 2887/247/1 2891/250/1 2892/249/1 +f 2892/249/1 2888/248/1 2887/247/1 +f 2888/246/155 2892/252/155 2893/251/155 +f 2893/251/155 2889/245/155 2888/246/155 +f 2889/248/7 2893/249/7 2894/250/7 +f 2894/250/7 2890/247/7 2889/248/7 +f 2895/243/160 2896/246/160 2897/245/160 +f 2897/245/160 2898/244/160 2895/243/160 +f 2895/247/163 2899/250/163 2900/249/163 +f 2900/249/163 2896/248/163 2895/247/163 +f 2896/246/162 2900/252/162 2901/251/162 +f 2901/251/162 2897/245/162 2896/246/162 +f 2897/248/161 2901/249/161 2902/250/161 +f 2902/250/161 2898/247/161 2897/248/161 +f 2903/243/148 2904/246/148 2905/245/148 +f 2905/245/148 2906/244/148 2903/243/148 +f 2903/247/7 2907/250/7 2908/249/7 +f 2908/249/7 2904/248/7 2903/247/7 +f 2904/246/149 2908/252/149 2909/251/149 +f 2909/251/149 2905/245/149 2904/246/149 +f 2905/248/1 2909/249/1 2910/250/1 +f 2910/250/1 2906/247/1 2905/248/1 +f 2911/243/460 2912/246/460 2913/245/460 +f 2913/245/460 2914/244/460 2911/243/460 +f 2911/247/461 2915/250/461 2916/249/461 +f 2916/249/461 2912/248/461 2911/247/461 +f 2912/246/462 2916/252/462 2917/251/462 +f 2917/251/462 2913/245/462 2912/246/462 +f 2913/248/463 2917/249/463 2918/250/463 +f 2918/250/463 2914/247/463 2913/248/463 +f 2919/243/150 2920/246/150 2921/245/150 +f 2921/245/150 2922/244/150 2919/243/150 +f 2919/247/153 2923/250/153 2924/249/153 +f 2924/249/153 2920/248/153 2919/247/153 +f 2920/246/152 2924/252/152 2925/251/152 +f 2925/251/152 2921/245/152 2920/246/152 +f 2921/248/151 2925/249/151 2926/250/151 +f 2926/250/151 2922/247/151 2921/248/151 +f 2927/195/443 2928/198/443 2929/197/443 +f 2929/197/443 2930/196/443 2927/195/443 +f 2931/199/390 2932/202/390 2933/201/390 +f 2933/201/390 2934/200/390 2931/199/390 +f 2935/203/444 2936/206/444 2937/205/444 +f 2937/205/444 2938/204/444 2935/203/444 +f 2939/202/388 2940/199/388 2941/200/388 +f 2941/200/388 2942/201/388 2939/202/388 +f 2943/207/398 2944/209/398 2945/208/398 +f 2945/208/398 2946/207/398 2943/207/398 +f 2947/209/445 2948/211/445 2949/210/445 +f 2938/212/446 2937/214/446 2950/213/446 +f 2950/213/446 2951/196/446 2938/212/446 +f 2952/210/447 2953/211/447 2954/209/447 +f 2955/215/448 2954/209/448 2953/211/448 +f 2953/211/448 2956/216/448 2955/215/448 +f 2957/217/449 2930/196/450 2929/197/450 +f 2929/197/450 2958/218/449 2957/217/449 +f 2959/219/451 2935/203/451 2938/204/451 +f 2938/204/451 2960/220/451 2959/219/451 +f 2961/209/391 2943/207/391 2946/207/391 +f 2946/207/391 2962/208/391 2961/209/391 +f 2938/212/452 2951/196/452 2963/213/452 +f 2963/213/452 2960/214/452 2938/212/452 +f 2955/215/453 2956/216/453 2948/211/453 +f 2948/211/453 2947/209/453 2955/215/453 +f 2964/221/388 2928/221/388 2927/222/388 +f 2927/222/388 2950/222/388 2964/221/388 +f 2950/222/402 2927/222/402 2930/203/402 +f 2930/203/402 2951/203/402 2950/222/402 +f 2951/203/401 2930/203/401 2957/206/401 +f 2957/206/401 2963/206/401 2951/203/401 +f 2963/206/390 2957/206/390 2958/223/390 +f 2958/223/390 2965/223/390 2963/206/390 +f 2965/224/454 2958/224/454 2929/226/454 +f 2929/226/454 2966/225/454 2965/224/454 +f 2966/225/455 2929/226/455 2928/224/455 +f 2928/224/455 2964/224/455 2966/225/455 +f 2960/214/447 2963/213/447 2965/228/447 +f 2965/228/447 2967/227/447 2960/214/447 +f 2967/229/388 2968/221/388 2959/219/388 +f 2959/219/388 2960/220/388 2967/229/388 +f 2936/206/390 2969/223/390 2970/230/390 +f 2970/230/390 2937/205/390 2936/206/390 +f 2970/227/445 2964/228/445 2950/213/445 +f 2950/213/445 2937/214/445 2970/227/445 +f 2933/201/390 2971/202/390 2972/199/390 +f 2972/199/390 2934/200/390 2933/201/390 +f 2970/231/456 2949/233/456 2948/232/456 +f 2948/232/456 2964/224/456 2970/231/456 +f 2964/224/455 2948/232/455 2956/234/455 +f 2956/234/455 2966/225/455 2964/224/455 +f 2966/225/454 2956/234/454 2953/232/454 +f 2953/232/454 2965/224/454 2966/225/454 +f 2965/224/457 2953/232/457 2952/233/457 +f 2952/233/457 2967/231/457 2965/224/457 +f 2941/200/388 2973/199/388 2974/202/388 +f 2974/202/388 2942/201/388 2941/200/388 +f 2945/208/398 2954/236/398 2955/235/398 +f 2955/235/398 2946/207/398 2945/208/398 +f 2946/207/391 2955/235/391 2947/236/391 +f 2947/236/391 2962/208/391 2946/207/391 +f 2969/236/27 2931/238/27 2934/237/27 +f 2934/237/27 2970/231/27 2969/236/27 +f 2970/231/27 2934/237/27 2972/239/27 +f 2972/239/27 2949/233/27 2970/231/27 +f 2949/210/458 2972/241/458 2971/240/458 +f 2971/240/458 2947/209/458 2949/210/458 +f 2947/236/26 2971/238/26 2933/242/26 +f 2933/242/26 2962/208/26 2947/236/26 +f 2962/208/26 2933/242/26 2932/240/26 +f 2932/240/26 2961/209/26 2962/208/26 +f 2944/209/26 2939/240/26 2942/242/26 +f 2942/242/26 2945/208/26 2944/209/26 +f 2945/208/26 2942/242/26 2974/238/26 +f 2974/238/26 2954/236/26 2945/208/26 +f 2954/209/459 2974/240/459 2973/241/459 +f 2973/241/459 2952/210/459 2954/209/459 +f 2952/233/27 2973/239/27 2941/237/27 +f 2941/237/27 2967/231/27 2952/233/27 +f 2967/231/27 2941/237/27 2940/238/27 +f 2940/238/27 2968/236/27 2967/231/27 +f 2975/195/464 2976/198/464 2977/197/4 +f 2977/197/4 2978/196/4 2975/195/464 +f 2979/199/465 2980/202/465 2981/201/465 +f 2981/201/465 2982/200/465 2979/199/465 +f 2983/203/421 2984/206/421 2985/205/421 +f 2985/205/421 2986/204/421 2983/203/421 +f 2987/202/437 2988/199/437 2989/200/437 +f 2989/200/437 2990/201/437 2987/202/437 +f 2991/207/466 2992/209/466 2993/208/466 +f 2993/208/466 2994/207/466 2991/207/466 +f 2995/209/107 2996/211/107 2997/210/107 +f 2986/212/467 2985/214/467 2998/213/467 +f 2998/213/467 2999/196/467 2986/212/467 +f 3000/210/468 3001/211/468 3002/209/468 +f 3003/215/469 3002/209/469 3001/211/469 +f 3001/211/469 3004/216/469 3003/215/469 +f 3005/217/103 2978/196/103 2977/197/103 +f 2977/197/103 3006/218/103 3005/217/103 +f 3007/219/470 2983/203/414 2986/204/414 +f 2986/204/414 3008/220/414 3007/219/470 +f 3009/209/471 2991/207/471 2994/207/471 +f 2994/207/471 3010/208/471 3009/209/471 +f 2986/212/472 2999/196/472 3011/213/472 +f 3011/213/472 3008/214/472 2986/212/472 +f 3003/215/332 3004/216/332 2996/211/332 +f 2996/211/332 2995/209/332 3003/215/332 +f 3012/221/437 2976/221/437 2975/222/437 +f 2975/222/437 2998/222/437 3012/221/437 +f 2998/222/426 2975/222/426 2978/203/426 +f 2978/203/426 2999/203/426 2998/222/426 +f 2999/203/425 2978/203/425 3005/206/425 +f 3005/206/425 3011/206/425 2999/203/425 +f 3011/206/465 3005/206/465 3006/223/465 +f 3006/223/465 3013/223/465 3011/206/465 +f 3013/224/473 3006/224/473 2977/226/473 +f 2977/226/473 3014/225/473 3013/224/473 +f 3014/225/430 2977/226/430 2976/224/430 +f 2976/224/430 3012/224/430 3014/225/430 +f 3008/214/468 3011/213/468 3013/228/468 +f 3013/228/468 3015/227/468 3008/214/468 +f 3015/229/437 3016/221/437 3007/219/437 +f 3007/219/437 3008/220/437 3015/229/437 +f 2984/206/465 3017/223/465 3018/230/465 +f 3018/230/465 2985/205/465 2984/206/465 +f 3018/227/107 3012/228/107 2998/213/107 +f 2998/213/107 2985/214/107 3018/227/107 +f 2981/201/465 3019/202/465 3020/199/465 +f 3020/199/465 2982/200/465 2981/201/465 +f 3018/231/474 2997/233/474 2996/232/474 +f 2996/232/474 3012/224/474 3018/231/474 +f 3012/224/430 2996/232/430 3004/234/430 +f 3004/234/430 3014/225/430 3012/224/430 +f 3014/225/473 3004/234/473 3001/232/473 +f 3001/232/473 3013/224/473 3014/225/473 +f 3013/224/428 3001/232/428 3000/233/428 +f 3000/233/428 3015/231/428 3013/224/428 +f 2989/200/437 3021/199/437 3022/202/437 +f 3022/202/437 2990/201/437 2989/200/437 +f 2993/208/466 3002/236/466 3003/235/466 +f 3003/235/466 2994/207/466 2993/208/466 +f 2994/207/471 3003/235/471 2995/236/471 +f 2995/236/471 3010/208/471 2994/207/471 +f 3017/236/27 2979/238/27 2982/237/27 +f 2982/237/27 3018/231/27 3017/236/27 +f 3018/231/27 2982/237/27 3020/239/27 +f 3020/239/27 2997/233/27 3018/231/27 +f 2997/210/193 3020/241/193 3019/240/193 +f 3019/240/193 2995/209/193 2997/210/193 +f 2995/236/26 3019/238/26 2981/242/26 +f 2981/242/26 3010/208/26 2995/236/26 +f 3010/208/26 2981/242/26 2980/240/26 +f 2980/240/26 3009/209/26 3010/208/26 +f 2992/209/26 2987/240/26 2990/242/26 +f 2990/242/26 2993/208/26 2992/209/26 +f 2993/208/26 2990/242/26 3022/238/26 +f 3022/238/26 3002/236/26 2993/208/26 +f 3002/209/475 3022/240/475 3021/241/475 +f 3021/241/475 3000/210/475 3002/209/475 +f 3000/233/27 3021/239/27 2989/237/27 +f 2989/237/27 3015/231/27 3000/233/27 +f 3015/231/27 2989/237/27 2988/238/27 +f 2988/238/27 3016/236/27 3015/231/27 +f 3023/243/187 3024/246/187 3025/245/187 +f 3025/245/187 3026/244/187 3023/243/187 +f 3023/247/161 3027/250/161 3028/249/161 +f 3028/249/161 3024/248/161 3023/247/161 +f 3024/246/188 3028/252/189 3029/251/188 +f 3029/251/188 3025/245/188 3024/246/188 +f 3025/248/163 3029/249/163 3030/250/163 +f 3030/250/163 3026/247/163 3025/248/163 +f 3031/195/4 3032/198/4 3033/197/4 +f 3033/197/4 3034/196/4 3031/195/4 +f 3035/199/465 3036/202/465 3037/201/465 +f 3037/201/465 3038/200/465 3035/199/465 +f 3039/203/421 3040/206/421 3041/205/421 +f 3041/205/421 3042/204/421 3039/203/421 +f 3043/202/437 3044/199/437 3045/200/437 +f 3045/200/437 3046/201/437 3043/202/437 +f 3047/207/466 3048/209/466 3049/208/466 +f 3049/208/466 3050/207/466 3047/207/466 +f 3051/209/107 3052/211/107 3053/210/107 +f 3042/212/467 3041/214/467 3054/213/467 +f 3054/213/467 3055/196/467 3042/212/467 +f 3056/210/468 3057/211/468 3058/209/468 +f 3059/215/469 3058/209/469 3057/211/469 +f 3057/211/469 3060/216/469 3059/215/469 +f 3061/217/103 3034/196/103 3033/197/103 +f 3033/197/103 3062/218/103 3061/217/103 +f 3063/219/414 3039/203/414 3042/204/470 +f 3042/204/470 3064/220/414 3063/219/414 +f 3065/209/471 3047/207/471 3050/207/471 +f 3050/207/471 3066/208/471 3065/209/471 +f 3042/212/472 3055/196/472 3067/213/472 +f 3067/213/472 3064/214/472 3042/212/472 +f 3059/215/332 3060/216/332 3052/211/332 +f 3052/211/332 3051/209/332 3059/215/332 +f 3068/221/437 3032/221/437 3031/222/437 +f 3031/222/437 3054/222/437 3068/221/437 +f 3054/222/426 3031/222/426 3034/203/426 +f 3034/203/426 3055/203/426 3054/222/426 +f 3055/203/425 3034/203/425 3061/206/425 +f 3061/206/425 3067/206/425 3055/203/425 +f 3067/206/465 3061/206/465 3062/223/465 +f 3062/223/465 3069/223/465 3067/206/465 +f 3069/224/473 3062/224/473 3033/226/473 +f 3033/226/473 3070/225/473 3069/224/473 +f 3070/225/430 3033/226/430 3032/224/430 +f 3032/224/430 3068/224/430 3070/225/430 +f 3064/214/468 3067/213/468 3069/228/468 +f 3069/228/468 3071/227/468 3064/214/468 +f 3071/229/437 3072/221/437 3063/219/437 +f 3063/219/437 3064/220/437 3071/229/437 +f 3040/206/465 3073/223/465 3074/230/465 +f 3074/230/465 3041/205/465 3040/206/465 +f 3074/227/107 3068/228/107 3054/213/107 +f 3054/213/107 3041/214/107 3074/227/107 +f 3037/201/465 3075/202/465 3076/199/465 +f 3076/199/465 3038/200/465 3037/201/465 +f 3074/231/474 3053/233/474 3052/232/474 +f 3052/232/474 3068/224/474 3074/231/474 +f 3068/224/430 3052/232/430 3060/234/430 +f 3060/234/430 3070/225/430 3068/224/430 +f 3070/225/473 3060/234/473 3057/232/473 +f 3057/232/473 3069/224/473 3070/225/473 +f 3069/224/428 3057/232/428 3056/233/428 +f 3056/233/428 3071/231/428 3069/224/428 +f 3045/200/437 3077/199/437 3078/202/437 +f 3078/202/437 3046/201/437 3045/200/437 +f 3049/208/466 3058/236/466 3059/235/466 +f 3059/235/466 3050/207/466 3049/208/466 +f 3050/207/471 3059/235/471 3051/236/471 +f 3051/236/471 3066/208/471 3050/207/471 +f 3073/236/27 3035/238/27 3038/237/27 +f 3038/237/27 3074/231/27 3073/236/27 +f 3074/231/27 3038/237/27 3076/239/27 +f 3076/239/27 3053/233/27 3074/231/27 +f 3053/210/193 3076/241/193 3075/240/193 +f 3075/240/193 3051/209/193 3053/210/193 +f 3051/236/26 3075/238/26 3037/242/26 +f 3037/242/26 3066/208/26 3051/236/26 +f 3066/208/26 3037/242/26 3036/240/26 +f 3036/240/26 3065/209/26 3066/208/26 +f 3048/209/26 3043/240/26 3046/242/26 +f 3046/242/26 3049/208/26 3048/209/26 +f 3049/208/26 3046/242/26 3078/238/26 +f 3078/238/26 3058/236/26 3049/208/26 +f 3058/209/475 3078/240/475 3077/241/475 +f 3077/241/475 3056/210/475 3058/209/475 +f 3056/233/27 3077/239/27 3045/237/27 +f 3045/237/27 3071/231/27 3056/233/27 +f 3071/231/27 3045/237/27 3044/238/27 +f 3044/238/27 3072/236/27 3071/231/27 +f 3079/243/476 3080/246/476 3081/245/476 +f 3081/245/476 3082/244/476 3079/243/476 +f 3079/247/477 3083/250/477 3084/249/477 +f 3084/249/477 3080/248/477 3079/247/477 +f 3080/246/478 3084/252/478 3085/251/478 +f 3085/251/478 3081/245/478 3080/246/478 +f 3081/248/479 3085/249/479 3086/250/479 +f 3086/250/479 3082/247/479 3081/248/479 +f 3087/195/387 3088/198/387 3089/197/387 +f 3089/197/387 3090/196/387 3087/195/387 +f 3091/199/388 3092/202/388 3093/201/388 +f 3093/201/388 3094/200/388 3091/199/388 +f 3095/203/389 3096/206/389 3097/205/389 +f 3097/205/389 3098/204/389 3095/203/389 +f 3099/202/390 3100/199/390 3101/200/390 +f 3101/200/390 3102/201/390 3099/202/390 +f 3103/207/391 3104/209/391 3105/208/391 +f 3105/208/391 3106/207/391 3103/207/391 +f 3107/209/392 3108/211/392 3109/210/392 +f 3098/212/393 3097/214/393 3110/213/393 +f 3110/213/393 3111/196/393 3098/212/393 +f 3112/210/394 3113/211/394 3114/209/394 +f 3115/215/395 3114/209/395 3113/211/395 +f 3113/211/395 3116/216/395 3115/215/395 +f 3117/217/396 3090/196/396 3089/197/396 +f 3089/197/396 3118/218/396 3117/217/396 +f 3119/219/397 3095/203/397 3098/204/397 +f 3098/204/397 3120/220/397 3119/219/397 +f 3121/209/398 3103/207/398 3106/207/398 +f 3106/207/398 3122/208/398 3121/209/398 +f 3098/212/399 3111/196/399 3123/213/399 +f 3123/213/399 3120/214/399 3098/212/399 +f 3115/215/400 3116/216/400 3108/211/400 +f 3108/211/400 3107/209/400 3115/215/400 +f 3124/221/390 3088/221/390 3087/222/390 +f 3087/222/390 3110/222/390 3124/221/390 +f 3110/222/401 3087/222/401 3090/203/401 +f 3090/203/401 3111/203/401 3110/222/401 +f 3111/203/402 3090/203/402 3117/206/402 +f 3117/206/402 3123/206/402 3111/203/402 +f 3123/206/388 3117/206/388 3118/223/388 +f 3118/223/388 3125/223/388 3123/206/388 +f 3125/224/403 3118/224/403 3089/226/403 +f 3089/226/403 3126/225/403 3125/224/403 +f 3126/225/404 3089/226/404 3088/224/404 +f 3088/224/404 3124/224/404 3126/225/404 +f 3120/214/394 3123/213/394 3125/228/394 +f 3125/228/394 3127/227/394 3120/214/394 +f 3127/229/390 3128/221/390 3119/219/390 +f 3119/219/390 3120/220/390 3127/229/390 +f 3096/206/388 3129/223/388 3130/230/388 +f 3130/230/388 3097/205/388 3096/206/388 +f 3130/227/392 3124/228/392 3110/213/392 +f 3110/213/392 3097/214/392 3130/227/392 +f 3093/201/388 3131/202/388 3132/199/388 +f 3132/199/388 3094/200/388 3093/201/388 +f 3130/231/405 3109/233/405 3108/232/405 +f 3108/232/405 3124/224/405 3130/231/405 +f 3124/224/404 3108/232/404 3116/234/404 +f 3116/234/404 3126/225/404 3124/224/404 +f 3126/225/403 3116/234/403 3113/232/403 +f 3113/232/403 3125/224/403 3126/225/403 +f 3125/224/407 3113/232/407 3112/233/407 +f 3112/233/407 3127/231/407 3125/224/407 +f 3101/200/390 3133/199/390 3134/202/390 +f 3134/202/390 3102/201/390 3101/200/390 +f 3105/208/391 3114/236/391 3115/235/391 +f 3115/235/391 3106/207/391 3105/208/391 +f 3106/207/398 3115/235/398 3107/236/398 +f 3107/236/398 3122/208/398 3106/207/398 +f 3129/236/27 3091/238/27 3094/237/27 +f 3094/237/27 3130/231/27 3129/236/27 +f 3130/231/27 3094/237/27 3132/239/27 +f 3132/239/27 3109/233/27 3130/231/27 +f 3109/210/409 3132/241/409 3131/240/409 +f 3131/240/409 3107/209/409 3109/210/409 +f 3107/236/26 3131/238/26 3093/242/26 +f 3093/242/26 3122/208/26 3107/236/26 +f 3122/208/26 3093/242/26 3092/240/26 +f 3092/240/26 3121/209/26 3122/208/26 +f 3104/209/26 3099/240/26 3102/242/26 +f 3102/242/26 3105/208/26 3104/209/26 +f 3105/208/26 3102/242/26 3134/238/26 +f 3134/238/26 3114/236/26 3105/208/26 +f 3114/209/410 3134/240/410 3133/241/410 +f 3133/241/410 3112/210/410 3114/209/410 +f 3112/233/27 3133/239/27 3101/237/27 +f 3101/237/27 3127/231/27 3112/233/27 +f 3127/231/27 3101/237/27 3100/238/27 +f 3100/238/27 3128/236/27 3127/231/27 +f 3135/243/180 3136/246/180 3137/245/180 +f 3137/245/180 3138/244/180 3135/243/180 +f 3135/247/151 3139/250/151 3140/249/151 +f 3140/249/151 3136/248/151 3135/247/151 +f 3136/246/181 3140/252/181 3141/251/182 +f 3141/251/182 3137/245/181 3136/246/181 +f 3137/248/153 3141/249/153 3142/250/153 +f 3142/250/153 3138/247/153 3137/248/153 +f 3143/253/24 3144/256/24 3145/255/24 +f 3145/255/24 3146/254/24 3143/253/24 +f 3147/257/23 3148/258/23 3144/256/23 +f 3144/256/23 3143/253/23 3147/257/23 +f 3149/259/191 3150/260/22 3148/258/191 +f 3148/258/191 3147/257/191 3149/259/191 +f 3151/261/21 3152/264/21 3150/263/21 +f 3150/263/21 3149/262/21 3151/261/21 +f 3153/265/20 3154/266/20 3152/264/20 +f 3152/264/20 3151/261/20 3153/265/20 +f 3155/267/19 3156/268/19 3154/266/19 +f 3154/266/19 3153/265/19 3155/267/19 +f 3157/269/194 3158/270/194 3156/268/18 +f 3156/268/18 3155/267/18 3157/269/194 +f 3159/271/17 3160/272/17 3158/270/17 +f 3158/270/17 3157/269/17 3159/271/17 +f 3161/273/16 3162/274/16 3160/272/16 +f 3160/272/16 3159/271/16 3161/273/16 +f 3163/275/118 3164/276/118 3162/274/15 +f 3162/274/15 3161/273/118 3163/275/118 +f 3165/277/14 3166/278/14 3164/276/14 +f 3164/276/14 3163/275/14 3165/277/14 +f 3146/254/13 3145/255/13 3166/278/192 +f 3166/278/192 3165/277/192 3146/254/13 +f 3144/279/27 3167/282/27 3168/281/27 +f 3168/281/27 3145/280/27 3144/279/27 +f 3169/283/27 3170/284/27 3171/282/27 +f 3171/282/27 3172/279/27 3169/283/27 +f 3150/285/27 3173/285/27 3174/284/27 +f 3174/284/27 3148/283/27 3150/285/27 +f 3175/286/27 3176/287/27 3177/285/27 +f 3177/285/27 3178/285/27 3175/286/27 +f 3154/288/27 3179/289/27 3180/287/27 +f 3180/287/27 3152/286/27 3154/288/27 +f 3181/290/27 3182/291/27 3183/289/27 +f 3183/289/27 3184/288/27 3181/290/27 +f 3158/292/27 3185/293/27 3186/291/27 +f 3186/291/27 3156/290/27 3158/292/27 +f 3187/294/27 3188/295/27 3189/293/27 +f 3189/293/27 3190/292/27 3187/294/27 +f 3162/296/27 3191/297/27 3192/295/27 +f 3192/295/27 3160/294/27 3162/296/27 +f 3193/298/27 3194/299/27 3195/297/27 +f 3195/297/27 3196/296/27 3193/298/27 +f 3166/300/27 3197/300/27 3198/299/27 +f 3198/299/27 3164/298/27 3166/300/27 +f 3199/280/27 3200/281/27 3201/300/27 +f 3201/300/27 3202/300/27 3199/280/27 +f 3167/301/18 3203/304/18 3204/303/18 +f 3204/303/18 3168/302/18 3167/301/18 +f 3174/305/17 3205/306/17 3203/304/17 +f 3203/304/17 3167/301/17 3174/305/17 +f 3173/307/16 3206/308/16 3205/306/16 +f 3205/306/16 3174/305/16 3173/307/16 +f 3180/309/15 3207/310/15 3206/308/15 +f 3206/308/15 3173/307/15 3180/309/15 +f 3179/311/14 3208/312/14 3207/310/14 +f 3207/310/14 3180/309/14 3179/311/14 +f 3186/313/13 3209/314/13 3208/312/13 +f 3208/312/13 3179/311/13 3186/313/13 +f 3185/315/25 3210/316/25 3209/314/24 +f 3209/314/24 3186/313/24 3185/315/25 +f 3192/317/23 3211/318/23 3210/316/23 +f 3210/316/23 3185/315/23 3192/317/23 +f 3191/319/22 3212/320/22 3211/318/22 +f 3211/318/22 3192/317/22 3191/319/22 +f 3198/321/21 3213/324/21 3212/323/178 +f 3212/323/178 3191/322/21 3198/321/21 +f 3197/325/20 3214/326/20 3213/324/20 +f 3213/324/20 3198/321/20 3197/325/20 +f 3168/302/19 3204/303/19 3214/326/190 +f 3214/326/190 3197/325/190 3168/302/19 +f 3203/327/27 3215/329/27 3204/328/27 +f 3205/330/27 3215/329/27 3203/327/27 +f 3206/331/27 3215/329/27 3205/330/27 +f 3207/332/27 3215/329/27 3206/331/27 +f 3208/333/27 3215/329/27 3207/332/27 +f 3209/334/27 3215/329/27 3208/333/27 +f 3210/335/27 3215/329/27 3209/334/27 +f 3211/336/27 3215/329/27 3210/335/27 +f 3212/337/27 3215/329/27 3211/336/27 +f 3213/338/27 3215/329/27 3212/337/27 +f 3214/339/27 3215/329/27 3213/338/27 +f 3204/328/27 3215/329/27 3214/339/27 +f 3148/258/23 3169/341/23 3172/340/23 +f 3172/340/23 3144/256/23 3148/258/23 +f 3144/279/153 3172/279/153 3171/282/153 +f 3171/282/153 3167/282/153 3144/279/153 +f 3167/301/17 3171/343/17 3170/342/17 +f 3170/342/17 3174/305/17 3167/301/17 +f 3174/284/196 3170/284/196 3169/283/196 +f 3169/283/196 3148/283/196 3174/284/196 +f 3152/264/21 3175/345/21 3178/344/178 +f 3178/344/178 3150/263/21 3152/264/21 +f 3150/285/1 3178/285/1 3177/285/1 +f 3177/285/1 3173/285/1 3150/285/1 +f 3173/307/15 3177/347/15 3176/346/15 +f 3176/346/15 3180/309/15 3173/307/15 +f 3180/287/195 3176/287/195 3175/286/195 +f 3175/286/195 3152/286/195 3180/287/195 +f 3156/268/19 3181/349/19 3184/348/19 +f 3184/348/19 3154/266/19 3156/268/19 +f 3154/288/161 3184/288/161 3183/289/161 +f 3183/289/161 3179/289/161 3154/288/161 +f 3179/311/13 3183/351/13 3182/350/13 +f 3182/350/13 3186/313/13 3179/311/13 +f 3186/291/4 3182/291/4 3181/290/4 +f 3181/290/4 3156/290/4 3186/291/4 +f 3160/272/17 3187/353/17 3190/352/17 +f 3190/352/17 3158/270/17 3160/272/17 +f 3158/292/151 3190/292/151 3189/293/151 +f 3189/293/151 3185/293/151 3158/292/151 +f 3185/315/23 3189/355/23 3188/354/23 +f 3188/354/23 3192/317/23 3185/315/23 +f 3192/295/198 3188/295/198 3187/294/198 +f 3187/294/198 3160/294/198 3192/295/198 +f 3164/276/118 3193/357/15 3196/356/15 +f 3196/356/15 3162/274/15 3164/276/118 +f 3162/296/7 3196/296/7 3195/297/7 +f 3195/297/7 3191/297/7 3162/296/7 +f 3191/322/21 3195/359/21 3194/358/21 +f 3194/358/21 3198/321/21 3191/322/21 +f 3198/299/197 3194/299/197 3193/298/197 +f 3193/298/197 3164/298/197 3198/299/197 +f 3145/255/13 3199/361/13 3202/360/13 +f 3202/360/13 3166/278/192 3145/255/13 +f 3166/300/163 3202/300/163 3201/300/163 +f 3201/300/163 3197/300/163 3166/300/163 +f 3197/325/190 3201/363/190 3200/362/19 +f 3200/362/19 3168/302/19 3197/325/190 +f 3168/281/10 3200/281/10 3199/280/10 +f 3199/280/10 3145/280/10 3168/281/10 +f 3216/1/7 3217/2/8 3218/3/8 +f 3218/3/8 3219/4/7 3216/1/7 +f 3217/2/8 3220/5/9 3221/6/9 +f 3221/6/9 3218/3/8 3217/2/8 +f 3220/5/9 3222/7/10 3223/8/10 +f 3223/8/10 3221/6/9 3220/5/9 +f 3222/9/10 3224/10/11 3225/11/11 +f 3225/11/11 3223/12/10 3222/9/10 +f 3224/10/11 3226/13/12 3227/14/12 +f 3227/14/12 3225/11/11 3224/10/11 +f 3226/13/12 3228/15/1 3229/16/1 +f 3229/16/1 3227/14/12 3226/13/12 +f 3228/15/1 3230/17/2 3231/18/2 +f 3231/18/2 3229/16/1 3228/15/1 +f 3230/17/2 3232/19/3 3233/20/3 +f 3233/20/3 3231/18/2 3230/17/2 +f 3232/19/3 3234/21/4 3235/22/4 +f 3235/22/4 3233/20/3 3232/19/3 +f 3234/21/4 3236/23/5 3237/24/5 +f 3237/24/5 3235/22/4 3234/21/4 +f 3236/23/5 3238/25/6 3239/26/6 +f 3239/26/6 3237/24/5 3236/23/5 +f 3238/25/6 3216/1/7 3219/4/7 +f 3219/4/7 3239/26/6 3238/25/6 +f 3240/27/19 3241/28/19 3242/29/19 +f 3242/29/19 3243/30/19 3240/27/19 +f 3244/31/20 3240/27/20 3243/30/20 +f 3243/30/20 3245/32/20 3244/31/20 +f 3246/33/21 3244/31/21 3245/32/21 +f 3245/32/21 3247/34/21 3246/33/21 +f 3248/35/22 3246/36/22 3247/37/22 +f 3247/37/22 3249/38/22 3248/35/22 +f 3250/39/23 3248/35/23 3249/38/23 +f 3249/38/23 3251/40/23 3250/39/23 +f 3252/41/24 3250/39/24 3251/40/24 +f 3251/40/24 3253/42/24 3252/41/24 +f 3254/43/13 3252/41/13 3253/42/13 +f 3253/42/13 3255/44/13 3254/43/13 +f 3256/45/14 3254/43/14 3255/44/14 +f 3255/44/14 3257/46/14 3256/45/14 +f 3258/47/15 3256/45/15 3257/46/15 +f 3257/46/15 3259/48/15 3258/47/15 +f 3260/49/16 3258/47/16 3259/48/16 +f 3259/48/16 3261/50/16 3260/49/16 +f 3262/51/17 3260/49/17 3261/50/17 +f 3261/50/17 3263/52/17 3262/51/17 +f 3241/28/18 3262/51/194 3263/52/18 +f 3263/52/18 3242/29/18 3241/28/18 +f 3217/53/26 3216/54/26 3241/54/26 +f 3241/54/26 3240/53/26 3217/53/26 +f 3216/54/26 3238/55/26 3262/55/26 +f 3262/55/26 3241/54/26 3216/54/26 +f 3238/55/26 3236/56/26 3260/56/26 +f 3260/56/26 3262/55/26 3238/55/26 +f 3236/56/26 3234/57/26 3258/57/26 +f 3258/57/26 3260/56/26 3236/56/26 +f 3234/57/26 3232/58/26 3256/59/26 +f 3256/59/26 3258/57/26 3234/57/26 +f 3232/58/26 3230/60/26 3254/61/26 +f 3254/61/26 3256/59/26 3232/58/26 +f 3230/60/26 3228/62/26 3252/62/26 +f 3252/62/26 3254/61/26 3230/60/26 +f 3228/62/26 3226/63/26 3250/64/26 +f 3250/64/26 3252/62/26 3228/62/26 +f 3226/63/26 3224/65/26 3248/66/26 +f 3248/66/26 3250/64/26 3226/63/26 +f 3224/65/26 3222/67/26 3246/67/26 +f 3246/67/26 3248/66/26 3224/65/26 +f 3222/67/26 3220/68/26 3244/68/26 +f 3244/68/26 3246/67/26 3222/67/26 +f 3220/68/26 3217/53/26 3240/53/26 +f 3240/53/26 3244/68/26 3220/68/26 +f 3264/54/27 3265/53/27 3243/53/27 +f 3243/53/27 3242/54/27 3264/54/27 +f 3265/53/27 3266/68/27 3245/68/27 +f 3245/68/27 3243/53/27 3265/53/27 +f 3266/68/27 3267/67/27 3247/67/27 +f 3247/67/27 3245/68/27 3266/68/27 +f 3267/67/27 3268/65/27 3249/66/27 +f 3249/66/27 3247/67/27 3267/67/27 +f 3268/65/27 3269/63/27 3251/64/27 +f 3251/64/27 3249/66/27 3268/65/27 +f 3269/63/27 3270/62/27 3253/62/27 +f 3253/62/27 3251/64/27 3269/63/27 +f 3270/62/27 3271/60/27 3255/61/27 +f 3255/61/27 3253/62/27 3270/62/27 +f 3271/60/27 3272/58/27 3257/59/27 +f 3257/59/27 3255/61/27 3271/60/27 +f 3272/58/27 3273/57/27 3259/57/27 +f 3259/57/27 3257/59/27 3272/58/27 +f 3273/57/27 3274/56/27 3261/56/27 +f 3261/56/27 3259/57/27 3273/57/27 +f 3274/56/27 3275/55/27 3263/55/27 +f 3263/55/27 3261/56/27 3274/56/27 +f 3275/55/27 3264/54/27 3242/54/27 +f 3242/54/27 3263/55/27 3275/55/27 +f 3264/69/7 3276/70/7 3277/71/8 +f 3277/71/8 3265/72/8 3264/69/7 +f 3265/72/8 3277/71/8 3278/73/20 +f 3278/73/20 3266/74/20 3265/72/8 +f 3266/74/21 3278/73/21 3279/75/21 +f 3279/75/21 3267/76/21 3266/74/21 +f 3267/76/22 3279/75/22 3280/77/11 +f 3280/77/11 3268/78/11 3267/76/22 +f 3268/78/11 3280/77/11 3281/79/12 +f 3281/79/12 3269/80/12 3268/78/11 +f 3269/81/12 3281/82/12 3282/83/1 +f 3282/83/1 3270/84/1 3269/81/12 +f 3270/84/1 3282/83/1 3283/85/2 +f 3283/85/2 3271/86/2 3270/84/1 +f 3271/86/2 3283/85/2 3284/87/3 +f 3284/87/3 3272/88/3 3271/86/2 +f 3272/88/3 3284/87/3 3285/89/4 +f 3285/89/4 3273/90/4 3272/88/3 +f 3273/90/4 3285/89/4 3286/91/5 +f 3286/91/5 3274/92/5 3273/90/4 +f 3274/92/5 3286/91/5 3287/93/6 +f 3287/93/6 3275/94/6 3274/92/5 +f 3275/94/6 3287/93/6 3276/70/7 +f 3276/70/7 3264/69/7 3275/94/6 +f 3288/95/26 3289/96/26 3290/96/26 +f 3290/96/26 3291/95/26 3288/95/26 +f 3292/97/26 3288/95/26 3291/95/26 +f 3291/95/26 3293/97/26 3292/97/26 +f 3294/67/26 3292/97/26 3293/97/26 +f 3293/97/26 3295/98/26 3294/67/26 +f 3296/99/26 3294/67/26 3295/98/26 +f 3295/98/26 3297/99/26 3296/99/26 +f 3298/100/26 3296/99/26 3297/99/26 +f 3297/99/26 3299/100/26 3298/100/26 +f 3300/101/26 3298/100/26 3299/100/26 +f 3299/100/26 3301/101/26 3300/101/26 +f 3302/61/26 3300/101/26 3301/101/26 +f 3301/101/26 3303/61/26 3302/61/26 +f 3304/59/26 3302/61/26 3303/61/26 +f 3303/61/26 3305/102/26 3304/59/26 +f 3306/103/26 3304/59/26 3305/102/26 +f 3305/102/26 3307/103/26 3306/103/26 +f 3308/104/26 3306/103/26 3307/103/26 +f 3307/103/26 3309/105/26 3308/104/26 +f 3310/106/26 3308/104/26 3309/105/26 +f 3309/105/26 3311/106/26 3310/106/26 +f 3289/96/26 3310/106/26 3311/106/26 +f 3311/106/26 3290/96/26 3289/96/26 +f 3291/107/34 3290/108/34 3312/109/34 +f 3312/109/34 3313/110/34 3291/107/34 +f 3293/111/35 3291/107/35 3313/110/35 +f 3313/110/35 3314/112/35 3293/111/35 +f 3295/113/36 3293/111/36 3314/112/36 +f 3314/112/36 3315/114/36 3295/113/36 +f 3297/115/37 3295/113/37 3315/114/37 +f 3315/114/37 3316/116/37 3297/115/37 +f 3299/117/38 3297/115/38 3316/116/38 +f 3316/116/38 3317/118/38 3299/117/38 +f 3301/119/39 3299/117/39 3317/118/39 +f 3317/118/39 3318/120/39 3301/119/39 +f 3303/121/28 3301/119/28 3318/120/28 +f 3318/120/28 3319/122/28 3303/121/28 +f 3305/123/29 3303/121/29 3319/122/29 +f 3319/122/29 3320/124/29 3305/123/29 +f 3307/125/30 3305/123/30 3320/124/30 +f 3320/124/30 3321/126/30 3307/125/30 +f 3309/127/31 3307/128/31 3321/129/31 +f 3321/129/31 3322/130/31 3309/127/31 +f 3311/131/32 3309/127/32 3322/130/32 +f 3322/130/32 3323/132/32 3311/131/32 +f 3290/108/33 3311/131/33 3323/132/33 +f 3323/132/33 3312/109/33 3290/108/33 +f 3313/110/48 3312/109/48 3324/133/48 +f 3324/133/48 3325/134/48 3313/110/48 +f 3314/112/49 3313/110/49 3325/134/49 +f 3325/134/49 3326/135/49 3314/112/49 +f 3315/114/50 3314/112/50 3326/135/50 +f 3326/135/50 3327/136/50 3315/114/50 +f 3316/116/51 3315/114/51 3327/136/52 +f 3327/136/52 3328/137/51 3316/116/51 +f 3317/118/53 3316/116/53 3328/137/53 +f 3328/137/53 3329/138/53 3317/118/53 +f 3318/120/54 3317/118/54 3329/138/54 +f 3329/138/54 3330/139/54 3318/120/54 +f 3319/122/386 3318/120/40 3330/139/40 +f 3330/139/40 3331/140/40 3319/122/386 +f 3320/124/41 3319/122/41 3331/140/41 +f 3331/140/41 3332/141/41 3320/124/41 +f 3321/126/42 3320/124/42 3332/141/42 +f 3332/141/42 3333/142/43 3321/126/42 +f 3322/130/44 3321/129/44 3333/143/44 +f 3333/143/44 3334/144/44 3322/130/44 +f 3323/132/45 3322/130/45 3334/144/45 +f 3334/144/45 3335/145/45 3323/132/45 +f 3312/109/46 3323/132/385 3335/145/46 +f 3335/145/46 3324/133/46 3312/109/46 +f 3336/146/64 3337/147/64 3277/148/64 +f 3277/148/64 3276/149/64 3336/146/64 +f 3337/147/66 3338/150/66 3278/151/65 +f 3278/151/65 3277/148/65 3337/147/66 +f 3338/152/67 3339/153/67 3279/154/67 +f 3279/154/67 3278/155/67 3338/152/67 +f 3339/153/68 3340/142/68 3280/156/68 +f 3280/156/68 3279/154/68 3339/153/68 +f 3340/142/70 3341/157/70 3281/158/69 +f 3281/158/69 3280/156/69 3340/142/70 +f 3341/157/71 3342/159/71 3282/160/71 +f 3282/160/71 3281/158/71 3341/157/71 +f 3342/159/56 3343/161/56 3283/162/56 +f 3283/162/56 3282/160/56 3342/159/56 +f 3343/161/57 3344/163/57 3284/164/58 +f 3284/164/58 3283/162/58 3343/161/57 +f 3344/163/59 3345/165/59 3285/166/59 +f 3285/166/59 3284/164/59 3344/163/59 +f 3345/165/60 3346/167/60 3286/168/60 +f 3286/168/60 3285/166/60 3345/165/60 +f 3346/167/61 3347/169/61 3287/170/61 +f 3287/170/61 3286/168/62 3346/167/61 +f 3347/169/63 3336/146/63 3276/149/63 +f 3276/149/63 3287/170/63 3347/169/63 +f 3289/171/7 3288/172/8 3337/173/8 +f 3337/173/8 3336/174/7 3289/171/7 +f 3288/172/8 3292/175/9 3338/176/9 +f 3338/176/9 3337/173/8 3288/172/8 +f 3292/177/9 3294/178/10 3339/179/10 +f 3339/179/10 3338/180/9 3292/177/9 +f 3294/178/10 3296/86/11 3340/181/11 +f 3340/181/11 3339/179/10 3294/178/10 +f 3296/86/11 3298/182/12 3341/183/12 +f 3341/183/12 3340/181/11 3296/86/11 +f 3298/182/12 3300/184/1 3342/185/1 +f 3342/185/1 3341/183/12 3298/182/12 +f 3300/184/1 3302/186/2 3343/187/2 +f 3343/187/2 3342/185/1 3300/184/1 +f 3302/186/2 3304/188/3 3344/189/3 +f 3344/189/3 3343/187/2 3302/186/2 +f 3304/188/3 3306/190/4 3345/191/4 +f 3345/191/4 3344/189/3 3304/188/3 +f 3306/190/4 3308/76/5 3346/192/5 +f 3346/192/5 3345/191/4 3306/190/4 +f 3308/76/5 3310/193/6 3347/194/6 +f 3347/194/6 3346/192/5 3308/76/5 +f 3310/193/6 3289/171/7 3336/174/7 +f 3336/174/7 3347/194/6 3310/193/6 +f 3348/195/131 3349/196/131 3350/197/131 +f 3350/197/131 3351/198/131 3348/195/131 +f 3352/199/75 3353/200/75 3354/201/75 +f 3354/201/75 3355/202/75 3352/199/75 +f 3356/203/132 3357/204/132 3358/205/132 +f 3358/205/132 3359/206/132 3356/203/132 +f 3360/202/73 3361/201/73 3362/200/73 +f 3362/200/73 3363/199/73 3360/202/73 +f 3364/207/83 3365/207/83 3366/208/83 +f 3366/208/83 3367/209/83 3364/207/83 +f 3368/209/133 3369/210/133 3370/211/133 +f 3357/212/134 3371/196/134 3372/213/134 +f 3372/213/134 3358/214/134 3357/212/134 +f 3373/210/135 3374/209/135 3375/211/135 +f 3376/215/136 3377/216/136 3375/211/136 +f 3375/211/136 3374/209/136 3376/215/136 +f 3378/217/137 3379/218/137 3350/197/137 +f 3350/197/137 3349/196/137 3378/217/137 +f 3380/219/139 3381/220/139 3357/204/139 +f 3357/204/139 3356/203/139 3380/219/139 +f 3382/209/76 3383/208/76 3365/207/76 +f 3365/207/76 3364/207/76 3382/209/76 +f 3357/212/140 3381/214/140 3384/213/140 +f 3384/213/140 3371/196/140 3357/212/140 +f 3376/215/141 3368/209/141 3370/211/141 +f 3370/211/141 3377/216/141 3376/215/141 +f 3385/221/73 3372/222/73 3348/222/73 +f 3348/222/73 3351/221/73 3385/221/73 +f 3372/222/87 3371/203/87 3349/203/87 +f 3349/203/87 3348/222/87 3372/222/87 +f 3371/203/86 3384/206/86 3378/206/86 +f 3378/206/86 3349/203/86 3371/203/86 +f 3384/206/75 3386/223/75 3379/223/75 +f 3379/223/75 3378/206/75 3384/206/75 +f 3386/224/142 3387/225/142 3350/226/142 +f 3350/226/142 3379/224/142 3386/224/142 +f 3387/225/143 3385/224/143 3351/224/143 +f 3351/224/143 3350/226/143 3387/225/143 +f 3381/214/135 3388/227/135 3386/228/135 +f 3386/228/135 3384/213/135 3381/214/135 +f 3388/229/73 3381/220/73 3380/219/73 +f 3380/219/73 3389/221/73 3388/229/73 +f 3359/206/75 3358/205/75 3390/230/75 +f 3390/230/75 3391/223/75 3359/206/75 +f 3390/227/133 3358/214/133 3372/213/133 +f 3372/213/133 3385/228/133 3390/227/133 +f 3354/201/75 3353/200/75 3392/199/75 +f 3392/199/75 3393/202/75 3354/201/75 +f 3390/231/144 3385/224/144 3370/232/144 +f 3370/232/144 3369/233/144 3390/231/144 +f 3385/224/143 3387/225/143 3377/234/143 +f 3377/234/143 3370/232/143 3385/224/143 +f 3387/225/142 3386/224/142 3375/232/142 +f 3375/232/142 3377/234/142 3387/225/142 +f 3386/224/145 3388/231/145 3373/233/145 +f 3373/233/145 3375/232/145 3386/224/145 +f 3362/200/73 3361/201/73 3394/202/73 +f 3394/202/73 3395/199/73 3362/200/73 +f 3366/208/83 3365/207/83 3376/235/83 +f 3376/235/83 3374/236/83 3366/208/83 +f 3365/207/76 3383/208/76 3368/236/76 +f 3368/236/76 3376/235/76 3365/207/76 +f 3391/236/27 3390/231/27 3353/237/27 +f 3353/237/27 3352/238/27 3391/236/27 +f 3390/231/27 3369/233/27 3392/239/27 +f 3392/239/27 3353/237/27 3390/231/27 +f 3369/210/480 3368/209/480 3393/240/480 +f 3393/240/480 3392/241/480 3369/210/480 +f 3368/236/26 3383/208/26 3354/242/26 +f 3354/242/26 3393/238/26 3368/236/26 +f 3383/208/26 3382/209/26 3355/240/26 +f 3355/240/26 3354/242/26 3383/208/26 +f 3367/209/26 3366/208/26 3361/242/26 +f 3361/242/26 3360/240/26 3367/209/26 +f 3366/208/26 3374/236/26 3394/238/26 +f 3394/238/26 3361/242/26 3366/208/26 +f 3374/209/147 3373/210/147 3395/241/147 +f 3395/241/147 3394/240/147 3374/209/147 +f 3373/233/27 3388/231/27 3362/237/27 +f 3362/237/27 3395/239/27 3373/233/27 +f 3388/231/27 3389/236/27 3363/238/27 +f 3363/238/27 3362/237/27 3388/231/27 +f 3396/195/10 3397/196/10 3398/197/10 +f 3398/197/10 3399/198/10 3396/195/10 +f 3400/199/101 3401/200/100 3402/201/100 +f 3402/201/100 3403/202/101 3400/199/101 +f 3404/203/108 3405/204/108 3406/205/108 +f 3406/205/108 3407/206/108 3404/203/108 +f 3408/202/98 3409/201/97 3410/200/97 +f 3410/200/97 3411/199/98 3408/202/98 +f 3412/207/166 3413/207/166 3414/208/166 +f 3414/208/166 3415/209/166 3412/207/166 +f 3416/209/167 3417/210/167 3418/211/167 +f 3405/212/168 3419/196/168 3420/213/168 +f 3420/213/168 3406/214/168 3405/212/168 +f 3421/210/169 3422/209/169 3423/211/169 +f 3424/215/170 3425/216/170 3423/211/170 +f 3423/211/170 3422/209/170 3424/215/170 +f 3426/217/171 3427/218/171 3398/197/171 +f 3398/197/171 3397/196/171 3426/217/171 +f 3428/219/99 3429/220/99 3405/204/99 +f 3405/204/99 3404/203/99 3428/219/99 +f 3430/209/173 3431/208/173 3413/207/173 +f 3413/207/173 3412/207/173 3430/209/173 +f 3405/212/174 3429/214/174 3432/213/174 +f 3432/213/174 3419/196/174 3405/212/174 +f 3424/215/175 3416/209/175 3418/211/175 +f 3418/211/175 3425/216/175 3424/215/175 +f 3433/221/98 3420/222/98 3396/222/97 +f 3396/222/97 3399/221/97 3433/221/98 +f 3420/222/113 3419/203/113 3397/203/113 +f 3397/203/113 3396/222/113 3420/222/113 +f 3419/203/112 3432/206/112 3426/206/112 +f 3426/206/112 3397/203/112 3419/203/112 +f 3432/206/100 3434/223/100 3427/223/100 +f 3427/223/100 3426/206/100 3432/206/100 +f 3434/224/176 3435/225/176 3398/226/176 +f 3398/226/176 3427/224/176 3434/224/176 +f 3435/225/117 3433/224/117 3399/224/117 +f 3399/224/117 3398/226/117 3435/225/117 +f 3429/214/169 3436/227/169 3434/228/169 +f 3434/228/169 3432/213/169 3429/214/169 +f 3436/229/98 3429/220/98 3428/219/98 +f 3428/219/98 3437/221/98 3436/229/98 +f 3407/206/100 3406/205/100 3438/230/100 +f 3438/230/100 3439/223/100 3407/206/100 +f 3438/227/167 3406/214/167 3420/213/167 +f 3420/213/167 3433/228/167 3438/227/167 +f 3402/201/100 3401/200/100 3440/199/101 +f 3440/199/101 3441/202/101 3402/201/100 +f 3438/231/481 3433/224/481 3418/232/481 +f 3418/232/481 3417/233/481 3438/231/481 +f 3433/224/117 3435/225/117 3425/234/117 +f 3425/234/117 3418/232/117 3433/224/117 +f 3435/225/176 3434/224/176 3423/232/176 +f 3423/232/176 3425/234/176 3435/225/176 +f 3434/224/115 3436/231/115 3421/233/115 +f 3421/233/115 3423/232/115 3434/224/115 +f 3410/200/97 3409/201/97 3442/202/98 +f 3442/202/98 3443/199/98 3410/200/97 +f 3414/208/166 3413/207/166 3424/235/166 +f 3424/235/166 3422/236/166 3414/208/166 +f 3413/207/173 3431/208/173 3416/236/173 +f 3416/236/173 3424/235/173 3413/207/173 +f 3439/236/27 3438/231/27 3401/237/27 +f 3401/237/27 3400/238/27 3439/236/27 +f 3438/231/27 3417/233/27 3440/239/27 +f 3440/239/27 3401/237/27 3438/231/27 +f 3417/210/178 3416/209/178 3441/240/178 +f 3441/240/178 3440/241/178 3417/210/178 +f 3416/236/26 3431/208/26 3402/242/26 +f 3402/242/26 3441/238/26 3416/236/26 +f 3431/208/26 3430/209/26 3403/240/26 +f 3403/240/26 3402/242/26 3431/208/26 +f 3415/209/26 3414/208/26 3409/242/26 +f 3409/242/26 3408/240/26 3415/209/26 +f 3414/208/26 3422/236/26 3442/238/26 +f 3442/238/26 3409/242/26 3414/208/26 +f 3422/209/179 3421/210/179 3443/241/179 +f 3443/241/179 3442/240/179 3422/209/179 +f 3421/233/27 3436/231/27 3410/237/27 +f 3410/237/27 3443/239/27 3421/233/27 +f 3436/231/27 3437/236/27 3411/238/27 +f 3411/238/27 3410/237/27 3436/231/27 +f 3444/243/183 3445/244/183 3446/245/183 +f 3446/245/183 3447/246/183 3444/243/183 +f 3444/247/184 3447/248/184 3448/249/184 +f 3448/249/184 3449/250/184 3444/247/184 +f 3447/246/185 3446/245/185 3450/251/185 +f 3450/251/185 3448/252/185 3447/246/185 +f 3446/248/186 3445/247/186 3451/250/186 +f 3451/250/186 3450/249/186 3446/248/186 +f 3452/195/164 3453/196/164 3454/197/164 +f 3454/197/164 3455/198/164 3452/195/164 +f 3456/199/101 3457/200/100 3458/201/100 +f 3458/201/100 3459/202/101 3456/199/101 +f 3460/203/108 3461/204/108 3462/205/108 +f 3462/205/108 3463/206/108 3460/203/108 +f 3464/202/98 3465/201/97 3466/200/97 +f 3466/200/97 3467/199/98 3464/202/98 +f 3468/207/166 3469/207/166 3470/208/166 +f 3470/208/166 3471/209/166 3468/207/166 +f 3472/209/167 3473/210/167 3474/211/167 +f 3461/212/168 3475/196/168 3476/213/168 +f 3476/213/168 3462/214/168 3461/212/168 +f 3477/210/169 3478/209/169 3479/211/169 +f 3480/215/170 3481/216/170 3479/211/170 +f 3479/211/170 3478/209/170 3480/215/170 +f 3482/217/171 3483/218/171 3454/197/171 +f 3454/197/171 3453/196/171 3482/217/171 +f 3484/219/172 3485/220/172 3461/204/99 +f 3461/204/99 3460/203/99 3484/219/172 +f 3486/209/173 3487/208/173 3469/207/173 +f 3469/207/173 3468/207/173 3486/209/173 +f 3461/212/174 3485/214/174 3488/213/174 +f 3488/213/174 3475/196/174 3461/212/174 +f 3480/215/175 3472/209/175 3474/211/175 +f 3474/211/175 3481/216/175 3480/215/175 +f 3489/221/98 3476/222/98 3452/222/98 +f 3452/222/98 3455/221/98 3489/221/98 +f 3476/222/113 3475/203/113 3453/203/113 +f 3453/203/113 3452/222/113 3476/222/113 +f 3475/203/112 3488/206/112 3482/206/112 +f 3482/206/112 3453/203/112 3475/203/112 +f 3488/206/100 3490/223/100 3483/223/100 +f 3483/223/100 3482/206/100 3488/206/100 +f 3490/224/176 3491/225/176 3454/226/176 +f 3454/226/176 3483/224/176 3490/224/176 +f 3491/225/117 3489/224/117 3455/224/117 +f 3455/224/117 3454/226/117 3491/225/117 +f 3485/214/169 3492/227/169 3490/228/169 +f 3490/228/169 3488/213/169 3485/214/169 +f 3492/229/125 3485/220/125 3484/219/97 +f 3484/219/97 3493/221/97 3492/229/125 +f 3463/206/100 3462/205/101 3494/230/101 +f 3494/230/101 3495/223/100 3463/206/100 +f 3494/227/167 3462/214/167 3476/213/167 +f 3476/213/167 3489/228/167 3494/227/167 +f 3458/201/100 3457/200/100 3496/199/101 +f 3496/199/101 3497/202/101 3458/201/100 +f 3494/231/481 3489/224/481 3474/232/481 +f 3474/232/481 3473/233/481 3494/231/481 +f 3489/224/117 3491/225/117 3481/234/117 +f 3481/234/117 3474/232/117 3489/224/117 +f 3491/225/176 3490/224/176 3479/232/176 +f 3479/232/176 3481/234/176 3491/225/176 +f 3490/224/115 3492/231/115 3477/233/115 +f 3477/233/115 3479/232/115 3490/224/115 +f 3466/200/97 3465/201/97 3498/202/98 +f 3498/202/98 3499/199/98 3466/200/97 +f 3470/208/166 3469/207/166 3480/235/166 +f 3480/235/166 3478/236/166 3470/208/166 +f 3469/207/173 3487/208/173 3472/236/173 +f 3472/236/173 3480/235/173 3469/207/173 +f 3495/236/27 3494/231/27 3457/237/27 +f 3457/237/27 3456/238/27 3495/236/27 +f 3494/231/27 3473/233/27 3496/239/27 +f 3496/239/27 3457/237/27 3494/231/27 +f 3473/210/178 3472/209/178 3497/240/178 +f 3497/240/178 3496/241/178 3473/210/178 +f 3472/236/26 3487/208/26 3458/242/26 +f 3458/242/26 3497/238/26 3472/236/26 +f 3487/208/26 3486/209/26 3459/240/26 +f 3459/240/26 3458/242/26 3487/208/26 +f 3471/209/26 3470/208/26 3465/242/26 +f 3465/242/26 3464/240/26 3471/209/26 +f 3470/208/26 3478/236/26 3498/238/26 +f 3498/238/26 3465/242/26 3470/208/26 +f 3478/209/179 3477/210/179 3499/241/179 +f 3499/241/179 3498/240/179 3478/209/179 +f 3477/233/27 3492/231/27 3466/237/27 +f 3466/237/27 3499/239/27 3477/233/27 +f 3492/231/27 3493/236/27 3467/238/27 +f 3467/238/27 3466/237/27 3492/231/27 +f 3500/243/156 3501/244/156 3502/245/156 +f 3502/245/156 3503/246/156 3500/243/156 +f 3500/247/157 3503/248/157 3504/249/157 +f 3504/249/157 3505/250/157 3500/247/157 +f 3503/246/158 3502/245/158 3506/251/158 +f 3506/251/158 3504/252/158 3503/246/158 +f 3502/248/159 3501/247/159 3507/250/159 +f 3507/250/159 3506/249/159 3502/248/159 +f 3508/195/72 3509/196/72 3510/197/72 +f 3510/197/72 3511/198/72 3508/195/72 +f 3512/199/73 3513/200/73 3514/201/73 +f 3514/201/73 3515/202/73 3512/199/73 +f 3516/203/74 3517/204/74 3518/205/74 +f 3518/205/74 3519/206/74 3516/203/74 +f 3520/202/75 3521/201/75 3522/200/75 +f 3522/200/75 3523/199/75 3520/202/75 +f 3524/207/76 3525/207/76 3526/208/76 +f 3526/208/76 3527/209/76 3524/207/76 +f 3528/209/77 3529/210/77 3530/211/77 +f 3517/212/78 3531/196/78 3532/213/78 +f 3532/213/78 3518/214/78 3517/212/78 +f 3533/210/79 3534/209/79 3535/211/79 +f 3536/215/80 3537/216/80 3535/211/80 +f 3535/211/80 3534/209/80 3536/215/80 +f 3538/217/81 3539/218/81 3510/197/482 +f 3510/197/482 3509/196/482 3538/217/81 +f 3540/219/82 3541/220/82 3517/204/82 +f 3517/204/82 3516/203/82 3540/219/82 +f 3542/209/83 3543/208/83 3525/207/83 +f 3525/207/83 3524/207/83 3542/209/83 +f 3517/212/84 3541/214/84 3544/213/84 +f 3544/213/84 3531/196/84 3517/212/84 +f 3536/215/85 3528/209/85 3530/211/85 +f 3530/211/85 3537/216/85 3536/215/85 +f 3545/221/75 3532/222/75 3508/222/75 +f 3508/222/75 3511/221/75 3545/221/75 +f 3532/222/86 3531/203/86 3509/203/86 +f 3509/203/86 3508/222/86 3532/222/86 +f 3531/203/87 3544/206/87 3538/206/87 +f 3538/206/87 3509/203/87 3531/203/87 +f 3544/206/73 3546/223/73 3539/223/73 +f 3539/223/73 3538/206/73 3544/206/73 +f 3546/224/88 3547/225/88 3510/226/88 +f 3510/226/88 3539/224/88 3546/224/88 +f 3547/225/89 3545/224/89 3511/224/89 +f 3511/224/89 3510/226/89 3547/225/89 +f 3541/214/79 3548/227/79 3546/228/79 +f 3546/228/79 3544/213/79 3541/214/79 +f 3548/229/75 3541/220/75 3540/219/75 +f 3540/219/75 3549/221/75 3548/229/75 +f 3519/206/73 3518/205/73 3550/230/73 +f 3550/230/73 3551/223/73 3519/206/73 +f 3550/227/77 3518/214/77 3532/213/77 +f 3532/213/77 3545/228/77 3550/227/77 +f 3514/201/73 3513/200/73 3552/199/73 +f 3552/199/73 3553/202/73 3514/201/73 +f 3550/231/90 3545/224/90 3530/232/90 +f 3530/232/90 3529/233/90 3550/231/90 +f 3545/224/89 3547/225/89 3537/234/89 +f 3537/234/89 3530/232/89 3545/224/89 +f 3547/225/88 3546/224/88 3535/232/88 +f 3535/232/88 3537/234/88 3547/225/88 +f 3546/224/92 3548/231/92 3533/233/92 +f 3533/233/92 3535/232/92 3546/224/92 +f 3522/200/75 3521/201/75 3554/202/75 +f 3554/202/75 3555/199/75 3522/200/75 +f 3526/208/76 3525/207/76 3536/235/76 +f 3536/235/76 3534/236/76 3526/208/76 +f 3525/207/83 3543/208/83 3528/236/83 +f 3528/236/83 3536/235/83 3525/207/83 +f 3551/236/27 3550/231/27 3513/237/27 +f 3513/237/27 3512/238/27 3551/236/27 +f 3550/231/27 3529/233/27 3552/239/27 +f 3552/239/27 3513/237/27 3550/231/27 +f 3529/210/94 3528/209/94 3553/240/94 +f 3553/240/94 3552/241/94 3529/210/94 +f 3528/236/26 3543/208/26 3514/242/26 +f 3514/242/26 3553/238/26 3528/236/26 +f 3543/208/26 3542/209/26 3515/240/26 +f 3515/240/26 3514/242/26 3543/208/26 +f 3527/209/26 3526/208/26 3521/242/26 +f 3521/242/26 3520/240/26 3527/209/26 +f 3526/208/26 3534/236/26 3554/238/26 +f 3554/238/26 3521/242/26 3526/208/26 +f 3534/209/95 3533/210/95 3555/241/95 +f 3555/241/95 3554/240/95 3534/209/95 +f 3533/233/27 3548/231/27 3522/237/27 +f 3522/237/27 3555/239/27 3533/233/27 +f 3548/231/27 3549/236/27 3523/238/27 +f 3523/238/27 3522/237/27 3548/231/27 +f 3556/243/154 3557/244/154 3558/245/154 +f 3558/245/154 3559/246/154 3556/243/154 +f 3556/247/7 3559/248/7 3560/249/7 +f 3560/249/7 3561/250/7 3556/247/7 +f 3559/246/155 3558/245/155 3562/251/155 +f 3562/251/155 3560/252/155 3559/246/155 +f 3558/248/1 3557/247/1 3563/250/1 +f 3563/250/1 3562/249/1 3558/248/1 +f 3564/243/180 3565/244/180 3566/245/180 +f 3566/245/180 3567/246/180 3564/243/180 +f 3564/247/153 3567/248/153 3568/249/153 +f 3568/249/153 3569/250/153 3564/247/153 +f 3567/246/181 3566/245/181 3570/251/181 +f 3570/251/181 3568/252/181 3567/246/181 +f 3566/248/151 3565/247/151 3571/250/151 +f 3571/250/151 3570/249/151 3566/248/151 +f 3572/243/148 3573/244/148 3574/245/148 +f 3574/245/148 3575/246/148 3572/243/148 +f 3572/247/1 3575/248/1 3576/249/1 +f 3576/249/1 3577/250/1 3572/247/1 +f 3575/246/149 3574/245/149 3578/251/149 +f 3578/251/149 3576/252/149 3575/246/149 +f 3574/248/7 3573/247/7 3579/250/7 +f 3579/250/7 3578/249/7 3574/248/7 +f 3580/243/127 3581/244/127 3582/245/127 +f 3582/245/127 3583/246/127 3580/243/127 +f 3580/247/128 3583/248/128 3584/249/128 +f 3584/249/128 3585/250/128 3580/247/128 +f 3583/246/129 3582/245/129 3586/251/129 +f 3586/251/129 3584/252/129 3583/246/129 +f 3582/248/130 3581/247/130 3587/250/130 +f 3587/250/130 3586/249/130 3582/248/130 +f 3588/243/187 3589/244/187 3590/245/187 +f 3590/245/187 3591/246/187 3588/243/187 +f 3588/247/163 3591/248/163 3592/249/163 +f 3592/249/163 3593/250/163 3588/247/163 +f 3591/246/188 3590/245/188 3594/251/188 +f 3594/251/188 3592/252/188 3591/246/188 +f 3590/248/161 3589/247/161 3595/250/161 +f 3595/250/161 3594/249/161 3590/248/161 +f 3596/195/72 3597/196/72 3598/197/72 +f 3598/197/72 3599/198/72 3596/195/72 +f 3600/199/73 3601/200/73 3602/201/73 +f 3602/201/73 3603/202/73 3600/199/73 +f 3604/203/74 3605/204/74 3606/205/74 +f 3606/205/74 3607/206/74 3604/203/74 +f 3608/202/75 3609/201/75 3610/200/75 +f 3610/200/75 3611/199/75 3608/202/75 +f 3612/207/76 3613/207/76 3614/208/76 +f 3614/208/76 3615/209/76 3612/207/76 +f 3616/209/77 3617/210/77 3618/211/77 +f 3605/212/78 3619/196/78 3620/213/78 +f 3620/213/78 3606/214/78 3605/212/78 +f 3621/210/79 3622/209/79 3623/211/79 +f 3624/215/80 3625/216/80 3623/211/80 +f 3623/211/80 3622/209/80 3624/215/80 +f 3626/217/81 3627/218/81 3598/197/482 +f 3598/197/482 3597/196/482 3626/217/81 +f 3628/219/82 3629/220/82 3605/204/82 +f 3605/204/82 3604/203/82 3628/219/82 +f 3630/209/83 3631/208/83 3613/207/83 +f 3613/207/83 3612/207/83 3630/209/83 +f 3605/212/84 3629/214/84 3632/213/84 +f 3632/213/84 3619/196/84 3605/212/84 +f 3624/215/85 3616/209/85 3618/211/85 +f 3618/211/85 3625/216/85 3624/215/85 +f 3633/221/75 3620/222/75 3596/222/75 +f 3596/222/75 3599/221/75 3633/221/75 +f 3620/222/86 3619/203/86 3597/203/86 +f 3597/203/86 3596/222/86 3620/222/86 +f 3619/203/87 3632/206/87 3626/206/87 +f 3626/206/87 3597/203/87 3619/203/87 +f 3632/206/73 3634/223/73 3627/223/73 +f 3627/223/73 3626/206/73 3632/206/73 +f 3634/224/88 3635/225/88 3598/226/88 +f 3598/226/88 3627/224/88 3634/224/88 +f 3635/225/89 3633/224/89 3599/224/89 +f 3599/224/89 3598/226/89 3635/225/89 +f 3629/214/79 3636/227/79 3634/228/79 +f 3634/228/79 3632/213/79 3629/214/79 +f 3636/229/75 3629/220/75 3628/219/75 +f 3628/219/75 3637/221/75 3636/229/75 +f 3607/206/73 3606/205/73 3638/230/73 +f 3638/230/73 3639/223/73 3607/206/73 +f 3638/227/77 3606/214/77 3620/213/77 +f 3620/213/77 3633/228/77 3638/227/77 +f 3602/201/73 3601/200/73 3640/199/73 +f 3640/199/73 3641/202/73 3602/201/73 +f 3638/231/90 3633/224/90 3618/232/90 +f 3618/232/90 3617/233/90 3638/231/90 +f 3633/224/89 3635/225/89 3625/234/89 +f 3625/234/89 3618/232/89 3633/224/89 +f 3635/225/88 3634/224/88 3623/232/88 +f 3623/232/88 3625/234/88 3635/225/88 +f 3634/224/92 3636/231/92 3621/233/92 +f 3621/233/92 3623/232/92 3634/224/92 +f 3610/200/75 3609/201/75 3642/202/75 +f 3642/202/75 3643/199/75 3610/200/75 +f 3614/208/76 3613/207/76 3624/235/76 +f 3624/235/76 3622/236/76 3614/208/76 +f 3613/207/83 3631/208/83 3616/236/83 +f 3616/236/83 3624/235/83 3613/207/83 +f 3639/236/27 3638/231/27 3601/237/27 +f 3601/237/27 3600/238/27 3639/236/27 +f 3638/231/27 3617/233/27 3640/239/27 +f 3640/239/27 3601/237/27 3638/231/27 +f 3617/210/94 3616/209/94 3641/240/94 +f 3641/240/94 3640/241/94 3617/210/94 +f 3616/236/26 3631/208/26 3602/242/26 +f 3602/242/26 3641/238/26 3616/236/26 +f 3631/208/26 3630/209/26 3603/240/26 +f 3603/240/26 3602/242/26 3631/208/26 +f 3615/209/26 3614/208/26 3609/242/26 +f 3609/242/26 3608/240/26 3615/209/26 +f 3614/208/26 3622/236/26 3642/238/26 +f 3642/238/26 3609/242/26 3614/208/26 +f 3622/209/95 3621/210/95 3643/241/95 +f 3643/241/95 3642/240/95 3622/209/95 +f 3621/233/27 3636/231/27 3610/237/27 +f 3610/237/27 3643/239/27 3621/233/27 +f 3636/231/27 3637/236/27 3611/238/27 +f 3611/238/27 3610/237/27 3636/231/27 +f 3644/195/124 3645/196/96 3646/197/96 +f 3646/197/96 3647/198/124 3644/195/124 +f 3648/199/125 3649/200/125 3650/201/125 +f 3650/201/125 3651/202/125 3648/199/125 +f 3652/203/99 3653/204/99 3654/205/99 +f 3654/205/99 3655/206/99 3652/203/99 +f 3656/202/165 3657/201/165 3658/200/165 +f 3658/200/165 3659/199/165 3656/202/165 +f 3660/207/102 3661/207/102 3662/208/102 +f 3662/208/102 3663/209/102 3660/207/102 +f 3664/209/103 3665/210/103 3666/211/103 +f 3653/212/104 3667/196/104 3668/213/104 +f 3668/213/104 3654/214/104 3653/212/104 +f 3669/210/105 3670/209/105 3671/211/105 +f 3672/215/106 3673/216/106 3671/211/106 +f 3671/211/106 3670/209/106 3672/215/106 +f 3674/217/107 3675/218/107 3646/197/107 +f 3646/197/107 3645/196/107 3674/217/107 +f 3676/219/126 3677/220/108 3653/204/108 +f 3653/204/108 3652/203/108 3676/219/126 +f 3678/209/109 3679/208/109 3661/207/109 +f 3661/207/109 3660/207/109 3678/209/109 +f 3653/212/110 3677/214/110 3680/213/110 +f 3680/213/110 3667/196/110 3653/212/110 +f 3672/215/111 3664/209/111 3666/211/111 +f 3666/211/111 3673/216/111 3672/215/111 +f 3681/221/165 3668/222/165 3644/222/165 +f 3644/222/165 3647/221/165 3681/221/165 +f 3668/222/112 3667/203/112 3645/203/112 +f 3645/203/112 3644/222/112 3668/222/112 +f 3667/203/113 3680/206/113 3674/206/113 +f 3674/206/113 3645/203/113 3667/203/113 +f 3680/206/125 3682/223/125 3675/223/125 +f 3675/223/125 3674/206/125 3680/206/125 +f 3682/224/114 3683/225/114 3646/226/114 +f 3646/226/114 3675/224/114 3682/224/114 +f 3683/225/115 3681/224/115 3647/224/115 +f 3647/224/115 3646/226/115 3683/225/115 +f 3677/214/105 3684/227/105 3682/228/105 +f 3682/228/105 3680/213/105 3677/214/105 +f 3684/229/165 3677/220/165 3676/219/165 +f 3676/219/165 3685/221/165 3684/229/165 +f 3655/206/125 3654/205/125 3686/230/125 +f 3686/230/125 3687/223/125 3655/206/125 +f 3686/227/103 3654/214/103 3668/213/103 +f 3668/213/103 3681/228/103 3686/227/103 +f 3650/201/125 3649/200/125 3688/199/125 +f 3688/199/125 3689/202/125 3650/201/125 +f 3686/231/483 3681/224/483 3666/232/483 +f 3666/232/483 3665/233/483 3686/231/483 +f 3681/224/115 3683/225/115 3673/234/115 +f 3673/234/115 3666/232/115 3681/224/115 +f 3683/225/114 3682/224/114 3671/232/114 +f 3671/232/114 3673/234/114 3683/225/114 +f 3682/224/117 3684/231/117 3669/233/117 +f 3669/233/117 3671/232/117 3682/224/117 +f 3658/200/165 3657/201/165 3690/202/165 +f 3690/202/165 3691/199/165 3658/200/165 +f 3662/208/102 3661/207/102 3672/235/102 +f 3672/235/102 3670/236/102 3662/208/102 +f 3661/207/109 3679/208/109 3664/236/109 +f 3664/236/109 3672/235/109 3661/207/109 +f 3687/236/27 3686/231/27 3649/237/27 +f 3649/237/27 3648/238/27 3687/236/27 +f 3686/231/27 3665/233/27 3688/239/27 +f 3688/239/27 3649/237/27 3686/231/27 +f 3665/210/118 3664/209/118 3689/240/118 +f 3689/240/118 3688/241/118 3665/210/118 +f 3664/236/26 3679/208/26 3650/242/26 +f 3650/242/26 3689/238/26 3664/236/26 +f 3679/208/26 3678/209/26 3651/240/26 +f 3651/240/26 3650/242/26 3679/208/26 +f 3663/209/26 3662/208/26 3657/242/26 +f 3657/242/26 3656/240/26 3663/209/26 +f 3662/208/26 3670/236/26 3690/238/26 +f 3690/238/26 3657/242/26 3662/208/26 +f 3670/209/119 3669/210/119 3691/241/119 +f 3691/241/119 3690/240/119 3670/209/119 +f 3669/233/27 3684/231/27 3658/237/27 +f 3658/237/27 3691/239/27 3669/233/27 +f 3684/231/27 3685/236/27 3659/238/27 +f 3659/238/27 3658/237/27 3684/231/27 +f 3692/243/150 3693/244/150 3694/245/150 +f 3694/245/150 3695/246/150 3692/243/150 +f 3692/247/151 3695/248/151 3696/249/151 +f 3696/249/151 3697/250/151 3692/247/151 +f 3695/246/152 3694/245/152 3698/251/152 +f 3698/251/152 3696/252/152 3695/246/152 +f 3694/248/153 3693/247/153 3699/250/153 +f 3699/250/153 3698/249/153 3694/248/153 +f 3700/195/96 3701/196/124 3702/197/124 +f 3702/197/124 3703/198/96 3700/195/96 +f 3704/199/125 3705/200/125 3706/201/125 +f 3706/201/125 3707/202/125 3704/199/125 +f 3708/203/99 3709/204/99 3710/205/99 +f 3710/205/99 3711/206/99 3708/203/99 +f 3712/202/165 3713/201/165 3714/200/165 +f 3714/200/165 3715/199/165 3712/202/165 +f 3716/207/102 3717/207/102 3718/208/102 +f 3718/208/102 3719/209/102 3716/207/102 +f 3720/209/103 3721/210/103 3722/211/103 +f 3709/212/104 3723/196/104 3724/213/104 +f 3724/213/104 3710/214/104 3709/212/104 +f 3725/210/105 3726/209/105 3727/211/105 +f 3728/215/106 3729/216/106 3727/211/106 +f 3727/211/106 3726/209/106 3728/215/106 +f 3730/217/107 3731/218/107 3702/197/107 +f 3702/197/107 3701/196/107 3730/217/107 +f 3732/219/108 3733/220/108 3709/204/126 +f 3709/204/126 3708/203/108 3732/219/108 +f 3734/209/109 3735/208/109 3717/207/109 +f 3717/207/109 3716/207/109 3734/209/109 +f 3709/212/110 3733/214/110 3736/213/110 +f 3736/213/110 3723/196/110 3709/212/110 +f 3728/215/111 3720/209/111 3722/211/111 +f 3722/211/111 3729/216/111 3728/215/111 +f 3737/221/165 3724/222/165 3700/222/165 +f 3700/222/165 3703/221/165 3737/221/165 +f 3724/222/112 3723/203/112 3701/203/112 +f 3701/203/112 3700/222/112 3724/222/112 +f 3723/203/113 3736/206/113 3730/206/113 +f 3730/206/113 3701/203/113 3723/203/113 +f 3736/206/125 3738/223/125 3731/223/125 +f 3731/223/125 3730/206/125 3736/206/125 +f 3738/224/114 3739/225/114 3702/226/114 +f 3702/226/114 3731/224/114 3738/224/114 +f 3739/225/115 3737/224/115 3703/224/115 +f 3703/224/115 3702/226/115 3739/225/115 +f 3733/214/105 3740/227/105 3738/228/105 +f 3738/228/105 3736/213/105 3733/214/105 +f 3740/229/165 3733/220/165 3732/219/165 +f 3732/219/165 3741/221/165 3740/229/165 +f 3711/206/125 3710/205/125 3742/230/125 +f 3742/230/125 3743/223/125 3711/206/125 +f 3742/227/103 3710/214/103 3724/213/103 +f 3724/213/103 3737/228/103 3742/227/103 +f 3706/201/125 3705/200/125 3744/199/125 +f 3744/199/125 3745/202/125 3706/201/125 +f 3742/231/483 3737/224/483 3722/232/483 +f 3722/232/483 3721/233/483 3742/231/483 +f 3737/224/115 3739/225/115 3729/234/115 +f 3729/234/115 3722/232/115 3737/224/115 +f 3739/225/114 3738/224/114 3727/232/114 +f 3727/232/114 3729/234/114 3739/225/114 +f 3738/224/117 3740/231/117 3725/233/117 +f 3725/233/117 3727/232/117 3738/224/117 +f 3714/200/165 3713/201/165 3746/202/165 +f 3746/202/165 3747/199/165 3714/200/165 +f 3718/208/102 3717/207/102 3728/235/102 +f 3728/235/102 3726/236/102 3718/208/102 +f 3717/207/109 3735/208/109 3720/236/109 +f 3720/236/109 3728/235/109 3717/207/109 +f 3743/236/27 3742/231/27 3705/237/27 +f 3705/237/27 3704/238/27 3743/236/27 +f 3742/231/27 3721/233/27 3744/239/27 +f 3744/239/27 3705/237/27 3742/231/27 +f 3721/210/118 3720/209/118 3745/240/118 +f 3745/240/118 3744/241/118 3721/210/118 +f 3720/236/26 3735/208/26 3706/242/26 +f 3706/242/26 3745/238/26 3720/236/26 +f 3735/208/26 3734/209/26 3707/240/26 +f 3707/240/26 3706/242/26 3735/208/26 +f 3719/209/26 3718/208/26 3713/242/26 +f 3713/242/26 3712/240/26 3719/209/26 +f 3718/208/26 3726/236/26 3746/238/26 +f 3746/238/26 3713/242/26 3718/208/26 +f 3726/209/119 3725/210/119 3747/241/119 +f 3747/241/119 3746/240/119 3726/209/119 +f 3725/233/27 3740/231/27 3714/237/27 +f 3714/237/27 3747/239/27 3725/233/27 +f 3740/231/27 3741/236/27 3715/238/27 +f 3715/238/27 3714/237/27 3740/231/27 +f 3748/243/120 3749/244/120 3750/245/120 +f 3750/245/120 3751/246/120 3748/243/120 +f 3748/247/121 3751/248/121 3752/249/121 +f 3752/249/121 3753/250/121 3748/247/121 +f 3751/246/122 3750/245/122 3754/251/122 +f 3754/251/122 3752/252/122 3751/246/122 +f 3750/248/123 3749/247/123 3755/250/123 +f 3755/250/123 3754/249/123 3750/248/123 +f 3756/195/131 3757/196/131 3758/197/131 +f 3758/197/131 3759/198/131 3756/195/131 +f 3760/199/75 3761/200/75 3762/201/75 +f 3762/201/75 3763/202/75 3760/199/75 +f 3764/203/132 3765/204/132 3766/205/132 +f 3766/205/132 3767/206/132 3764/203/132 +f 3768/202/73 3769/201/73 3770/200/73 +f 3770/200/73 3771/199/73 3768/202/73 +f 3772/207/83 3773/207/83 3774/208/83 +f 3774/208/83 3775/209/83 3772/207/83 +f 3776/209/133 3777/210/133 3778/211/133 +f 3765/212/134 3779/196/134 3780/213/134 +f 3780/213/134 3766/214/134 3765/212/134 +f 3781/210/135 3782/209/135 3783/211/135 +f 3784/215/136 3785/216/136 3783/211/136 +f 3783/211/136 3782/209/136 3784/215/136 +f 3786/217/137 3787/218/137 3758/197/137 +f 3758/197/137 3757/196/137 3786/217/137 +f 3788/219/139 3789/220/139 3765/204/139 +f 3765/204/139 3764/203/139 3788/219/139 +f 3790/209/76 3791/208/76 3773/207/76 +f 3773/207/76 3772/207/76 3790/209/76 +f 3765/212/140 3789/214/140 3792/213/140 +f 3792/213/140 3779/196/140 3765/212/140 +f 3784/215/141 3776/209/141 3778/211/141 +f 3778/211/141 3785/216/141 3784/215/141 +f 3793/221/73 3780/222/73 3756/222/73 +f 3756/222/73 3759/221/73 3793/221/73 +f 3780/222/87 3779/203/87 3757/203/87 +f 3757/203/87 3756/222/87 3780/222/87 +f 3779/203/86 3792/206/86 3786/206/86 +f 3786/206/86 3757/203/86 3779/203/86 +f 3792/206/75 3794/223/75 3787/223/75 +f 3787/223/75 3786/206/75 3792/206/75 +f 3794/224/142 3795/225/142 3758/226/142 +f 3758/226/142 3787/224/142 3794/224/142 +f 3795/225/143 3793/224/143 3759/224/143 +f 3759/224/143 3758/226/143 3795/225/143 +f 3789/214/135 3796/227/135 3794/228/135 +f 3794/228/135 3792/213/135 3789/214/135 +f 3796/229/73 3789/220/73 3788/219/73 +f 3788/219/73 3797/221/73 3796/229/73 +f 3767/206/75 3766/205/75 3798/230/75 +f 3798/230/75 3799/223/75 3767/206/75 +f 3798/227/133 3766/214/133 3780/213/133 +f 3780/213/133 3793/228/133 3798/227/133 +f 3762/201/75 3761/200/75 3800/199/75 +f 3800/199/75 3801/202/75 3762/201/75 +f 3798/231/144 3793/224/144 3778/232/144 +f 3778/232/144 3777/233/144 3798/231/144 +f 3793/224/143 3795/225/143 3785/234/143 +f 3785/234/143 3778/232/143 3793/224/143 +f 3795/225/142 3794/224/142 3783/232/142 +f 3783/232/142 3785/234/142 3795/225/142 +f 3794/224/145 3796/231/145 3781/233/145 +f 3781/233/145 3783/232/145 3794/224/145 +f 3770/200/73 3769/201/73 3802/202/73 +f 3802/202/73 3803/199/73 3770/200/73 +f 3774/208/83 3773/207/83 3784/235/83 +f 3784/235/83 3782/236/83 3774/208/83 +f 3773/207/76 3791/208/76 3776/236/76 +f 3776/236/76 3784/235/76 3773/207/76 +f 3799/236/27 3798/231/27 3761/237/27 +f 3761/237/27 3760/238/27 3799/236/27 +f 3798/231/27 3777/233/27 3800/239/27 +f 3800/239/27 3761/237/27 3798/231/27 +f 3777/210/480 3776/209/480 3801/240/480 +f 3801/240/480 3800/241/480 3777/210/480 +f 3776/236/26 3791/208/26 3762/242/26 +f 3762/242/26 3801/238/26 3776/236/26 +f 3791/208/26 3790/209/26 3763/240/26 +f 3763/240/26 3762/242/26 3791/208/26 +f 3775/209/26 3774/208/26 3769/242/26 +f 3769/242/26 3768/240/26 3775/209/26 +f 3774/208/26 3782/236/26 3802/238/26 +f 3802/238/26 3769/242/26 3774/208/26 +f 3782/209/147 3781/210/147 3803/241/147 +f 3803/241/147 3802/240/147 3782/209/147 +f 3781/233/27 3796/231/27 3770/237/27 +f 3770/237/27 3803/239/27 3781/233/27 +f 3796/231/27 3797/236/27 3771/238/27 +f 3771/238/27 3770/237/27 3796/231/27 +f 3804/243/160 3805/244/160 3806/245/160 +f 3806/245/160 3807/246/160 3804/243/160 +f 3804/247/161 3807/248/161 3808/249/161 +f 3808/249/161 3809/250/161 3804/247/161 +f 3807/246/162 3806/245/162 3810/251/162 +f 3810/251/162 3808/252/162 3807/246/162 +f 3806/248/163 3805/247/163 3811/250/163 +f 3811/250/163 3810/249/163 3806/248/163 +f 3812/253/19 3813/254/19 3814/255/19 +f 3814/255/19 3815/256/19 3812/253/19 +f 3816/257/20 3812/253/20 3815/256/20 +f 3815/256/20 3817/258/20 3816/257/20 +f 3818/259/21 3816/257/21 3817/258/21 +f 3817/258/21 3819/260/21 3818/259/21 +f 3820/261/22 3818/262/191 3819/263/22 +f 3819/263/22 3821/264/22 3820/261/22 +f 3822/265/23 3820/261/23 3821/264/23 +f 3821/264/23 3823/266/23 3822/265/23 +f 3824/267/24 3822/265/24 3823/266/24 +f 3823/266/24 3825/268/24 3824/267/24 +f 3826/269/192 3824/267/13 3825/268/13 +f 3825/268/13 3827/270/192 3826/269/192 +f 3828/271/14 3826/269/14 3827/270/14 +f 3827/270/14 3829/272/14 3828/271/14 +f 3830/273/118 3828/271/15 3829/272/15 +f 3829/272/15 3831/274/15 3830/273/118 +f 3832/275/16 3830/273/16 3831/274/16 +f 3831/274/16 3833/276/16 3832/275/16 +f 3834/277/17 3832/275/17 3833/276/17 +f 3833/276/17 3835/278/17 3834/277/17 +f 3813/254/18 3834/277/194 3835/278/194 +f 3835/278/194 3814/255/18 3813/254/18 +f 3815/279/27 3814/280/27 3836/281/27 +f 3836/281/27 3837/282/27 3815/279/27 +f 3838/283/27 3839/279/27 3840/282/27 +f 3840/282/27 3841/284/27 3838/283/27 +f 3819/285/27 3817/283/27 3842/284/27 +f 3842/284/27 3843/285/27 3819/285/27 +f 3844/286/27 3845/285/27 3846/285/27 +f 3846/285/27 3847/287/27 3844/286/27 +f 3823/288/27 3821/286/27 3848/287/27 +f 3848/287/27 3849/289/27 3823/288/27 +f 3850/290/27 3851/288/27 3852/289/27 +f 3852/289/27 3853/291/27 3850/290/27 +f 3827/292/27 3825/290/27 3854/291/27 +f 3854/291/27 3855/293/27 3827/292/27 +f 3856/294/27 3857/292/27 3858/293/27 +f 3858/293/27 3859/295/27 3856/294/27 +f 3831/296/27 3829/294/27 3860/295/27 +f 3860/295/27 3861/297/27 3831/296/27 +f 3862/298/27 3863/296/27 3864/297/27 +f 3864/297/27 3865/299/27 3862/298/27 +f 3835/300/27 3833/298/27 3866/299/27 +f 3866/299/27 3867/300/27 3835/300/27 +f 3868/280/27 3869/300/27 3870/300/27 +f 3870/300/27 3871/281/27 3868/280/27 +f 3837/301/13 3836/302/13 3872/303/13 +f 3872/303/13 3873/304/13 3837/301/13 +f 3842/305/14 3837/301/14 3873/304/14 +f 3873/304/14 3874/306/14 3842/305/14 +f 3843/307/15 3842/305/118 3874/306/15 +f 3874/306/15 3875/308/15 3843/307/15 +f 3848/309/16 3843/307/16 3875/308/16 +f 3875/308/16 3876/310/16 3848/309/16 +f 3849/311/17 3848/309/17 3876/310/17 +f 3876/310/17 3877/312/17 3849/311/17 +f 3854/313/18 3849/311/18 3877/312/18 +f 3877/312/18 3878/314/18 3854/313/18 +f 3855/315/190 3854/313/19 3878/314/19 +f 3878/314/19 3879/316/190 3855/315/190 +f 3860/317/20 3855/315/20 3879/316/20 +f 3879/316/20 3880/318/20 3860/317/20 +f 3861/319/21 3860/317/21 3880/318/21 +f 3880/318/21 3881/320/21 3861/319/21 +f 3866/321/191 3861/322/22 3881/323/22 +f 3881/323/22 3882/324/22 3866/321/191 +f 3867/325/23 3866/321/23 3882/324/23 +f 3882/324/23 3883/326/23 3867/325/23 +f 3836/302/24 3867/325/25 3883/326/25 +f 3883/326/25 3872/303/24 3836/302/24 +f 3873/327/27 3872/328/27 3884/329/27 +f 3874/330/27 3873/327/27 3884/329/27 +f 3875/331/27 3874/330/27 3884/329/27 +f 3876/332/27 3875/331/27 3884/329/27 +f 3877/333/27 3876/332/27 3884/329/27 +f 3878/334/27 3877/333/27 3884/329/27 +f 3879/335/27 3878/334/27 3884/329/27 +f 3880/336/27 3879/335/27 3884/329/27 +f 3881/337/27 3880/336/27 3884/329/27 +f 3882/338/27 3881/337/27 3884/329/27 +f 3883/339/27 3882/338/27 3884/329/27 +f 3872/328/27 3883/339/27 3884/329/27 +f 3817/258/20 3815/256/20 3839/340/20 +f 3839/340/20 3838/341/20 3817/258/20 +f 3815/279/163 3837/282/163 3840/282/163 +f 3840/282/163 3839/279/163 3815/279/163 +f 3837/301/14 3842/305/14 3841/342/14 +f 3841/342/14 3840/343/14 3837/301/14 +f 3842/284/197 3817/283/197 3838/283/197 +f 3838/283/197 3841/284/197 3842/284/197 +f 3821/264/22 3819/263/22 3845/344/22 +f 3845/344/22 3844/345/22 3821/264/22 +f 3819/285/7 3843/285/7 3846/285/7 +f 3846/285/7 3845/285/7 3819/285/7 +f 3843/307/16 3848/309/16 3847/346/16 +f 3847/346/16 3846/347/16 3843/307/16 +f 3848/287/198 3821/286/198 3844/286/198 +f 3844/286/198 3847/287/198 3848/287/198 +f 3825/268/24 3823/266/24 3851/348/24 +f 3851/348/24 3850/349/24 3825/268/24 +f 3823/288/151 3849/289/151 3852/289/151 +f 3852/289/151 3851/288/151 3823/288/151 +f 3849/311/18 3854/313/18 3853/350/18 +f 3853/350/18 3852/351/18 3849/311/18 +f 3854/291/4 3825/290/4 3850/290/4 +f 3850/290/4 3853/291/4 3854/291/4 +f 3829/272/14 3827/270/14 3857/352/14 +f 3857/352/14 3856/353/14 3829/272/14 +f 3827/292/161 3855/293/161 3858/293/161 +f 3858/293/161 3857/292/161 3827/292/161 +f 3855/315/20 3860/317/20 3859/354/20 +f 3859/354/20 3858/355/20 3855/315/20 +f 3860/295/195 3829/294/195 3856/294/195 +f 3856/294/195 3859/295/195 3860/295/195 +f 3833/276/16 3831/274/16 3863/356/193 +f 3863/356/193 3862/357/16 3833/276/16 +f 3831/296/1 3861/297/1 3864/297/1 +f 3864/297/1 3863/296/1 3831/296/1 +f 3861/322/22 3866/321/191 3865/358/22 +f 3865/358/22 3864/359/22 3861/322/22 +f 3866/299/196 3833/298/196 3862/298/196 +f 3862/298/196 3865/299/196 3866/299/196 +f 3814/255/18 3835/278/194 3869/360/18 +f 3869/360/18 3868/361/18 3814/255/18 +f 3835/300/153 3867/300/153 3870/300/153 +f 3870/300/153 3869/300/153 3835/300/153 +f 3867/325/25 3836/302/24 3871/362/24 +f 3871/362/24 3870/363/25 3867/325/25 +f 3836/281/10 3814/280/10 3868/280/10 +f 3868/280/10 3871/281/10 3836/281/10 +f 3885/3/6 3886/2/6 3887/1/7 +f 3887/1/7 3888/4/7 3885/3/6 +f 3889/6/5 3890/5/5 3886/2/6 +f 3886/2/6 3885/3/6 3889/6/5 +f 3891/8/4 3892/7/4 3890/5/5 +f 3890/5/5 3889/6/5 3891/8/4 +f 3893/11/3 3894/10/3 3892/9/4 +f 3892/9/4 3891/12/4 3893/11/3 +f 3895/14/2 3896/13/2 3894/10/3 +f 3894/10/3 3893/11/3 3895/14/2 +f 3897/16/1 3898/15/1 3896/13/2 +f 3896/13/2 3895/14/2 3897/16/1 +f 3899/18/12 3900/17/12 3898/15/1 +f 3898/15/1 3897/16/1 3899/18/12 +f 3901/20/11 3902/19/11 3900/17/12 +f 3900/17/12 3899/18/12 3901/20/11 +f 3903/22/10 3904/21/10 3902/19/11 +f 3902/19/11 3901/20/11 3903/22/10 +f 3905/24/9 3906/23/9 3904/21/10 +f 3904/21/10 3903/22/10 3905/24/9 +f 3907/26/8 3908/25/8 3906/23/9 +f 3906/23/9 3905/24/9 3907/26/8 +f 3888/4/7 3887/1/7 3908/25/8 +f 3908/25/8 3907/26/8 3888/4/7 +f 3909/27/18 3910/30/18 3911/29/18 +f 3911/29/18 3912/28/18 3909/27/18 +f 3913/31/17 3914/32/17 3910/30/17 +f 3910/30/17 3909/27/17 3913/31/17 +f 3915/33/16 3916/34/16 3914/32/16 +f 3914/32/16 3913/31/16 3915/33/16 +f 3917/35/15 3918/38/15 3916/37/15 +f 3916/37/15 3915/36/15 3917/35/15 +f 3919/39/14 3920/40/14 3918/38/14 +f 3918/38/14 3917/35/14 3919/39/14 +f 3921/41/13 3922/42/13 3920/40/13 +f 3920/40/13 3919/39/13 3921/41/13 +f 3923/43/24 3924/44/24 3922/42/24 +f 3922/42/24 3921/41/24 3923/43/24 +f 3925/45/23 3926/46/23 3924/44/23 +f 3924/44/23 3923/43/23 3925/45/23 +f 3927/47/22 3928/48/22 3926/46/22 +f 3926/46/22 3925/45/22 3927/47/22 +f 3929/49/21 3930/50/21 3928/48/21 +f 3928/48/21 3927/47/21 3929/49/21 +f 3931/51/20 3932/52/20 3930/50/20 +f 3930/50/20 3929/49/20 3931/51/20 +f 3912/28/19 3911/29/19 3932/52/19 +f 3932/52/19 3931/51/190 3912/28/19 +f 3886/53/26 3909/53/26 3912/54/26 +f 3912/54/26 3887/54/26 3886/53/26 +f 3887/54/26 3912/54/26 3931/55/26 +f 3931/55/26 3908/55/26 3887/54/26 +f 3908/55/26 3931/55/26 3929/56/26 +f 3929/56/26 3906/56/26 3908/55/26 +f 3906/56/26 3929/56/26 3927/57/26 +f 3927/57/26 3904/57/26 3906/56/26 +f 3904/57/26 3927/57/26 3925/59/26 +f 3925/59/26 3902/58/26 3904/57/26 +f 3902/58/26 3925/59/26 3923/61/26 +f 3923/61/26 3900/60/26 3902/58/26 +f 3900/60/26 3923/61/26 3921/62/26 +f 3921/62/26 3898/62/26 3900/60/26 +f 3898/62/26 3921/62/26 3919/64/26 +f 3919/64/26 3896/63/26 3898/62/26 +f 3896/63/26 3919/64/26 3917/66/26 +f 3917/66/26 3894/65/26 3896/63/26 +f 3894/65/26 3917/66/26 3915/67/26 +f 3915/67/26 3892/67/26 3894/65/26 +f 3892/67/26 3915/67/26 3913/68/26 +f 3913/68/26 3890/68/26 3892/67/26 +f 3890/68/26 3913/68/26 3909/53/26 +f 3909/53/26 3886/53/26 3890/68/26 +f 3933/54/27 3911/54/27 3910/53/27 +f 3910/53/27 3934/53/27 3933/54/27 +f 3934/53/27 3910/53/27 3914/68/27 +f 3914/68/27 3935/68/27 3934/53/27 +f 3935/68/27 3914/68/27 3916/67/27 +f 3916/67/27 3936/67/27 3935/68/27 +f 3936/67/27 3916/67/27 3918/66/27 +f 3918/66/27 3937/65/27 3936/67/27 +f 3937/65/27 3918/66/27 3920/64/27 +f 3920/64/27 3938/63/27 3937/65/27 +f 3938/63/27 3920/64/27 3922/62/27 +f 3922/62/27 3939/62/27 3938/63/27 +f 3939/62/27 3922/62/27 3924/61/27 +f 3924/61/27 3940/60/27 3939/62/27 +f 3940/60/27 3924/61/27 3926/59/27 +f 3926/59/27 3941/58/27 3940/60/27 +f 3941/58/27 3926/59/27 3928/57/27 +f 3928/57/27 3942/57/27 3941/58/27 +f 3942/57/27 3928/57/27 3930/56/27 +f 3930/56/27 3943/56/27 3942/57/27 +f 3943/56/27 3930/56/27 3932/55/27 +f 3932/55/27 3944/55/27 3943/56/27 +f 3944/55/27 3932/55/27 3911/54/27 +f 3911/54/27 3933/54/27 3944/55/27 +f 3945/71/6 3946/70/7 3933/69/7 +f 3933/69/7 3934/72/6 3945/71/6 +f 3947/73/17 3945/71/6 3934/72/6 +f 3934/72/6 3935/74/17 3947/73/17 +f 3948/75/16 3947/73/16 3935/74/16 +f 3935/74/16 3936/76/16 3948/75/16 +f 3949/77/3 3948/75/15 3936/76/15 +f 3936/76/15 3937/78/3 3949/77/3 +f 3950/79/2 3949/77/3 3937/78/3 +f 3937/78/3 3938/80/2 3950/79/2 +f 3951/83/1 3950/82/2 3938/81/2 +f 3938/81/2 3939/84/1 3951/83/1 +f 3952/85/12 3951/83/1 3939/84/1 +f 3939/84/1 3940/86/12 3952/85/12 +f 3953/87/11 3952/85/12 3940/86/12 +f 3940/86/12 3941/88/11 3953/87/11 +f 3954/89/10 3953/87/11 3941/88/11 +f 3941/88/11 3942/90/10 3954/89/10 +f 3955/91/9 3954/89/10 3942/90/10 +f 3942/90/10 3943/92/9 3955/91/9 +f 3956/93/8 3955/91/9 3943/92/9 +f 3943/92/9 3944/94/8 3956/93/8 +f 3946/70/7 3956/93/8 3944/94/8 +f 3944/94/8 3933/69/7 3946/70/7 +f 3957/95/26 3958/95/26 3959/96/26 +f 3959/96/26 3960/96/26 3957/95/26 +f 3961/97/26 3962/97/26 3958/95/26 +f 3958/95/26 3957/95/26 3961/97/26 +f 3963/67/26 3964/98/26 3962/97/26 +f 3962/97/26 3961/97/26 3963/67/26 +f 3965/99/26 3966/99/26 3964/98/26 +f 3964/98/26 3963/67/26 3965/99/26 +f 3967/100/26 3968/100/26 3966/99/26 +f 3966/99/26 3965/99/26 3967/100/26 +f 3969/101/26 3970/101/26 3968/100/26 +f 3968/100/26 3967/100/26 3969/101/26 +f 3971/61/26 3972/61/26 3970/101/26 +f 3970/101/26 3969/101/26 3971/61/26 +f 3973/59/26 3974/102/26 3972/61/26 +f 3972/61/26 3971/61/26 3973/59/26 +f 3975/103/26 3976/103/26 3974/102/26 +f 3974/102/26 3973/59/26 3975/103/26 +f 3977/104/26 3978/105/26 3976/103/26 +f 3976/103/26 3975/103/26 3977/104/26 +f 3979/106/26 3980/106/26 3978/105/26 +f 3978/105/26 3977/104/26 3979/106/26 +f 3960/96/26 3959/96/26 3980/106/26 +f 3980/106/26 3979/106/26 3960/96/26 +f 3958/107/33 3981/110/33 3982/109/33 +f 3982/109/33 3959/108/33 3958/107/33 +f 3962/111/32 3983/112/32 3981/110/32 +f 3981/110/32 3958/107/32 3962/111/32 +f 3964/113/31 3984/114/31 3983/112/31 +f 3983/112/31 3962/111/31 3964/113/31 +f 3966/115/30 3985/116/30 3984/114/30 +f 3984/114/30 3964/113/30 3966/115/30 +f 3968/117/29 3986/118/29 3985/116/29 +f 3985/116/29 3966/115/29 3968/117/29 +f 3970/119/28 3987/120/28 3986/118/28 +f 3986/118/28 3968/117/28 3970/119/28 +f 3972/121/39 3988/122/39 3987/120/39 +f 3987/120/39 3970/119/39 3972/121/39 +f 3974/123/38 3989/124/38 3988/122/38 +f 3988/122/38 3972/121/38 3974/123/38 +f 3976/125/37 3990/126/37 3989/124/37 +f 3989/124/37 3974/123/37 3976/125/37 +f 3978/127/36 3991/130/36 3990/129/36 +f 3990/129/36 3976/128/36 3978/127/36 +f 3980/131/35 3992/132/35 3991/130/35 +f 3991/130/35 3978/127/35 3980/131/35 +f 3959/108/34 3982/109/34 3992/132/34 +f 3992/132/34 3980/131/34 3959/108/34 +f 3981/110/46 3993/134/46 3994/133/46 +f 3994/133/46 3982/109/46 3981/110/46 +f 3983/112/45 3995/135/45 3993/134/45 +f 3993/134/45 3981/110/45 3983/112/45 +f 3984/114/44 3996/136/44 3995/135/44 +f 3995/135/44 3983/112/44 3984/114/44 +f 3985/116/42 3997/137/42 3996/136/43 +f 3996/136/43 3984/114/42 3985/116/42 +f 3986/118/41 3998/138/41 3997/137/41 +f 3997/137/41 3985/116/41 3986/118/41 +f 3987/120/40 3999/139/40 3998/138/40 +f 3998/138/40 3986/118/40 3987/120/40 +f 3988/122/55 4000/140/54 3999/139/54 +f 3999/139/54 3987/120/54 3988/122/55 +f 3989/124/53 4001/141/53 4000/140/53 +f 4000/140/53 3988/122/53 3989/124/53 +f 3990/126/51 4002/142/52 4001/141/51 +f 4001/141/51 3989/124/51 3990/126/51 +f 3991/130/50 4003/144/50 4002/143/50 +f 4002/143/50 3990/129/50 3991/130/50 +f 3992/132/49 4004/145/49 4003/144/49 +f 4003/144/49 3991/130/49 3992/132/49 +f 3982/109/48 3994/133/48 4004/145/48 +f 4004/145/48 3992/132/47 3982/109/48 +f 3945/148/63 4005/147/63 4006/146/63 +f 4006/146/63 3946/149/63 3945/148/63 +f 3947/151/62 4007/150/61 4005/147/61 +f 4005/147/61 3945/148/62 3947/151/62 +f 3948/154/60 4008/153/60 4007/152/60 +f 4007/152/60 3947/155/60 3948/154/60 +f 3949/156/59 4009/142/59 4008/153/59 +f 4008/153/59 3948/154/59 3949/156/59 +f 3950/158/58 4010/157/57 4009/142/57 +f 4009/142/57 3949/156/58 3950/158/58 +f 3951/160/56 4011/159/56 4010/157/56 +f 4010/157/56 3950/158/56 3951/160/56 +f 3952/162/71 4012/161/71 4011/159/71 +f 4011/159/71 3951/160/71 3952/162/71 +f 3953/164/69 4013/163/70 4012/161/70 +f 4012/161/70 3952/162/69 3953/164/69 +f 3954/166/68 4014/165/68 4013/163/68 +f 4013/163/68 3953/164/68 3954/166/68 +f 3955/168/67 4015/167/67 4014/165/67 +f 4014/165/67 3954/166/67 3955/168/67 +f 3956/170/66 4016/169/66 4015/167/66 +f 4015/167/66 3955/168/65 3956/170/66 +f 3946/149/64 4006/146/64 4016/169/64 +f 4016/169/64 3956/170/64 3946/149/64 +f 4005/173/6 3957/172/6 3960/171/7 +f 3960/171/7 4006/174/7 4005/173/6 +f 4007/176/5 3961/175/5 3957/172/6 +f 3957/172/6 4005/173/6 4007/176/5 +f 4008/179/4 3963/178/4 3961/177/5 +f 3961/177/5 4007/180/5 4008/179/4 +f 4009/181/3 3965/86/3 3963/178/4 +f 3963/178/4 4008/179/4 4009/181/3 +f 4010/183/2 3967/182/2 3965/86/3 +f 3965/86/3 4009/181/3 4010/183/2 +f 4011/185/1 3969/184/1 3967/182/2 +f 3967/182/2 4010/183/2 4011/185/1 +f 4012/187/12 3971/186/12 3969/184/1 +f 3969/184/1 4011/185/1 4012/187/12 +f 4013/189/11 3973/188/11 3971/186/12 +f 3971/186/12 4012/187/12 4013/189/11 +f 4014/191/10 3975/190/10 3973/188/11 +f 3973/188/11 4013/189/11 4014/191/10 +f 4015/192/9 3977/76/9 3975/190/10 +f 3975/190/10 4014/191/10 4015/192/9 +f 4016/194/8 3979/193/8 3977/76/9 +f 3977/76/9 4015/192/9 4016/194/8 +f 4006/174/7 3960/171/7 3979/193/8 +f 3979/193/8 4016/194/8 4006/174/7 +f 4017/195/443 4018/198/443 4019/197/443 +f 4019/197/443 4020/196/443 4017/195/443 +f 4021/199/390 4022/202/390 4023/201/390 +f 4023/201/390 4024/200/390 4021/199/390 +f 4025/203/444 4026/206/444 4027/205/444 +f 4027/205/444 4028/204/444 4025/203/444 +f 4029/202/388 4030/199/388 4031/200/388 +f 4031/200/388 4032/201/388 4029/202/388 +f 4033/207/398 4034/209/398 4035/208/398 +f 4035/208/398 4036/207/398 4033/207/398 +f 4037/209/445 4038/211/445 4039/210/445 +f 4028/212/446 4027/214/446 4040/213/446 +f 4040/213/446 4041/196/446 4028/212/446 +f 4042/210/447 4043/211/447 4044/209/447 +f 4045/215/448 4044/209/448 4043/211/448 +f 4043/211/448 4046/216/448 4045/215/448 +f 4047/217/449 4020/196/449 4019/197/449 +f 4019/197/449 4048/218/449 4047/217/449 +f 4049/219/451 4025/203/451 4028/204/451 +f 4028/204/451 4050/220/451 4049/219/451 +f 4051/209/391 4033/207/391 4036/207/391 +f 4036/207/391 4052/208/391 4051/209/391 +f 4028/212/452 4041/196/452 4053/213/452 +f 4053/213/452 4050/214/452 4028/212/452 +f 4045/215/453 4046/216/453 4038/211/453 +f 4038/211/453 4037/209/453 4045/215/453 +f 4054/221/388 4018/221/388 4017/222/388 +f 4017/222/388 4040/222/388 4054/221/388 +f 4040/222/402 4017/222/402 4020/203/402 +f 4020/203/402 4041/203/402 4040/222/402 +f 4041/203/401 4020/203/401 4047/206/401 +f 4047/206/401 4053/206/401 4041/203/401 +f 4053/206/390 4047/206/390 4048/223/390 +f 4048/223/390 4055/223/390 4053/206/390 +f 4055/224/454 4048/224/454 4019/226/454 +f 4019/226/454 4056/225/454 4055/224/454 +f 4056/225/455 4019/226/455 4018/224/455 +f 4018/224/455 4054/224/455 4056/225/455 +f 4050/214/447 4053/213/447 4055/228/447 +f 4055/228/447 4057/227/447 4050/214/447 +f 4057/229/388 4058/221/388 4049/219/388 +f 4049/219/388 4050/220/388 4057/229/388 +f 4026/206/390 4059/223/390 4060/230/390 +f 4060/230/390 4027/205/390 4026/206/390 +f 4060/227/445 4054/228/445 4040/213/445 +f 4040/213/445 4027/214/445 4060/227/445 +f 4023/201/390 4061/202/390 4062/199/390 +f 4062/199/390 4024/200/390 4023/201/390 +f 4060/231/456 4039/233/456 4038/232/456 +f 4038/232/456 4054/224/456 4060/231/456 +f 4054/224/455 4038/232/455 4046/234/455 +f 4046/234/455 4056/225/455 4054/224/455 +f 4056/225/454 4046/234/454 4043/232/454 +f 4043/232/454 4055/224/454 4056/225/454 +f 4055/224/457 4043/232/457 4042/233/457 +f 4042/233/457 4057/231/457 4055/224/457 +f 4031/200/388 4063/199/388 4064/202/388 +f 4064/202/388 4032/201/388 4031/200/388 +f 4035/208/398 4044/236/398 4045/235/398 +f 4045/235/398 4036/207/398 4035/208/398 +f 4036/207/391 4045/235/391 4037/236/391 +f 4037/236/391 4052/208/391 4036/207/391 +f 4059/236/27 4021/238/27 4024/237/27 +f 4024/237/27 4060/231/27 4059/236/27 +f 4060/231/27 4024/237/27 4062/239/27 +f 4062/239/27 4039/233/27 4060/231/27 +f 4039/210/484 4062/241/484 4061/240/484 +f 4061/240/484 4037/209/484 4039/210/484 +f 4037/236/26 4061/238/26 4023/242/26 +f 4023/242/26 4052/208/26 4037/236/26 +f 4052/208/26 4023/242/26 4022/240/26 +f 4022/240/26 4051/209/26 4052/208/26 +f 4034/209/26 4029/240/26 4032/242/26 +f 4032/242/26 4035/208/26 4034/209/26 +f 4035/208/26 4032/242/26 4064/238/26 +f 4064/238/26 4044/236/26 4035/208/26 +f 4044/209/459 4064/240/459 4063/241/459 +f 4063/241/459 4042/210/459 4044/209/459 +f 4042/233/27 4063/239/27 4031/237/27 +f 4031/237/27 4057/231/27 4042/233/27 +f 4057/231/27 4031/237/27 4030/238/27 +f 4030/238/27 4058/236/27 4057/231/27 +f 4065/195/4 4066/198/4 4067/197/4 +f 4067/197/4 4068/196/4 4065/195/4 +f 4069/199/416 4070/202/416 4071/201/415 +f 4071/201/415 4072/200/415 4069/199/416 +f 4073/203/421 4074/206/421 4075/205/421 +f 4075/205/421 4076/204/421 4073/203/421 +f 4077/202/413 4078/199/413 4079/200/412 +f 4079/200/412 4080/201/412 4077/202/413 +f 4081/207/466 4082/209/466 4083/208/466 +f 4083/208/466 4084/207/466 4081/207/466 +f 4085/209/107 4086/211/107 4087/210/107 +f 4076/212/467 4075/214/467 4088/213/467 +f 4088/213/467 4089/196/467 4076/212/467 +f 4090/210/468 4091/211/468 4092/209/468 +f 4093/215/469 4092/209/469 4091/211/469 +f 4091/211/469 4094/216/469 4093/215/469 +f 4095/217/103 4068/196/103 4067/197/103 +f 4067/197/103 4096/218/103 4095/217/103 +f 4097/219/414 4073/203/414 4076/204/414 +f 4076/204/414 4098/220/414 4097/219/414 +f 4099/209/471 4081/207/471 4084/207/471 +f 4084/207/471 4100/208/471 4099/209/471 +f 4076/212/472 4089/196/472 4101/213/472 +f 4101/213/472 4098/214/472 4076/212/472 +f 4093/215/332 4094/216/332 4086/211/332 +f 4086/211/332 4085/209/332 4093/215/332 +f 4102/221/413 4066/221/412 4065/222/412 +f 4065/222/412 4088/222/413 4102/221/413 +f 4088/222/426 4065/222/426 4068/203/426 +f 4068/203/426 4089/203/426 4088/222/426 +f 4089/203/425 4068/203/425 4095/206/425 +f 4095/206/425 4101/206/425 4089/203/425 +f 4101/206/415 4095/206/415 4096/223/415 +f 4096/223/415 4103/223/415 4101/206/415 +f 4103/224/473 4096/224/473 4067/226/473 +f 4067/226/473 4104/225/473 4103/224/473 +f 4104/225/430 4067/226/430 4066/224/430 +f 4066/224/430 4102/224/430 4104/225/430 +f 4098/214/468 4101/213/468 4103/228/468 +f 4103/228/468 4105/227/468 4098/214/468 +f 4105/229/413 4106/221/413 4097/219/413 +f 4097/219/413 4098/220/413 4105/229/413 +f 4074/206/415 4107/223/415 4108/230/415 +f 4108/230/415 4075/205/415 4074/206/415 +f 4108/227/107 4102/228/107 4088/213/107 +f 4088/213/107 4075/214/107 4108/227/107 +f 4071/201/415 4109/202/416 4110/199/416 +f 4110/199/416 4072/200/415 4071/201/415 +f 4108/231/485 4087/233/485 4086/232/485 +f 4086/232/485 4102/224/485 4108/231/485 +f 4102/224/430 4086/232/430 4094/234/430 +f 4094/234/430 4104/225/430 4102/224/430 +f 4104/225/473 4094/234/473 4091/232/473 +f 4091/232/473 4103/224/473 4104/225/473 +f 4103/224/428 4091/232/428 4090/233/428 +f 4090/233/428 4105/231/428 4103/224/428 +f 4079/200/412 4111/199/413 4112/202/413 +f 4112/202/413 4080/201/412 4079/200/412 +f 4083/208/466 4092/236/466 4093/235/466 +f 4093/235/466 4084/207/466 4083/208/466 +f 4084/207/471 4093/235/471 4085/236/471 +f 4085/236/471 4100/208/471 4084/207/471 +f 4107/236/27 4069/238/27 4072/237/27 +f 4072/237/27 4108/231/27 4107/236/27 +f 4108/231/27 4072/237/27 4110/239/27 +f 4110/239/27 4087/233/27 4108/231/27 +f 4087/210/193 4110/241/193 4109/240/193 +f 4109/240/193 4085/209/193 4087/210/193 +f 4085/236/26 4109/238/26 4071/242/26 +f 4071/242/26 4100/208/26 4085/236/26 +f 4100/208/26 4071/242/26 4070/240/26 +f 4070/240/26 4099/209/26 4100/208/26 +f 4082/209/26 4077/240/26 4080/242/26 +f 4080/242/26 4083/208/26 4082/209/26 +f 4083/208/26 4080/242/26 4112/238/26 +f 4112/238/26 4092/236/26 4083/208/26 +f 4092/209/475 4112/240/475 4111/241/475 +f 4111/241/475 4090/210/475 4092/209/475 +f 4090/233/27 4111/239/27 4079/237/27 +f 4079/237/27 4105/231/27 4090/233/27 +f 4105/231/27 4079/237/27 4078/238/27 +f 4078/238/27 4106/236/27 4105/231/27 +f 4113/243/476 4114/246/476 4115/245/476 +f 4115/245/476 4116/244/476 4113/243/476 +f 4113/247/477 4117/250/477 4118/249/477 +f 4118/249/477 4114/248/477 4113/247/477 +f 4114/246/478 4118/252/478 4119/251/478 +f 4119/251/478 4115/245/478 4114/246/478 +f 4115/248/479 4119/249/479 4120/250/479 +f 4120/250/479 4116/247/479 4115/248/479 +f 4121/195/464 4122/198/464 4123/197/464 +f 4123/197/464 4124/196/464 4121/195/464 +f 4125/199/416 4126/202/416 4127/201/415 +f 4127/201/415 4128/200/415 4125/199/416 +f 4129/203/421 4130/206/421 4131/205/421 +f 4131/205/421 4132/204/421 4129/203/421 +f 4133/202/413 4134/199/413 4135/200/412 +f 4135/200/412 4136/201/412 4133/202/413 +f 4137/207/466 4138/209/466 4139/208/466 +f 4139/208/466 4140/207/466 4137/207/466 +f 4141/209/107 4142/211/107 4143/210/107 +f 4132/212/467 4131/214/467 4144/213/467 +f 4144/213/467 4145/196/467 4132/212/467 +f 4146/210/468 4147/211/468 4148/209/468 +f 4149/215/469 4148/209/469 4147/211/469 +f 4147/211/469 4150/216/469 4149/215/469 +f 4151/217/103 4124/196/103 4123/197/103 +f 4123/197/103 4152/218/103 4151/217/103 +f 4153/219/470 4129/203/414 4132/204/414 +f 4132/204/414 4154/220/470 4153/219/470 +f 4155/209/471 4137/207/471 4140/207/471 +f 4140/207/471 4156/208/471 4155/209/471 +f 4132/212/472 4145/196/472 4157/213/472 +f 4157/213/472 4154/214/472 4132/212/472 +f 4149/215/332 4150/216/332 4142/211/332 +f 4142/211/332 4141/209/332 4149/215/332 +f 4158/221/413 4122/221/413 4121/222/413 +f 4121/222/413 4144/222/413 4158/221/413 +f 4144/222/426 4121/222/426 4124/203/426 +f 4124/203/426 4145/203/426 4144/222/426 +f 4145/203/425 4124/203/425 4151/206/425 +f 4151/206/425 4157/206/425 4145/203/425 +f 4157/206/415 4151/206/415 4152/223/415 +f 4152/223/415 4159/223/415 4157/206/415 +f 4159/224/473 4152/224/473 4123/226/473 +f 4123/226/473 4160/225/473 4159/224/473 +f 4160/225/430 4123/226/430 4122/224/430 +f 4122/224/430 4158/224/430 4160/225/430 +f 4154/214/468 4157/213/468 4159/228/468 +f 4159/228/468 4161/227/468 4154/214/468 +f 4161/229/437 4162/221/412 4153/219/412 +f 4153/219/412 4154/220/437 4161/229/437 +f 4130/206/415 4163/223/415 4164/230/416 +f 4164/230/416 4131/205/416 4130/206/415 +f 4164/227/107 4158/228/107 4144/213/107 +f 4144/213/107 4131/214/107 4164/227/107 +f 4127/201/415 4165/202/416 4166/199/416 +f 4166/199/416 4128/200/415 4127/201/415 +f 4164/231/485 4143/233/485 4142/232/485 +f 4142/232/485 4158/224/485 4164/231/485 +f 4158/224/430 4142/232/430 4150/234/430 +f 4150/234/430 4160/225/430 4158/224/430 +f 4160/225/473 4150/234/473 4147/232/473 +f 4147/232/473 4159/224/473 4160/225/473 +f 4159/224/428 4147/232/428 4146/233/428 +f 4146/233/428 4161/231/428 4159/224/428 +f 4135/200/412 4167/199/413 4168/202/413 +f 4168/202/413 4136/201/412 4135/200/412 +f 4139/208/466 4148/236/466 4149/235/466 +f 4149/235/466 4140/207/466 4139/208/466 +f 4140/207/471 4149/235/471 4141/236/471 +f 4141/236/471 4156/208/471 4140/207/471 +f 4163/236/27 4125/238/27 4128/237/27 +f 4128/237/27 4164/231/27 4163/236/27 +f 4164/231/27 4128/237/27 4166/239/27 +f 4166/239/27 4143/233/27 4164/231/27 +f 4143/210/193 4166/241/193 4165/240/193 +f 4165/240/193 4141/209/193 4143/210/193 +f 4141/236/26 4165/238/26 4127/242/26 +f 4127/242/26 4156/208/26 4141/236/26 +f 4156/208/26 4127/242/26 4126/240/26 +f 4126/240/26 4155/209/26 4156/208/26 +f 4138/209/26 4133/240/26 4136/242/26 +f 4136/242/26 4139/208/26 4138/209/26 +f 4139/208/26 4136/242/26 4168/238/26 +f 4168/238/26 4148/236/26 4139/208/26 +f 4148/209/475 4168/240/475 4167/241/475 +f 4167/241/475 4146/210/475 4148/209/475 +f 4146/233/27 4167/239/27 4135/237/27 +f 4135/237/27 4161/231/27 4146/233/27 +f 4161/231/27 4135/237/27 4134/238/27 +f 4134/238/27 4162/236/27 4161/231/27 +f 4169/243/460 4170/246/460 4171/245/460 +f 4171/245/460 4172/244/460 4169/243/460 +f 4169/247/461 4173/250/461 4174/249/461 +f 4174/249/461 4170/248/461 4169/247/461 +f 4170/246/462 4174/252/462 4175/251/462 +f 4175/251/462 4171/245/462 4170/246/462 +f 4171/248/463 4175/249/463 4176/250/463 +f 4176/250/463 4172/247/463 4171/248/463 +f 4177/195/387 4178/198/387 4179/197/387 +f 4179/197/387 4180/196/387 4177/195/387 +f 4181/199/388 4182/202/388 4183/201/388 +f 4183/201/388 4184/200/388 4181/199/388 +f 4185/203/389 4186/206/389 4187/205/389 +f 4187/205/389 4188/204/389 4185/203/389 +f 4189/202/390 4190/199/390 4191/200/390 +f 4191/200/390 4192/201/390 4189/202/390 +f 4193/207/391 4194/209/391 4195/208/391 +f 4195/208/391 4196/207/391 4193/207/391 +f 4197/209/392 4198/211/392 4199/210/392 +f 4188/212/393 4187/214/393 4200/213/393 +f 4200/213/393 4201/196/393 4188/212/393 +f 4202/210/394 4203/211/394 4204/209/394 +f 4205/215/395 4204/209/395 4203/211/395 +f 4203/211/395 4206/216/395 4205/215/395 +f 4207/217/396 4180/196/486 4179/197/486 +f 4179/197/486 4208/218/396 4207/217/396 +f 4209/219/397 4185/203/397 4188/204/397 +f 4188/204/397 4210/220/397 4209/219/397 +f 4211/209/398 4193/207/398 4196/207/398 +f 4196/207/398 4212/208/398 4211/209/398 +f 4188/212/399 4201/196/399 4213/213/399 +f 4213/213/399 4210/214/399 4188/212/399 +f 4205/215/400 4206/216/400 4198/211/400 +f 4198/211/400 4197/209/400 4205/215/400 +f 4214/221/390 4178/221/390 4177/222/390 +f 4177/222/390 4200/222/390 4214/221/390 +f 4200/222/401 4177/222/401 4180/203/401 +f 4180/203/401 4201/203/401 4200/222/401 +f 4201/203/402 4180/203/402 4207/206/402 +f 4207/206/402 4213/206/402 4201/203/402 +f 4213/206/388 4207/206/388 4208/223/388 +f 4208/223/388 4215/223/388 4213/206/388 +f 4215/224/403 4208/224/403 4179/226/403 +f 4179/226/403 4216/225/403 4215/224/403 +f 4216/225/404 4179/226/404 4178/224/404 +f 4178/224/404 4214/224/404 4216/225/404 +f 4210/214/394 4213/213/394 4215/228/394 +f 4215/228/394 4217/227/394 4210/214/394 +f 4217/229/390 4218/221/390 4209/219/390 +f 4209/219/390 4210/220/390 4217/229/390 +f 4186/206/388 4219/223/388 4220/230/388 +f 4220/230/388 4187/205/388 4186/206/388 +f 4220/227/392 4214/228/392 4200/213/392 +f 4200/213/392 4187/214/392 4220/227/392 +f 4183/201/388 4221/202/388 4222/199/388 +f 4222/199/388 4184/200/388 4183/201/388 +f 4220/231/405 4199/233/405 4198/232/405 +f 4198/232/405 4214/224/405 4220/231/405 +f 4214/224/404 4198/232/404 4206/234/404 +f 4206/234/404 4216/225/404 4214/224/404 +f 4216/225/403 4206/234/403 4203/232/403 +f 4203/232/403 4215/224/403 4216/225/403 +f 4215/224/407 4203/232/407 4202/233/407 +f 4202/233/407 4217/231/407 4215/224/407 +f 4191/200/390 4223/199/390 4224/202/390 +f 4224/202/390 4192/201/390 4191/200/390 +f 4195/208/391 4204/236/391 4205/235/391 +f 4205/235/391 4196/207/391 4195/208/391 +f 4196/207/398 4205/235/398 4197/236/398 +f 4197/236/398 4212/208/398 4196/207/398 +f 4219/236/27 4181/238/27 4184/237/27 +f 4184/237/27 4220/231/27 4219/236/27 +f 4220/231/27 4184/237/27 4222/239/27 +f 4222/239/27 4199/233/27 4220/231/27 +f 4199/210/409 4222/241/409 4221/240/409 +f 4221/240/409 4197/209/409 4199/210/409 +f 4197/236/26 4221/238/26 4183/242/26 +f 4183/242/26 4212/208/26 4197/236/26 +f 4212/208/26 4183/242/26 4182/240/26 +f 4182/240/26 4211/209/26 4212/208/26 +f 4194/209/26 4189/240/26 4192/242/26 +f 4192/242/26 4195/208/26 4194/209/26 +f 4195/208/26 4192/242/26 4224/238/26 +f 4224/238/26 4204/236/26 4195/208/26 +f 4204/209/410 4224/240/410 4223/241/410 +f 4223/241/410 4202/210/410 4204/209/410 +f 4202/233/27 4223/239/27 4191/237/27 +f 4191/237/27 4217/231/27 4202/233/27 +f 4217/231/27 4191/237/27 4190/238/27 +f 4190/238/27 4218/236/27 4217/231/27 +f 4225/243/148 4226/246/148 4227/245/148 +f 4227/245/148 4228/244/148 4225/243/148 +f 4225/247/7 4229/250/7 4230/249/7 +f 4230/249/7 4226/248/7 4225/247/7 +f 4226/246/149 4230/252/149 4231/251/149 +f 4231/251/149 4227/245/149 4226/246/149 +f 4227/248/1 4231/249/1 4232/250/1 +f 4232/250/1 4228/247/1 4227/248/1 +f 4233/243/187 4234/246/187 4235/245/187 +f 4235/245/187 4236/244/187 4233/243/187 +f 4233/247/161 4237/250/161 4238/249/161 +f 4238/249/161 4234/248/161 4233/247/161 +f 4234/246/188 4238/252/188 4239/251/188 +f 4239/251/188 4235/245/188 4234/246/188 +f 4235/248/163 4239/249/163 4240/250/163 +f 4240/250/163 4236/247/163 4235/248/163 +f 4241/243/154 4242/246/154 4243/245/154 +f 4243/245/154 4244/244/154 4241/243/154 +f 4241/247/1 4245/250/1 4246/249/1 +f 4246/249/1 4242/248/1 4241/247/1 +f 4242/246/155 4246/252/155 4247/251/155 +f 4247/251/155 4243/245/155 4242/246/155 +f 4243/248/7 4247/249/7 4248/250/7 +f 4248/250/7 4244/247/7 4243/248/7 +f 4249/243/439 4250/246/439 4251/245/439 +f 4251/245/439 4252/244/439 4249/243/439 +f 4249/247/440 4253/250/440 4254/249/440 +f 4254/249/440 4250/248/440 4249/247/440 +f 4250/246/441 4254/252/441 4255/251/441 +f 4255/251/441 4251/245/441 4250/246/441 +f 4251/248/442 4255/249/442 4256/250/442 +f 4256/250/442 4252/247/442 4251/248/442 +f 4257/243/180 4258/246/180 4259/245/180 +f 4259/245/180 4260/244/180 4257/243/180 +f 4257/247/151 4261/250/151 4262/249/151 +f 4262/249/151 4258/248/151 4257/247/151 +f 4258/246/181 4262/252/181 4263/251/181 +f 4263/251/181 4259/245/181 4258/246/181 +f 4259/248/153 4263/249/153 4264/250/153 +f 4264/250/153 4260/247/153 4259/248/153 +f 4265/195/387 4266/198/387 4267/197/387 +f 4267/197/387 4268/196/387 4265/195/387 +f 4269/199/388 4270/202/388 4271/201/388 +f 4271/201/388 4272/200/388 4269/199/388 +f 4273/203/389 4274/206/389 4275/205/389 +f 4275/205/389 4276/204/389 4273/203/389 +f 4277/202/390 4278/199/390 4279/200/390 +f 4279/200/390 4280/201/390 4277/202/390 +f 4281/207/391 4282/209/391 4283/208/391 +f 4283/208/391 4284/207/391 4281/207/391 +f 4285/209/392 4286/211/392 4287/210/392 +f 4276/212/393 4275/214/393 4288/213/393 +f 4288/213/393 4289/196/393 4276/212/393 +f 4290/210/394 4291/211/394 4292/209/394 +f 4293/215/395 4292/209/395 4291/211/395 +f 4291/211/395 4294/216/395 4293/215/395 +f 4295/217/396 4268/196/486 4267/197/486 +f 4267/197/486 4296/218/396 4295/217/396 +f 4297/219/397 4273/203/397 4276/204/397 +f 4276/204/397 4298/220/397 4297/219/397 +f 4299/209/398 4281/207/398 4284/207/398 +f 4284/207/398 4300/208/398 4299/209/398 +f 4276/212/399 4289/196/399 4301/213/399 +f 4301/213/399 4298/214/399 4276/212/399 +f 4293/215/400 4294/216/400 4286/211/400 +f 4286/211/400 4285/209/400 4293/215/400 +f 4302/221/390 4266/221/390 4265/222/390 +f 4265/222/390 4288/222/390 4302/221/390 +f 4288/222/401 4265/222/401 4268/203/401 +f 4268/203/401 4289/203/401 4288/222/401 +f 4289/203/402 4268/203/402 4295/206/402 +f 4295/206/402 4301/206/402 4289/203/402 +f 4301/206/388 4295/206/388 4296/223/388 +f 4296/223/388 4303/223/388 4301/206/388 +f 4303/224/403 4296/224/403 4267/226/403 +f 4267/226/403 4304/225/403 4303/224/403 +f 4304/225/404 4267/226/404 4266/224/404 +f 4266/224/404 4302/224/404 4304/225/404 +f 4298/214/394 4301/213/394 4303/228/394 +f 4303/228/394 4305/227/394 4298/214/394 +f 4305/229/390 4306/221/390 4297/219/390 +f 4297/219/390 4298/220/390 4305/229/390 +f 4274/206/388 4307/223/388 4308/230/388 +f 4308/230/388 4275/205/388 4274/206/388 +f 4308/227/392 4302/228/392 4288/213/392 +f 4288/213/392 4275/214/392 4308/227/392 +f 4271/201/388 4309/202/388 4310/199/388 +f 4310/199/388 4272/200/388 4271/201/388 +f 4308/231/405 4287/233/405 4286/232/405 +f 4286/232/405 4302/224/405 4308/231/405 +f 4302/224/404 4286/232/404 4294/234/404 +f 4294/234/404 4304/225/404 4302/224/404 +f 4304/225/403 4294/234/403 4291/232/403 +f 4291/232/403 4303/224/403 4304/225/403 +f 4303/224/407 4291/232/407 4290/233/407 +f 4290/233/407 4305/231/407 4303/224/407 +f 4279/200/390 4311/199/390 4312/202/390 +f 4312/202/390 4280/201/390 4279/200/390 +f 4283/208/391 4292/236/391 4293/235/391 +f 4293/235/391 4284/207/391 4283/208/391 +f 4284/207/398 4293/235/398 4285/236/398 +f 4285/236/398 4300/208/398 4284/207/398 +f 4307/236/27 4269/238/27 4272/237/27 +f 4272/237/27 4308/231/27 4307/236/27 +f 4308/231/27 4272/237/27 4310/239/27 +f 4310/239/27 4287/233/27 4308/231/27 +f 4287/210/409 4310/241/409 4309/240/409 +f 4309/240/409 4285/209/409 4287/210/409 +f 4285/236/26 4309/238/26 4271/242/26 +f 4271/242/26 4300/208/26 4285/236/26 +f 4300/208/26 4271/242/26 4270/240/26 +f 4270/240/26 4299/209/26 4300/208/26 +f 4282/209/26 4277/240/26 4280/242/26 +f 4280/242/26 4283/208/26 4282/209/26 +f 4283/208/26 4280/242/26 4312/238/26 +f 4312/238/26 4292/236/26 4283/208/26 +f 4292/209/410 4312/240/410 4311/241/410 +f 4311/241/410 4290/210/410 4292/209/410 +f 4290/233/27 4311/239/27 4279/237/27 +f 4279/237/27 4305/231/27 4290/233/27 +f 4305/231/27 4279/237/27 4278/238/27 +f 4278/238/27 4306/236/27 4305/231/27 +f 4313/195/436 4314/198/436 4315/197/411 +f 4315/197/411 4316/196/411 4313/195/436 +f 4317/199/437 4318/202/437 4319/201/437 +f 4319/201/437 4320/200/437 4317/199/437 +f 4321/203/414 4322/206/414 4323/205/414 +f 4323/205/414 4324/204/414 4321/203/414 +f 4325/202/465 4326/199/465 4327/200/465 +f 4327/200/465 4328/201/465 4325/202/465 +f 4329/207/417 4330/209/417 4331/208/417 +f 4331/208/417 4332/207/417 4329/207/417 +f 4333/209/171 4334/211/171 4335/210/171 +f 4324/212/418 4323/214/418 4336/213/418 +f 4336/213/418 4337/196/418 4324/212/418 +f 4338/210/419 4339/211/419 4340/209/419 +f 4341/215/420 4340/209/420 4339/211/420 +f 4339/211/420 4342/216/420 4341/215/420 +f 4343/217/167 4316/196/167 4315/197/167 +f 4315/197/167 4344/218/167 4343/217/167 +f 4345/219/438 4321/203/421 4324/204/421 +f 4324/204/421 4346/220/421 4345/219/438 +f 4347/209/422 4329/207/422 4332/207/422 +f 4332/207/422 4348/208/422 4347/209/422 +f 4324/212/423 4337/196/423 4349/213/423 +f 4349/213/423 4346/214/423 4324/212/423 +f 4341/215/424 4342/216/424 4334/211/424 +f 4334/211/424 4333/209/424 4341/215/424 +f 4350/221/465 4314/221/465 4313/222/465 +f 4313/222/465 4336/222/465 4350/221/465 +f 4336/222/425 4313/222/425 4316/203/425 +f 4316/203/425 4337/203/425 4336/222/425 +f 4337/203/426 4316/203/426 4343/206/426 +f 4343/206/426 4349/206/426 4337/203/426 +f 4349/206/437 4343/206/437 4344/223/437 +f 4344/223/437 4351/223/437 4349/206/437 +f 4351/224/427 4344/224/427 4315/226/427 +f 4315/226/427 4352/225/427 4351/224/427 +f 4352/225/428 4315/226/428 4314/224/428 +f 4314/224/428 4350/224/428 4352/225/428 +f 4346/214/419 4349/213/419 4351/228/419 +f 4351/228/419 4353/227/419 4346/214/419 +f 4353/229/465 4354/221/465 4345/219/465 +f 4345/219/465 4346/220/465 4353/229/465 +f 4322/206/437 4355/223/437 4356/230/437 +f 4356/230/437 4323/205/437 4322/206/437 +f 4356/227/171 4350/228/171 4336/213/171 +f 4336/213/171 4323/214/171 4356/227/171 +f 4319/201/437 4357/202/437 4358/199/437 +f 4358/199/437 4320/200/437 4319/201/437 +f 4356/231/487 4335/233/487 4334/232/487 +f 4334/232/487 4350/224/487 4356/231/487 +f 4350/224/428 4334/232/428 4342/234/428 +f 4342/234/428 4352/225/428 4350/224/428 +f 4352/225/427 4342/234/427 4339/232/427 +f 4339/232/427 4351/224/427 4352/225/427 +f 4351/224/430 4339/232/430 4338/233/430 +f 4338/233/430 4353/231/430 4351/224/430 +f 4327/200/465 4359/199/465 4360/202/465 +f 4360/202/465 4328/201/465 4327/200/465 +f 4331/208/417 4340/236/417 4341/235/417 +f 4341/235/417 4332/207/417 4331/208/417 +f 4332/207/422 4341/235/422 4333/236/422 +f 4333/236/422 4348/208/422 4332/207/422 +f 4355/236/27 4317/238/27 4320/237/27 +f 4320/237/27 4356/231/27 4355/236/27 +f 4356/231/27 4320/237/27 4358/239/27 +f 4358/239/27 4335/233/27 4356/231/27 +f 4335/210/191 4358/241/191 4357/240/191 +f 4357/240/191 4333/209/191 4335/210/191 +f 4333/236/26 4357/238/26 4319/242/26 +f 4319/242/26 4348/208/26 4333/236/26 +f 4348/208/26 4319/242/26 4318/240/26 +f 4318/240/26 4347/209/26 4348/208/26 +f 4330/209/26 4325/240/26 4328/242/26 +f 4328/242/26 4331/208/26 4330/209/26 +f 4331/208/26 4328/242/26 4360/238/26 +f 4360/238/26 4340/236/26 4331/208/26 +f 4340/209/431 4360/240/431 4359/241/431 +f 4359/241/431 4338/210/431 4340/209/431 +f 4338/233/27 4359/239/27 4327/237/27 +f 4327/237/27 4353/231/27 4338/233/27 +f 4353/231/27 4327/237/27 4326/238/27 +f 4326/238/27 4354/236/27 4353/231/27 +f 4361/243/160 4362/246/160 4363/245/160 +f 4363/245/160 4364/244/160 4361/243/160 +f 4361/247/163 4365/250/163 4366/249/163 +f 4366/249/163 4362/248/163 4361/247/163 +f 4362/246/162 4366/252/162 4367/251/162 +f 4367/251/162 4363/245/162 4362/246/162 +f 4363/248/161 4367/249/161 4368/250/161 +f 4368/250/161 4364/247/161 4363/248/161 +f 4369/195/411 4370/198/411 4371/197/436 +f 4371/197/436 4372/196/436 4369/195/411 +f 4373/199/437 4374/202/437 4375/201/437 +f 4375/201/437 4376/200/437 4373/199/437 +f 4377/203/414 4378/206/414 4379/205/414 +f 4379/205/414 4380/204/414 4377/203/414 +f 4381/202/465 4382/199/465 4383/200/465 +f 4383/200/465 4384/201/465 4381/202/465 +f 4385/207/417 4386/209/417 4387/208/417 +f 4387/208/417 4388/207/417 4385/207/417 +f 4389/209/171 4390/211/171 4391/210/171 +f 4380/212/418 4379/214/418 4392/213/418 +f 4392/213/418 4393/196/418 4380/212/418 +f 4394/210/419 4395/211/419 4396/209/419 +f 4397/215/420 4396/209/420 4395/211/420 +f 4395/211/420 4398/216/420 4397/215/420 +f 4399/217/167 4372/196/167 4371/197/167 +f 4371/197/167 4400/218/167 4399/217/167 +f 4401/219/421 4377/203/421 4380/204/438 +f 4380/204/438 4402/220/421 4401/219/421 +f 4403/209/422 4385/207/422 4388/207/422 +f 4388/207/422 4404/208/422 4403/209/422 +f 4380/212/423 4393/196/423 4405/213/423 +f 4405/213/423 4402/214/423 4380/212/423 +f 4397/215/424 4398/216/424 4390/211/424 +f 4390/211/424 4389/209/424 4397/215/424 +f 4406/221/465 4370/221/465 4369/222/465 +f 4369/222/465 4392/222/465 4406/221/465 +f 4392/222/425 4369/222/425 4372/203/425 +f 4372/203/425 4393/203/425 4392/222/425 +f 4393/203/426 4372/203/426 4399/206/426 +f 4399/206/426 4405/206/426 4393/203/426 +f 4405/206/437 4399/206/437 4400/223/437 +f 4400/223/437 4407/223/437 4405/206/437 +f 4407/224/427 4400/224/427 4371/226/427 +f 4371/226/427 4408/225/427 4407/224/427 +f 4408/225/428 4371/226/428 4370/224/428 +f 4370/224/428 4406/224/428 4408/225/428 +f 4402/214/419 4405/213/419 4407/228/419 +f 4407/228/419 4409/227/419 4402/214/419 +f 4409/229/465 4410/221/465 4401/219/465 +f 4401/219/465 4402/220/465 4409/229/465 +f 4378/206/437 4411/223/437 4412/230/437 +f 4412/230/437 4379/205/437 4378/206/437 +f 4412/227/171 4406/228/171 4392/213/171 +f 4392/213/171 4379/214/171 4412/227/171 +f 4375/201/437 4413/202/437 4414/199/437 +f 4414/199/437 4376/200/437 4375/201/437 +f 4412/231/487 4391/233/487 4390/232/487 +f 4390/232/487 4406/224/487 4412/231/487 +f 4406/224/428 4390/232/428 4398/234/428 +f 4398/234/428 4408/225/428 4406/224/428 +f 4408/225/427 4398/234/427 4395/232/427 +f 4395/232/427 4407/224/427 4408/225/427 +f 4407/224/430 4395/232/430 4394/233/430 +f 4394/233/430 4409/231/430 4407/224/430 +f 4383/200/465 4415/199/465 4416/202/465 +f 4416/202/465 4384/201/465 4383/200/465 +f 4387/208/417 4396/236/417 4397/235/417 +f 4397/235/417 4388/207/417 4387/208/417 +f 4388/207/422 4397/235/422 4389/236/422 +f 4389/236/422 4404/208/422 4388/207/422 +f 4411/236/27 4373/238/27 4376/237/27 +f 4376/237/27 4412/231/27 4411/236/27 +f 4412/231/27 4376/237/27 4414/239/27 +f 4414/239/27 4391/233/27 4412/231/27 +f 4391/210/191 4414/241/191 4413/240/191 +f 4413/240/191 4389/209/191 4391/210/191 +f 4389/236/26 4413/238/26 4375/242/26 +f 4375/242/26 4404/208/26 4389/236/26 +f 4404/208/26 4375/242/26 4374/240/26 +f 4374/240/26 4403/209/26 4404/208/26 +f 4386/209/26 4381/240/26 4384/242/26 +f 4384/242/26 4387/208/26 4386/209/26 +f 4387/208/26 4384/242/26 4416/238/26 +f 4416/238/26 4396/236/26 4387/208/26 +f 4396/209/431 4416/240/431 4415/241/431 +f 4415/241/431 4394/210/431 4396/209/431 +f 4394/233/27 4415/239/27 4383/237/27 +f 4383/237/27 4409/231/27 4394/233/27 +f 4409/231/27 4383/237/27 4382/238/27 +f 4382/238/27 4410/236/27 4409/231/27 +f 4417/243/432 4418/246/432 4419/245/432 +f 4419/245/432 4420/244/432 4417/243/432 +f 4417/247/433 4421/250/433 4422/249/433 +f 4422/249/433 4418/248/433 4417/247/433 +f 4418/246/434 4422/252/434 4423/251/434 +f 4423/251/434 4419/245/434 4418/246/434 +f 4419/248/435 4423/249/435 4424/250/435 +f 4424/250/435 4420/247/435 4419/248/435 +f 4425/195/443 4426/198/443 4427/197/443 +f 4427/197/443 4428/196/443 4425/195/443 +f 4429/199/390 4430/202/390 4431/201/390 +f 4431/201/390 4432/200/390 4429/199/390 +f 4433/203/444 4434/206/444 4435/205/444 +f 4435/205/444 4436/204/444 4433/203/444 +f 4437/202/388 4438/199/388 4439/200/388 +f 4439/200/388 4440/201/388 4437/202/388 +f 4441/207/398 4442/209/398 4443/208/398 +f 4443/208/398 4444/207/398 4441/207/398 +f 4445/209/445 4446/211/445 4447/210/445 +f 4436/212/446 4435/214/446 4448/213/446 +f 4448/213/446 4449/196/446 4436/212/446 +f 4450/210/447 4451/211/447 4452/209/447 +f 4453/215/448 4452/209/448 4451/211/448 +f 4451/211/448 4454/216/448 4453/215/448 +f 4455/217/449 4428/196/449 4427/197/449 +f 4427/197/449 4456/218/449 4455/217/449 +f 4457/219/451 4433/203/451 4436/204/451 +f 4436/204/451 4458/220/451 4457/219/451 +f 4459/209/391 4441/207/391 4444/207/391 +f 4444/207/391 4460/208/391 4459/209/391 +f 4436/212/452 4449/196/452 4461/213/452 +f 4461/213/452 4458/214/452 4436/212/452 +f 4453/215/453 4454/216/453 4446/211/453 +f 4446/211/453 4445/209/453 4453/215/453 +f 4462/221/388 4426/221/388 4425/222/388 +f 4425/222/388 4448/222/388 4462/221/388 +f 4448/222/402 4425/222/402 4428/203/402 +f 4428/203/402 4449/203/402 4448/222/402 +f 4449/203/401 4428/203/401 4455/206/401 +f 4455/206/401 4461/206/401 4449/203/401 +f 4461/206/390 4455/206/390 4456/223/390 +f 4456/223/390 4463/223/390 4461/206/390 +f 4463/224/454 4456/224/454 4427/226/454 +f 4427/226/454 4464/225/454 4463/224/454 +f 4464/225/455 4427/226/455 4426/224/455 +f 4426/224/455 4462/224/455 4464/225/455 +f 4458/214/447 4461/213/447 4463/228/447 +f 4463/228/447 4465/227/447 4458/214/447 +f 4465/229/388 4466/221/388 4457/219/388 +f 4457/219/388 4458/220/388 4465/229/388 +f 4434/206/390 4467/223/390 4468/230/390 +f 4468/230/390 4435/205/390 4434/206/390 +f 4468/227/445 4462/228/445 4448/213/445 +f 4448/213/445 4435/214/445 4468/227/445 +f 4431/201/390 4469/202/390 4470/199/390 +f 4470/199/390 4432/200/390 4431/201/390 +f 4468/231/456 4447/233/456 4446/232/456 +f 4446/232/456 4462/224/456 4468/231/456 +f 4462/224/455 4446/232/455 4454/234/455 +f 4454/234/455 4464/225/455 4462/224/455 +f 4464/225/454 4454/234/454 4451/232/454 +f 4451/232/454 4463/224/454 4464/225/454 +f 4463/224/457 4451/232/457 4450/233/457 +f 4450/233/457 4465/231/457 4463/224/457 +f 4439/200/388 4471/199/388 4472/202/388 +f 4472/202/388 4440/201/388 4439/200/388 +f 4443/208/398 4452/236/398 4453/235/398 +f 4453/235/398 4444/207/398 4443/208/398 +f 4444/207/391 4453/235/391 4445/236/391 +f 4445/236/391 4460/208/391 4444/207/391 +f 4467/236/27 4429/238/27 4432/237/27 +f 4432/237/27 4468/231/27 4467/236/27 +f 4468/231/27 4432/237/27 4470/239/27 +f 4470/239/27 4447/233/27 4468/231/27 +f 4447/210/484 4470/241/484 4469/240/484 +f 4469/240/484 4445/209/484 4447/210/484 +f 4445/236/26 4469/238/26 4431/242/26 +f 4431/242/26 4460/208/26 4445/236/26 +f 4460/208/26 4431/242/26 4430/240/26 +f 4430/240/26 4459/209/26 4460/208/26 +f 4442/209/26 4437/240/26 4440/242/26 +f 4440/242/26 4443/208/26 4442/209/26 +f 4443/208/26 4440/242/26 4472/238/26 +f 4472/238/26 4452/236/26 4443/208/26 +f 4452/209/459 4472/240/459 4471/241/459 +f 4471/241/459 4450/210/459 4452/209/459 +f 4450/233/27 4471/239/27 4439/237/27 +f 4439/237/27 4465/231/27 4450/233/27 +f 4465/231/27 4439/237/27 4438/238/27 +f 4438/238/27 4466/236/27 4465/231/27 +f 4473/243/150 4474/246/150 4475/245/150 +f 4475/245/150 4476/244/150 4473/243/150 +f 4473/247/153 4477/250/153 4478/249/153 +f 4478/249/153 4474/248/153 4473/247/153 +f 4474/246/152 4478/252/152 4479/251/152 +f 4479/251/152 4475/245/152 4474/246/152 +f 4475/248/151 4479/249/151 4480/250/151 +f 4480/250/151 4476/247/151 4475/248/151 +f 4481/253/18 4482/256/18 4483/255/18 +f 4483/255/18 4484/254/18 4481/253/18 +f 4485/257/17 4486/258/17 4482/256/17 +f 4482/256/17 4481/253/17 4485/257/17 +f 4487/259/16 4488/260/16 4486/258/16 +f 4486/258/16 4485/257/16 4487/259/16 +f 4489/261/15 4490/264/15 4488/263/15 +f 4488/263/15 4487/262/118 4489/261/15 +f 4491/265/14 4492/266/14 4490/264/14 +f 4490/264/14 4489/261/14 4491/265/14 +f 4493/267/13 4494/268/13 4492/266/13 +f 4492/266/13 4491/265/13 4493/267/13 +f 4495/269/25 4496/270/25 4494/268/24 +f 4494/268/24 4493/267/24 4495/269/25 +f 4497/271/23 4498/272/23 4496/270/23 +f 4496/270/23 4495/269/23 4497/271/23 +f 4499/273/191 4500/274/22 4498/272/22 +f 4498/272/22 4497/271/22 4499/273/191 +f 4501/275/21 4502/276/21 4500/274/21 +f 4500/274/21 4499/273/21 4501/275/21 +f 4503/277/20 4504/278/20 4502/276/20 +f 4502/276/20 4501/275/20 4503/277/20 +f 4484/254/19 4483/255/19 4504/278/190 +f 4504/278/190 4503/277/190 4484/254/19 +f 4482/279/27 4505/282/27 4506/281/27 +f 4506/281/27 4483/280/27 4482/279/27 +f 4507/283/27 4508/284/27 4509/282/27 +f 4509/282/27 4510/279/27 4507/283/27 +f 4488/285/27 4511/285/27 4512/284/27 +f 4512/284/27 4486/283/27 4488/285/27 +f 4513/286/27 4514/287/27 4515/285/27 +f 4515/285/27 4516/285/27 4513/286/27 +f 4492/288/27 4517/289/27 4518/287/27 +f 4518/287/27 4490/286/27 4492/288/27 +f 4519/290/27 4520/291/27 4521/289/27 +f 4521/289/27 4522/288/27 4519/290/27 +f 4496/292/27 4523/293/27 4524/291/27 +f 4524/291/27 4494/290/27 4496/292/27 +f 4525/294/27 4526/295/27 4527/293/27 +f 4527/293/27 4528/292/27 4525/294/27 +f 4500/296/27 4529/297/27 4530/295/27 +f 4530/295/27 4498/294/27 4500/296/27 +f 4531/298/27 4532/299/27 4533/297/27 +f 4533/297/27 4534/296/27 4531/298/27 +f 4504/300/27 4535/300/27 4536/299/27 +f 4536/299/27 4502/298/27 4504/300/27 +f 4537/280/27 4538/281/27 4539/300/27 +f 4539/300/27 4540/300/27 4537/280/27 +f 4505/301/24 4541/304/24 4542/303/24 +f 4542/303/24 4506/302/24 4505/301/24 +f 4512/305/23 4543/306/23 4541/304/23 +f 4541/304/23 4505/301/23 4512/305/23 +f 4511/307/22 4544/308/22 4543/306/22 +f 4543/306/22 4512/305/191 4511/307/22 +f 4518/309/21 4545/310/21 4544/308/21 +f 4544/308/21 4511/307/21 4518/309/21 +f 4517/311/20 4546/312/20 4545/310/20 +f 4545/310/20 4518/309/20 4517/311/20 +f 4524/313/19 4547/314/19 4546/312/19 +f 4546/312/19 4517/311/19 4524/313/19 +f 4523/315/194 4548/316/194 4547/314/18 +f 4547/314/18 4524/313/18 4523/315/194 +f 4530/317/17 4549/318/17 4548/316/17 +f 4548/316/17 4523/315/17 4530/317/17 +f 4529/319/16 4550/320/16 4549/318/16 +f 4549/318/16 4530/317/16 4529/319/16 +f 4536/321/118 4551/324/15 4550/323/15 +f 4550/323/15 4529/322/15 4536/321/118 +f 4535/325/14 4552/326/14 4551/324/14 +f 4551/324/14 4536/321/14 4535/325/14 +f 4506/302/13 4542/303/13 4552/326/192 +f 4552/326/192 4535/325/192 4506/302/13 +f 4541/327/27 4553/329/27 4542/328/27 +f 4543/330/27 4553/329/27 4541/327/27 +f 4544/331/27 4553/329/27 4543/330/27 +f 4545/332/27 4553/329/27 4544/331/27 +f 4546/333/27 4553/329/27 4545/332/27 +f 4547/334/27 4553/329/27 4546/333/27 +f 4548/335/27 4553/329/27 4547/334/27 +f 4549/336/27 4553/329/27 4548/335/27 +f 4550/337/27 4553/329/27 4549/336/27 +f 4551/338/27 4553/329/27 4550/337/27 +f 4552/339/27 4553/329/27 4551/338/27 +f 4542/328/27 4553/329/27 4552/339/27 +f 4486/258/17 4507/341/17 4510/340/17 +f 4510/340/17 4482/256/17 4486/258/17 +f 4482/279/151 4510/279/151 4509/282/151 +f 4509/282/151 4505/282/151 4482/279/151 +f 4505/301/23 4509/343/23 4508/342/23 +f 4508/342/23 4512/305/23 4505/301/23 +f 4512/284/198 4508/284/198 4507/283/198 +f 4507/283/198 4486/283/198 4512/284/198 +f 4490/264/15 4513/345/15 4516/344/15 +f 4516/344/15 4488/263/15 4490/264/15 +f 4488/285/7 4516/285/7 4515/285/7 +f 4515/285/7 4511/285/7 4488/285/7 +f 4511/307/21 4515/347/21 4514/346/21 +f 4514/346/21 4518/309/21 4511/307/21 +f 4518/287/197 4514/287/197 4513/286/197 +f 4513/286/197 4490/286/197 4518/287/197 +f 4494/268/13 4519/349/13 4522/348/13 +f 4522/348/13 4492/266/13 4494/268/13 +f 4492/288/163 4522/288/163 4521/289/163 +f 4521/289/163 4517/289/163 4492/288/163 +f 4517/311/19 4521/351/19 4520/350/19 +f 4520/350/19 4524/313/19 4517/311/19 +f 4524/291/10 4520/291/10 4519/290/10 +f 4519/290/10 4494/290/10 4524/291/10 +f 4498/272/23 4525/353/23 4528/352/23 +f 4528/352/23 4496/270/23 4498/272/23 +f 4496/292/153 4528/292/153 4527/293/153 +f 4527/293/153 4523/293/153 4496/292/153 +f 4523/315/17 4527/355/17 4526/354/17 +f 4526/354/17 4530/317/17 4523/315/17 +f 4530/295/196 4526/295/196 4525/294/196 +f 4525/294/196 4498/294/196 4530/295/196 +f 4502/276/21 4531/357/21 4534/356/178 +f 4534/356/178 4500/274/21 4502/276/21 +f 4500/296/1 4534/296/1 4533/297/1 +f 4533/297/1 4529/297/1 4500/296/1 +f 4529/322/15 4533/359/15 4532/358/15 +f 4532/358/15 4536/321/118 4529/322/15 +f 4536/299/195 4532/299/195 4531/298/195 +f 4531/298/195 4502/298/195 4536/299/195 +f 4483/255/19 4537/361/19 4540/360/19 +f 4540/360/19 4504/278/190 4483/255/19 +f 4504/300/161 4540/300/161 4539/300/161 +f 4539/300/161 4535/300/161 4504/300/161 +f 4535/325/192 4539/363/192 4538/362/13 +f 4538/362/13 4506/302/13 4535/325/192 +f 4506/281/4 4538/281/4 4537/280/4 +f 4537/280/4 4483/280/4 4506/281/4 +# 7168 faces + +‰PNG + + IHDRHÃÛ±PLTE         %) +  # ++ #"&# *, ##((0843;:  (" # -&)!.(;"2+;3$#"%&(&(%&((*%#(&(+(&,++-/0.0..010�)&1-,8/-0/020.83.98/333568685689854868<95:;;7?@<>@?@<=AB?GH?HHADEHKLQRXXC$B&E(D)H&N I)L,F0 M1 D9V T P,P. [ Z" +_(S3 V8X6 Y8Q6U9X6\;I? A>;c& k+`>s, r-y0x1@?@I@]@LB DA=UJ%]Q(aAdEeHhEhFjHjKpNpPdX,k]0wV n`2wi6~p;BCCCFHEIJIEBHGHMIEJKKFNPLNPFPPMQQNWXNXXQMIPNQVQMRSSTVXUXYZUQXWZ]YTZ[\\^`V``]`aa]X`_dfb\xlD}pFtPbccdfhfhikfahgknicjkkmopnpqrlgxrl}wq„7€o;ƒs=ŠzC‰|S�~C‚|vŽ€L�€V•„H—ˆWž�]�ƒbˆ‚{˜‹d˜Žp�‘iœ“t �L ŽT¢�N¦”W§—g§›u°žh® m­¡x±¡l²¤yŒ‡��Šƒ———¦��¬£‡®¦‘µª‡´¬“»±�»²•§§§¼¶ ···Áµ�·™Å¼£ÈÁ©ÇÇÇ×××èèèüüü§uyÃðIDATxÚÔýop×}ç ®WshÅÕP ìž0=Æ£ÓgBf0¡Æì¶~ã†rš{ÏNw #AäÜ~¸í iV7�¼’)ĺÞ*ª7áܹ*Ö“¢»—Y¿Ø½Ü®¦%4 €q„Ù­Ð +cô`=°ÿK­K—¶¶^}5 õ|>/M½ó…®ëºŽ´¼®ëzI7tC7’Gs9m||Ü0 ãkÐ5Ã0 CËåE>÷vPë3ÆXLÁù��/ØW°ååeÆ|ß÷}¯¸p €¢ªÕ[ &€ã:O ñi@íÅÚÔ”IÈ~ + ]@P‹uJë;‹·À~ +À’�›ÏÏÔ: + ÞU5b’±)€_RÉ. î½5Î5W{?Å Ø϶^º}Ü1XJæ¸r\I�ÇKQ¥ÇWy¸o$hÅ6¿Þ£Z­V«µu©ÕÚÚzu+¼æóÉé�t]ÓäQ^ë1ã~`èºñµ¯­®jùH`ä4EQôC*tô*€ýÿœ1ÆX©XDÅâPÄ +À÷`ÅóðØ^@{ÿW<–Øÿ/ܸ÷ŽÃ»«Íæ¹Õfï§¡h~vÜ{€:~\9~||<&€¢(¡¨ª²§Z­V¸ÑX� Ð#ÿ·Â0  iúñù®ëz|ðëÉc1z@:@‡=ÈIÜf  l™-wƒ€½.€àâð%ÎùRÏù?,È‚¯A0̸0[–¿±¨Õ!A€!p…OIðÛŽ¬ö‹| +`‘Þ® 1ÿ¹Mm{Ñ®’Ó‰x¬Çø;çÿ/Ÿãð.@_à\óÜP ù™]€[!@ÅÜÁh�Ï(12Š`ŒÀ¡@«õt'Ðê!@,ÿ/½ºµÛ#±ô¼Ž:Ç~^×óz>_Òu½dÉùo躦©ãéñ´n½@É)Ú øLX^î&ø@à Pâli‰£½1€n`y9ðý ðƒÃí 2„TuXà`p› výà@D‡gö äÐÅÛQWm{O FN÷ÄÔÿC]€;>« +€/ÜÇš«Íæ¹'’O¿Tp TÌ´WdÒãJ¬Ž+ s °Õ%@Øqz4€t¶^}õÕ0¶ÿ†®k:Šã~º.〚®çõ¼ ý%£Ô@.§¥ÇÇÓ‰ý¯æ5MSM ÷ ë ÜŽ ÀY‰ó%„ŠÚ@ ? è}h0€ÓŒ»iÀååeÆÒЇ€óT<:ôjÿñ��z}ö4©Ý¥t÷Íï½yýÆ_�þðyºµßØý£?i×£´]Ÿ�èn;¢@)PXX 4ú“ëÑνю¢¨ýF}ç�£ö�7vÚÖŽêôû•hçÚ÷Û;×o¼±¸s­]�®^¯Óö›7®¿ù'ׯGí6mGíöîî�v]¯ÓèÆÂÝÝ�(Р@iݦÿi7ŠvÛí�z;Ú­_ý^ýê÷Ú½Q·«³ö�$’›÷¬cÇŽýò\€CÇŽ=ÑXÝ'°ú À¾P1wPâ@FÁÃP<œØjõ# 7°¾àÕWùßh4‰ÅKhù|B¤— ]/•:ú_7¤ �6 Ý0V�ÕnpÊgÀòA`ûÆ–8cK¨¸�XfI€ßç¬ôÇœîk†Å*¢¡QÀý‚€n€¥éC¯/MÏÌÜsç�Gî)ffÊår¹2]ž™žžžž.ÏLÏ”ËeùèL¹?<=====3=].—Ë…Ât¹ü¥/•Ë3ò‡33…r¹\ž. +…Âôôt¹P.— …ÂLY®™Êty¦0===].O'ÊÍË=›Ï|©\.ÏL +åòôt¹<“üìž{Ž™›˜ž‘{tÖ±_ödn €fOà‰æêù¡Y€Õ_� pö‰(éqeüøñãÇÇ%ƒŽ0>>~»1¼ÕÚºÔê „=Ã�ÖÆ¥­~ûo4´>—?‰ä‘.@IO€®ëjNI��ëºñeÃX]ýÚ*ÒöÀÈ)Š¢è½yýÓ`¸ Àe—p‰#Ô{Àü=u@+ò?�èê @\Ù§Àá�õü!×wç*íëöÔ”y†X4ºv-z³ý}Z¾ÑnÿÁw�¾Ai{·Ñöíko\»Ñ¾ö ¸úüÂóß�èóÑwé›ׯÑöïG»ÿûÙöîõݨý|ÔnïÒ(m?Oé7èó™Ù¹±S¯ËÇvw£ëo܈ʻív;Ú¦´}½ѨÝn_»vãÚmë»ÏÓ(Šž>Šv¯ïÒv;ÚÝ=ûÝÝÝ6mSµÛ@ 9=›5iDŸ�æ:ø(Û€_XàÞÛ‰kv£Oô¤~y +`ìPÒãʸ¢(ʸ¢(Œ��gºiÀâ!²ãFcëÒ¥­=n€Œ„áFkcëÕW_mõÚK×Q^G:’~¿ÞIh%Y¤ºÔ†žÓ´Lz¥¶]ƒÝò BlZ§@m¹9˲æ{6§´Ü›°€œ!§gMónSþ3YÇŽû¥º·£bã?÷D³¹Ú\m6ÿ;:0žWÆÇ¥P°À\ Ý«Ð-ÆãF£qéÒV—}a¸Ñº´õêV+ /vrŸ[-™ˆIN0�t½¤†^2tC/%€¢dÆÓãÒª¿öµ¯É À TíÐA€Ûwâ€B@ÎY !´o!` €À÷o© ¿x™1¤ !„p{À¹y¸5‘­ÂäèäÝÙ©©)sÖ4MÓ>"mkö´Y­Sj€@4¿°l uZ§¶ QÅ»Fç Q=!À4¡×m¨Vj5›R ]n€m•›×$ê€ÈÍk6­™=}Ú$Gˆiš$kš¦if³ÙìÔÝ“wÏ’ÙÓ¦Yˆ×±[àŽ_TàŽC*€s½•€{\€Õ_¬ 0·Ž(E,p)Q=Ðnˆc£Ñh\Úêq6zªÃõ�K—¶~¯Õ{üomµòzÌ'.@^×òº.íÞ0º…€š¦eâ`7˜K�ËuÐG€Ïäà=YqP!àR‰Ñ~Y@¶ÌX\ |xàN;@\ +¨©EU-Ouƒ€2p×!Öèdj25™J¥R##©ÉÔèÈèèèd*+ÿO�4m»VI€z½n-Pkž¨ÑZ�ÒšM)­ÈãÞ’g·eA�Ê“Ÿ(¹öG6€Qjì¨Éó{qç*µíxóÅz½þè‹À<À£”R2™J�ŽŒ¦FR#©Ôdj¤ç¿æäääää?9"×±aø…ºP¦†õô ù‹V{pP ",0Nb™=•€ûd:¿¯Ôxê©~7 G„­ÖÖïuÍ¿ÑjmmµZ2ä/ó€=µÀzÉ�Ÿºi@EÓ2ããšÔ÷O¬®®± @Tµœ’ëón; ØÖã~0cKœí«[^^^–1ç1€Ž Ð(ÞÄ8Ÿ¼õºk2u×H*5’I�ŽŒŽŽL¥îI�ŒŽŒŒL2K!Ä$„T¡R9M*¦išæiÓ$ñ:Mî!±bxȦë9-g†®«²4(—Ó4M¦ ~aàûq¯ ° `™±eøAø=HZDL€}€dlB¶.ÞÞ€ÝÒü§Ì 3;™J¥FþÑdç±;§²Ùlöî©l¶:•Íf³Ù»'ïºëîlöèd¶kˆ£1#F'ïJMNŽŽŽŽŽ¤FÿQ*•¹ûîÑ)B�{hv4•I�ü£‘4šIM¦F''G''³“£³wuir×]wwEÉä]“wg³Ùlvò®¬y§ü*›�œ<2999yWvôî©©©£GÍl6›Íî€_Jàxbuuõ‰æ¹'έ®®®®ž{â‰'4ŒR©TêÀm)€—ûÄ228>>žWÆHͤÓéñã=.Àþ½xÐþ¥èu666Ö×eðÒ¥­o‡�'å:*aÐöcÀ(u½ÃÐ MÕ2™LZÓ ãË««_ëçrÊøx:3žQ%—Óº é:BHÓ>‹ Åû¡ Ëøð-@àû¾ß«Vв`h_€ÔâaðÔ0p~úË$GÈÑÉ‘Tjr2›Í=šÍf³§'¤¤Ÿš2«³§gÍl6›ý'ÙìÔ”y�3brrrr2›ÍNÞuw6›�ÈöžÑ¿–�ÌNNNÍÍÞ�½Óœœ�íþؼ3;y×]wß�½;kNMMM¨stª¥»³ÙìÝÙ©) ¨Él6›•O»'{$›½ë®Ôäl}ö´ X;„¸ã•8„ Ðè_†aO4›a¸±–Ä¿>ç–�@*fÞF3\D©ªªŒ«êqEIW2™ññÌø¸â ¸,x\QEU”ãʸª¨HEjQW1ç,„ã ù½qï~ât4@76.mm…�§�ð¥h+ß±ù>I`dEQ2š&;¤ð„aF£ïÓ4MQEÕ4 åÒu¤Ý6p¿èFÃ]€n30cø ø_ßã aO<Ùl†aXŠS\O>ùä“ÍæZøl«uiëéÃ`é@¨XÄÜáó%„p«HEª¢ªª¢*ʸªªŠ¢(ã*FŠ¢?®(ÊñôqEWEEªŠ—*ªÇQ‘ŽÃ‡ÃN©T2J]7@*üÖÆÆúzØ’2àÒÖÖÅF£±ñRoÅÐP ÔÅ×óš¢(9MÓòº1| >žWzˆò©0´`Ÿ `R ̦:­lyyÙÿzàwc+=1€ ¸x0ˆQq¸8” ¿qª/˜&ÒH³Yih§g«öéYBfgg«võ !³„ȰŸifMÓœ5§¦’âla*;õÈy@›ñ‡\G¦Ì)rçT�»ašG§¦È1Móô,1‰]��í¦#O“¬ifgÍÓ¦i�Ÿ2kšp„$Ï8 +G³Ùlvrdò7Í*…EBȾø¥d€'“Õ�Ÿ ã‰'O4×Â*uºÞçÏ?ùäùÕæÚs­VëÒÖ†Ñxn_«ÿÖ·¾õ­o}kkkkK8ÎÒaD*ÜYâ‚#\dLŪ<×UUQUU‹ŠüSU‹ªª(ª¢*ò‡*R0^¸¨fŠx)ðŽÓ7)§ ÞÕ[’—6:Y€��­­ó�Fc£·fxkòZNÉ)¹\^7VWeÚÏ8ÄZú¬ÛÀò~�áµ}{�J¥R©„{ÀÞ^ æ_¾~H LB²#¤¢Û@Ò(ÿÉݼsЊ Äœ”:Û<ý!p¾Ñ]j¨îÔmjUÛ®B©L¨R%gª&R…j­jš‘#bš¤JÌ‚IL“˜¦yš²&�#™¦IL3¡ !gŽDp•�3Ô®BµJ©9•BÎrÈ +„<²pD&!ª2I`š¿™�Ì‚i’«´R©üRÀž^€{oO&h¬®6šÍµ°�Ò4MK ðä“ç›ás­Vkkk½Ñ‡Ú}ß[ŽãHܪÂãØaK˜«ḚÊPaŒ�´øb#©ªª"Uúª¢ª**ª!sŽ**;/x Ñ›ÛãÄhÆ£?6d!@¬Î7ç{[¶.µ†GûÛ‚åß=èŸÐó'e¼ ¯çóù\.§(š¦å`@Ä|¸ À9.jû5²e¶ì~ô`0Ø�>ìc #MÕ €§\1¸pàš(LI¥îÙl6chªªªºnh¹\&ßxòÉóáúF«µµ–øÓCÿ­­o}ë[[¿÷­­­oI°´äÜZ¨Šª. Ìâ€S1âcŽQ!¤*ªE¤ªj!ŒÔ"*ʯ‹*Â!Ça•"¾+ÇÃ�Ø~Ç hn´Z[2°ÑÚØXouг.mmèû,Cïäû‡|Æ—W Ãøòê׌ÕD膬$NÜýdÌ ]ÿÌèNœ{€÷¸x_gý ð}¯‚ï@€œ€‹ªZ–+++++/î> �N1''³„�G"ú Ú¦Ô"„TÊ–ð(ÀÎõEJ" Ð&ä!BèîÕ祔F×hD)™! T–Ì™• +Ð6�‡":}ÏCòH…,< +ж)�l •J¥R©BjÑ÷ê”D”H�ìœ!Äz„^¿J�~ƒF»jý& ¿cB©˜fÖÌÑÂôô=Ãð?ô˜ÿwÜñ…;î?v»öìþ;º¹WbäÞûn½ËÀ<�ÕÕÕÕf³Ù ׆&»×r¹\.—Ëå�'ϯ…1JO'&ÿ­­oÉó_`kkkë÷¾Õ :± +¸ŠŒ9Çcc9FqÉ9ÆáŽPU¤‹ETD±"*2†1w–R•"æŽïñƒÐHþl47¶¶Z-Ù¸!=€ÖùFã©�Žõ·Z­��§{ýýAäû�{}9NP×óHË£|>?8\P?<Э\q0â~ íÓ Ô ô(€•XÁÅ€\€e†5U-öµJô €8ö_•çcÀ4Í +!„T ©BNB Éê^Bèô£ä ©"ëv9s†B BˆÙ­ "„ü6©B©,H³­THç§ò·R­Õk5»ä Ð�ª „„�ø!Ux(Ù\ºfv2kò,ì§ÿ÷Þ{'î¸ãŽ;mó?vìþûº¹Wº‡Q{�;×@NÉd2™\.—Ë)™LF3žl†áz€ouŒ?1ü­ouG—äÇÁ"€« +*"Ì8w0œ1Æ1fx‰#Œ1à sŽqQU•㊢¨r5æŒaÌ1^r0ÆE¥ˆ°çÄnðžß‘¾a” $ p±µÕÚØÃP¹´µÕjô`cccch 7'Ø9ËûŸ‘×õ|^Óâ1ù¼†4]Óu¤iy9\HËçóz^»]ô(1à€R c\ÂÝy`H *¶ìÁׇ÷(€½AÀ ®Ã]ù¿ ª0ô=š©L3›p•ó49%+öª„@4M« _EÈ™*!„T« €Ì™• +é[eùÐC¤òP÷‡æo“ŠE΀mw1tµ@ € �3„<„ræ€sÖ$„�Ó1!@çöÀ½wÜ1qß½÷Ý{ß}÷ÞqïwÜwÿ§Àý÷Þwï½÷Þ{ß÷Þ{ß}÷ÝwgÚfp,pÜ(€¦ªšš“ 3–ÓóÆjJ„ß~õÛßþö·¿ýíW·¶¶¾ýê«[[[[¯~ûÕ­oÿ/¯vÐ5ÿ%Çqz‡É÷½3¤¨*Æs†X03�–±"Æ ã¢ªŽ� €Šˆ Áư`s‡aŒ„ñcbItdq/dŒF7 çy?ÕÀúúÆÆÖÖ¥VØÀ–,Øhµ”L²rñR’X`¾{øËr a1]Ïçõ¼–Ï瑦éùžŒb^Ëkèv+€/-ñÖºI±w" øÁaÐQ¸w"ÞS t°xj`€3CÞ©!G''³æQó!yâ�387öĽ7 +mùH H€Ô€“*!P†Ã?Ýù + +•ß&s=¥Ä„T«ä‘9Réô @�7Ê‹Õ3¤š4Úó„�*¤b‘9¹™5Móhö®£äaPÙ÷ß{ǽwÜ{ǽ÷ßÿ}÷Ýwß§²ÿc÷ßÿ}÷ÞŸÜâþûî»ïpq„Á.€UÙ|1ÜhÈ –ËårZ.“ÉŒe2½nlm]Dz¸õ­­oýÛoýÛßÛÚÚúÖ¿ýö«[[[ßú½ûê·^Mƒ8àôа÷¢ª(*FKXpÌÂÜá˜sÄÔ"Ø1ƘÕx:ðqqcÆ9ËÂes�0B +B˜3&¸ %ôÿŽF£a$à%CG¥Ré|k+ ¾±¾¾ÑjµÂóF£q~£Õ’‰À����Ö³­–®— Yüßï$� ]ÉŒg2½¾J¦ƒ�ñL&£èº–”þÅÆ¯iù¼†òš–N§oÓ`à 8ïÀ@+ç˜c„PÌ5LöHb_÷_ôº²`?íÀžJ ýàwÆ'«l`š$ + >Ó«P%¤B*`Û@ FªÐ._£²­‡Ú`™âö�²EH•ÄÞ‰¿˜5Í#]¿ JªR3˜„XÔŽŒIÐÊ.­AÀ¶m¨Ù@,8c!‹òðo¹çÑlv2K0ý׿¸�íÞwß}÷Ý7qÿý÷Þ/×§€\!‡Üf�ýË�Ãç²RE‹Ï½ÌØØØX:ÿd¸±µÕ,éaWõ'Äÿ‹ÀÒ€ à8BÅaï2�‡—0X`†8ÇEŽ."Ž‹ aŒ0Gêxz\O§ÇU„p3!˜p—=Ææœa¬Ž«EÌ, �õ¾Ë +‡$X*!T*5·.m<½.ïY_oµÎŸo2=ÐjIûoµžm={€Ð9ôµ\&“Éd¥+bóÏd2™\2O<ŸÏkzŒ‚¸.ðöc½èx;LÚ«ÔÄXZb £ý[^^^>'CÂu]wÙ[ñV<ÜU¼‰Ð€e¶Ì°vÈno¿:€Œ ]Ë’ „�‡I€b `S°zd@½òfÝ®Ù6ض]³Á®œ±€!§bÛ¨BUúñ„˜ÙÉ;å¶��yñæUK¶øw}€Å¹ul +¶-ƒì:ò0±*¨J¬ÌšæT Rùâ¿x ãMðipoŒ€{Í‘‹ý«Ùl>%°~¾¤ëy åd2cccù'×6¶.5ut^Jå�Ö¥K­K[[—.ÉïZ—dô¬%œ¥^`ÉYZrœ}Æ�©Ça†1ccŒ9¼ˆ¤ïkÍ¢:žÎ¨J*%À0[fB0ÑÑ¡š¢ª˜ ,#‡ET,âž÷F£Qj�F‚CG¥æVkã9 €õ�õóçÏ7�†q±[$Üj=׉Ão=9À¼Oüï$B‚2 �S2ãéñxމ¬BHËßf!�@Ðt†*µÛ +À1.v‚ +€%u½èÍŠ> ¡` «¨ˆúÚ±,Mp‡੃ãóC),bNf³æC„T-*m”@ͺjÓGjÀ²¡vµÑEJm 6µmj×ã!žóðTæH5 + Ïú‡ !³föŸ˜¦I8À–®P›Æ!ù^Ÿ«Óú"µ!™S +„XÄ‚ybÁœ�Œ æÑìäQÄ: >µ8vÿýÇ>Å6Í0ì{o6Ÿ /6Ãf¸Þl MGZ^‹§Ûe2™±Ì‰ÕføRë|©dô]©µw9{]ÇqTU|WTUWP‘cŒŒa†1ã3„K ©˜aÄpQUŽ«H=>®GEµÈã˜1ÌpòO©aŒ‹òäSÕb±÷Ýh¼a48��†�JÍ­—6Ö×Ã0\_×ë¤ì|2.¶ZOKôIV¿3H6 ÷†ÿ¥¯ŸÏë†aä“ `^Ϧ¤ð™Àåô)YÅ=YÀ½1æ¾ïKv0ºiÀ~@Eª¦"Ü%@¬†ÀÙãÈ a] ×3‘e‘œ5Íß–ñ< r|�Õ›ÚÉ!m½VÞ¡»tñ1›>V·é¢M Ô(Xg, ¬DÌTã0!³¤RX0MB€ZV|Ò[RðÓv�R +4€½S‰èµz}Ѷë�QZ·iDj2°@X uÅi3{WÖBö‰ôï±O¿úUDÿ^÷ï €fß{³yþb³Ù¼¸ötx^×t„ÒòZ>ŸË)™ÌX&·Ú ·ZOê�RØ:p±`I~R‡,Eɨªº„–A=ÌŠ#¾„—ÆsŒ1VUc„TE‘�Ò»-"†Bj#U‰«†PQ-¢b±¼ap^âFÃà%‰½tq«µ®¯¯‡axò·~ëäÉ“�o4.¶ž c1Ó%€çü ]7d?Iæ{†ëz^×´\:Ñýù|>¯kš†ò�&]7 MË£R·pÏDÀ= +@ J%V¸[+€8…°¼¼Ì–—ã2€XxÞŠWLÒ€¢Ý:€Þ™@Ë 3¤‹ˆõà@ЀàœsgØ�:€J¹½Íš„J£ˆR  Ô²þÓ�ÝvD)¥×ènDË”Òv´H¯íÔwvßüþ÷¿·Û¦��vd•Ï.mS ‹4ÓJ+…(Ú�j”DQgóº`Ýø“?Ú�(¥tW~T¥ôÚÕ:Ýݹº³»û'ß¿q}—+ЬJåQk¡MÀ¢„�ÓæQ“Ð(Š* k³÷f *€ûoË�¸¶Ö MGZiù| €L&¿Ú [O7Pƒ¯hÿœ± £ö@UµÈŽÀÂEŒ1Z’Q&Ä0VUᢆ”ñŒ¢(Šª*a¤ªÅ.E’â`¥S6Ü] Ã0d¯S©Ñ0ŒRÉÐKk[­Öúúúúzø ÀÉÆSç›­ÖFدZ]ÀHÚ€òyÝÈ÷xz^Gº–×õ¼.“§JFÉå”\^ÏËjJMë@\9Pܶàœs§ÈchˆÀÒØ£z€ÎùA¢\_ úÀØ{?0ƨXD‡€Óëˆá +€á¹ÁU)W*åÂ�“G +§Ê•JÙš.ä ß™r¡2—Œì�9U.œ*”O�%•/VÊåJ¥\®T*•J9"\(L—˧Ê33…Âôôôô=ÓÓw¦î¬TʕʩSf¥R®|e®R±~½|êT¡P8U.— •³•ry¦Pž) +åSår¥E”RÚ^¤Ñn´Ø~lñ{×+7híî¥Ô®Q +V�FÀ�, Àz„d'³ä:i_¥”Ò~kÝ×v-üþø«û÷Úü PrRŽ;vì©þvÐÚ +å?ß|œ è ¤7ŒµgXò4ÌÈ¥ .„ŽÇ�>ETD¨ˆ±ŠT„Ô$Ñ„ŠE•ÏÆKˆ9K^rÇGNiÉq„œ—Áìp!–0Þ£apιÑ�º¥RÉXµõl†aø¯.\xð·Nž0¶¼Ì�_ÿz€•n @šê-»šz;xj¨`±”`}Í€WÀ®‘¬IH•¨AÈ!dÇ 5JI¾¤6Ýùã³mùmÇ,­J…VÉ\… ssss¤BææL“¢±’ê?¨ØÉ—™¤2gbš„@áè]Y“TI’H˜� +!Ú¶�ô(­A�.R»½S޶™'RND§(È/çæ¤0³“Ye +@†˜eŸ+?�Ø´‡®øU½Þ« †½âÖh†e2ðb¸Þju�ÏIè͵gZkFé``%À`³%¶ÄÙ’‹‡;Ü‹ÿyóÄ}ÇñÙ’'dk�’Q—äøÎ×ýî`OøžÃ±Àž/8wä Çñ<6d0�7J7Fƒ†ŽJ�ç¶.µžÛ/\¸|ùòË—_yåò+¯\¾†ñ˜ÐçÖŸmµZ­çú­2? :N@�.@ìFléù®È†žÓózéÛ‰°Þ€#:…û+Ö©`)€e ¿' p0:‡Ë2 "tHà‹8¦ƽu6�£S³UR%Q!ðUû«P‹…{lú '÷Óò£1È#!¤BH`ž�9R!„˜s„òPÖœ³¬‚™=JìêÔ,€ 6Ý�bYP“÷zÇúŸÚ6¥@ëu +5Z~4A’4ÿ9r½Ò­2®˜¤Ò€0€®t¿ÿØpìký÷ß?`èdž¾ä€×ÇkP+‡áÅ0l6›a¸Þj�—×ÉkZ>¯år¹ÜDFo6Ÿm5K%£Ô\Ûõq†ØÿÒ€ð?ªª‚1w��ù¾Ï|Çñ„ÃqçœxŽ·éøKã̸Êðó°ïø‚û¾³)ü@ø�»éû¾¿)Ä`­Q©Ä 9Ä(ñO¿ôÒK—Z.\¸ðòåW®¼~åò+¯\¾ür>·¾Þjm„á³Ï>ûì3©[®Z_X n +Hwéz>oº6–N§Ó™œ@ê6 pK À1Ç%&ë´øA\ +Ì—½ÏÃ�@ì `@,3ÌŠEí–`±ÎS +À®ðrßùo9zÔœ%@tŠ�]°ã‹})°$jt1² =M¥4�©ø +!@çv&„b‘9Ó¬!æd¶B,“˜³g(™Ì’ªMií +‰€ît7Ÿ—›Û6�(´OQ© ¬ù¸�D§v !ó„X䡊iÂ\ùw¿E¥N*pHl`è7Çú4à Žõ¸{‚ªÖwT–Âp- ›Í‹áFØz©©ë¡¼\ZN™ÈÍæ³­¦~ Èrüý5ÀÀùŒT´Ä¸³äsÇcþfÀ|gÉçN‰û¸¿¹É^ð¹ƒ9ª¢.=î`ß÷6�{�ëù¾çñÀq˜xÞô/„ôF륗^zé¥ßºpáÂ…ËÛÛÛ¯½òÊ+—_~ùr†a«ÊH@ê«ç×õ¤×?`ϳ #= —yù鸭@Vâ%,ë†À•Ö{Îÿú×û€d >ª€bô¹HÕbqûñ�.@¿œs§½ +`¹Ç ¨Qj“£GMR­V¡¶P ‰ì7(]¬Sy)Ð¥õŤnÞ,l‘NÐÌ�››;ä TÁ®NM�©€ýÝ!VDÿh‘Ò:¥”>ÚÝÜlh—iüK,BææY8„X„< „Ì‘Š9{ÚÌNfçh™Ôjµýkõ†Dû�䆸=®ÄÑ`’17‘o¶Â0lÊ&Ù—.–J¥R)€–ËMè«k϶šºn”ÎèÈ"|™ Ø+ŠýXb˜;Žplz›þ¦p|Ó?‡¹_â›ÜÿÝ?Ç>w|Î9VŽ«9ØÁw–™O0—yŽð<á æynð;ää�Ë¿õå ._Ù¾ysûµ+—_~ùÂËO?ýt(ÓOßÊö ×ØØØÞ}º-¯V C€í¯–xR Ø€x$›Ë–ã `à÷à�âRàååe†WÕböu|éY¸¬€¡ +@•@]Ø”ž™š:CT«°03O�ÝzݶcS´(D”Ê  ×Ê»”R +U°ˆE±*ò,‹éº?D*ó&)�*�š @ª6DÓ Ö<��ú¢M»›ÓEJi (€Ý.G”RjW T‰T §â„‰›�N›ÙÉlåù2$8Öw‚Uú{*º’ì-%êÔô`ïËUµoêmë­—BÎy£‘OV.7a¬6ÃV³T*éÄXÜ‚ƒ‡G—$S•%Ž…àæ>÷ƒMá`äsŸ;ιR€_üó?gžÃ|&–˜ª¨9ØA<xÞ¦xÂóÄJÀ„`žð°#‚øAÁJ¥RIC%Ùõsùò…/_¸²ý�›7o~çµË/ÿ«—_~öÙa¦%R{0ôáø‡= + 7vH0ì`ûçœaŒ5¤ Àòòò²*ƒ€xž‡z\€~ ky/¤àjQ +¼²²ò"œsoY*Ïužê@G{€Êf˸ˆh¬Âm°)ÉNÍ@À*ÀxáB†Ï>Û +Ãðé§×uþï €á¦Ý¯nX˜õ€-w ¸8@”J¥ÆX+¢%ÙG1Æ–Uäûþ^ð€LÌ*„0F\6`õ@ @w8¼Ø{Ú£`Å">uêÔ©S3…©‘;ïœ]ž™žž™–õÇåSåBaºPžŽ÷žþRafFþ½ +¿>=}äÈ‘#w¦&¦ _*ÌÌÌ +ý†ØÌ8ç~½%=ûàØžâ þbÁá债®#ÔyGèbG¬o´ZçÏŸ?>>ÿ5-—Ëékk­g›¥Ré@ð±°'Àý^€‘lþò<ozB`sßÿº#¸@΋öæ8cUQZÂò™wÙÝ <Æ…Xv�Àó\ÇÌqüo`ín¶ž~úéØþßúË·ß~ûïÞ~ëÊË.\ÃðÙgZÃÀ€oŸÞé[@ËOì@ì 0c¼W,÷(±W,Å`�~ä À`%Έ!1€Ø�%ÛñŽLÆPñpð=.žê€pgð+1k·ÛíºC£ši>dQ +”ÒùéôÑhw7ª·ëívtm§]¿f-ÐvÔþ}XøFÔ¾]»ö<¥ Ñï¶­…çw£(ºÞ¦`�Fô»3] @- +Ú»Q-’5)%4E�~å�(mï¾Y�Þ ;íúîN»~ v¯¶#Z�ÞŒvvãÍ£6ÌÓvE׿»Ha}¾ö|9ª©�iš„¾±Û¦”Ò�“xXþoðØžÄa¯‘ß?$‹Ð§ŽT #áø]/é]¬‡­­‹/^¼˜(€\.7¡‡akcµT2ôóÿ¯}ÖE^Š ÐMàû—í|I Yq «œsîcá;Èó…ÏîÁ¦ðýÐÒf€}Ÿó9cÊq!Œä ˆ@¬lº>Þ + <áz®,D°¸ —úÞ*•š­0\»|ùò•›7oþåÛûþûïÿÝÛÛW.¿r9 ÃÖsO‡áÓ·À-À>k00œ½@]°|h „g*Ƙs¼$',WE±¼¼¼¬bÿë�ï €¿�À<þ ö»Úá\€àqîô QE©(b†m¹`öî¬iÊœ^TxCç\µí]´)­X@m @a®!Ö#²Š‡R +�ÈøX » fEN�µm¨AÕœÌÆ¹�y¸zvWnÙv­6µ)µ,ˆÓŠt¡ +K¶ Û �Ä ,b€G£ ¦yª��4 ¡²˜`ˆï;î{wöFŽÝ?¤¨Wð»Eð�…@¸7°±uñâÅ‹a2½¦€ó%ÃÐÍ}V§_Œ1†KC4÷Õ>p•cc&ãÆBø2Ÿ÷¢ïqìØs/1¬**F;H`WˆMá"Xö0÷„DZãx�+Þ“Л­0|ðÂåW¶oÞ¼ùöß¾ÿþûïÿÝÛ7·¯\¾|% Ÿ}zŸ àPŒ26؆Ld2™±¡{¦÷¸¨«àýàõ*€.x2»c_‘ø�€Ã—=oEÅ=.€x? nÎŽ ©ˆÉ1ÄÝB¸ýÀ ðò 1ÃØ¶)¥u›dã‰`gàútù«Û`S;¢‹íÊBÜŒ/+t©ÕI!P¡ìN9^x–@ݶm{önª³rÈ@û+ñæÕz lj×i=ªwú[ó2Ù»¹@’Íé 1 …ìdvê;6íàØý{ú†Ù_`7>0̦÷v ø‡º°tñ¹0 Ãp-\76¶ÖÖÖÖšò–[MËçr9}-lm<…J%´//ɺS†1C�t`'þÇ}UUÕ^@õ^âœû˜ù˜¾Çãþæ&ÿóÀßä�‡æœs0/*ã +Rñ’ƒÆlº~à &<á1Ïež /qá Ú¿ØÔQ³†|ùµ›7ßzû¿¾/ðÖÍ×/_ym-|:Àú aÊÒ�ÖØXzlìà àÁ�¤"ìëUÎ2Çó½À +€/±Xôºq@Gtà‰eoÅSûšè(€¬8€Xð••™œ{\¸B¯ßpî€u@éµúŽmÏf§NŸ–µÀíBRL�Öi­^�* ó0O–ÕÂÒˆ«S +À"Ö#`™99`î”iÎÍÍRm×ëöìÝ&!ÿXnNÁ®S¸Z�æl ó!„< 0O~˜P›.Ԁ˂ùy9–<Šé’�ÌØÙéiÚÑ{ÿžÏ�NÀc½=�·° ½ä|ÿz*Üè(€ç6.]¼xñbj'ºÃÖFã t¯�d˜a†Ãr€wïù¯ª=g2F¡%ÁÆØc\7à"à^8/ú>_z1@;ç;Œa%£ç +d€yÞŠð„'V˜`Ïqæœ oÐØS ðÊË—·oÞüË·ß—øÛ·on_yåòÚZ>-½ ¡HwÅzœ´K§ÓÒöS©±ÔX¯ �Þ«!Ò¶Ä¿§Å<À wÀØAP|ˆè–Y€®�x 8\`„†+†úÀ…+ö V\îºç\œó¥ðö(a¼üCEÌ0€Zý=“�:=Ki×àßêµxô¯œýU§Q`™#Ä’) lÙ+8O,BâÞÀÝiOö·*§ +»M²¦LâS°£ÂbR{Ô¶mº³X¯<²¯àay'BÀ¶gÁ ë°aq!`šÙ߬TÌJí«°¿í(܇›ýýÇöÓCò‚û¼æ€ŠþõõØÐò9-§åóÒØØh ã à c&ÿc2Œc$öß3»ŸŒ—0ç  _pO8/ /x‘¿¸~!À>s¾`¦f2 +B˜;è&\æØó!„+<æ ìyB Î…ëÞ +š^ +[áë¯_yíæÍ›o¿ýþûïÿøïßÿÛ¿}ûæÍíW.¼Ü”XO\€®ÅÆÕûé$]ŸK§ä™ß³âúþ´|~zPÿßJDt\€Îå©**b¤"†Eb_°²W0Ž9‹^R¥µ@¢„×W¼C)„º +`™aÆq±8¨zàö*Ö@ˆÀúÀ–‹!\, ™›£»Q5ûé»Ó‘l³!CDi}§^¯´�<<–œð ™§”Îw:÷¬ùy€ïN·"'‹šf¥R�ˆdÍ*T«UBÀnOG²€X¤õúÎN½nQxx~>)ø·H Ja¡3 PþZ ™%f6[™›“7 }ÚY?·5¨~ÀÁ» ôñn¬÷ sGv>nê@7×�Bh)¹¿:Ö ËŠ ØþQßÝ #Æ9ÃsŽ™ï3Çñ<ì®·éoú|3À>f^°äEEˆ;ò…0×®ç × DÀqÀ<� ÌæzÁÀ°®ëFØZÛÞÞ–€¿ÿý¿ÿñû÷wûöÍíW.\hvTÐß?ݘÇÖÞ=ÔÓcãO @ûºæAÀR¥ˆ™ðq€¹ËÜÍe`á +W!\æz®ÀÜîæ (•xÅ.ÀkÛ7ßzû�¿ÿñ�ô£ýøýÿú·oßܾòo^^ë vôÇÕÞ9Ý{ãéô†?Hõ¾.}€ ÐsoB±ˆ^BN§Å +3Î8wð’È; sá`ÎUî Œ1CHF9S±/J—P<5s9?½Ë˸Žè@¢Ä°À^@€H ^dr +g8q®2G¸B°§„ÃŽp–°àKc„FEŒUUQЏ(美�GQûÌ,Ô€¶é‚Ñr›¶ë;×£èúε�:½J¯Eg¡]�®ß¸¥Ðݨ}="ÕÝv›î^¿¾Ñb;‚G�~%Ú�ÚQD"øn{ž˜“æ.»M¾YÑb;ŠnDõëWßh×éÕúîUËÚ‰®·ß”›h;j¿‘êõëЦíë×(�v`håùÝàœ&@£…v»w&ூH¦bå49Õ&—Ëan5K%]GúPÀ“‡¨W †±p„*:öït’ôêfœ1Áß÷yà +û{¾`›Þæfà¿ÀÏa'p¬*EåÌ÷yÀ\O¬BÌó…+„'<áyž`ÜñÜÍ[¦Q£€w~ôá‡1þöí·þâÊ…—×Âgb ÝÕð½æÞ£ýÓ�hàðcÀÐÓq† =6&ßdžå RéTª§[J" ¾ä aßö½„K#„K \â‚ _ÅOúô¸Šç*rœîoİè@ºÂ- +Æ0V±‡QNçj°¸H-ªa,\©T$ǹsŒ0ÇRï Ž1óV˜Ç]Ι`‚s,„£r !B`Ƹ#Ì1C#Ä©HQŠªªÈ;$”J¥üÅéééé;ï¼§P©”+ÓÓ3Ó_:{¶\˜™™™™™Iêqg¦÷¬™™r¡\(— …™/Í:iº0]˜)LÏLŸªTÊå/NñÎ;ïœ.*_ùJ¥<=3=ó•¯|¥0ó¥™ryfúKYw×wv˜žž.”e©ðÌÌ— +…žNO*§ŽÜ91ý•¯œ-Oï?üóêtßÖ€áöïu »">/0œaŽcÈÙt'©ÓåÊ9„Ç{Nà0Opùs_xþÈvÇÁª¢¨*.ùž, Ox�+BøB¸Ìs…ç:žÀœ;bå¥À%M+…­ðæöööÛo¿óÁ‡øá�üã¿ÿ·o¿uóµ ÿf-|¦Oô­±±î§=ßûu¯×?–Ëd:Tè¼8— Æ{ (Ç¥X,"#Ĥ3Ì8cÇK#ŒTÌ1æc¤"\Jf�É +}• !„œ¤Œ0ÂŒ«E! G§qá“ +àëN¢º^Ò 02:×@'€YâÇ3&d‡ïÊãL0!8F¨ˆ1v…@‚±x2¨¼ë s¼„*ª*b¨XD¡Lɱïe§iq%�ñLøìVXÒµÒЀ¢z]x%@x��_F˜;‰ý;q•ŽP—0g æÜaž`>ö|îæ;›~ð¢÷Øñ‹Š‚ð’ï{bÙ®Ô¦�ˆ]×ó„ÀB8bsp À³k7¿óúöÍwþÛ‡~üñ'üá‡?ú»·ßÞ¾ráB¯ 06 z�é•ûnAzh,`OüoXsAUQ•ã1ÔDľ|§�ªX,ñžÃ�¹p„À;BÂsÇñ�¸ïûÈ‘ ¾ƒ±Ã…ã9ªßÅɃ ð‚Àó�ïqÁƒáyÂw7%\©|.– +@`΄'ŒÕÀ>ßäŽø/ü®÷¹; ÇÁžÇŽKŽãp8rè·›››"POxÞæ¦Ø ®Ïù’·ÄƒÀß �Ã…'î Îf;*æœ Æ…à�»¹yç"ðÄãBž¼àýËM?ðá îcØ+ú‚s‡!îxA MWxn .ÿ³;›˜s,<Ç÷œ;Œ;˜;˜;œqæÁJGõ=.Äfàn¢X‹ªª¨ETDjQU2± �_¬×ëõú÷h9ÊN%=8‘Öc]°€Àg#EE%gÓ÷ö„`�(®0—qáb3áyÂA\p7Xé[{cªÖx6\ÛÞ~mû­w?øøã�?ù‡Ÿ}üñǾÿöÛ7¯†á…‹kϬ­€L,b¤Ò©aH÷ 5Hƒý ß ´<‡9|É~à8ÿÒc !6ÏTÇÂãÂwgXpæ(Žà\``Ï]ñ\Ïs°+„xÜìq×xsÅÞ¦lú>Ì‚ GvrÆ8gÜÜáª#øŠëqîî !Ħd·/‡»3Gp¡â YÅ$wƒáIˆMwsEˆ`sS¨šŠåmÏ EE±è¸Òþë;fÁÑ)v2"ì19¤(]�y"o‹<2 eË¢¶ ”Úu +@mZ³ìú"¥»s`Wè"­ÛõºmÛ׎Üe°)µ +õxÖ(�æa¬ùyKzXĀʜEm +”R¹y�ÖâÍÛqMàÔìb½^ÿÕÀúsÉÀ@Ù n… ]Ãúù½K¨Š¢*Ž`BœB8œIQÚ?ï@“®ÂåÌ\,0w„Üã~lúÜw˜ŽsŒTECÜyÑ÷^ñ{ÜÅ. °ðó\湎ãa!¸‚Í ØLÞ6‡ÅžlIü—}ðáÇ?ûä>é@ºkk.®­5›c6z+�:cƒÙÃý]UUŽïN뀃±ã0Ïq:ðø¿|Ügœ !6…çûª\ø‚ ._bsE΂s/žrZ÷ãžÏ<×sWV\WÂ}ü_ �»ØõásŒ9wÇœqG_pGÂÙ <Î8w^ð!^@ñŽx‰s,œ" �#08šºªª&ˆ]J)}Œ¶wßøÞ‚¼|‘ÖiEÒŽhÔ¦”î\ßýé‘[Ö‚E)¥Ô"ÖB{÷ùr%9Ìit­ÝÞ¥ôQ í?ºQzÖŠ(J£zÝþjýZt­pWµM¡F£zôûѺÕëmJit£½ …y˜·¬…xsøînT©<’lNÛíö.¥ ô�7ÛË¢”1«õ¨N£7¯]»ö«¥Â.’ `†[a¡ÒPUQTU@tÀÂqDüO‚;˜;Ž`œKp�#Î0ÂŒÂe áqŸûn°éon:¾‡OpŒ‘‚0/:�`®Ë–WV„Ë<&„Ë\WÆ»±Ã—E0X ,E• +àõí·~ôß>þø“O~öÉÇŸ|üáûÿõíí+ÆX»ÐÜ[Òçõ%Ò±H©ì�çÿñãÊñ㊺ŠÅbQÅX*€%§G<þ¸+áù¾&Žà.œsư£Î1ÃÂálÅóä�{�»s]áºÿrÓå+�ën +.sDÀ…À 3Op&¸‚{ÂqTW±és̘Øô~Wø›(¾òÏ—=ˆX5ÇXˆ$ +à —.Ä7ƒÀü‚uêÈ�•S•J¥R™›«T’Kƒ+gç*•J¥R±¾4?7W©œ=;W™#ä¬U9Uùg¿nYÖÙ³•ÊY˲¬³•ÊÙ9ëìW*såJ¹\©ÌU™«ò!æÄ=ÓV¥R©œ�³¬Jeβæ*•J¥\9+7?»0 dn®röìÙJeî¬eÍ•+ÖoÌ[ÖÙ¹J¥"7?{vn®r¶\)W*§*呱æeùñ¯Â��|>Ÿ—!€šVBOíYBÄPq„àŒ Çqœ¥ç\pÄÿ¥PU™½ÃE”LË€ã0ÇYN�p’)üŒaÀ•÷ôº®¾ë +oÓó˜`îãîÊŠËÏ}<BxX0![-±Çç‚qÎ<îpUlr†9ž÷‚ço"GW€/qΈ½îf „ØÜªªu€*ªŠ¢*IPSUUé^øï¯í@öµˆÒš¬J¿Aëu…o[¤ÝŽ¢h‘F4¢Ô¦ß ´]¾q5ŠÚ4¢QT§õh'ªG‘5�ZP£uj/ÒúbýÛ�l¶Ò&gä]ÀTöùQºX_ €Fp¶ÝŽ¢¨¾Ñ«ÉÁ_¸q5ººÉÍãÍ­6€5¨ž®>¶³íììììüŠ@.™Ô: +àÙ††Jzcˆè @@HÄG½sNpÎKBpYÏžÜáÇ�LV 옉 `ù²cÜówsÓyÁYrÎ9\€ ßóž`+�¯¸v…Ëó|GìpÆ6näy­ï )Š®­ÞÜ~mû‡?úè£�?ùä>ùä“O>üQ €0¼°–\|²§hàR€t:ÕÀ>ý½“pãûrýà?øÁŸýàíɃ �¥Ò©Têx/¤ €.â}0¨üq_úX›Â—ð<ÁÝøÆžËáI®ë +W0Ïuÿµër!„+„ð†à‚{®pŠŒ3îÅÂMÁ™p.ö VÜᜠQŒ ºð¬tPìQ½(*¤ªj÷zà��:%G'(!$ɽÅY8›BͰ,"]÷$—@4ݦ”.Ú”‚]§õ:]¤´ÏS95€€]­V«¶ýÏk§'Í£¦IÔjvϬj6@ `~îj�RJ{6§Ó»¶ìˆ»)}Œ.ȃYsêŒ]§v½þ« +€0—O†‚anµ*¡ý UQЬC€1!ËA‡s&æ1ÆBŒñ<ðC¬„1Cœ c?`ØÃ‚{žÇ…ð<ïw7Eà;çÁ0ÖT qçEá»Ìó\÷_º®`Bæ2ábÏs¸@œq¶ÇÐúR”R6····ßùàƒŸ|"ÀÇþèý·ßºòà…µµµµfsµÙl6W›ÝŒÝ íw] €}üGüéþ³ÿüƒ?ûÁÚwí;k,v%R©üñ> x 8sœý ÅP{°éI0oSÞÊr „ž#ŸVÄgÇIøV05ŒqÏ{Á‹ŽnG`!Ä^à *MŽˆUUŠªJídÑzD�˜wBªÉ8®yZ‹[|l›R°È\åÚNÝÛ®ÙÔ¶k`-dµØ6ìÖë�Õëõ ´Ä4Ms¶Z���%gìÙìhöÓ4IÜÕÿŽy°lJ�XVew§nÛ5»V“ÑD˜ŽjµE +¶]«µe¼�F6!欙�µëÔ¦õz=ú•€¦åä½<9¸:æ¦*ŠŠ÷øÉGòÿðÉ'Ÿ|üß~ôþÛoÅ.@su­y¡¹¶ºz°ÿõ>øþŸýÙŸýç€TzL6æOêù|¬ŽwÚ:.Þ«–œ%GøŽ J<%œ®pœX €Ø">ó»`ò1¦úœ ÁæŒuà +Ñãô@죆@Uch*í®:Ý Sw’YBHª_û™·ì<2 yWœš€G¢ÂŽ<Ék5»þ?ÕëuZ§õ 63›ÍN™³æ”yÚ¬f'G'�˜YSü�š€eÍÏØ_…y ¢2µ¡_µãªC Ó×㋃Á^Œëõ:¥‹r”!•£w™5Jí:ý•Kv ÅÈa¾ÔjhÃ*»ö橊RÄ’ž¯rWÄ`ÒþçLvHÀG˜qÄæ y¹GQ0‡{\xüœ¿¹ù”ãp'àsMÕÐÒÒ‹Ž'ÜÀu]Wy-ˆÂþ'„À|YðÍ[@+­­­no_yí‡|üÉ'ŸüÃ?üÃÏ>ùøƒ.Öäñßl6»¼ývþ�öþáøÓ[ ÝÍ3¤ÆÆR)=Ÿ—·ç5-§d2ãét:“é(€®ý‹‰Xr:âˆ[( Ïs¹îþ^7Q‚3Ìz bð^�ñÏ^½P;8ŽÔÅØu°N›wÒYBˆ¬²,©µ‰uÀ¶ˆÍWm;ñ äQ¾[�­À°tq§^¯SZ�¨ UbÊ£³³³³³gÌìÝæ0MiÿRdÌ‹Xdyä»P‰l¹» @ˆ +×oÁ¦;‹‹u›Öë_}Ô¨V 1ï2¡fÛ‹ôW®8Yy-¯å»Y€V¡ÒAž¢ªÜó˜ðâ©Ä @Òþ9cœ³âEŽÏ!Œ9Œù‚ž‡}ìKXx‚›�ð}ßw8FXSUÄñ‹ÜÂó\×õ˜»ìºL¸\Ì‚;²*hy` ÜFª)¹ÒÚÚêök¯¼öÃ>úè“O~ö³Ÿýì“�?úÑ;1škÍÕ¯5¿¶Öl6û²}é~‹•!¿Ôê@üéÿõŸ�X~·2p,•J�¥Rù“ù“º®z^Ór¹L&“I§Ç2™±L&#óc™Lf"—Ëår™LF*€ý  áuÀ> œDW1\ô áüüðK÷)€ñ"í]¶Yf6eš$ìðÈ<éæ’y æ+²6PŽó²À¦ÓQ'\°íÔi½^_¨Ùdj2K P€šäÌ4œ!ÀêlNÈüü<”ë4±©hÔM öµz½^_¤õ:» +U ³fÖ +6Û¶5 åâ7ÅX íKC›ñ!ŸhÆ9ž` !á +!ûŒ ƹ�-cK#\ä—CéeÐu=O±¹¹x¾8#ŒT ìs!„·â¹îæ²»,Ü¢:ã Á9–ý$ý qšV·_{åµ·>øÉGŸüôgŸüì“O>úèGï¼}ó•/¬­5¥øZ?úî“á}ùÇ­°�(€?ý³?ûÏ?øÓ?ëU{ïí@Ïëºq2Ÿ—O§ÇÒ™±Lf,À„"›4&2J.ŸÏçNäóùü‰ä"7-ŸÏçµ®pœn.¼aàq\§W0ïÏ÷ýp;æÿóŸÿüçEŒ’}ŸJìôÛ?Øäè˜IÎÀÃRÈòß¹¹ +‘3úa*‹ÔNìŸ$ú(0O뵿_¯×ëõßjCÕÍYW7Ìă>“ ™«Ì˲æ`Ê‘mÔìžÍ§)]0õˆÚß«G‹õ:Zrú7'M±høÀ‰¼–Sô‹axéÒy¤ÀfEELNûg ñ/<áöØ?Çc.;Á0ø(ŠÜaÂcnàaY“˜B›Aà8¾ïpŒ¤ª£ÁD°âî¦p™+°œàyB,0gƒ`C\€æÚê_¼~åõ·ÞûÉG?•I€�>þà�·¿óʃškÍæZ³ùµæ×šÍfz,=ÖíK§‡éöƒiï¶wwwÿðwÿð�7Þx£mï)(è�Ð#ŸÏçr™ÌXf<�Éô “Éår'r¹\FÉ�H ׉¼–;‘Ïçs9-ŸdqåNär¹|>Ÿ?„¸DG†y?Ü?¿ý% vPë[ôŒy§ôÑm`Þ’ãø !�€6x~NÒIÿž @§ëòÊ`BH´SÿŸ¯Õwèb�Ú`Nf‰ @ €Òvl j6Ør¾—œ# +òJ�ÿµr•Ú6@-n-°èô"Ôlj×j@ˆEõún½ѺmÛUr:{·Ij±Kò+€õ�á +@Ëeôfnµš:Ú[ +¼¹Ù¯<¬È Ÿ`Œqñ”ÂEHå±ýÇ-c -á%Ì‹Üá\ø®ïÊ,€�S>‚Mßó|ì Ž0VU q´éø"`+îŠO¸‚ á ±ây‚ ÌO.Ðî.UÓ4MÕ´äO%§7ÃÕ›Û¯½þÖ»?ùè§Ÿ|òÉOúÓ�?þQ € I G¤{nýî ÙŽ““““ÿdrr2{×Ý““““£`,ÀÉ“y]×õ“F¬ÆÆÇÒ™±ô&r¹œ¦d2¹'NœÈõ(€¼–“†¯�èÀ‰|. Ÿ×u#oäuÃ0 CÏçõ¼¡çóyÝå•X +€ !7S2™ññññL.RÏ'ásÎùÒÏþ©Ыj ”Bíô�@‰»zìR€…XXJ£úÕE8»{µ¾QÑ:�(¥´p�.F‹m›.€Lïï|ÿßG»uJmb°ª„œ&„�Z½Ly”>ÖÙ\îO£(Šæ®íÄ›/ÖäæÑô.­/Ò6¥²`žF7þ?Ñ΢,³SÄ–¿"1€gÃý0at€¼Ñ0ºîæf�H¼ÏÃKA „$€t‘ÊYlÿ*vcž@ˆ©#ÄTGp× <—rxÜ,ÌÇá�Ã1檊0Æ�ð\�=΄ë.¯0Á¹àB¸žïyòèÇ{€ªõ½gT}umõæöëÛo½óA€�>úà�·¶_yðÂê…f쬮6ÇâQÿc©tz,=,rwHt À0èz>vò20žÎŒe2ƒ + —ËMľÀ‰\Wäåѯ�ˆ@"NäNH4äu=ò¤aœ4 Ã0NæO꺑?hår¹\f"“´?g&d"@z\Éå�“½/ø´öÿóŸÿuPÙ»ÊåéɱÂ=…éB¹R)—ËåBåT¹\®ÌÌ”Ëår¹R©ü³òÙ¹Ê\¥Ü³*¿^)”+•ÎcËš³¾²`UÊ…Böž#GŽLÜyçÄ�©;ï¼sòÈ�…{¦§;Ï®”Ë3•¯” år¹R®T*ÿìKgÏVzö®”Ë_ÜœXsÖYËš+Ÿ*LßsÏä‘r¹lUÊårùó€µµµ0 a®­…kk=•@Z. õR!5ŒF£ûaÙ…¿t €¹çr˜ cL8BÄç?ÆHÅN D°)äÀ@„¹*"<�Ì•‰"îùŽ÷—b †.<—¹ØuŲ‹9ãB0Á<×ußcûC]€´¢¯®­~g{{û?¾óÞO>úägŸ|òÓ�>úèGkkÍ8 °ºº:0÷c¿qß·µFR#ÉÉHÑ! +@×ózÞÈwb™ý (q0 «NäsÚ‰>$‚®ÈçOæ #ò¤qÒÈçOæó†®wr2ÎBœÔã=s¹ÜDf"“€L €øwÄ*„ÿüS/é(Hýƒ?x‹~ghåHö!º5Qˆ(¥@¬yzãFdÑöNÕ£v{w‡Ò…ùJûùdQ_D  ;Öü<¥×oÀYøæóqŒÏ4 sÖœúÇYÓüM“Ðç�R© (ÐË¢×ÿñæ4j·ß”›ï>ß–›/D x>²¬ùº» xžX¤Bˆ™%ÏïFQD\€µµ0 KkáZØl6›}д\No†aë÷BéšÑè´-Çòt €…ðrz ¯€•~¿ŠsSl +,Ƙ!,á ±¸®@œ æ +Á…ð¸ïqÁ¹ðgŒk*B ùŽpöxÑuÝe )˜û/\OpÁørߥc¼'˜Šðúö[ï¼'}€O~šàÁæé  ÝοÁ,ÀÈH*1ð½–ßùcddd¤G¤ƒ€qѲ¡' +`<³_ @É(¹¹^ËÎçó1bË— +àD>¢çiºaœ”ÀÐ%NÆÖŸ×õ$ ™ïu&† ×Uù|�r"ÿéðsEQUUA0tÕ GÍY"]úZͦ6­Y@éb€Ú”Ö¯ÑúN½N£xR7|,°`ž$iûêÈ«Â!„cûW €‹¡ ƒÇå°Zg$˜†ak+ÔÒŒFƒ7JF‰óoBáŠÍ 6_Ʊç!$bYõ/ãc;›››�ëºØó1 a® +‹åÀ•·ûȆá ß‚sásÎç½À<€{xHpsûÊöÍwþæƒ�>úéOúÉÇ}ô£wÞúÎ+>¸vák«Íæêêjsµ¹ÚiéÜ5Ô²cŒŒŒté˜üAž@zàÎñ”~RºéI “ɤÇö*€¹9%“É�Èår'´ž@=AÀ'òù\Në o2pRÏŸÌ]' «òz>Ÿÿ�} iù‰Lf<#ÐCŒü‰ügÀÏUU•3ÕÁUÛ¶¿gs–ôÜÊiÓ9«^¯S€Ú6]Z§uºH#’X¨Ý‰å=Bæã¾}ÇøãË>Éi³Z%;D^@e�¨M ©Guj×€R›.Ú”Ò:]¤í¹¯vcŒP‹˲(,yyÀìiÓ<:i v­VûÜ`­Åð²XËå&ôµ0lý^XByÍh Ã0 Ã0=À—!|„Ÿ¢�œ ŒÀ*ö¤ý  Ï 0CX¨ÂA‚mÆC=˜ßã;<cl>�WPcmõ/¶_Û¾ùλ|ôÓŸ~ôÑG}ôÁß¼óÖöål6¿¶úµæª\cÃ}¦ÒéTj¬§Fh$¶ûÎJ�H¥?ÒK�D$€”'ó2 ЫÒéñ~LLœÈår98q¢ÿÀîSy™èQúÉüÉ8`Æ€  ÷à¤Tõ¹\nbb =žW&ä_6vNä?~®ªjuïá_%¶Erzö4©BUŽà·©]©PÙÖS³mJ唿Eûs1ìs¤SÞ»`ÉÛ|©&÷üü6@D ­%¿™Ôêö\RVP³)¥5Û¶)µå„ÕdÌ[¤»9�£¶NÅ4'MBˆýy¬X۳§C¶Â°WÄç&ô0 [¿b¤i†aFÃ(%Ã00Š ‚Í`3ð=�¹À +Ž=�CÂU¼ùÂæfàA Ï \×u{€+.¤ :P�÷à€öÀ�.@€Ÿüä'?é`µ»úo�Gû§ÆÆ/ êþÈh¿m�t¿í:##£##ïNÒ€± `ôÄÒé½1€q @ÓúêòZ.Ÿ?‘?!í?/m>ׯò'õ“'uéäó]tŠõØ!ˆ%ÅD.“Û-/Õɸ’Ó�$ pâĉÏèüüç?W`€îR¨š&!p¦#èÜBçKjƒlè\ nwÊy(�y€y£¯JÛ7 �3Ķ ©\¥]YoP*;ym9ô§»yåÑXô U�Æ·ŽHÌbf'ã:ƒÏc`àjϵ0 [a)l…áÚÚZ׈+�súZ¶¶ÂÒ´¾ X¶÷WˆM©°®P°½c¤âÍÍbûÈs×uO@� Àï*‡3Æ8ïú + ƒŒæ±ýÚöÍ·ßýà£�>úɼ÷Þ�þæ�›Û—|põk««««OÈÕ�ûßÛ­ßág*5:’þÈhìݧb éqâ÷ÑÑQ)F†äz`ô*€L&=žÌd2'r9­Wäã:€ñ£¹ŽcÞ4:Q€“ùn @Ïçe@_Oì_º¹!A@­›Ð‘.ÀÏþóÚWí= ìE{ +�5 ©&wpk!é ²j¶mÛv�RjÉ›{ãY�™#dž@�X°@© RT�r¦ +öc�™Äjw�aÍÏ……y T–È9„`/ÒÊBÏæóóÖ!±sA’©£„tP«=öyìØ‰Ðl6›�{ôf3l½ôtIËhò„B麮Ëq¯BWp76=!ÇѸX§K\ÄXÅ›››ñÜ^�„¬x®àÂu]‹å qö(ÆgüÀ½@3V�íí+¯o¿õÎ{|ð“~ò“÷Þû›wßúÎöå\mvíÿ‰Á`Ï-�= ý£££Ò˜GGFFR©Ñ‘Ôh" zä@üçèȨ|Éè$Y€Lg)½‡v.—Ëô4Éjà'rÚ‰'r9Yú#€±W�Ëåò9E¢"¯i¹|.—ÏHvd&$X21E2™ÌD&—ÏŸ8¡É´Á‰¹œ&™1‘Ëå&2½�nG¼iÞ0:à‘G…–Ëå>#ìá Ì)s6©Õ³ä€Oy˜ED”Ú”ÚÑbýù¹ùø¦^èÜç9O¤cO­9j¶ôä,akŽÚÌ“¸Ø"PƒybA›R›Úv´X—.@ÿæ$©(˦5¨’3³¶Mí¯~õsH°ÞG-—Ëå”\.§7×Âpk£„4yñÒBm +c@xAà Œ9ãÂuñSBˆs10z@Ý|¡kÿXpæ%ö/„l³ëÄCÁb ]ˆÒ^€ßZhûàõ+¯m¿õλï½÷Þüä'ï½—`õk««F €ƒ“øŒHզ߭îýfddD +„Ôèˆ|âÈ‚ƒTJZû‰8ø:‘ü9‘ÉL$£ˆ2™Lï�±Aæ”Lf,—?Ñym²öÉ<É>DðO•¸þæÝwß{ï'ïýÍ;?üÎë—|pU†dx|ÿÙ]iÀÑ)ê;IÀn: 5’ˆ„TâŒJ¹ÐÙ9Ý€tjÀú&2™Œ’‹�àÞ«åxbùœÄl{ìwB’ ×y¤ÿ¦òžËOÓéôXÇÐ;™�eÆÒÃËž:ƒ�ãŠäÜ/\†¯éBybrâÈ‘Â=ÓÓåò©òÌÌL¡R.— …øN¾B9.,—gÊ3_*—Ëå/•ËY(X(ÌÌ +ÓӅ—Ê3å©òÌt¡P. +…r¹\( +å/Åå|²®pff¦\ž)Ïfâ«ãjÄÊ©Êtwó™™™SåòL¡P(̦ Ó…™iùw�ž¾çÈdj¢pª\. +…ÂçO<Ý÷¶®÷Äz0‘É)ºÞh†áš€Òs9°Ø ‚@ø–×N +áºËl™±eƸ+/ï••½ÅÍ®ÿϹ,ðCÅí�'ç^7Ø£¤ýs¾¿ p�PÔàõ×®¼¶ýÖ[ïüÍ�Þ{÷¯ß{ï¯ß}ç­›Û¯<ø ±j««1]ô?:Ç ‡ÑÎRH7!~zI¡ÁXœè_içƒ%‰ÉËy9qlßñYÞ;Þ`,“Étæœ÷_g’´Bîáà`%tz"£Lô¬Ï€ÃÖõ�h±½X#gÀ¾Nç"ÚŽ®ïFÑîî÷Û»»×#:·°»°[¯G;»Q´ER§Ñîµè�haáí7þÓµ�ëmºCiQø_ÛÑ7¢]xþÿ{£½]»ÖÞ½q=Šh»}£EÑ÷£³ mÚþýÿãzí¶o¼q­}=¢–զɿí(ºQ>ÚmGí(šÿÁìþÉ÷®E×ß ;"JáùöâóßhÏ“7w)9 +íöµ?¹Þþ\^ Òê{Ûðµ¶]ן\k6×ÖÂVËÐtµÔ7  —Œ1×]^Žçñ¹"B¼ÐcÿBæyŒ!$¯Ÿd^àÉÏà,ŽÞ~ —SEÉõ|¤39Ã0^¿råÊöÍ·Þù›¿yソþë¿~÷�wÞúÎö+>Ø[áhì+ÒvÐùVº±#ЉÊ(áèÈÈèhÏ4‘NAp €ä·v.=DíñXïÅÒMè5Ûôž‚Æîí…É9ß7-½ßäÂC®Ïš¶äÝ|Sæ,øw§l»^›RZ£q“>TÚ6¥ñH@ì(²íú”ÎY@ìúµ:ØÔ^ŒGüÕ(Ð +µer 6µ)­SJéW€Öiœù§ñl¡ònͦõÇä\‚š]ßµíú5J-gìz»6µ©¬°¡„<_ „˜Y’ Ã>ߨXßðuqt]××Öµµµµ°Õj ]ÕûG�ÁæSN æ.ÇŒ¹n<ò—‰~=þÀCÈó}�[ ¼Øü=O·Sä !ÀúÀac9ep¥Çs†a\¹råÊöö[?|÷Ý÷Þ{÷¯ÿúݾusûµË_~°1�ýŠí_FFzk|FFó}q `$5é±T*ÕíàÍgÒéññÌøøx¦ŸFc±fŸÈ)2Š/g·îÛΣÅY…¸w@ÉŒ�Kÿ]éªvMÓ´œÖ½ "NÿÊ0`·j,#S€II¡ž×r™œ¦ëFïðå_j5Jí3SY“Ôì�S‘MÁ¶)µm[Žÿ£– ¸Û5Û¶íšM©mïØsÄ"íët×¶m›ÌÛÔ¦Ô¦6ÀÙ:•ÓDe¥�¼p¤^oÏEujÛ”R;²e°¢Š ¶½h× N4F¶]·¬9Ëj_§;2 äÎP°«ÄÌš²^àóX >¶:À¡®ëz3\ ×ÖÖ.†/½Ô@yµôDg !„Ø áaÏóc®Œ-K àÆó€D'ü'ç±ýû¾ï¶²x\ðÄþ…ÛÀÙíg2ã{âYé´’7ô+¯¼re{û?þð¯Þ}÷Ýwÿú¯ß}ë¦@\oœ4Œ“)€žë}:žýèHßKI�¤ú@§h ÕS`Ü€±±T*µ¶¶¥R£ÑxrU¶%4›²BÉÐóã©T*�ÎhyCÖò–J†a<Ñxâ‰'VWWW›«««Í¸°3¾ä,\ [Ï>»öŒŽt]×;å�FœýmÊ(q.(þºÙ”Û¬®®†aèz^N'Keò†a¬®®=Ó\]}â‰ÕæÚ3ϼ$/’}¶õlw}6û�¢½)€š 6µk$›5OWmzŠR°j¶Më¶Ñİ© q¥ô*¨€EP›Öâ?]¤”Úðht6¢4nî�Ëj5›Òz%ªËC©œ$lPb×âÍãû?)ÝÄ"óäa¨ÿZ[^?V¥»zf*Àçóvàõž·��$ °±>H€µp-\ ךÍf¸õR!µ´úÄ9ùÎãéA œM„}áû¾ìÿeËËËËL¸B¸îSIϰlÛ‹íã`Åå¬sþ !# +`é@`?0> ™|>ÿÊ+—_ÙÞþÎ[?ü«¿ú«wß}÷�·ÞzkûŠ@>Ÿ×O†¡ë=õ¾ƒr¸c#=Å@©ÞhŸüªSÔ©ˆ �ê^3eL—ÚêüùæùØF“A…««†¡�¥ÒéñññL&£h¥' £±ÚxòÉÕæ¹8m{ñb†ë�ë�庴µµµµÕºtiK~ýR«ÕjÉÛ7ÖCŽo„’¶®5W�RI7šk« ‰=Ÿ×rc¹¼a¬6›a>÷l«Õj]ºtikkK~~©»ÂÏ€o~ó›Ã:�(­Õf³Ù¬9[…BdÛöWÁ°¯Àb\¼oפ%ÏË +>;°*äB©·;“Ä#JkÔ¦‘Õ©-' €%sD©]^”Öäæuª „ÚvŒ‰y`ƒm×,‹€u†�ú›òÑ3g`‘ÚPƒ3Ñ©ˆ™�M +’íÏ9Zëa¶Î—Âõõ=m‚1.^ ·^jhšZZ}²¹údsõÉUžÀ –6ó=áû¾Ç„®ŒŠÄ èÚ¿t�ïû¾/0ö„ç2áy+žL&/è*Yp� ð/ncZ>ÿÊåËW¶··ÿãù«¿ú«ÿë¯þËßzë?¾þÚË_þr>ŸÏåãZ|½3ì–®ðhרS½ÅÁ©Ñ¤x$•M�¤FFGGF{@º÷^�±±±ÔX*q¯â:>§×ÖÖVW #/Ãûy]7ŒÕÕÕF|ò7›kkáÓëÏ…ëan„áús—¶¶¶¶.m%xî¹.6ÂçâÛ_öf‚/6› CG%Ãà†±®Iéaèz^Ëe2™\^bµ¹†Ï¬‡ë­�V¶$g¶¶¶šÃõÏfÿßüæÐ€m›ÙìѬIÈ4°kvìÖµkÖ¢ _í)лFç*`U&„ÀbòƒÅÅElû:Ô©Mëð0@íÑ€¬)*ƒ-K†dI�mÛ•EÛîÛl +`YPµæ­¹9¨w1E ºkÚÕÙ©£’‚„ÏcÀs���ÖF†­Fã¹á/^ ›a¸õRCCš‘” rÎ:à¢K×�#�½à‚÷Ú¿#°ç¹�ÏùëØ8è‹ô)€Cf2ãã™Á·t:ÓÀöÿê‡?üáÿÃö|ë?¼~åå+3!kçc¤“ ý˜å�“:?öíS�*ŸQYÿßÅB¢F÷kŒŽA|-@suÕ0ò†®«O¬Jéß\•ŸéØt €­­ØúŸÀúðk¡[a³Ù(éz©TÚF€õ­V«ÍæÅp]ÿŒøæwéÀDPø0³Ùìož&´·úÙô1i£P‹v:ôä%!ð(< +P2Oæ�¨3Ë»Nm»fGVD;÷ŒÆe½–e­Èº_Jéb-¶t:õTÿÛ2ÜGÁªX²Æ¨ÿ܈NÑ3§§²³6Ôl ŸËÀz¸±Æ žjíý‡!Í? Ã0ÜÚjhšÖH c‚ÉB>þB‚ y-®+ât€ë +!Ü 8çöï9ŽbÇ¿Çþc0Ì“�LÎû¸Í,@f�ù�§¥ p9ÀÍ·þÏÿó­íííííÿðÚk/ùŸŽ��˜È%è½Í·ÐXçv°t:=6—�öf;@#©Ôˆ´y MOu�ô^è ò}hö`cC@ïô·® °Þ +; + dÍ!ø§F€p8šúg³ÿo~ó›{*�c˜&¡•vR´kÓäTžë=›=V…@H?L©]³¿Z‹æ#{‘R[öùÔ€Ì?hå÷í¸¢ß¦`ËÐA¹³¹Ý³9!T�´;¿Ü¨V£Stvv*{šÚ@mºðyTëáÆFøŒüØhm„áF«ñÔsCNyú‡a^ÚzJÓ´F2B€ Æäár‡#Ä�/tÝŽˆÏŠeŒ1/¶Ï“öÏ7ûìßMú0KÀY‰óÛÌd2{ƒ€—üÅÍ›Ûr½öÚ•—¿|rl,¯(qW¼ž–ŠñD£Ñh4V�'žh4 ]™�ù{EQ”=.ÀsC]€½ +à™= @c¸  O¬6K¥’QÒõ¼¦å2ùÆ“ç:KhŸ}XŒhÍ&Ù©Ó³„@ù:µmZ³íkÿó›×ê×ê´^o[=ù‚d�*–MwêÔ®�@iMÚ|�î@€Ö€RXÜ¥²v€R›žÝ­SQ›îìüûk‹oÖëí +íIFÄ›×hT™«-¶ëT2!ñ©MÉ)BL3k�€¶?�íÀÏ„Ï=Óz. Ÿ{. Ÿ{î¹õp½uŸo…{@÷øß’Hˆ€9ç\¸ !„püs¾�"Ö¾p…ËÌýÛ¿çy"®L�牠7 ­ÞIcli‰ñÛËŒg2™Þ4À¸´ÿ ɺ|ùÊ•+W®¼öú믿þÚ+—/¿|áäoüÆoüÆo$èŒH�õ¥oeÿ­ð™V«›”*`dH ð@=À .Æx²»žÉä4%§jª¢*«ÍÕÕÕó�F£Ù”-œq÷âÅæù¦<âû-3þ3 ã¨ÎÅ8wØ(é¥xä“ yûkã|×°[­°y¾Ù<þüù'Ï7¥RÉ0t]Ó´ÜDÞ�X€OA€?øƒ>XÝ,sòH6{Ê´~ݲæ-KÞØaÍÍ‘€ç¿bYgç,ë¬U®X–e��›«ÌÍUÊÓÖ¼E€T*åÊœe�=kYs‹XVÙúJåìÙ¹³•ùŠEaaÞ²,«R±æ¿´0°yT¶¬¹92oN¬¹¹¹J¥R)Ÿ�kžT*•¹ŠeÍbÍYdn®R™ûb¥P¸g2[©Xës9ü¹õçž{î¹õuùñÜz¸ÞjâfkŸB¤ùoµšzˆÅà\0×uß÷}„D‡ž+„+/ëb}Ç¿<ÿÝÀ®`<ŸÏç;‰þ[Ý8ðÔs-I�—Zqíoœjÿ©±ž(c|ÓP€5 €§Î@™Èi™\NË©ZCÀh4šÍµµp­yqC»p±Ù /þÿ¹ûßà8ŽüÎl†žÁÁ© 5…¸ÝEPx h‰¡` ÔDÁ݃„jX6²™M¥ Z^JŠh¡é®iÄá(¢I–ñHÁÏã[*„)f[æs0°Â�î¨ñê¶£Q™aPʹ—z´c \kXçÀˆñÄPóò^dVu7j4¾{A]’ÿ…†Èß'¿¿ÿö‰÷³,ËÈ[öœ=gç$f"Ì͵`&—L$I©ús3…ü> +À|úÈ‘Z Д(ãS®Þ­‰Þ{# 1Æ.v_Å“ YŒ—ñ«ØÅ“мþN�cìb¼‚³Ä !þœÆø$7¾çºîäi�,ž„fÝ´ !4qCcÓÅÙ,Æˇ_?ý²›Åx›c]÷ƒã/`ìâ,€¤ ˆ Fz¤OŽàe×È0²€t:}@1.pi~Þ±-™˜ß"–æï‹ƒGC &ŽOOOŸ=ûÚôôô´ Àþ`pðìtD€³g_?ûú™wæß�i¾þ£ûÿìÙ³gþø�ÿø�×ÅÐðþöÿ û—A€¯—H¯®†Ã ¾Õ,ÿ¿ÕqðàÁÙÑÙÙÑ£££³³?~ë­·ÞzkvttôÄpßp_<>Ü×× €X“Fÿ¸té¼€ã8.DCÂìÐT iKì²ÿÜ�˜ñÑÿô‘þþ7óVÞ’ + hÛEk®4¿öÜ.ó´íHÌ D + …ÝÈ7 ™êæ™ÞŽþäL!ß*$zŸþç …ft0ÂØ„ZO*¥ë!˜ÁØÄal £ 26ßG¦ùû7Ó“ ÄJŸ—€6ì8ž>=eÂLXÒ‡0q14ñÂØ4M›!Œ¦ibŒ°MŒ ›ë›ËËÆ$@Œ Иb@‚çpFöÈic1å”’Çö¼c YÎnù?ßbþvr°cÐ*•J¥ÒùÁÁÁéãÓg§�ÿƒéééHü`ðìÙé³Ó?hVbMöÿÆo¼ö†èŠì_Ljèÿ§wÙÿ™3ÇÏüš,@¹ìºn:�^ý«™ l8ßúÖÁƒ³£££‘81<ü 'ÄyþùçŸnœgžiûõUí»„Ò%§$ìÿ’3???áÂÅPì€æðB+æv Ð¤Žôöö9òô›y+Ÿ·$ŠÅ¢5_eM˜³æöºè­°í¹&`? +‘ÈC".ðŒT»]çüÓý¿¹°ºº›�y c3ÓÓ“Òu…‰zŒ†®‰ B&ž2—Mó÷M3-gýˆ€& “iÙò3…Dx +—GÜÌFaüûæÔ”išS¢<c£ Æî2%æ²i./›ãòá°åá““pÒÝE(1„`B‡)pÀ)ü˜@„pK%ñæ8ö¼3w|/lÛŽÌ¿˜Hô÷*–J¥Réì™ÁÁÁ3ÇÏœ}íl"! ðÆþð?øÁàÙé³!Þ8ûúÙ§”N¥í€Òbÿrލ°G¡qÿ?ýÚû?~æÌñ®}]9—Ë®›n&@&“ÉÀ¦€ÙÑÙÑ?™àÄpßðóÏ¿ð /<ÿüððp3†Ÿ9øˆÀ=(Øí)…׿c_õÕö»Ø”Ü/ |€0 87777gYsÒ{/¬7s¹ÜÌL¡ÅxºÿÈÓo¾™·ò–%]»X´æ÷Ĭ¯ËnV¿‘ ðLo‡ŒìòŠsöüœmÛÿ<´ Qz7…n¢ž=#Öí!„MŒ3goâH˜æ²‰ÓB0 Eò†ã'Áú$€ã¦iº×Ë™eá)„ðúF!ˆ1ºišæò_þÛß7¦L !ÆË&Fâá<�á‹0)vB'ס�ONMM™æ2\ÆP×H¹±ÄAü8–ï€bÂr„ý·Ö†æŸì?2˜°Ξ<~üìñ3Ó‰é„ðÞˆ4À´L¼¡(‡•NEiëTbBÿ¿öÚkÒéö?-îÿ3bÝ™†ý¿ÖèèìêìRUUU +@ƒ/ºø×€¾—þ«fd „ 88;::Û£'úBœh1þááááX£·ö7Q—œó¶H�]rZ\©‹ÎWŒ“a†ÂöfÎì9ë� +V¡P8—;wn¦p.—ËåÞÌ uÄ{ûŸJ&“¹7sb?“0?Ûžß«öÀœÝ €9˲íæ€mï€s!ÿÃG3…™7sÉÄÐ�vôçff¬½§(>ÁohÿÕju¢:  B¯ Ô˜ŽÐ«¢sgÊ41B&,‹–=a£.ÂãÂI("xb‘8 �IcÙ]¾™Á//cŒ¾9b"”A0ƒZ^^þË›±l"„2_5ʘx#„#`lÀ „¼Œñq0). +9¹lš73!C8RS1Q&óxv:»Î|É™;n]Ú?(Ípph0'ÊΞ={vzpppðøñ3g¦^ýõ×¥ôŸžé@åIEéT:¥MQcŠòƒ¼ñÆoˆP_xÿOŸ=;}vº)é?(ìÿlÃþ�Ÿ9süø™ãŠÒÙ©ªªª*Šúï^?®iš¦‰`$ý½†  iGgGGGüõ0Ü:ùûÑx”pé’mÛs 5õl0 ª7M:¶m[…B.—+ä +¹Ü¹Bá\n¦PÈYç†::z{ûûû‡††äz¶BîÍ˲ælYŸ%”ÍDsÖœ%/zKüÄžÛËš;—Ëår‰„]œ³d�€mÏÉLáâÅd¢·7¿h…Ƚ™Kærajð™™=×$ææ~Sx{ [3á rS=2M1&Xôþ›Æ: +[î°‰M§³‚I4D†gFËif0†H¬Áë#.F0Ê ÿûõWÐòÍ›ËæÔÆS¦¨t‘ 8`ÏÅny½|óÖ,/»ëå[æÍ²y³|«\þOeÓÄ|¯¼|óf¹ì–ß7—o½·^vËe—¯/ÿ§¿^¿é.—Ý…ëîÔòòõ›ï]wË®éþ—¬‹1.cèb芇߼Y^¿uë¦k®/üµY.›åòûeó=é)xHíÒËååëËËËÿòq'ÀW@˜ÿàqaþv¡P(œ}ã�³oœ}㯽`zú^ÿÃüàÊ¡C!ž15¦tvªšªˆ¿þº°ÿ³ÓQ� Øãs|ðwöØ€N¥³áDÐÂú,€‘t:½þWr8SèŒu«]]=Úèèh£à× v°¥Nç௷ÿù&ÌÛó uÞ¾è8Na €Âý#1)ã s…ÜL“ÿ.+þ¬doo¯€¸þgffò2 nñùÒ®™Íž +ö\ÃàççK¶e +¹\"šâ,þÙŸý‡ÿðŠCýýý¶ÓŸtr¹¼•³‡Ž$íÂÌÌLD€¡þÞŽ¡‚UL &r{¾ä,.þ°Q~ì8Îo +BªÕš °rãÆ QtòäÑ��ÇÅ>|t```àØÑ�‘ïŒ;vläèÑ£ÇFŽ}çØ±cÇFFÄÏèœ99>bœ4Ò'�´ø€��‘‘cÆïeÓÿ&{ôäïýž|øÀÀ±£ß9MýÎÈ€xÚ±c###ß8zìØ±‘ï=vôhËÃOŽ'O¦O#ÇŽŠù¤#GÓéôÀs‡Å�'O¦Óéo2ìÁÁÁAqûÛv¡8W(Ξ}ã�³¯½qöµ�Çÿàþ ‘HL¿þú믿þƒ˜¢z²Y(M + MQÔÈþ§£[þøñÁé³gÎü�X1ÚÿñŠÚÕ©ìvÆB Q@ú0€¦i¿1¢û þD{ãR©‘°K»«�ܹsû ½á´ËÖ ¦.ÌÆ‚–più›V²_t&I €B!78”�ª}hpp°ßvæí¯<ó2\šŸ¿4oÛ–577gÛv©Tr‹Vrè™ÞþÞþþg’ÉþÅ‹ÎÐüÅ‹ò9»ØÛëgr¹™Ð`YÖy»h +¹\2‘ìïü ‚(!”T«T7C¬ÜX½qC¥Ó××a�\¡[þ`}}ù¯ñȺ»¾¾³ëßzßu³å›7ßÿàƒ¿.—]ŸÎºîz6»~ g×o•ñŸ—ÝòjÚ-»”WÜ+¸Œ×Ýòu1:|ÝM¸ë.Æxb\¾ù·7o•oM�”Ëë·Öaö–|øúÍ›ë|ð×åòº�q»å,\ý`X~ÿ&v—Ýr9íºîå2^ÀØ…Žñi¨)1 –Ýïýÿ"ó/Î +ëìñ³¯�9{ö̯½öÚk¯ $‰Äô™×_=¥Ä:w)€¶&ð¤¢t«ê¿1=Fÿ"ûíøÿòÚôkgÅ’ †ûüÌ¥KU”V@€H¸étú½÷Zƒ´#'à׺�q�Œô=ñD{¼á{Þžk1Ç9wî\â»�F,hoß[ZhçæÂšÝ|C$“Éd.÷fnFôÈ„£0í’=Wh,o“×z.—+HW¿ÑqâܹœŒÌ—~ø¿ýßþìÏþlñßÿÙ¿_\¼˜L\¼8“Ë%­Ù‹GúÏçs"þ—”Ÿ‘ #dØÁm%á°¡R©ô›Ù?¥BxÕÍÊêêêê•••Õ7n„EøGñ{z�ªia3ȹ!FF„2f6±i.‡Û=^~LS8ñiã)£íá$A|—M6úc„2x}äá$À"4…3žFÈĦ¹ŒÃÎ"£åá#eˆä‚@ O¤Ðº;c*€��ÃPÈGæoÿ¨`��>{üìÙ³o¼ÑL€éD"1==­()e�hkUݪڭì¹ÿ_{ãøôY!ÿ[âÇÏœéìT»:[]€€.v>…>@s%@³ ¯¯Â2àGÌíëë‹?"Þä”@“O|ÑqœÂ¹s…i{ß,@Øk Étûûûû�éïJXòï)ÿÌ3Ï$“ɼUœ�½páÂÅ‹ÎÅ‹N8–Ï‘»mÏYç"F�L$¦ ùŸ� "¦“Ë,qñ—JŽ°Ù¦¿uaÆv!gÏ:’½CŽ•Ï½™Ëå’2 ›� +¶mÍÙö¼h-ž/ÍÏÛóöœLJü¦ „BªT+•µÕÕÕÕÕ7nTªÒZ�×UÕn Q ÑÍ7Ülj]ш§0€Ø”ã~rÓâ 6¢¾@Q`ˆ Ìî_‡sýÄo¹#e¡1„؃~06±iÊÝÂãb¡l=Bwg2'¤&R=�TxBÃ0¾ÑÈ ß¿Xœ³‹Åb¡0=}öìñãÓÓ¯½ñÆM8þð(�)å�òU1EéQÕn%k¹ÿ_{íµãÓg_{mzzú�Á†ÿ/ ¨]ªÒšš¦iÒ ãX#ìŠjcÝjW�¦i@ˆ1n² €=8(Íþ‘˜íëëk�ÇÛÛ£"€F·Ý>@a:±7ØÞ y·‡J$çlgqñÏþlqÑ.æs¡é&sCÑàþg††ÉœÈÊår¹7e÷p!—ËE³?sÓ¹\24þdBLMÚ2N Šæšê>÷ñJ‹ÉgŠÿë|“CR,óo&;:::¾u°cpp°¿¿¿ðé¦ý+ƒQ.ú›)Æh$ª•ÊÚ�ÕÕ7V+U"ÀÀ$€šªiè²'בbÏ\¾ŽåÌŒMÓt�¬ØÛýÒ$„#ÑÞ‹±hêÃNÊcÓĈ0p—1Ôu˜­Æ™ë’.pjyy*zø”išYCl…“<-‡‰cŒG‡r;ø˜ÖÕÖ“AO>†íÀ¿UÞþŹbÑ.N‹1ÝgÏž=Ó ÀkÇ�?~\yR9Ц|U @ K Í_ØÿÙé×ÎLŸ={f°¥þçøñ㊢vª�ŠÒìŒ�áÖÇ= +@f7�‚cœ5Œ“' ¢¡Ý÷Àèèìè艾¾¾x<o�@”ˆ"€óvä$ÇÞ±p @Y”Kä,˲eDíO£ÐšÕß?”£y‹vѶ/\¸p±1�à|ɶK%Çi èçß/Ê�?”/q¾©Pf­B¡ tüœU(æl±)^Æ!‹¹D"!ÖÂö÷÷‹a+GŽttôç,Ûž+†åc¥’ãÈ8`©T*9¿‘ý7à{ÕJeåÆêÊj¥JˆHf°¡©@®Ì@ÑúȺTð¦èø•ÍÀ¦›2_Xºè Î`({#³ÆK“°ŒLlb„ñ±²1‰Ër„'tùF—bŒ% Ƥü‡‡ÆÐ=Ö²0TÓ4½G= !Œñ7ZŠ)ª¢LŸŠ]¬þ;3}æÌÙ3»  t)Êÿ‹í§Úö(U‰ÅºÔ®¥HûãµãÓÓgΜ9>=}æøô™3Ç›Щ<ÕµËèJ��±æZ wäèÖ´€ã,4Œ“']·\þjDãzw`øÄ‰£££'NôõõµÇÚca $Eø|K%…#€Ä´ã8ç÷i +ƒ€ÑôÁsçÎ�;w.—LäæÿTÚý¢sñ¼Ø›>@2Ÿÿ¾tþ/´´n”šfõ9NËÏ›OéRS²`ß›®‘D,Z–eŸ·mÛ¾xñây[N N%ŸIÃÌǼsyqñ²³è8N©‘xøÍÀ(¥”Büš·±¶ººQ©â3QŒ;âNŽ«ªÐu9%h¤ŒÅÎSË&B™ ÌÀ ÄxÊ5Ds¾‘�ærg †°i¯ï‹/À@×M$zŠŽ]‡“påÐoñpŸÎ`Œ!\žÂáæpŒM3›…ø4 ç}"Œ1‚fŸÃÍHk`"Õ­Œ!ŒÊ�ã@�Ýh@ãŸÃaåÉX›ª(­ó9ŽOÿàŒ˜Ø €ÒÖÙ¥(ñØu°;Ð-@W�¢ªÇ�¿öÆoDö?}æø±fHàŒÒ©(Šªtvv6\%“›ˆòïa¯ЬD ΆqòäÂ{e@*¥iû u·`tô…^xáÄè‰ÑÙÑ£}}}íOÄÚãñ`Þj-º$çÂÅÂÞ:€ðÙ‘ �JäJ‹ºè, +K¾h燞~&™L&“áVw[4 –Î_¼ä8íÒ|©ä8óv“å—J­ÙÊ\!—K$r­V/<ø(‚7?/3™�rfç²s1À÷óßO&%J2òY¸Ü]üúàœ1ÆX@)e„’Z¥²¶¶V!„ø,ü]UÕ¾;À<†1ÂäBý–‰1BÃ ÂØt ,L†ø·!Ì@@¸éZß4M„ÐÔˆ ‚ˆæÆgPÁ¿51Fa¹ÑT8`¹C£ DPºBÒ©tZ.Nu§Bnö›€Èú•§”XLQ•œ=;}&ð+  t*Š@LýZ1µEyíµ³Ç§ÃÙ_Çϼ�@¥SéìT;Ei¸]0“JMŒEQ€‰f¬ÿUc‚£@OO(04Œ“'Oþè½²R©”¦iªªª{ƒ€¡4oàyqñ¿ð 'Â@b<þD{<.þŸ´­Öû?tœ –µ�8Ø`A ¹ÒâŸ-:ú�Ìçó…y^r.9Îy €’½ëê/•J%»Ôðdï7Ô™wJóóó¶]šŸ©!G Ø£õö¬RࢀÓP¿q-ç’œRʘïû•Í� �PŸ1Ú@÷€6žêðE8 4âŠ?‚ð›¢Ëá©©)Õƒ» A$&¦axqÆÁ$šÂ,›!s¤ Û½B€qcošØD”�0ƒ1ž‚§!„ðEE- Âðe!�À€ñôx:­�r{ü&@Q”Ø¡˜ò¤¢Æ4åС§:;ŸRÄUQ:[4Ààô™3MP)Jg[›Ò¥(Ê�]¿A @@‰IûÿƒééãÓgŽOŸi(€ã�йJä}fRccaG€`¤I´@„²ÙÐMPu¼»¨ef_l8ùüð‰Ñˆ'FG…ˆ··7pIÀÞÏpË*ìUc­iÀðg‹ÎŸ^v[€H6p>4Og�“þ¥’m[s»ÿ…H¯Ï;ó%gþR©$&Ķàb€Ù|~7æ÷€ýuÎ9£!(­ù•JÅ#„1ÆX€T÷€6>h‚™¿6±)†ùJÀ“§$„¾$€ñÿ3€a°± §%¦p&“�ðôþ€!  ãã¿›Nk u}L û8 •óŠ8±'å�¢Æ4åÉ'ŸRºT%kS¥SQÅ\ß³ÓÓÓg� {Põ�¢t*Š"€òõcÝ]ÿJQUE錵ÅÂûúÌô9äÌ™3gÎôt*  3ràÑç`&¥M4jp#ðW«{%B¼W •êŽìgjŠ45ëÄb'NŒžxþùçO<àĉ££³£'úú†Ÿh�Çãà ”šà8ÅýŸöo î)Š&´<ØÞ;Ø(-þ¯‹Î¢ã,¶*¹¼ÐÚ¥và‡—€–fÏù¦_ÎKñ/@iþ + X,óß?!ö¨5`ÏÿóÀ˜ €ü‘RJ|¿âù>¿Õ €t·EÈPýnÀ!Db³  TŽsÞq¾Ž˜B?Z@!~.åòñq ÀõÔ‹ÿò1€�X,RO>¥tvJ SQ•ãgÄ·é3ÇÏœ  *ªòÔ“MØW|e @Q:c±X,Úÿñ&ó?SvgpD€1MÓ 1 q“ Ç!! +Rbp€ ¼H¥žÕ´îÈþ1^?ÖD™ +èë §†œx¾EŒŽŽŠDÀð°m[÷à’ã\rÎ�;—L:ÎDz,kppŸ^€æq {À�G(€ï7+g/÷¸v¹ ÐÀ¥Rɱ¿B|?ŸO&‡žiV¶½/¾—–/~dŒSF©ù„qÊXp €© |QبTÂøúx 0¾¸è8KŽsñë(©°€aÀ9ÑxuK[ÅÄ‘ouô÷öööö+ö­Þgzû{ÝÇS4 4�Ø €Î'=ÕÙ¥´5 Hœ=sæø¡´NUQ5vHéA@åÀ�¯èè.€X›7}|:,ý—§Sà·ºÔF7 ¢¨�X % Ѐ‘tÓ\0ˆ°Ö£ª=B¸¡øÑÍ›:H¥RÏj꿊ì­d1„ ‹JÀX,�÷õõ�•cƒN4Â'þdtôĉú†_~þĨe]Øí\rœK—Î�;7�pç¢cYÖààЊ�ð'»c—÷()òE«Y\Ü€0ã·ó{&-ÏÏ7+g¯p.:ÖlþûÉä3Cÿ¿cœM(ãŒ0J¥œ1pÎlRÒÈ쀗"À…&à8Îâ¢H“”ì¦0 { +V1yä[b¯rG¬£÷™ÞþÞþÇÔþÿå^óW”X,.\€ÎCO>¥t)Ê�ÐP”˜lÙ9~æø™ãǧÏ(=š¢*ªòTìÉ0¨(Šúëcjä4+€m1åP«ýRcÝ�Š¢(Jg« ÐõJH€10¦iÚdS Ù€CMíT5m ˆ½�Ò¸yS×S)íY­Åþ_ÆžBxê¦{ðàÁv1%4Þ××7zâ…£!„0zbvtôÄè‰ÑÙÙÑ£³³–ìº`þ’ã\²#À¶¬þÁDbhW3Pû®nàVÐp~M à‚sa7­vE˜—˜ŸŸ¿T*ÍÛ—š`·¸Ñ´ð¦,À£`ÿú +@Æ9‹Àcœ0Îa”2ÎÎYÀùˆ ÷Ù¯Txðp:\pá‚# PrœÒü|³èïïìω§âE;ן´mÛ*ærÉ™Ñ •·,ËzBÖ°°“GJ|+ö­Þßîíïíïý—�/”]'và€À“O>¥t*mO6@› Àñ3¿#Ûóz„8|è�Ò©´É@×׊ìrÈ{”ãgÎ<þ;¿ó;¿ó;¿£HÈ,@S/€‚pD€ h +€UfË.~ÏtÍì³@ÕR]fÇ ãäI·|³ @*¥=ÛÝbÿ¯B6ßsÓßkâ‰'š Ã/'àÄ /œ81:;::;{õí«oÍŽŽÎÎÎÚÅâEljí¥KŽcŸ;—H&ç‚c­ÁþD"‘Ø] +ÔÞ´o8ÖZPZü÷‹ÎŸîUC{cöàÑ +`ÏÜÇl‘”A±4¢¡ �ÿ~>Ÿ� ƒ€ÿ<pJ)圱:cŒÎgŒË7F9•öOk�´(€¯Àd+ \\\tì‹NÉqg^¬HŽ@ÿ`ÿn­b.—,$ÅÞv Úû Ñ!ðÛߊuô>ÓûÛ½¿ýø@Ùs¢@ç¡COuªŠ¢4@[L„ꎟù�3ªªv† +@=ôdP´uþú@Owäh;‹h; Rºåø °ÿ'•CjL + «©PQÔS½2imL—×]wd$ Œ´<‡•CÊ·žKFzÜãÆÉ“?rË7ep_û7¿÷=·½=ÞþD<þ•NÀ‰£'N<ÿü°tN¼ðÂè‰ÙÙ_½*ÆŠÏÎÎŽŽ‹ç›©¥KŽ3/ïÿ‹ŽmI í¶ÿƒ_¡þôëÆ~Ì?Ž=_’õü—„]ì«f‹Åï_ä[0¿(¥”~eú�R¡ô%N™þ”SNxÀöð.À.8—//..:ÎÅ‹ŽsyÑqæíRÉž·ç…XuÍû ™Hæòrò~(}ë`{GGäüvoï3�-”}p Ö¤º”¶&à@,;~üÌñãÓqµ[m(€§žT”ζߤ@Y€b}¦r@éQ”C‡Äõÿ¤rH�õt*Š¢tvªJ4 ³K“×" 0¦i7]WTf/d³§³Ù¬›�„ª¢jà˜Íf³â…¹å÷tðhûOÏuãñ'Ú›4€@3N̾uõÚ;KKKï^{ûêì艣³šÊòJóŽ3ŸLÇqì¢58(êó[\€(¸ƒ­Ø§ Ø¬.þ& +àQ.ÀyÛ +À¾4_rl{¾´¯(‹ùÙ|þûB`(#4:�¶AÊ8¯3Îx(‚€‡.ç„0Æãçû*€G»ÆKM°mû²�þ—� DàÂü¼í\(• @xÿ?Â(D.€ ÀÜ~ +`è`ì €P½�± ð<Å:•¨@U”¶±”.U}òP¥”hû:uÝjws0ŒPžTz”'c‡”.5¦ÄŸTž cª¢v5&uª0#º;Â\@( 6oº®išã,Î@¼l,EéÖ€!ÌàÓ§qö4Æ&†úHiÚ~öÿjú{®‰Qì éü‹x¼¯oøÄ‰Ñ£Ï?ÿü 'NŒŠ ƒ[b·Ø[£³³³³—ì¢U”ù³y§t©ÐŸ°œ‹ŽØ£ úsv×´ËŠ£= +€B ¡„xž·áQ£Œ3FéÞ€}©%çk@Ö† +À–5€¥ùÒ¼m_Ø €(˜Ïï@Ôë”rJ#UOõÒæ³Çüƒ@€×…ÀëŒs^çŒqZ8 ê¼ÔÆ8aŒÎÎ9ãû)€¯áȾ§ËÎegqñ²ã\p�RI~¹¥’À`xž~¤Èå’9aþy€°©"@,v°££££7~P ÷€C1E‰²ªÒöd«hPZ@¬É8ð5êº÷ÆÄú ¡bO*]jLQžlÄZº‹¯ /`"šˆ3.6å*!ÏE9»H`û7Ói×ÄS¨ý‰ö'žˆ=Ñ�" %À £³W¯½»´µµu{kkié�ko_ýñèìì[¶•�Ò€Î|©0˜°DZ­œ@.×L€¨üo/¡”Q¶œQÆõ:�âæ»°‹�v©J—ìùùRɾdÛó» ]Æ£Œõ€œÖëõzÀy½^¯SÊ™@…RJ[° œ ‹– „q^—’€a<°ÎÎ9§œÈßàŒ³ß …° +–m[öœm;¡pÞYtQí ¦€ÁÁÁþÁÁþÁþþ§s¶],ZVñ|1ןh‰Ì$s3¿íBô~ãðäÿÔ¤º:•&Äb±¶�]ªzèPW³8|HQ:Û¥óëÕt¶dD0Ö& (]jìÉC‡”'£€¨�.€â"[¼ €T¸2ºëx +‹­¬ÈMC ªMÈà „H©UÓ0Î ¼Ïý�ŽµÇŸˆÅžh&Àè‰á�Âþ—¶¶¶îlýdkiiéÚµ«³?þñ[³Ïç‹Ñ€Í’SLÌ9¥ûϵN’^@+‰®ÿ½`ŒsA êfgQ�QZ¤ú£ëv5)¼4?_š·Kóö¼gœ×ƒ àœ w�7 `¬^¯3Êyl7hKéO !„ÕEÊO|UuÆgupÂ#á;3Æ£¿A`ÂD¡P°ÃqÈÎåËÎâ¢ã\”ŒŒ† >38øÌààÐàÓÉ¢P¶� +Àó×fff’¹|>ÿf>ÿfþQˆµwtÄãñƒ±Žø7ß-µGíêõ=ŠzX¨ðXì@¬­MQåP¬SUU¥S‹=+°¡(J¬³SQÚ(ª¢¨jLQ”Nhjgg—¢Ä¥ëÐSŠ¢¨š¢(]��]J§¢Ä”NuLíT¥-Ú›¡(]ªª(J—Ò¥¨Š¢(�š*º:»Ô®®®ÎÎÎÎή.ÃE0Óꨊ:‘A±¶U¾AŒÊ.Īú¬è: 3bl„ŽôT�ª¨`�ý‹û#„âñö'bíOÈH`__߉ÑÑ£ÃÏ?ÿ 'FgߺzíÝ¥¥¥­­­Û··¶„¸úÖìè‰çG-Kv”œR¡?g;—ì\bp0´ÿG ¬(PB(a2¾Çh€p¡CPÆBË¢\6ÙqÎ9ßÍ +@„ÞÅ»uJck€ó ¥´¡XP¯­ +`/BD5êŒÂçŒ3B'œó à�üJ©4~Aú5³,•J¥D¡P°ÃéÎÃÎèK!ÂïG–]Lö'/ØE« Ó€9¡ÞÌç­7£!Ìû #ÞÛñØ g¿¥3 ¸wuʼ¢(J[,SèéìR�¢v)J§ÓÔ��Š* +ºzzzz©�Jg§ÒÙÕÕ¥ª�ŠÒ©ÆºD4OéêêìêR»T5Þ-$ƒÒÖ&¶èµ)1UQºD¾¯§G“OV»Õή–“þ׆‹Z¼¨©mªß1™Lcœ…ètÙÍ6 Æ=AL¤kÝj�f¸c¼Ïý�no�ÅÚŸˆ·?`Xj€'Fgߺúv€­�¤ðoÍž=Ù–(]°s‰¡Èþ[p°Éˆ<‹�;G‹lG`¡U°& ]€¨”6€P΢¼ž2΃ �\`œRÆ«³€< ¢ 7`»À(eç¼IPN)ã,¬Ú +€JÐ= +€îÚÒùÓtêŒó:‚€RÆ 8!AÎÎy�SJÊ(åAÀ¿NÀ.•ΗJ¥Râ�æì9û‚Ó€è …gpðHÂ’ + ˜|:a‹V!—LÎäffff’É™hÍâ£p¤··#ÖÑñx`l¬g,ýçwÇ~wìwS)¤‚µ[UUµ§§[UUUM©ÂõnkkëìììîV{Äï€ö‰5<ð°ªu«ªÚÝ“J¥R‡¡&>VÕÄ»h‡ÂwÔTµ[ëéé9,žªª��Šr ;ÐùíCšªªjw·–J¥ÆR�Ïh|q\A€† á1Ué�â6ÀÑŽø,<]v°úì³b�ÊÀL&á)„t­³'sÚx¶ØãþGø‰öö'žh�’q€Ð xaø…Èþò“­­­Ûwî|ôÑí­­¥¥¥kW¯þÉ쉳³¢ äÌŸë?gÛ¶�Œìbá8à˜ˆBˆ�EcMî?gŒ6+€V€ÑÝ + €,²“àœ³: h�”QJ)Ú»YH*ð@J0.oް@úBð¯VâSK´¸uÆiäñ‹ €xÙA¡àApÎ]@7œohÛ¶í¹ÒåË‹Žã\þ +t$¬¢Pv²?aÏó…\2@žÖnˆ @G¬ý1W/¦^|1•J½øb*õb*<º–’£vÆ´9wïÙn™WUh==PíéÑ&éš®vw «ÖTMÓz4=•JMè©ÃùÁò = ®=«u?; ic@Ó@*¥iO¥º»5u@Ó\bŠªëÖ4 ¤&R©‰KÉ�Ñ ­?ÆŠÔ¡pJíT5ˆÂØŸ ‚§O» X©q��§3§Og2@]ŸèéÒ0w!ÂûÝÿãWŸh�K7 $À 'FOœ81úÖ[W¯½óîÒÒÒÖíÛ·ïÜùè£�>úhkKÞ�µm˲ÏK\°sCƒ‘ýïrbíáLQD(c”1J¡Œ1º‘ Pg2Ðä0Ê‚}@w€I4)€:çQNÃàÍà”7bŒ1.D.k¸ÕG€ÉÔ^«âŸ×çŒÕÂyÀÎIÀaöâ½FöÏyðY˲ +¶=??Þ)•J‰D¡`Û–5׀ˎãÌÏ_ºti? ן´‹–UÈMç +9áäåÙOXíGz;¶?æAÀ±ÔXÓö?‘Ñ&ävcmLK¥´Tê%4MÓ$R©±1¬öŒÁé”"Ëccš–Jéc)  0&#��”66Ë!~c¤4 O04MH¤©ªª(Šªi‡uMƒ@Ÿ©”®06R©1MÓ´TÓÑÁK+M^B@У*Šq5â v°úìd †§OC¡®ëz�’2]Ã…È=ºßý�ñTûO´Ë# ºÿäêÛ×Þywiiëonß¹sçÎGw>úèÎ�;B¼{íêÕ�ŽŽŽZù¼eÏÛ¹þœ}ɶs‰þýÐ~0Ú?.Ç"Í^*�ý\ÊEP@(€º0©ú.4»œïQ¬Î*|úº°´D(€ ©h&‹@÷@Ãè#ˆ@C 0Àƒº¸û)'œ…±Î€Õ¥„Š/F~Ü#²Ò$çl{~þ¼s>$€mÛ–œ]äüÐY¼Ø€ÒÐà�ø~äÈ‘D8 ÉÎõ'mË +@Æò»@¸€± GzÃ’ÀÇ�­GGáve ÆR@Òcš¦*]j·ªi:‡'@JÏ6€”6‘N�t +Lè:HéPC:ÐŒhèGAzì»b4¯�ãè9”Êh©T +¥4Uý-EQ5í(Z*¥ëúD +@èê@ Æ4°û„€„Æ ´nUQuŒš€!Äî�ð³Ï> À¸Ý=æ�¾ƒñ­£«ûÝÿáøñ'ÚÛÛÛãñx¨^}ë­«o¿óÎÒÒÒÖíÿzçÎÏîÞ �Œ^»võdz££}}VѶí\nÞ±+ñôàþh�6„µ‹‘`¡ñ¨Ìx/ïçHÀš@¨@Æd�…Ť ð€ˆü@$à…:ˆ\;Ø­B°€ X½pNyK àQ + Qñ/-»Î9g<Ōף k|Åœñ€Qñ§òþÿ?‚€3¾_ Rås¶mÏ ' Q�ušÎåÅÅË—�:—›€34444tDœ\(ZV€Ü×@¬½£CT>þØ} idô� :À´˜rª(�ªšJéÝŒCx:tˆL$@¡a  €èzJGi¤7�ð(@Ó¾kŠß2Ñ+(�v@ +èzô¨j—¢ŽÁç`ø!@ä À„x!�ÓB€Lá© @:cª¢ë„€§ñÔÔÀ³ =0†øôéÓ¨ë:P3æòÂÂÉòÑ…}ïëíñöx{¼½ý‰x¤^ýñÕ·ßyçÝ¥¥Ÿlݹ{÷gÿ³¿ÿûŸýìÎÏ~vçg².ðD_ßó–]´Ï ææÛ™· 9x¨½]”0ÆšÂÍ`´Õ -.@«v)ºl�6€‰,oU\ .�œ<ã-Y€*û +´¸uéÎëB,h–#œ¢D@¼¦(uþ„ïvšö©æl{þüy§T*$…Kö\TÒpù‡b–¡œ€64NžNØE+_H†Èíã40׋Åb;â½½±ÙOö¸@ß{`FFÑ œÐ��ˆ!NuuªÝš2ßO/0ñ¢®#]cš×Ũ%]×õ ÓËHþN@L0 3Ò>6Írú_�`B×Q�Ö­ª�Á4‚ê@×á„(ë¤ë�*áw[5ÂCAô¨{p:sÚ�zvh!ÂÙ¥›7?À #†‹!Dh×ý�_EzJ�Çâíñx,ÖÞþÄO<�ÿöðèìÕkפýÿì3qþáþágÿð³øÙ�;wd$à�kWgŸî+íÂ`nÞ±K‹öà#;¸â^ÝlÆ­4 têòÝå»À)cÂç�\&4bÒØ_0àB0€€ +ÀyÀiÀD€ó:±zÂÈ>‡5¶$@�sÆ9åŒspJE€Õçg<àu)=1Áz”å¼ÙÀ-Û s¶=o—.—J…D¡dÏÙÅó_y€dq¶E$óoгl[ ···#vðHoGGGGÇ7IÈyª0‹10Æé´áB )ÊaUÓR:ð{¤5íw5mr<�i'ÝïÃ0²iÆ€®xŠ Æã ¾1„@c<�!<!L8ý\èš6 ªO)ŠàÀøwi`·,,y#Ýx�Zª™xjÙ5o¹×—oé ¥©{Äî”6Òã8À$„º®÷˜ù_àÈï�·Ü,Äø¦™N»¦êŒôT—ÒÞk�?ko�=Ñâ‰øð‰Ù·®½óλKK[·ïÜù‡ø¬ùüý?üìÎ ¼ööÕÑâ¿·¬¹ÁœíÌÏ;öÐà¹}kY€ƒ¶·‹a”PY$=Æ*ÆÂZŧŒSB(§B×Y¤š\¾/Z]4²-.€°©0 ÈDˆ«K .€  ŸšRFjÞF…Y½×r¤‚ kèêõ€Ñð5s&#™Bè¡Ý‡±À0jð¼9�ØP{•Ûóv©T²V)*j¼|yQ t.]j@²(¶±ÙÅd¶,k&'¢ÿ¹\.ù¦ü›Œæ'7);R±ƒ½½ñÞxïc«àÞƒ1,¯/»ð=l–§ „Ð=�….Δ§ Ø�Ò&Ðaþùu×ÄØ…ð”‹0^ŸzÏ5 ŒÜeìB° {.ÿõ² \üÞÔi ³bA ^Ç8]†ß‚»Æß–ËËeŒ§ÄhŒ¥2ÏAŒÖËÐ.€® Ë”Ëéu¼\ÆøtãöhZƒG�;62r4�ÆË:š®·@lu‘!œÍ4`ÞüŽü›ß9–9zôèH:�]‹Œ_Åzª«MQ‰ò¼0úÖÕwÞ}wié'[[Mö¿½½½½½ýÙg?»sçö–$ÀÕ·NÄãñ‚eIÌ'öSÛÛådàhþp¬Ñä…Ð xe³F(!"Æé$3Êë­.•¨‹@ ]ÞâÈ_7+F)«ó:‹pkéÝ·¯ŽÇã…Báéœ=oÏ;öÐW iòø>yóÊËW*¾¨ ñ?F9Wa�SÂy <.Ë}xé^€… +€ @ØŸ@XĤ_N„¯K„³»88«õð>ç„Fˆ·Y#”ïˆ*XC\Fö!�|©BZð@¼ˆ:g kƒxPu¢_˜B2ûÙ¿ €m;vNà’ã8‹—¸øÃËŽS:ßtŽô +ô9’(òù¼•/OçlËÊçs‰\a¦03Ó +€9Ñ (2�…B¡)€xoÇÁŽŽŽÞxï7 +ãÂôÆ]83P‡À·74\ ¨=Z*à„M¡4ѨœA"|!�ÏpÇ!Ž€„gàPrýÚˆ‰QF×D:˜H¥R=jÊÃÙõÁ‹FܦKBÅ|¯ïÊw@°»ŽÒ™em�pkBÀLæ´ +«ë7?€ð÷þÍÂ:ƛ˦Øï„÷¿ÚÖÖ¦üV|¸O~‹ÇãñáÑ?¹zMÜÿ·ïÜù‡Ï>ûì³ÿñóŸoÿãÏïßÿüÞ½ííÏ~&K‚¶––®]î+ +ýý_€æÕûhæJöJ¥ê3Êcœry)×)ç¬Î˜¨ÿ岌–‹8}]X¦pD쀷Äx=hÊ0áìê¡9FSû#QoçuΩxzX§çû•ÍʾiÀ°¨@ü(üˆF¬2ú ⽃ÈûYCÞHà"Â`YûÀ>Þ±§- €ËŽãˆÿ”šOs  X(XyË*Z‰þ¤]̇(äf’ÉœœË:77 Šˆ,@¬=ïíí�éøÆÅÄ] q&̨Bœ�vªª¦¥€Ž„AO§¢A!„\A¨0i@ŒI& wC¹oN DXN3+#„ Ì@8@*¥u«L㌮ ¶«M 02¥G³Ü!„¦z" Ð�¹ë( —õ °Ç8�5 „1ÄéIè7?€ÙìïáuŒÂK›&ïÿÌDW§Àðððp____<Þ~ô-ÑÿûÑG·ïüì>ûì³Ï~þóÿqïþý��û÷ïÝ»·ýYÜZzçêìóÃù\î霸rr¿“;'Ok@¬½i&ØAQ Ør8óðÂ&¡”2FÎxPYõ]Æ‘–x(äeae¬^vÙ¬·(&\€@€qúçœ +ß^ú@Âh)cLÀ†<¨K·„1F ­®y”úH€±F]RPgã²P9t|¤²8«sÎFçõ é+‹‚‚<ò–õØö¼Ópçòeǹ¼OyúÈ‘§{Ÿî}:Qœ™É[V¾h%ús¶•Ï[Räfr9¹ }Xv±7æ;z{ãí�/ö‰LB `™PGð= !œ2°ÚÕÝ366¡»0!èÖ&€¦iú+SÈ4á­�¸ë»WÜ´xFA ¤ÀÑ^'s¤ !B}Lè@ëîÖ&Òh׫/�¸ò…È£ƒT‹’ d–õ‰T+²8ƒÅ>i|:“Ô?€Ùìï-ÜÄ!ˆÂO™bÅÛ”9•ÝmJ[[›¢üV__<ïë‹÷õõÅã/Œ^}û�¥ŸlmmÝþH€íû÷ïßßÙÙÙÙ¹ÿù½ííÏþAVl-½ûöìpŸPÅóöü¼“ëTpöªfRY¸²AeŒ„ò=ꋹ:—Eû¡a0&“éuÎ xÀ(gœŠ2;Q7(À…`�èÄ•=Eœ2áì3á 1¹³))Ç„…ò€ °00Î!ŒøŸú¨@Ä� tî)§a¿¤óI¨ðë"ÂP—_es†PÈ&YÉØþ˜³ÏÏ;V¢àœ·ÅP�ElÀÓGŽ<}¤÷é#ýGúÅ™‚•Ïç-+ÑŸ+æóy+—Ìf +‘Lær‰s-@GGÇ‘#G¾y�¥´'Í©)$~e–Å~4XîêTµÐ…O�)*Ò!„ÈD™e¼Ž3(´ñŒ•qÓ„1†™ëæ†pÂý®ªAˆ3•GÜ©)œ�€àÄÄDJëéÑaÚD(„Î@¡1²nf2Ò˜1ÆXRˆš¢q‘�@Ë:-AaFx*iÿë ûGalâLal"}BUÚº”ÎNEù­�÷Åûâñ¾øo÷Å_½zíÝ¥ŸlmmmÝùÙgÿc{{{ûþý���vv>¿ïÞç?ÿìg¡Xº6;Ü×gYÖ`Î.Ùö¼“|úk`oÞŒn^q+„ˆé¢‡rÆB«ɳº¼;EN]zÏœ²Ð®&¢ê²¶—ŒqFX@ÅF¤GO‰0hJDð�2&Ýþ€ÕY�Fa70VŸ+89B� ¬Fk›žÏßÇþw©� `2ZÆ=9ç,8 ('œTð…�¾ñÚ›Ò +¡V✄�ñ_ Ÿ³,{~Þ±†Î‰ÕÍŽã\vöQOé}ºÿÈ‘þþþ–UL æ‹ù|ÞšÉ  ºÿ#X� ` :âñÞŽŽöol\0°Ï962ò�£ß8vôØÈÉ´qòdúèÑ£é�åÐáÇûh:}r<}8v蹣ϥŸùN:=žN§Ÿ;ztddàØÀ±£#Ï�=zt``äèHú{†1>>0ð�céÃÊ·Óé�£éïœz¤ÓéñçŽ=62002ò�‘��£#écÏ Œ„gè‚Ýš(+‡�pYŸh‘YOKd28!„zVØ?BèB(ƒdGĦ‰ô‰nEiëT”ÎNå·~»¯¯¯¯¯ox¸o¸/þÂìÕ·ßYÚÚúèöGw~öÙöÏ·~ÿþÎ΃/Ü¿ÿçŸÝ¹Þzaxxnnnðœ]²íùK‰G ôý©˜_yyÅódo'Ò>8ãuð:cuÆë�HœË‚zpiÖ‘šæT–ײ(ÍP—ù5^g"RÀH]Ñh§�øÐzX!P—î8ã"C/]wÙ®+§ú²Y9ÌÖSou˜HôsÆÄ§`,` 8Vgœr™‚”!ÍHàpµ5ÜÎ9'¤Xœ³æ¬bqNöꉩI¶=?ïX‰œS²í¹ {æ$Dˆ6œ'Š…ÂŒ•Ï[Vb0oåC`&tM˜³,��BÁ²çšÐï8Øñ­öÇOMízækº7GÊøÆYáËxÁ= ñK@QT è:ø´ µ�Bèºc„߃îÆ#wÊÍ`lºSËÙ•hƒ²(+pG\žÕÀäÆ8›uG\ _‚b ©*pE'/Â.ÂxÊ\6Ý[é)hÈ…>Ùl6›…ú‹º €ÚÝÖ»4@‹Èb©0ÎdÂ? í"„2a”Á!lšS6)wv*¿%¶„ô‰HÀ‰Ù·Þ¾¶´µõÑGw~öÙö?JùÿàÁ/<nÀýûÛw¶Dжí\Á¾$pnß@{c.¸xÛsGRYX©ø>%”ÎÅ6\Ôí°:Wµh—åAÀ819QJS¯SQ(¬O˜/§Œ„Nt�ð¨,0¨Ë`œ,ò Xsf>Uxâ!u.óôŒsQ  ¬3`œ3Ÿy›žO÷@½Þòk*óüýO ëZ �·f,+1dYù¼eE#Ár¹D"™L$Í.À~ˆwôÆ;~«ýàcë „1Þõfb<55!„“†!Œ B 4EyJÕ~ð„°;¦¤Ä>„ BÆr!!d"ˆÍ)ŒñzB,Ÿ„ÆŸi­;̓��ö‹©ž®.M”q „�‰�iNa¼œF0 �a€ÅÉf¡®ë)MQTUÕÄýo44N£e½%€ L*¨CwÝÿ‰Ó™&S;å*"E©¾æóÂìÕkï,mmmݾó³Ï¶·ÿñç÷wvüâÁƒ<üâ‹_Þß¹û³;ݾ½µõwK×Þ:1<,ªDæmû’“è/„gÚˆí`••U¯ê3Ê(‰*a眆ף¬$<�¥µ¡sÍd­\=ˆoŒ×y�² .ì*LéE~¹È)ªò&ÚD¿�àå$ôÁiÀ)cœ±:•a:&+ñ+¥lw ¨ïG"+Š^½*ö„ŸDM‰œ +ÿDümqÿ !¤RÙ3óP’à¼c æJNɶç¥ü¿ü(„ +`ffƲƒÂ«˜iÌÜv+Dô?Þñxg06Í©–7lšxj +OÄñ&!€@ø’a`�VÛV»5€îB¨* +Ó˜~#‰’Zü*šBhÊDS&v]Ý“ÆKxÀи24M/Bñ4 "´Tª»Ks èÈ„™›È41ž„Ã0Âp¿�jÊEãþwkØJ€—!LŒñé Êd Ðõ†ýËû!á”�zW›"�?•Ú€³Wß‘!€Ï¶··ÿñþÎÎ/¾xðàÁƒ‡~!C�ÛwïÈÀ['†‡çç%ì û Ö͌ɾÀ}‚€µ•Õ�ªÏ£œ +§_ ÌâõºTáŒÉ¦9ÙÍ/ô:‹²táMÊêœ×£l^8†#±Å  �ÌÖYÀÅ”/)üe�Tš¢ü¼‘þÝœ±zÀ¥Õj¥êêïúR‚pƯ“@ˆÊÀ…Ð.uN‚°�ò€q°(þIÂeípÃý'„T*•†ÉG?ˆÙ©Na(7¿èÌÛó" \€ôï@a&o ‰àBä¥ì–B átyÌÓ€æÞãš»(íV6&!€4`ú»ê“Šªj)-€{jTˆ¦pb„_5ñ¸‹ Ä!l^7M„LÓÅ" ²xÙ�qMS5!4€3#BŒt0Æz:{ô´&BèsÙ¼î"ÓÌŒ‹u®FT§Œq6 ³ªªª><›Ððš�ÁPTd3!Ð3ûÙ?ÆÐ0 j,‹Å@*%0<Ü7Ü×7Ü7<<Ü7|böê;KK[··nßùlûÿñç÷w¾øâÁƒ!œ2:¥§ÆÀXO§jBh"$jsä Ñ'Ã�Îa6»® ¡¡)‡ã!š4N£rK§‘¨%ÎìçÿKûÏ5Œ,Tå�’J… yg¸ÀGݹûÙööý¼ÿÅÎÎ/~ñÅ¿üåÎÎý{ÿM¦®½õÂðp©4?'G�Oþ: ÀÞ$ñn¬zU¡2ä/rç\,ÓKuD=`Ë”-‘5ä´ÆëRG3ND³}ÀÑ÷€A@#<¨‹‹—oôÞñºA�‰VÎ댬Π“ÕÁ²q‡ŸT+ùu�}, uYŒ*D€�² ôI‚ bÐç�ì&”±€·ÊÿJ¥RY‘õ¹vôãœûY²­sŽí8—C °è4; ýƒýá÷d±P˜™±f,k(aås3V>—Ìår¹™F €Ý€b1¸££ãÈ‘ùøº{ް‡Ѹ3 'ebЀhJ§Ú“J6&´]:šÂ´üÊe„ į WL„2B ÂeÉ@Äux¤¤€B8 &ú 4MM¥zRBÑ¿5›^3°<Ò(F +Gú LaŒ@÷Sÿ—}5,·”9((!Ðaÿß1~4a‚Nµ§Gëé©Hé ÕQ´õÑ�;w··ïÝ¿¿óÅ΃Òøå_|ñË�ûŸßû´Ž=gYó¶m—r�@l7ü݇�êÚ†G|±(�5ffð@4à‰Ü@=¬Ùòºôá©ØºÇYkæíÄ0QÈ d@¿‘&‘½pÎ`T³Ç¸ÐCE/.‹²â³” )O¨ïU}BÙW@\áœ×Ãܾtc‚¨Æ/*ä��%¢2˜2NXdÿ¬!ÿ+••••9Q¡;׺¡T*s‰œ]r./Êûÿ‡‹vsµ@¿ >Ø?(²33–•Ìågr3V!V7@¤笹0`#ÐÞÑñ˜‡öÌ dޏQU�°¡¬ !xVUµ”¦0Q†8ÕÖ¥g„ 울eL„�iŠ¥ÜÈ�ùø—0„„!tÐT @Q�A<…D h)=ƒ ‰`œ°ÐrZ<$šñˆñ«MM ˜f÷Sûi”n-Œ Ô›êZîÿ`·ªic)aý© }B±bÀGwþ~{{ûþýû;¾xøðÿ|ðàáÇùË/¾ØùåÎçÛŸÞ¹óÑÖR¤BÌç£f›K�#þ¸7@ª«žO©¬¢LøÊâš *�8àu^§œSÜ Dd­0Ð:ê„1Îi /RÆg”É2~ÊDñŸÐ×< ‘Å %îéa²A|JF«3*4ªx%¾W£>ñ[s¾Oü@" j?ÅE/Ý"#‘aÆSôá831)…ó€7ÉÿÈþWhtýϵ 08Øÿtn~Þq#Õgž;w®Ð@"Q,ÌÌX33ùËšÉçf¬™\")J€ö(€¹9K ,,«¹à±À©ÝB˜Åãˆá$„Ùòú­Êg!΀1µ{�Ƨ×] tQ* àšÙ2Æ®t¦!ĺ† `ÐÅë·–1Æ�@S¸œ�YXÁe×€¦ª—³»ˆ Æ“bœ½ž�pNf±[ž‚á©)d"üŠišfƒ­ y.˜ÈÊÅýõ?Ä¡±M›HMLèº>¡ë/"„v`iikë¶À?ÞßyðàÁÃ/<øe€ûŸorWLx§€ó¶mÏ'‡¢,MKšÀ#àÓê� ß—“¸yj—Ù²º úq `áÅð@NÙF&nú DÍPúñ$4ÌÃ`¡h$d 'Ÿ1ÎHÀh ?™œ …QK�(8d„PB+^…¿õö¿AˆO|¿Að  \¦"£} ²Ì¯^gœq"‹eú? Œ‹ûŸË2¯RÙ¨TVVVeö¾ç|©084ØŸ³Ï;΢sÙ¹ì\víD²éHëO&‰dÑš±¬\.ŸËçòùÜŒ5“LH °+Pœ››³æ"„iÀöoöÜÿf�cYl@Œ¡‘Åx}äåu oaŒ1€àtZMc ßÃX‹uìâe3b|zùúrc „Ô> +10²ƒIŒÆ®ábˆ1š–ؼ…!Äå÷ÊS⬠Æ'4UÐ-»Ë.Æ/C˜…8{2�¡!~…qù¤8a ÀD&BS¦išæWiÙ,í@aÿ¡T*•KSú‹ú‹²òxÞYZ!@á|øðÁÃ����ÏïÝÛ‰À¥wÞ:1<|Þ —ñ]*$ìPÄbQ÷{{{{ûÁp(P,{T  F|J匰ºÃp*˃Ð�ç¡ô·w -L404÷…�Â!à4,¨óº°-!—iEˆ"~"ÙÂiX®! +"õpÊ)õýšÏ#»pÃ'„ *Š( ›•Ö&Î)#²@¬¢¬©ê�É%‚bˆÀ.û§�’çk(1ÔŸ;_ +@ Ñr’É\2—Èå’ÉdÑ*­™\>W0”ܘ››³íb3¬#C ýtêÄi`ˆº€ „šBÍ�µ{ @€  Æôhj!1f !¨Á}f fAšÚ©LhÚ¡>t�Ò8 µ ¨ëH~^aÖ0 1ÄBè.à…¼6š!ü +ššzE0ìÑ7q«�Á™L¸ßýR)011¡ë:º,gB½ú*zÅÜíüÝÖÖÖ�¿ßÞþüþÎÎÎÃ|ùå—_~ùðáƒ/|±³óO÷þûööÝ;·Ã4 pæææ¬¹9knnN$ýˆö‚ì¯(ñÖ¼©ùŒSP"õ>gŒPJXÀ8•Õúáhmq‡3þãQÃ�¼¢ë\r@nþv(çm‹qB¢×˜¢ê0Ê-Š, •†L®ñ 8e«ŒQÂ)¡´Zõ)mU««+7n¬ø>!> ‚€ÖITÑ$œÉÈ&ã, Ò•a¤Ö1³Håðp„§”âGöOe”}ý¹ó¥‹‹áÞÄ_Ê5»¹¦S´ +¶P3ù™¯À\«°ú…¶ëhooÿ*€ tÓ€Â2Äâ!D¡›hz§Úݣɉá=J§˜>¡ë:Ô¡®ë@‡`B‡p €q u¨0€@:ÒTEý¶>‘Ó2:ÔåìqMÓMU»ÇÐe¾Á ÄØØ…0 Ëg1Î"„Q!hša™¶|ÅœBx¯À­Èd2îgÿÂúÅëÁ§äÝÿÊ+¯¼òŠ9µ ?ÙÚº}çîö½Ïw¤xððÁƒ_ ðéÝ»··¶–Þž=1<ìØ¶ØGeÏÏ$¢Æ´ƒ±ƒcÒøð©·Vñ ¥Œ‰þZáo3ê"¦ùsÙÿ®ÖŒºjXx·ÖÃ�Ý<„4Âë]¼_ £á€°›�q0Z—Åxrêˆ,ÙUÿ‚%AÀH��Ö|ß'„’V¬º7VVV|Ÿø¢¦˜’0ÊÈ~ Ù,A�Šì"åuáìs„³Ë)i±ÿÊÊÊÊJMŽ@}” ` O æÎ—D àÇùS'7ÝtfšN1Ÿ/Z3rðW¹sss¶%v +Ëj?(\€ö޹è±Úç˜i¹Ic³Ç0DCdšPSc1±µGÓRš6¦ic¨¥Rê:Ô'ä`]ŸÐ@è@×!`< Eð2J)Š6'ô1u èz +hbæ¿v8Õ£*m�ZJ:!ˆ]lLJ†Æºd�(àÅ&ÂÌW^}Õ4÷ÄvE3o†ý‘ý ëq„CŒuÓüýWÑ«¯ óÕW§ÌW–÷oß¾óÙö½Ïïï|ñ‹üŸ_þêá—_þêáƒ�¿Øù§�ûKï¾=ûüð°cÛVѲ/Øö|.aYEÑ£ö€øþjÅ'5J %Œ2”GõýZSêŸE�²�¨ôeuÆh�ÕiÀêŒsÂêa‘‘h¼& +x0^gœ†ƒÀ© Š�\ ‹ƒ€K °€3æù>¡Äç�=%\¨ßóñ[*�WWWWÝ•••„Ÿr“½M«#¯&¨sÑ'Ìd_ åuÈqe2üç7ÛXbøh0˜;_E?t.;‹Nî™èô÷7ÙÞÊçm€ÜL³HîSÔ@®`%;Ú1€øc=hŸvàÉIcÄ0 ÀYÃ0ŒìÑì¸1iÀSPÓž;‹RE9|øp´¤KiMÓÒš6�~n@�W:xNK§�¦=§=§ hšD)Ñá���õ°ª ¨ßVUõ©C=ŠÒ‹)ª:�NŸÿ\(é|ùðÁƒ;Ÿß¿ïÓOîÞ½½µ´tuöùáá’=o­¢mÛ—r «h͋Ź_€½1ß_óª„úrþ†¬Ô÷óolPíeáPQÜÜöÇÅ`O&ûnÂÖ!1ãS˜#<ˆ²ð²yXRÊ8Îa<]76¼¶ºI£&1¯”1B!~­æ·¦®¬¬Ü¸±FuŒ1*Ì=ÚÈDÏ GŠºœ0F‰¬@£Î|ß÷½JåJhÿTvc%‰¡&8΢“kªþkÀŒ•·l+—Ë[¹ÜÌLn&ŸË%’3‰½˜³ç,Ë:—Û€#GŽôéx| �Ö÷ž…‘òúú7?X_w—Ý÷]Œñ­÷ÿËû7ˇ5µ'ÖÖÙ¥têÝÊ³šªªŠ¦©=©1 B0¡Ž¥5¨ �ÔŒˆMŒ!º®O@ ¼¤—MSÐ SSš¦˜ÒTUªªUSÕ.åÀ%¦i„™ü>v× £ü×7?¸yëýe×t×ÿ*´ä©©©)Œ]cÓ41jf€‰[5@9 +âÓ”�zhÿHÚ +è/‚¦„B€MÓ\6Msyyy¹¼üË»³[[·ïnoß»ÿùÎÎÎÇ<üòW¿úÕ¯~õðá/îÜÿüó{ÛÒ¸:û|_ß¼=?'—…çrEÙ¦VܱG*Ÿ�Z¥âÕX-êæ”’šçsRñª�¹hYX�‰faÆ¥�.†õ²¶Ž³€×I4˜(ê«C¹˜ÔÃ�Ö …­²zÇ÷7kŒTj”ø"ùÀ„°§”�jÕ÷½f@j€+Wnܸ±á"¶ Ê©eœuæ3åÒ11PDë¢ÍAdý‚zÀ9aœR«zâú÷öÏ:ÅèØçÏ;Vbhh¨P*9—/‹Rà ‹N¡Qû3Ø +€7­¢5“Ë[3¹™™\>ŸKE `5 æär…B¢½�óPàý02‚1^6ÍW1Â&‚˜Áæ_Üüßß?¬õtÅÚ”.US´o«r#`W§¢tvuvªŠzXvÑu«Ý=Ú³@íI¥´žž¹`´»»g,5ñm±J¸­«KQEÕ´nUÓºµžîžî®Î¶˜rhLÕNá©òw ñB0BØlÌíÀøÕ),Z1Æ#Œ›Ф Û€hÀ�þ?!ЛŒ_Œ)B"!BËËËå¿XÆã=¸}ûΧÛ÷îÿ“(þòË_ýêW_~ùåÇ¿|°sÿÞ½m¡š`YŹ9ÛÎåì°A]$ÿÛÛÛÆÚ›Wí«j¾Oj•ŠGñ¥ œ3Z½²É#¢E€SN8²�×icÓ–Ì2Fh¨Ýë4ˆ–…È�?4ÌR ˆ*AÆëŒÊ¾A9e õ€sâSʽ…5¦ó(«»)!^•�ZÓ„nÀ•+7n¬zÄ'ŒQÆ)åDÔÕ™ŒR¹ Œó‡.gaœˆÚF.†�ø•͵ÈþÃ9Æœ1»(Ú€°Ï;ÖÐÐÐàL)lºì\¸|¹08Ø@@dýߟ)Zù¢•™À¦@H€¬†:Úc±XL”wôyŒ‡ï7¤<Ž16ÝWBH4Ð#sù/ÿ˜€©.µGK�£št€‰‰ Mmÿj(±X,và@Û¥MQcñn¥KQ»Ô®N¥MQå€ÒÖÖÕÕ;pà@L9 v�+¢Ëx�ÒµUUºE:ôªif]1rM!Uñ,c|:‹1ÎNpÒ€#ü +~Elòi ¡BˆFÜ|ÿgZ�_×áËYÑy<>š*#öQw¶EpçþêW¿úÕ—_þêWعÿó{ÛÛwï~üáí¥¥·gŸïë°,Û.æfdjÑn%@³ˆ=¤J*‘…€ŒsÂ8#5¼+4 Ò.™†cë²fPîÚ�‹AX˜4§w!úÃLå\“eÁŒrFx8p�Ézãh¥7¡œy +ž_©…YÂ9'ŒPêWª„6‡ê‚Œ­®ºWn¬U©O£< ¢0t+äÊAJêõ .·Ñ ¬wªT4ARJ a¤æm®,4Û?ö/$Àn؉Á¡þÜùóÎâ¢`°éÌ|¦X,-K Ÿ1±<7”˜ §…uû ½€xG<ŒcûôÞ4LœAˆñ’÷.2ßtGàK)µ«;•Ò€&£ýBu8&&ÊÔ:jb “pe ÔEÓ¿i¢—2„PÏ ]äG ¤4UQŽB`Qù–YÆ.†BlN5F…^¿þo—ß¿îºÂ@GF¾72222‚ð+¯ ôJÄ€H4O�Mñ¿†ÏÿéÓY×u]Œ¦L3²~4 ÁlÝÙ¾·³³óÅÎ΃¾”øòWìÜÿùöö§w?þðÃÛ²@`βm;gEѨ}@€} +�|Ïó}B¥œrN¹O¡õÚ��*!~µJX#†Î‚:mó"9Ç^ç‘]"’òœóz],$ÃBy”z>%µ�•MŸø5BåFÊ çÄ'ÄÛÜØlr8¯×ëuN)åþ�ì�U¯Z£ÑLÀ:‚ *`\½J„‡ƒÇ‚F¡0#œQJ8óªÞÆ•›^˜ÿ ¢©åû 7˜èÏ�—…€‹Žc;‹öPc)øPÑ*­–�k 7õ$“‘ý'¿RË*†˜Ù£ßÕ€û`Ýp1†"ÓDŒ!D›ÿvƒ`LéTÇR � „ãbRœ’4‡Ù£bd¦×Mþ-Îd2bs*ƒ0‚aó÷ÿf]ˆÅÌ·lb(F A]‡hª¢ œÎKCŒ�»`še±mbÓDPV�B(ƒMÓ41ɽWCŒ h¸§išf€¥øÏ „>?„¡ñgݹ®›É „¦0Ê@aýè`W7àÖÖí;wïÝû§��_ìì|ùå—RloooßýøÃÿfkéÚ[/ô _º`[–UÚ?ªÙ€F3àÁýƒø5Ï#DŽÔ§Ñ@hßåì?À§~Å'>!rãįñêê&ñ !œ2B‰¬Üa\ô KgžÉZŸ ˆ¶ðÕYØQË£œÈ!„sÂD .ã¼Î(#Œ×ëœËj]*ƒna+c”JõˆïoxÔ÷ÅÀrF('„êûµ+é+~Xàûò1õ:ç¬reas£êBÅæÉ%9Ù”í@wî¾½ýé§ŸÜýP t,˶ìùG %°_)°ïyÕš/2~„qÆhÕç¤âù„Ôj²OXì÷£uÎh8Å�5­ä$ú})(¡ŒPâ�êûbñ ãŒû\ö‰mÃ< œb�0—½ºAPB9£Ÿ0J¼õ=�Æ8¡„PNˆï{UW[ØôkòÈØ"å,à�wåÊšç hÈß Ì. +/†ˆV#J¸˜üEe…€ôDê“ø¾·yca�‡¥Åþ÷#ÀyÇøa¤.·À*‹–ôç%fBÌä’‰¤Ø Ô°ZP(šê¾A^Þ{²ðe\†„ŽC¾l Wð1ü]Uý¶‹Åbm”.%¦(ŠÒÖÖ;ðp !NC¼4�Ë�5ÒàE�ÑÒNÓÒ0�ÐÀ¤A¦³Š Ã1Ey2S”X[[—ÒÖv S5U{ º Ùlve ›Å¸ !„/Oއ�¦dHßE0®òËdà© :u +¿:2222r"Œ `I€ –[ÿP—³§3‘ñg÷¿ÞT(ûöLÚº}÷®hÚÙÙÙyøðáƒ_>øâ‹/¾ØÙ¹¿½ýé'Ÿˆ,Àµ÷õ]¸pÁ’NÀ¯À£\Ÿ��!Ä 0Ƙ_#„ú>eÌߨˆÜ{4œ‡ŠîZ) r‚–,¤2wG£„úÄ÷½šïû51VG¬ Ç pÂN£bð/ ç€Ê­$”°€ˆ:@J ©ø\ùb„âSR¹¡]ñ¼( _eœ3oáÊÚšW­…¡K‰$1r”ÔBåâ:!œó€È8F8)ˆÊb#ŸøÞÊÂ&åb€9û5(]ËÁ/;Žc;?\,4�bÞ´ +b X.)cÉD2×€d2™,ÎçöÀÁh,ðc€…½BˆÀ€€I h@x~W©ž¶¶®.UUºTô¨j—ªvu©Z�¦i)¨j=ªÚ­vu©ªªjjg—®@Q:UUUEÕTU�¿Ú­©cZ§Ò©ªŠÚ­ªªÒÕ×@Jç³ÛD€p2 ÙÀx +G­Ê0 +üe2§Ne:…›d@c (�…r·€�þ¨Åøu]×uu‘) _êáÝXÚº}Wv‰8À_üò‹_ì<øÅÎýûÛŸ}òÉ'ŸÜýðöÖÒµ÷Ù¶mÙE˲­9»ø5PÝ}üjÕójDŠlŸQîW|N}ŸV[«PV£DÈsG§â®§rÓ6ç„TØs¸SƒøµjÕój¾ïSZ¹±±¹Qõ©Ï8!L8rMWÔO,­_ €ˆe<Œ‘ÕMŸJ|^Ûô¡ŒÂ!¤Füª·’^¨U£�@<Ê6Öi%»°êÕj¢hHÚnc(¸,5buÔ m,;ŠºY�1F(õ‰ïUÖ^^%�uÅ_ €yÇ’…@޳¸xyѹd_Z\l yÿEËzÓ*œÛ€dRˆ�Èþ“V8 +d¾¡ó ,Gæ�!ba3PëTº»{zTMÓ�žÒºµžnUëÖ4-•ÚØX�ÚÓ£ªªªv«ªªvvv*]]]Š¢¨ªª<¥tª@UUm,5–Ji©m j:ÐTUëéîëéQÕ®®C@×DNBˆ28ƒ¡XL®ËÅÇžC� 1iô4lTfB0sêå(€±@€@¶qN7•·^ýéï¦ÁDhûÚáÇǛӀwî~º}oggç¿éÀ/¾øÅÎÎÎÎýííÏî~òÉÇÞÞÚZº6;Ü7\,ÚÖì÷-«hÍ5Íž ×�w´ÇÚÛã» °� à{^­V%TØ­Õ˜X»ã¯mRBh8z‹3NF9 s‡)=é#bÒ.!~­ºycåå Â8¡›ÐÈ®¬U™KH4—Z¶\ î߀ø‘#ñ#ß$„Ã÷ĸ? Ã0 !ÐM võŒ‰‘¹&BˆN>0–0‘J��ékZ·èÒzÄ]¯jªªMÓRˆÞa xE×e7 ¦u÷¨]q=!‚xa|ó–+Q& + ét:�N�=zô(D§$„?€1ÄðT�B `ü]€1BÙÓ‘ù£Ý7?„:Ôµ±tzì»i ªŠ¢(‡ÕÇþׇŽ7öŒ^}û�w>Ù¾÷ùÿ[J€û;;÷¶··ïÞýðßnmýäÝ«³Ã}}¶-ÝÉp�¼eY–ÕÑÞ.¾·ÇöÚ¬¶çø¾çU}�RJ¸Ocµ +¡"‰æ­U(ó}âsJiXþ#"…”PÖýs™9g”ßÛ¬ÔüÍÊÚeŒøµ7n¬Uj¾_Õ¹”S&„¢ÌˆQq¯sF9÷¥»@)aþš¨PôYmÓc•ƒ@½êжÐHF«Ž)cÜ[pW7Ū#ð€²PŒù‘ë BÂUg,»d}£”‘!Þšˆ¾›t?؉¡¡¼ã\^¼|yÑqœK.9‹vï�¤š\<“ËY  e@Òš³¢$@¡F9ÀÞøã«²{O„‘0»— ÓBˆ€ÚÕ­¥&&t—30ÕØ(®CB]?…tÂô˜¦õhš¦MГ’F0 +{C„–á+40¦�MëîîV”AeÌe—¯…M/D&íA*ú¤IBImm“pV£„U×*"Š@˜ÈRzž·òÜË ý˜ ¨õ@N%óVVÖª¾h"dT68ñ€ñ€pB‰D´Î£—) ™¾ä”0!�Ön,¬‰¨eË1ñÊ+èUÒÐ4MK=•`€ïŽ!Ô¡>¡ë¡SA_A ƒ1&€¦öô¨ +B™ „xyyÙt�bh@ ÄBQ”Sb±±˜Ò©v)Rf¨ªxttLÓÍ��QÇ8Š¢F7@&“�QÜ}B6}ûè·¿}ôèÑo» ?~ûÝ¥¥¥­­�î~¶½}ïÞ½{÷î}~ÿþý��ÚÙ¹ïÞ§ŸÜ½{÷Ã�?¼½µµõÎÕÑáá¾ýîËêèh�w´wtì“ÜÕJmëú5Rc”QÊ(õ6<¡”Ô6+”ø5B¥5‰Î]ˆ#"zG8¥bt>õ) ©UÖ®lT*µ*ñ %Uâ“Zu³F«› œ3Ÿ2&*…#Œˆ_ŒÊ‚dJõ©ï¯mú>c„P³B©x?F õ)ñ++ã ÕZS+ ¥Tnû𮬬y5ß/+ Ø´LN +¬‹±gœcŒ9>Œ1F(!Ô¯U6W6h8Àô×ÀvЉÁAK´8—ç‚-à„È äCÈU‘h´Zv«íߌ©À'Ožo}7ƳYŒoºË—]Œq6‹1þ7å[eŒ'TUÕÆÂ8�Íë/Ãlº§Åø®W—1v1Æè:iMˆ4¾ ³îDö%èÂìú-7›…Bœ1]׿ï_G²PÓ´nõði³lblºf¹ �él»e·ŒÝ2v]!ìîéQ”¶¶¶6EÕnñ¦7ÿ«¯¾úê«fó¤S…؈ D‘ùÏ@˜É�!Äøhxv+€¿ûÉÖí;wÿÛß*ðùÎÎçÿ´³³sïÞögŸ}v÷ÎÇÞÞúÉR3òV>ß €xG<Þ!¼ÿöööø×n®U=ⓚ ÞW+õ}J(­­mRê×Da<å„rN¡Œ&¦uR™ß“Y@F}B*k Ïixec³Vó=osmsu%»FhÕ¯B)ó)gÜ'LºýœâËÒJŸÅ÷}î¯UeŒPZ[«T}ʉ@¡Ì¯U®h ^D±¦]§,¨¬\ñ|B“�’¾zX{$;ƒ—�̧¢=Xâ‚”ù”0Ró6V6cÛS?¹¬äà µxY–ì€ã8–õ}K¼Y–eÉE€¹ÐÈå’ÉÖÅ I‘´íp?ø9Q xP”Åãñxü1vÜ=çŠkd]˜Íf'¡‘50¾éâIoaý&Æ¢�Np”Ë7—!ÎB˜u!ÀÐÍbì¾ïBO/`œÍÂç /Æ8ÀpñihàuèÞ*gÝòú{ã²k»~s¹Œ!~ žÐÒ‡´ŒëÞr1ΖÊ+ a6›5²4 v]×AFW|VU»ŸÓÔfëÆoš­sŽ1|!(K„Z!�AbQús +‰~£L8Jprˆ àÒÖí;wïÞýä“÷>¿'Æn&Z�þnéÝ·g‡û†C“ÏåóV>ê5�·wÄãííRìöª{ °±Q©ú¾ïù”F ñ*!B)©­nRR#„"âo„F}&âk”_\ÞLVòŸâUV_Vž»²¶YñªžW©TÖV×^¾áy^­Z«QêÓhªc\¬ø¥”JaT$ú”T)«®oб_¤²V©â3Ji�ÔjÄ÷½Êíå +ñä‰Z�§Ü»rcë*2 +�ì1–{DSr�É}ebµQ J’©ˆPJ(£”¿RY}y“î“Ø·ȱƒCs‹Âþ/;÷ X”‰€b±hY33ù™¤ À›¹& ‘H$’–ºÍ8ØPñx¼£÷µŸ,Cø’  ÑòÂޏc¬«jÏX +]4Öˆv��§¡‹1Z†&2ÿ#‚BœMl"¤ÃìT£°šAôœ‰ #<Æ@jLSM ›È\žzÿzB„Ý‘²ÜO á,«Ýꘈ/jª¦ªÏ5YÿþÆ@gL!]‡Q�` 2At +žÂžu‚0ƒ Ì@Ã0ŒÝøñÕwÞYZÚÚºsçÎÝ»ŸÜýt{ûÞö½{Ÿ.¼�O?ûlû¿ÝýøãÛ·—––ÞÈçó–eY¹?Ì[V><ñööx¼=ÞÞñõ@Õ¯¬­y¢¨Îg„pZÛô(ñk>%ÞÚ&%>¡>‘ãø}!Ñ™¨`¾ÈÍF™O)%>õ‰ïm¬Œž\­z¾Oˆ0ÑÍÍ�ÊæÚ¦O(!Œøâ�1F|¡÷å82J%„2ÆH­FYuu³F©ùÄ[­TÅü¯(o±qå9ØTë"„ðê•+›>!5B �v²•�ÑÐÔyÀxðz  @äÈ @²Í÷ýZåÆÂ†¨sv�G(€¡â¢#0¿W‹2P,Zù™aôùd2ŸËçEFp— Žz—!€Ü¹ÂÌP{ìàÁÐ8räÈ‘ÇY!Ì6Þ²YˆÆ± ¸“¦èÄ�Xt©=cà„À€ á{ØÄ7—±¹lʼqaûicB„L$GûAEá2#æïgD`Œ0Ö£š@æMÓ¼¹¼Œ!Är=4PÎÿZ·¦iZOÃú÷3~ÓÅ€‘,†P¬ÒáËMÅÂÍȈ)ƒèÌ Æ7×Ožùô“O>ùäÓí{÷îý÷ÿ¾ýé'ŸÝ½{÷îÝoo---]»:;�çóù7óù|>™Ï[VþMqòía|¸=Ö߀=u@µª·¶QÖêSB(©mz„V}â“�Õ�šïב­5Ô÷}F%ħ”1Ê|_þ«RJ|BI­FÖ^N;[ñˆ_#¾_­zž¿¹¶VÙ\Ù¨ Êø>%Œ2Â!Œù>­ŸÊ_ñ3Bj^•x«›%UϯUÖ*âuZ£>©ÕªÞæ ¼âU÷€qÊk//¬Vª„Ša áÍ/Æ|Ð:£�˜qN +�–„œ1ÂÆó‰_«n®,¬‰PÇîE„ûÆ’ƒCö¢³¸è8—§tá‚í,:—§%`“ˇH$BìÉD'@îÜPGìàÁ°øÈ‘#½�1öI“8L¹A¥íŽ˜0“�)EíI¥&&—‘t ÄÃ26Ñò²ib4æEÐn@Ò€a~!„0‚™c¦‰ ú‹:H�Ò´ChyÙ\6M×!ÄÇÂb@‘iš¦9 Ä�ŽMÓ´¯ºùÅì0`Œ@œ�¦Ž6Ð3Q¥Ð^w!x*ê€ðÖúúºa'O}Òüû†Gg¯^{giéï¶îܹ#œ€O>ùä“O?ÝÞÞþïŸ~úÉ'wïܹsûÃÛ[[·´tííÙá¾¾™\îÍü›oæ’É7#ûóÍöŽx‡ˆ|-Pó¼µµM¯êת>ñ(¡~Íój¾ï‘šï­U|RókD¸ì”âS¿æ×˜˜ÂÇDý0ñ ©ù~�2âûž·±0®f+>!5ßó©zµêZµZÙÜð}âûħ(õÅhoŸÂ|Ÿz„ø~•VVEú°F*„x>%¾O|ß÷«ÞæêƆW­†.@x/SÆyÝ¿²²V!”Sæ()W< —�Ñ ±ß”ÈÙæ"=Àä +BŸPB¼�µ… J¢àç¯qìäà´½î9Á¶�Åæ#´¿(”Hæro Yo† +`f¦ÉH4` Î冯¶·G #~䛀p¥0 €CÂËXëêêÑR@×aZšTF´ ãrvyÙ4ÍW�Ü¿qkB�Ö´´ì»ÀìŸ7–�`ŒñÈ2‚H×'ÖÀD*¥¥!sÙ4Í)l"!<},|!bMˆ,ëéx¤€î1~(®þñ+c$‹3 œA§ÒûCgpøGî|ÿý÷× Ãèëîîî}ëêÛ×–––¶>ºóÑí&lúéÿô“OîÞ½ýѽ}{kikiéÝkoÏÇão&“É\îÍd"™Ì¿]ííñx¼££ýk=os}­âUªµZÕ¯Õñ«¯V«T ñ7olß«ù„ÞÝ>!5Ÿø„xò7)!¾ˆBj5Ï[Ããêä†Wõ=Ï÷<߯ժâmVüZ•øÄ'>!´FåLOJ %>¡ñ|¿æSñÇ~•øÞê†Gh­FHeµâ“šÏh•ø¾O¼Zecu³R©l†ˆ¯]¹²QÇA ·”2wÁ¡<`uÊÆ±5ˆŠ¡>%µjeíÊåŒó=›ˆ€„½èHÝþÂ…_є̿™0ˆNCÌYs–UÈ +ç†6)€Ç¼p?Œ¯‡$0¤ס°EMéêÑRè#Šòz1ÎOMa9À€Ø€/ i€Â—Ä>á°ÀP®ACÁH¥Æ´C™£hÂÀ±ëáf`C€a¤ÿgP†(c¶¦úDÓ�‰1žšZÀâ“#Y !Dæ«!„t‘èËà Π—‘ÜD,úþûï¯7ýøêÛ×ÞYZÚÚÚº}û£ÿú±€8wïÞýøöí­­­­¥%éôÅŶ‰dr(™Ì7tc<ÞÑoïx„¨ì>žWY]]«xžçUkU¿êûµÍ*©U*U߯¬¬UkµšïSBªµõ}BI�ú´Jª„øÄ'Ô¯ùT0À'„ø5â×Ö^W'W+^Õ÷k~Í'„xâmnVkÕŠð­}J©U}Z#>¡Ä'>ñ|âס5ñ¬šG¼Õ ¿ê{•­®mÖ(©‘šO|Ÿ¯êmnlT*^eSÞ䵕•ͪïû>£ŒÕ9ã$ ´.Æ�‹:à œRçŒËrÑÌ@dg3!”Ô¼jeu¥"& |M$ÏG^ÿ%Û¾°ß/­¢Õäffò‰þ¼@A”ÜÛ*Hä†Äê7±<ÞÑû +Ær¯,¶…/á1 ÃД.5•Búú„ sj*³1‚�!bð–èñ«Àu ˜„ÙIÃBlb„ÓBÔu€–Òº…Õýf2  © +¤ÇÇå‘€±ÎÂBcqñO-`BÝÅ'G FÂuÀ�â]‡œ9Ñéý!�‰öÁðá}}ñx<Þ×�Ÿ˜}ëík’[·o|÷¡î~üñ‡üñÇÿõÎÖßýÝ’8o¿5:Ü×—L&‡’ÉäPÿP2ý³j�74ÀÞJÀ=جlÜXÝܬTªµjÍ«y~Í[óüZ¥R«U*îZÍ÷«µj­ê߯‰»Þ'¾'ñ¼ÍÕ—×Hðu@11˜tš0¿ N>?Óè œ™ÉÏärÑÌÌ4Oj —³[ º�tôvÄ{¿QYCÌò€–M¡ˆÁ„î€Ú­éº ¸ZÑ+ØD"Œn�F#”Aà †ðe‹ì>@&B0#ÀbCà"lšN�C„t!„ Æ4­ûÐÌ„Áâ‘è…Ü”ãýàøø80àŠû?ãFdüJãÇ Côqdÿ½ú*ÂÍ¥¿ACt:³#œÉÊYAY�xß°¬Ýaö­«o_cÁ¶¶nßþðã?þøã»wÿ_Ÿ|üá‡~|ûöí-iþKï\}kt8OŠYSýýýCÉ¡hEG{{¼£#Rí¿•ÊêÂ���ÍJÕ÷+^µZõ6×¼ZµR©Vª+ÕÚ¦çû~�Ôü©¿Z­ùboͯUkUß«x>®¹Wõjžç¯Mj‡'ת5¿Jj¢'È[Ýô½+«ž_“µ;žW­‘ªW#¾¨®xÕZ­æ×j~­êûµšïW¼êæÊšWó½Z•l^Y­Tk^UH¯¶¹±zãF¥²} Q….£Œ{+«¿&J4ˆ¬Îkÿ.o¬;‘�H,häü©TÖ6|*F~�@îr€ {Às¹dã»@.Ÿìƒ�ö`®€Äœeår…BA ½£½½#þØ7í-6ŒÑl³�…¸Œ³» ð;®a` TUÌч ·ÖÉ»ÙÓåë××/›Íž†À0pyf ca‚´¦A á:ÆY¼pãåÉ““ü‘k@·Œ§0,�|p C ` Ðá!³8k“®»Ž16ŽÁ,„†a¸YX6Ýl6›ÍŽ»îÊÊÑ�—±È Bø’!­c,—�Ál“ý£WL„Ñ©ñññqI8… }­@!1µ(Eó  + �ÇO̾u5"Àí­ŸþôÃ?üðÃï~|7´ÿŸ,½#ε«?>Ñ�‹…3½½Gzû™þÞðDþa{,ßS ¼ºû¬UÖðÊ�µµŠW­Ö<¿Võ6×66¼ ¯Rñ6®¬Õ¼ŠçùUßó|߯Õ|¯V¹ƒZÕó}¿æ{Õ*ñkUß«Ô|¿âû¾·:9ðmc³R« +ë®Öü�µµjeuu³âÕ¼ZÕ¯y¾çW«žç‘jÍ'¾_õª¾W«‘ZµZ«z~­æ{^¥²zeµâU¼ŠçU®¬nÖ¼ZÕ÷¼Zµâmnl®®ÜXóÖ*òˆ,�Ü_䯬Vk5Ñ%Hµ¤"íÇ êrGXó“å?�ìbŒœ2ʨO¼Êê• "} `%‡r‹áf`Ƕí Λ’—�ÝÈK$óù|40—ØÛNZ¶À3ííb&èã<p?Pžr]×…8{ë–ëBŒ± á†FcM‡i&_r´ŒËÇ †.žr×Ýè®ëšn—GÞ+—ÍÓ¦ëºÍ€e×Äg×q6‹_6 ëºîÍ‘2Îf]·Œ]œÆÀÅbì^7!pM×Ååï-à[ëëØ-›®ëâ¬{ìƒ[eWLöZ¹~=›} âì{·®c!\À ØÄÂøu1}4ƒ]|r$‹O‰€ã«&Â��ËÍâêÀBñ)”É@Ø ÷Geˆ1v××Q˜îëëë‹÷Åûúâ/ÌþøêUøÉÖO––~úÓÿüŸÿ³€Àßܾý7K?ÙZZzç�wßyç�k׮Ξè‹Ç{{{{{ãaÖ/<�vàƒí{›Ööœ�Wn¬­mnT*ÕjµRÙÜX¹QÙ\]ÝÜô*7ä%ëU<¯æUýJ­âyU¿âÕªÕªèö¯V«5¿æÕj"Zà{••É盕ªçU|ß÷*ÕÍÊÚF¥rccÓÛ¬z•JÕóüªWõª¾çUk5¿&ïv¯V­ÕjµšW­zÕÍ�ʪqe­RÝ\Ûð6n¬nnz^µâÕªµêFecsíÆêÚÆfˆš�eAíÊ Ï'5Ñ]ö‹Æ¿@Ž"ˆêëœqÂë Óar@„5ªî&á¢øñk 1ØP%Û¶m§õÈöß\2—KÎägòùÜL.—OIæóùÜ›�J Æ@Ùæe'û-Û*ä +…™gÚc±ØÁööÆXàošÂbœ./›a¡à 1j7ZJó€�Éi»X âDcø£1N@´¥RL‰$œ¬°Ë@|GÁ@œAN€ �ëé£) ÓXÄüÅeŒðQäN!ùâ¾ càØÀÀÈÀÑ��Pù]—CpÆ ãêÈ|E¼²ññ“ãÒ ˜aŽ3ÊddÐéLöDc”Àxz|ü$Æfa_ß¿ˆÇÿEßo÷õŇGgßzëêÕ·¯--½óîÒÒÒOúÓŸþôoþæ§?ýéßüT*ÿwß¹öÎ;×®]{ûêìp<� s?¸+*ÜÞÑÞÑÑÞÑÑ~0¾ÇØ €Õµ+Y|em³²¹¹áU6+•ÍøÊêÚêêæÚÚê••µµÍM¯R­zžWó<¯Z­yÕªçUüª·Q©y^Í«Ö<¯ây^Õ¯yžWõ*7Œer­âU¼j­Rõ'0ófn×D «`Éý¯€ƒQ%PoGGïcìì³#Œ§\ˆNƒ2F&61Žâƒ)µ€1±ÀÃWªl˜É`€ –È@„2 ¥a"›rn èïÍÀ ñBßKiÝj +c„qfC(ÂòS#„ FSxjjjj +Ï00rÝ?/ãÓå…01(‡|ë:ÄÊû_¤ýúÿp÷Ï�[Yº(H‡"mÎ!kJWpDŸãR²me© ©U¦Ùt![l"K•£b³€Än§£_)Ñ%qõÀÌ´¬ƒˆ~éN£ÛÕ7æDTGŸ€…NUöÁ…º0È;�Á‰¨nÌÞûm¿áO î_1à/)ӮYg'Sʤ$*Uåõío}k­o}ògJ½ž2³—DQì2ŸaàO� ¯þʆW/^Ø“IïaïáÇ{¼_ûƒ÷>¨Õþ ö^íƒ� +øå/ùËøûø‡ÿþÿý¿ü÷ÿò_þËù‡¿ÿûøû_þò—¿üåßþò—¿üÛ¿ù›¿þáµJ¥Z­V*åJ™Q¹Ml­V­Vªµ™7èâ nœÐ‘5Ç÷Ã0 +ý0¢Èý‰ê¸Žë:Ž)kŽëøaÅI%(‰ã8N"ÖÖ‡a”°€N‚(Ž“4¢(ŽWnmH~EI’DIFaà{Q`¹A…AÅaÆ~G)+ä'IäÇqGq„’(Œã( ý‰å¨=Ùõ<ßt\S6}?Ã$Š¢0ˆ‚ tLËsƒ @±y�Rš8^%š±¿Åª‘kB¦Ù5ÎòŠ`F(3dmÌÛ„f„c‚â8òMçsÈßçÆÞžñÕ"ŒÇO–>£³CÃáppgh âx± +p6�Œ±±E +ð{ +ðH·•>„][Š¢ë:“¡¢ˆÜ;@Äâ¡A—]ßL +Ðuõ#Ûl€B]Wăû¢$)Š¢ëŸè + Š¢ðG( ¯è€¡ËQ„wEéPyxɶ‘À#] +„<Aáø_Xƒ*‡¬ùpîðXˆp¨(ú'Š!Tz½ÞÃþO‹,ˆ¢x uÉŸBøSõ™ªa_>þßž?øðáÃÞÃÞûµÚ¼_«ýA­Vûà£~öÙ—_þÍß|ù7óË_þò—ÿ÷¿üÛ¿ÿû¿ÿû¿ÿ‡¿ÿÛ<îóóå_öÃj•Jeå%P­U«•ê­pSðYµ\7ð¼ ü0ô=Ór-Çó=×4]Ç1?ŒÃ8NYkE¬Ë?Œ‚�%AÌrõ Šã ôYØ}?ã(Ž“0ÃÀBßtC? +¢0ŽÃ(ˆÃ(ŠüØ�¢ ‰¢8Š‚ Š‚¼ªE‘kBDZLÏ÷'žë9–ë»AG~�gZ�ïÏ~ˆù:B)²œ(AŒiF(f™À4wÿ¡Eó/Íf^fפØŒI†3¶â§ix0`>¨ßŸìî3 ài¾¨ée `8O +0œ¬Ô Ã�Gg#c<Ø]€Ò ¶^oð–Å@WWº®Û¿�تýW>×ádreOìGP�@(r›¢p &Ð{|$=ºº|ñ|r¤CûªkÛW/&Ï'¶í+ –ô+/.¯&¶ U8±'¿5ïIê:„ÒD’&¶ áØÏíK>— ýW/^|}u¥ëö¯^Ø—]Úöoæe¶Ú—�#3·QT`%þE×óì¡×ë)J± €qA˜³€¾¢ôóÉá£ÿÆRöÖÎôÃ~öÙ—ýÙg_Îbýoÿöoþæogqÿå—_~ù7_þõ_öÃ�>¨•J¥[€…}­V©Ôn€›€ïÊÀr]ß÷üÀ÷}×ôßüÀ÷Cß÷C§Ü ¢0Œâ0ˆ¢(ˆ¢$ +£ £(Šâ +à ŒÂÈ÷ã0ˆ¢ÀwU¡Þs]?ŒÂ0 +ƒ ×Ó ã +£( +Ã8"öEaÅqÆ�FaEqÅQ:ô‚0 £(ðCß÷<Ës/ ÂÐ ‚Àw-ͺòæP„%%S’%Ž%ˆ`Ì6Š2ã_š±­?4Ãù¶àëÙ‚À¢H³ g3o LQ¾é1G´oQxjìî�fðøV8aúß s’On[û†1†'�ÁÉ2œ�F£ñÈÿEƒíExÍ«WÁÕ꣫ *AUU¥&%¡$I²¤Ú�ã8®%~¿ÛwLTø+ ªUUcC h¦ +í‰#Dé‚À¦ù$@Iú±$©šnC©'é'’üp$ Ú�$ Jb·[mIU!€öäª T¡*©ª +Ô¶)I’$‰ Ï,‚ >È-‡Äl“¡³ÿàPQôØëõzJÿp‰‚П§8¹�H?šüÇ|þüŸ—Þ|³T*UÞ|óÍ7k|ðÑøYqX´ÿÍ—_~ùå—_þõ—ÿéË/?ûO_~ùן}öÙgÿ©€ÊË`F¾ ßêÉÐq]Ï÷Cß›¸Žë9–fzžú–嘒æxAà‡QÄAQEaùA…A…~äE¾…¡ï‡Qà®% õžë‡~D�F�ç9^èY–çy¾ïG~ú�~à‡AäG~è‡a„‘D^Æ^t¸ªf™öÄóBËr-Ëó‚0ð‚0=ß÷Õô|×uò3»˜iFIìºQ‚Ù$1ëìÅ”R2�2Bf]ζR|�]gÙtzM²i>!L3Ê,ÏP‡.ô1Ín€ÛÀÓáîîè«gÏ.žå`Ü€KNNNNæÐÙêÌ`5`+�Áï%D/nœ6‹  vmDü•Ô5?–8`®ž]I›L(zð$]PJŸ M$( +÷?Õ94UDñ”Õnq×B̦*=„²>¢ ÔQì+ÚO[š:,º%©èTòý½^Šâ!8à�xxøàþ}E�ýGK÷?8ûágŸý§ÏÎ?ûì³ü£}È:ür(•Ê¥¨Uæ À*¸7Ž{’i9žëù®çû®giR‹«KŽš]¾Û“MÏó|Ïó}?ÃÐ÷ÃÐ÷C?ô? <Ÿé�ïz�ïù^è{–تõß÷¼À|?<ßq}ϲ<ßu=7 ‚+�eïAø># ~øù“~๎)w¹MÙõ“Ûlu%Õõ|oâ{¾ïy¾g9–f9žãZù™QL�ç'¬(wú£¥×l±Ï5�Î|A¯I6ó;žNsÏ�)½fŽ FizfÀ† +¾¡ +0�?=ÞÝ3 àâÙÅùxœ/n]d�…áÃáðØ †�;û#ãdp<ž :ƒ“Î’-xnÐÙ1?�ÁÝr©\)W* ¾à¿G~vûEËff ?–Šüö ø€÷® â÷Å^“©ƒPWt€ ˜lú¬¤/�Z—«×K¥:hÚ¢(‚C ìö�xȦ%IUÅž á‡}Ö3ôÖŸpö (} pÔ†’. xÏE‘Íþô‹v}E9Òû@ˆ÷~ª(°ÿH]¾ÿYÀ@�½‡½^å„G°�G +в0PCóÍZíý>üðÃ?þè#†}ôÃÎBžýõ£?þã?þè£�>øàý¼Å·R)WÊ¥Ryj¬IävpV�åhÝžfZ®ë¹¾ëº®kj² ð¢k»š ô$ÍrÏ÷Ü ð/p=ß ‚À÷¯®¼ p}Ç÷ýÀó]/p}×]ÇuÍWïÚŽçy¾ïù�ç»®e9´ÇõÇs}–n¸žïû Y<ßó}ßõCß‚ ð]ÇTe‘—-ÇU[­– ãù®ïº¾ç9×15Õt\×*Üæ S<ÍÇ�bD²ŒPVò£Î[Wžå;þ(Í—�\³m(y?À4÷ +"” „pÊDÀŒÞìZŠþÑx4?Ÿìî�ÿî+Fœ-ÀpñÃáph Ç'»û‹eÀ…iÀ±Á<ÇFgÿÌ(@¹`•×n©¶'v‚G*�dQìõX½ \*�} +’(6•#ØBEW°%—Jî­%‚>߸z‰«©bWº´`Å'Â{bφGùÕ{x +5N8„óq<»aÛÀ Š]ñP<‹¥~‡‡‡ŠˆâÁýû÷¡ÂâÞÿ“wý*Š®’û��‡{Š€r“>zaNúK5ÑR¥T)•Þ¬ðþ‡~X`Àðá‡Íχþqþ±?þðƒÞ¯½™#À*°&àj­V½M(Ý0jw,µÕ•ehºŽç¹®ãX–e©Ô ejPÕ4Ót<×õ<ßõ\Ï÷<×õ\×Í×ó=×q\×w<�ÝÏ®§õ6ë-Ór]×ó×ó=Û6M×R5Ëu]×q\×õ=× <ßõ]Ïó\Ïó\×™°×ô<Ï÷]˱,S5-K35Í´4Ër-ËqËq-×4-UVMDZŠþ²…NÀŒ&Ž%ÌÆ¬è÷¥”^¹>Û?D¦Ó,›flyXF³){–Òܯ˜Œã4öÍ�¿Yx<ìî�¿Êý.ÎÇ#c5È£~~Ž�Á`8ÜÝ }ûsÈ Àøl06ŒÓOÙ0ÐïM +pø8;’j÷äÙ +mÂ_)Š" +Üw8NÐ|¾4L�º­€‰”‡ÝB÷¾ÔB½DQìI¨\IP™åÛø±$Ùl¯àá¡¢ +B�Š×8@³)�¯ïIZXæ{x€(ЇýþáÁýƒû÷ïë‹ñ¯.Äÿ¡¢èú' +T®^@øSV ¿Êî ‚ Bá#!�× @–J¥‹ä7+•Z­öÁ >üàý÷ßÿ`ù¼ÿþ~øÑøá¼_«”*¥7ß|³´’Tª•ZµR«V«¹Xì,—Ëår©t£7Ó´ÔVWVMͱvU›Žeš¦ US3MU³LÓšx–k{®ç8ž;q<×sËs=ײ\×µ,×rMÇu=ËvÇQ…ÍZKµDz×r]Ç15ÓÒdÕ²Çq×q×u=×q]Ûõ\ÇóÇt¬‰ëڮ븎gY¦å8–ij¦¦AË´,Ór˲,Û´ÇÒLY�MÍ6µÈ(!YbyqŒS̼‡I6Í®ó­%Ób ó/ÏÝB[Šž]ç�Ô¹Ÿ Œâг¢Â§ð5€ñÉîþã¿Ë�ž>η6½ŒãA'€c'ƒA§3è :�An 66ÆÆh' +Ígkkkkë÷ +tÐ@bæ bO?êE½Ò¨ uŽ{ç¾(ð«îÛ¸£+ú%¦¤ÏzjŠ…ÀþþÇ‚(YÅCÐïOD¨zÅ ¯ÙöPú +è+‡ŠxÀÎ@ähGJjIs{¡ÃQŃÃwß}wB¥Ëý *Ï_@ØWz½^‚%`ýÂ}A¸/å@*š,f à£ÞgN|ðþ¼ÿþû P«½É ãÍR¥\.ÍWÅTòQ€êJ +PÀMRfJ/kš¬AÓ4-Ë4-Ç2MËÒLÓÔ4Ó4MËq,×±-Çr×±4Ó²,Ç1-Ç´,Íd³e9Že[–¦™"¿YâdÓr,˲,ǵLS6-³'k¦eZ–ei–eY–íX–mYŽë8–e:®ë8®i:¦åX¦eºŽ¦i&ÔLÓr,Í2×2-‹ý 5Í”»’ªÍâ˜� ¹n%¨XE\ÜüY±Œ$�s2[F³ŒU ¦Eb�¶$tM3û’oîŸlï?.R€Ç ÎÆãÑüÁü[æ9Àñð¸Ó9îî ãø˜í +\JŠ:ÂÙþÀ85NŸžöÊ¥ReVÜj4¯o'àÕÍÓÕ�àäŠÍኢ(*@[‡@à8N°ôþs ýJQ¨C]ù`K̺·àDQ„MQÈ¢Ø@_‹3uñÚú¥':„?UúŠrø'â}¡Æ Jyk€` (¶Íþ!¹Å�xpp Š»ïrß}§Þ4a¿Ëý�¢ü™?�ðꄊÒïõæ–_·q¡öñÇ6„@}ô.xÏã¿öf)× +ø Î/ö‡þ€i•R‰@97Š®Ô*•J­R«ÔjK T.³ý€òêQ5qƒïIòOd ª¦iYªÉB_55 BÈ’lÓ´lÇ1-S3MÓ„¦iš6´-Ë‚¦f²˜Ö4Ë45h2_/q²-ÓÒLh:ÐÒ$Ê¢ UMÕ,Ó2väá -ÛTUË2MÛÒTÓÔ,Ó´LÓÔLhšªfZ–¦AšÔ,Í´ ©BM•I²¬Ê9�bSI†IìxQŒ1Ëó3<ÍØêÏk:ÍwR’ÑŒ`fÊV†±ÍÌA㌙�!yšŸo$û­À§Ûû�ÿ®Ø 8cþ¸©:Çýí¡aó*#ƒNg0`{dža쟧ÆéàôÓOï¾½¬ñë÷ +®à#NdÚ6¨6„P�@Û‡÷9áÐuhw<ÑuûÒ¶mÝ6mû…dÛWöµuhç3ùPÐîõhCv§êöo%ݶ¡bÛÀ¾ü?¿¼¼R'6ó _û¸¼´/õç,þìöªÀœ˜GÐ>š‹›››µÚ[¥·êõ�¦ ÁmüÌøê„€^¯¡ÀƒUð§C€� ¾Ýn·yžŸIÆè¬RÜã•7WàýUXf¥7+¥7+o¾YÄv¹Z­Þ½›W« uÀe�n¡Îµz=UUUMÕ4¨š¦©²¦©ªªjšªªš4SS¡¥Ÿ¤AS3MË„¦fšš4ÓÔ4Y…ª¦Êr�«•6% ª&ÔTMS5Meµ×•TYÕTMƒªMÕ45KÓ ©©ª¦©Ô ªBUÕ ¦š¦¦š?QeUU¢ýš²—1¡¦©ª²,õ„ž¤J²(I¢$J⼉gr½0MP†1ÉÉ0£þÙ”m +v#Lh¾tš1›�i–Ñ çNå!„âÀ Îè·+žnwžþݳ‹‹‹ó‹‹|£ß20XܳÇÐ(`ûx4<†¬E`¿“/ ïœÍVƒæðé`p·Ì¤ßß  {ó´ÛÝ{¬¾Ûmw»í�6Ïw¶Ûív›ë­Úßju[íf³ÛëvÛíîN»Ýnïì´Ûíö½v·Ûm·ÛlsO·½Ã^¯Ûí¶wvvÚ÷Úí�vûa»ÝîvJ>l·{½v»Íó€ç777Þzk£Ýn¶»»í�v·×k·Üm·»í‡Å¿«Ýn·Û››››Â»Ü;ëïLlàOo�µ�tø ¼zþâE¢¢ÈË�s€û‚ Š‚pMà‚[øÂîñZåÍZ­6‹ÿœ, søðƒ?¨½ÉÒ†R©´ýù‰ñUgÜilmßÝcq_[ še¥r¹TêÝ8b«^o =Q–dYVU ɲ$K’ªÊ² +4Y–eU–dU•Õù•«Yš&«²ª©@SeY²ªÉª*Ë’P¯—6»ROÒdUSUU”¥ž,ÉBO’$M–U¨2ÐTIV5Mû‰¬j²*U•UIÕÔŸ°o ˲,É@’UI–"ʪ¬ª²¤ª@–eI{Ý–Ð{½Ãæ~ ”’ÄuÃa¶á/ofôz:ÍWa‚qF¯‹�¤¤X–ï>¢”¦‘çi± å›DÀ§ƒÝÁÅß=»¸8¿˜€1šŸñÈ/3;v�Ñðø„�Îs€AÇ8+VîÆ©q: >ePYXüú€~óؓߪ6„Péë—6å{ôµùèêŽñ*P¿êé:šW²ÅÀV!<‚ý><ºÔ'—=BÁÑĶuûØ;PUUá„ж/m{"}­CÀ¤ €x_à8A2»6d59Û¾¼  �à#x™ÿC „póàààààà°ÏÖˆ*/�ÿœ(ðêêÅ åQ¯×ƒ}~$ÞÎÞáêœ(Š÷ï 3¾‘[DþÏ¥R©òf¥2c j‹9@ñ‡jµ“K¥½ÝχÆWƒq§±µ½}÷qÑX4–æ9ÀíÐk­Õ9žï‰r¯'‰’,‰½^OE©'I²(ŠRO–Åž$Ë@–$I~(É’,Ë’$K²$õdYfêÉ’$÷zb¯'ü_×J5¡'özb¯'K=Iêu{R�$‘…«Ì¾^–UUîI@–EI–D†;²,Y–Ù÷Åž$I=Q”dI–Åž,I¢Øë ÝžÀµz=Aèv»½n¯Û›wRš!Ïõœï:žRš±•ASšM§tJ1Å„ÄvŠæÆ SŠ3̪}x:eæäˆ¤qä˜&·õßÒðøxûäâïò> ñØ0æ[€f‹�–àx8tr˜Û‚2›§Î 38+–‚œÎŒSà Ÿn—K¥reiúëµ€_ß<——Ïa߆yÇŽUÐ6óÈ9N¸/Š—Š/%¥”sÕM@²¥>H^^^^JWШ@¿<‚€>ÌG€ K±/u]—môû°©Š¢ põwEО°©!åòùååå¤o+€>€ð¨ÏÎÁÁÁÁÁó_ÿúòÿYÌòÝÿRú' +„ðyý^ï¡ÒàG@¼�Ü8Žã¾ûÝïrÂý|L`îø6�߬½Y«}pÜ’|øÁûµRéÍR©²>ÜÛþ|8cÛãqÞ¸Ú�@kõW/Õ7ùVK„žÐëõ„žÐ„^·×„žØz½^·×Å^¯ÛëŠbOìv{Ýn¯×ëu…û`¯+t{½^·Û„W/•JÇ -¡+tAèv[­^‹ãZ-¡+bOìu{Ý^Oèuu{]±ÛòÙ ö„^WhµzìÛv{]öݺ]Ah -®Îñ‚ ´Z-¡%´º` œ¥óÇÑ,#SÖ÷òV!J“0Â8JØ�ÏZ‚ ÍÝHFs�3¸VÀ`eõŒF£ñâc<~üt°m<ûE¡Œç~¾ÅãŒù¸/ÀÉ`0vîЙÀ€m*V?Œ Ã8=°€­|ªV«µêVõ56ýÍÍóç¿þ•ú5dÕpöAÑ)'rÜ}Q| +ŠbKJ_9’!Ô²U €~tyùüòòáot¶—2uÚ¹ÃWž\­C]Òûêí#Eœ€ P×ÿü¿]>·m*ùkýy~ýë_?~©_æf@·Æº!ôž¿˜‰Š¢€�ÉMÐEAxç�w¹úwêõïÂýK0gÆx|~ñÅÅøÉ“�>úã÷kÔ^žÔj•g�íF£S@ÁÆãQeù,wóÔK¥úÇqÏ·ZB‹kµZB«Å·„–Ðj ­VKöt«%´„ÿÐjµxAà[¼ÐZ/´¾%Bë?ðB‹ç8®¾^*•ê››Çq|‹ãxžÛäøÖÆ¿Éq<ßâ[¼Às-�çøV‹O«Õx¾%´x¡%B‹oñ-žoñœÐjñ<ßjµZ-¾%p-¡ÅóÇmÔߪs›Ü Åæ+»ÍbÏ‹b„Ela–Q›0 ‚Q¤y(µ<ÌVe,ËÏp–‘)F„R‚ NQ컚OØæÒ•ckûƆ16fðÕ/òàñ˜€Ñèóñì1€Ÿl£Ã�mÛÞ1S°Û\< +ÆØÆ€@¹\©,ƒÿ^¥º>:0Ÿà…}¡=AE]ઠÅVu]/ª~R^ÐuýèH·»—:€ +TȆûz{!¹V./u¨?„}åªy©è@üS�ã8A”ÛGôáQ‘Žè¬×ôçí9¿þõ¯ýü’MæÅÕøo]@ŸèНž /˜ÐïõzJü¬ › Aî¿[ÿn½À€`œ�Ç�/¾8?yòôéÓ§Ëùål´Ô0 cüäé_þ?žu¶�[À(G€Ú·€Í�z©T«ollnnrœÀ³mq­V‹ã9¾Å·øÇþ,-^hµžçxžÁÇ -Nà…V‹ç[s@)•ŠÌŸÚä6769Žç8�¡ ×jñ\‹çyNø<Ï -.Ç^àyžã8޽\Khñ'´„ÇsùÓ››õz½þ?-ü…6O1ͲÄõ£”…q–e×S’Ñ)ÅLÿ›RŒ)NQì…yaŠ1¥„í¢4£xšQ’±ñŒqyVˆ(ÉØòƒå`AÜcà㜠àÔXb +Æp8Íw„VÀÃ]'3�“€³ysœ|zw)h¼Ö}·�ë—@Wú +dÄ>‚HÂw¸âá¡á‹.èC Ã?ו¼´©PŽô#EÑ퇿�}P¼Ú‹ ­ÛvÏ“&T” �ãQjÛ�Š(ê¶�³ˆ…þ|øë_ÿú×—º®_ê°Ïúo�ÿ¼¨(ðꊀ¢ô{½ž¢€�U8âaÞj ¼óÝïÔ·Àø‹/>¿¾X€³'O¿ú_r`,0€½½'ã9¬ö”JåR ãUج—Jõà~ÐâZ-Žkµ8žç[<Ï Åñ-�çZBKhñÏ�Àó‚Àµn€z›·Yßä676p­V«Ås­Ï·øÇ ­¸– ´Zßjq-¾õÆ ZÇñ_@+€7iÉÏl3`F)EŽ#ŒØú?2[9<¥e{¾IÇ8�f§ !¸X +H³ŒÅ>ÛuŽ1NãÐ 1!‹F Ç�w°a`KŸbäÇ,í?îî�Œ˜7 –Tƒ1€Bø}¨ÜŠþ[Ö¡«(ôû@�2�dIŽÐuýßP>¹Ôs#my"â‘@]Òa±tW�¨àhJ’$‚çPíC \Ú—þ‚¦ €òÉŽ«¿+JÝ  ¯@ö•O&W°ØÛ9ëÏWòûÿRg Ev—ã–0 ðy ßë=„ 6–>Pò>á�ïÖ¿S¯§^¿ ìùvpñ—ÿKÎŒp÷îÓñx4ß¾Ô \.3À/¢Àf½^*­Ï€çžoµ8^8žk NàZB«Å BKàyvI·Z-®%´ø—»£ëë¥R©¶±±Émò/ŽoµxNàyŽþÏó-Æ8¡Õjñǵ¸Ö8Ž{‡ç—€/àßÕ7 KLp†×�LXO?[5Î6Sš1…§˜¢¶‹dše׬ÿ7£„‹1ÁiN„IF ¾©,r€Ñh<~üx°=üêÏÎÀ`‹Š‡‘ïf›Ü c8œtCcwŸ@ga`°´h0†1ü~MþôÆQ”#ê*P�} @ø¨€)©(¶ÂqÜýû\êþ[4P þç¿�é¹xù[u¤ê½KB¨ôû@�G@w €@®+° ¼¼¼œHm`³¥?—¢ pœ @‘ úŠ”#ý7zn;68‹%ï)v¬Ä?8ÿÍÕC B èÏváE¿TmhO.¯ =�¿š<¿z~©O.'“É×—ö?g)þð¯ºE§T¥¦4ÒÿLÿÂçÏA^Èr£Ö Tú ÅCpx(ŠW¯×¿S2?ßž|¾£o€ý¥`ûîÓñ™agãocJ)ÆëKÐúÏåÀq¼Àÿ€1€×bjKràZ7Oøy +P«3p+  Åó<¿¨P0žçFJ~“çxžû<Ï bLiÿ3€)Ʊå¦)Êý€)›òÉHÎó ¥(Acä˜fŠ3Bh†3<%4›²v@L1fËA}B0¥ø›R€§ãÇ�Û£¯~ñìâüâââÉø±183ŒÑÙxlŒŒüí28aíÿ�¡±·kŒŽ�;ƒýÎI³¡ñØ0Œ“›PkÔ^_ à–F ®$A5ÕVAÞáv»’¤Jª$ru^èv{�múS�,É’ �ªNlIª­=|(u»=é'lÅÈ_ôºe ©ª¤Ê@RU_ŒsçèÙb‰ñxüÅÅ7¥g/gwŸ>Ÿ�ã³ñ JåÅûÿ6ÀÉP:Íß绲óÉe®¯¯)!”– 01Ÿ»‘”ê9h­/ä’>yžÏ²lJ®³¬ødSz=�N¯iF ™Ò|¥7€lò1½ù�ƒ³Œ$ž#&ïçÎàÓŒf3o„Óa‚ãaLQœ¤„°fÀ¼ €àŒPÄúž Š¿�-øãáÞŒ<�÷…%ÐhÄÞ®@‘îGû»†q<ì¯À SüZI*•j¥R®6¶jÕêë 7OŽ’ÞJ¡­1eo"r°mfØ­èGP�êº~4�¹“»¯EÀs‘|ÿ )}x]A¡¡rdwuýˆíeëÁÞ']>(&%QÀî× ¯À+0¿ÿ±âàCBYüÛs`ƒÞsAhÊ,Pú½‡(àG?@d >¶®)P‡`:À’]ü žËˆÂb{è™aÆðäôääd¹oôllœ±ø?3nž3Ã0Æã‹‹ÎøâÄ Î�ÿüt<žÁÅ,üAÊ¥ÒJ*‹)¹æ)€¬`×Ùõu–±«õšf3`»4È”À”NY—íôšä‹·¥”\Ó®¯ ¥lkw–Q:%×S y(Í®i™Ò%˜§šÅ‹0–§„�,öýaæ +JH–!L³)Ê(�bŒ(ƈfG1N£”â %,“ ì߃I†IFŠqŒâÐ3}DñM ðVì�~ñwÏ....ž>»ƒñ¼“/ï>Y<³ž¿Ñpo826°Äæî€�ƒ½JQ,Uó]P¯ïj°—Ybõ÷>`°ß‡¶ßáî â!6èÿ4ß ®(º>�GGàÅÎiº E؃J.᳞"'2Šõîs¨@ØæÀþ¡( ûI¿”ü@’»GÅþ¿¹MÏüþÿç¿â%I.Ø ´Á!‡‡ ð€ÞÕÀþ£^äÿLñ]Є®ôýv·ÛùEŒ—nõ±qj†qzrzz:8===]Prsù3ã�ÇãñW£ãÏ?�¶¿Zþ¯ñ&¸¥Ç)Bl‹&β•à:wÌ SJs „PŠd×××y�2ÍhlζðÛfAsMétJ¦$Ë®¯ÅÈ—ñLÉõ”!P6�¥™fSJ Í`:Í(Á˜ Ð“ÜxÎËð QšxaÂlÁ)Å”bL1%35cĔ§i‚1F1¡˜d˜’ šLà¥Iì™A‚1&8[=̈ý.À~�Çcc{06FãÙàïÐ0†ÇKg&ø�†»Cc8èìí¿vw«P�@í÷ + @’ºv±öH@‡}lõÅ;ïÞ�bæ» ³Ýƒ:´_Ì{ÛÅ'=] +ëW ]ªŠÒ} (v{r¤( �¢ö•Ã÷öl¦Æ h??Rà²Q×üþÿg³)AêGGGú´íÃÃEÀ6<¿º/l4e9€>€ Šï¾+ˆ¢ÝêÂ>7áo`uaÄ +`äñØÈ×Ä VÝeÇlcTçÎþþ``<5¶¿ƧÌPvww¶¬¼¨ÜH¡G É÷ãe”f„’ëŒ^Sš@s d:cK²¥€1€lJ§˜@ç³t×E +�± + £/šÑéÓ™m×”ŠQ:]Ïmzf÷2ÁÓØ÷"”²þJh–a’åa˜”Ä4�ÓSŒ’#š±K³éAB !%'¾ÇŠ…/�~úôÉÓ¹¸?.R€ñØØ5Æ£ñh0 > ƒÁ§§ƒÛNg0 ÷ŽGÃAg¿“ï X€ÝÝÝ»»»ƒñø,€j±¤T­½æ à @[U�ÙªöÕ‹+¨YU¡$ +ÀŸŠ"P� m\Ù6°Áäù$wïµ!´m( H*T�j>”€ +  à䟮lÛªªäÀ+u¢¶¡} ­KÀKˆ'ªMB`Û’(I<‚ªªªm Ùª­ÂE×¢Ùýoò´¡¡~¤ô�(¼ 6ó>`…-+òžÿiw£Ù”_¼€Š•~¯?:îA°y¶]ZB€ñøÉxüäÉ“ùò˜¥ø�ÇÆ)‹æ?ÚÝÛßßßÛÛÝÝÝÞ¾sçÎ�;Û»{û»ûûû§ ~S9œ0ÎÀ^ö–  \*•JhåPš‘ !8›cÒlšeÓ) ½žNó¹,£”\Ók6SC¦9˜^_çu¡9\3`)Àô– c)@FrbŸÍS€)³ë.VvÓܵ‡dÓŒdÙ5F”bÇNÏÁq?ûi0¦”¤/HSŒ1ň`Lh†)Ág4Ã$K“§ž�HJPâÇÇ)A˜fk"$¥”‚Qœ Ø÷¬€PDo¶“YñoF.† ŸŸ?þ|lìc†á¯>�Î`d0Øë, ƒÝÙY€b7`åõ€�›§Ým·Ûí?ÜÙ¹×¼Ç7yžoîìì´š;íæ÷7þ/µ� ®Ùäùf»Ý¼·ÃóüN³Ýí¶ZívûÏ7y¾ÕÞáù�V›4›Í&ßäwxž½öòÍf“oñív›ßi¶îµ›<Ï7ùf“ç77666ù?lïð|»ÝÞáwøvñ÷š;Í&¿xúËñßW ®+ˆßáÞ�àAPQàóçB/*ýþC(ñ€ƒúwNÜì|x¸‚O˜°ÿô ‚9ÕòEþ×'OçáÓE¶`Œ_" §§Æxüäl00öOŸ>�ñÿWÐÉ,¡(Š %„ÙáÐi±1gZŒØç×ï”iÌC—2˜@s 3�å `:KÈ<`þ{³o6%Å Ÿá)óíaCztšQ’]çô:Í!#»¢‰0¹‘JI;nœÄŠr7¿¢Ž‡¡8Â8tÃ!Œ“ ¤$Æ“Œæë?+�bÇI”ø®`ŒÑ-àÖÝ€9\ŒÇcã�ŒñhltÏË`´×™3€Î|hŸíßÛÝ=½ ÕR¥úºã´»Ýv»ýþ½�{Í&ßä[<¿³³ÓâÛíæ÷7jµ��&Ïó|³Ý¾ÇóüßæÛÝv«ÕîöšMžoò­îN³É·Š´›Ífs§Ù¼×Ìà}­v»ÍïÜcÐd°±±±Ñ俟ÏßãÛín»Ý~¿ÉßkîðKÐZ�B]‡@¬×¹láð( +ü*^]ÝÿÓ��fS– è퀟æÉÎýzý]NäÄCq¾xòÅ“'_|ñÅìÍ\ÌñàÉOÆ_Œ?gú-á~: f;5 cÌúÉ +(—WÊ€Ë÷J¡8 +Ùä %„Ð,›^S¶=‡�ÀôšNY.��Õ²b�N¯™£«Õç–:Ù4Ë®ég¤º ”EûuF¯³ë锩~ٔчŒdÙuF¯§Ù5eúá5Å4£×, ¡YF1F$M<ÑEóÀŸ3B�-/LbT´RL1ÎÅ”’Œâ$A$õÂ!„b/¢$ElR�L Aˆ`‚ Á(�Qû–�Šé·Q/ŒÎ迸¸8?¿?v�ñh|º¿x^ +ûûÜ]Àb°ÇÀŸ�Æ`ðé`¯Z*•Jå߸�tÛív“ßÙiîìð|‹oîìð3¨ml2VÐæ›<ßÜÙÉ Ým6ùžoµW€¿×¼×¼Ç^ûûØióü‡ `'€f›çùv·Íï4s$j6ù{Í��epo%þ¨­ñ;߸ x )„WÏ»ÝE€ýmä“Âõïr›@y°‚+;£Ÿ>yúø‹'ãñøéÓ§OÆOfœàÉ“ñÅã‹‹ñ“‹'ãñè¬ÈÎïÿÓO?=ýt0|zz:Ãö‘ð�Q’Æ&L0ÏØ½›;eN™cɲi–‘,›N§4_«� YvM§$_¬1Ëè§tŠ))R€ižL³i6¥Ì›‡f�’ì:ËȬè�oîc{º óå¹Î¦”­î&Y†ét:Í(¡8�]ÙMnÔæY¹~”$(§Œ(¦¬Ÿ—à$Npêc„c?B(AçÅABË10F¡8ò]3@cŠ¿˜Àãñx°?�ǃW@Þò70F{ûÆÉ ³_„^\8¬œ0|:Ø«”ÊåR¹R­–Ë�F­Ñ¨ý~@;€{ÍæN“oí0°S0¾Ùäù{ív«Éïìð|3€Þ=~‡¥÷î-?cüò÷šM¾Õl·Û<¿S0€æ"àY +ÐäyöÍfó^óÞr +к·ÿGº~©+¢ð]›PP•K]�“+Qèn4»M^/~¥( ! +d>çïpÇE\F€'Ë +à“âÒÿbåù'ã'Ÿ?½¸¸ñéyÂ_Èggg·Ô¤f}@åe `õ¿cŒ „IÎɯsýJqVé˜ßîu6%s‹Ýk¶Kç:gñÓbœ./°éÛ)¡xZLÚÑ,Ëð5ɲŒݘ»ùi–M¯Ùê.VŠœiÈ5�N3æà}M§×aJ0Š=ÙKçâßB=#ûAš¢§¬Ñ™„)ó +”";^JÂq%ˆ„¦Ì¢aŒQÇ�oºŒJ|0bÀ:;ûãÑx|²·»;¼D4Fû{£“Ag¯¸þ (`Þ0ÎÆ†‘»WJ¥rÁj�Fí5f7 gÞßçwØÅÛâù�¾ÅïìäÀ5yžßi·[Mžoò;|»×nµÚÝî,ØÙÙiµsY€�÷w5€�›)@s–Ìr‘[RþÞjüÿÇË_ñ�z�ãÁ†$JÝîlîXìnllv›;2P¡ +'6�ïuY—¡*‰2Wç8®É¸„�Ÿ<}òEqå?}úôéÓ‹§_</ÔðÇc㌕Ÿ0’ðùç Å‚áɧ§§§ƒOOY¡ðÖðŸÀB'`éÈ(Ei#“E¦�Qz}�eô:»fnYa¡�eôzJ3J¯Ù~ÝkÊ–ëÍÔ– L³ ³¼<Ÿ'Ùtz=sé¦ÉÈ5¥!Y†§Y^€¼.vö’Œ9óå6ÓŒ¶È›bJ1E(veÏã~¡{~„0ÆlÚ/Å”`J(Å„JŽ/Aˆ�Ä‹ +ŒqЦ”`ŠÂ‚0N p-S¶iø[s8??:�¶*`wöØ»ú¹ùïhtÒéìwVÀbÙgdŸ>ýôÓ½J)ßY®6¯9Ü�rð‡;;;Í{E +°¨ðìJ÷̇»Ýn{ó­�›ðäÉÓ'OŸ>ýb<~rñÅÅÅS>gÝKµ¾ÁþîöööÞîîî^g`Œ—ÚÇOž>yòd…¼ +^ÂÅ„Àl9^–'ßÓ¼(�/˸f•?f³ÁæçM§4_¹YlÝ+”Ã|ï�N ÁÙF(ažü„0DÈ¿5%¹yoþ¥„²„¼1�é!ˆ 4ñe/�ßË Æ$r=?fLëb3¾cŒbDR×ONQÆ…iB0ÁSŠHÑXŒPœÄq:fÀáŒVÎx|1Úýâ«gç�Çã ß!wo÷ä þhϰÀÆgãüa#Ã8ù”@é÷vnÀ‚X¤ü,¨mlæU€V“ßiîì4hw›Í¼ +°ª,0€Å*ïÛ)@s–ìÌ4€æ½æNk…ìܸÿyNø'"T»Mñ(ß,Šº±¡˜;‹A8� '¨BUêoÕWàÉøó'Ÿ?Íóý§O>ÿü‹§O/...ž^ä)€1šµù°�vñì+æ27è öÆøó/.ÆEÊpñäÛ@é¶2 !„Ä)&4÷Ô¦8#Sš ú ñ˜ Ó™\ŸïÛš²r�›ê΂,ˉCî»u�+ UrM�¹vgÓŒ¹ò³¯§Ó`¦× ¦Ói–‘ ç"`‚|ÓG (6GDphºaˆpþ Š1&¬Ÿ¥%)ŠÝ0IPŠ?ÄiaŒ1Á¬€0"ˆ`Œp’D¾ïA7%ˆù|3tÆ¿øêÙùùÅãñÈ£ñxüÛ‹g÷þŸÀpÐÙ¿óiâ3c|fœž®0€­Æï[ +°Óþh¦ÌR€ÛªEL¶Û¬ +p¯Éï,V^‘4Ûí6¿³Ó~U ™3–´VÀÎ-ñ/pœ ¢Äï‹�¹ûˆ¢ÞáÞâÀLJb±ÿ—õ0©MHPÂýziÎV�qš£|žÚŸ§g†qvv6/.—|rqqñÕW¿øÅþÏ¿øj0 N�ÓOOO»_¼"þË¥oB)¡IcJ¢$£”Lge=ÖtÍÒñi†¯)Í+Õ_ç” ¯°¿g$£…?ËH–M)¡Ùuþj4+: + +~V7Ä™b2e9Æ5Í¡�u&±¼`ʺ )%„b”&�é#r3*1Ƈšë‡")"#B0AlS !á4JPìù1Æ(�½8EQ„R„š L0ŠÓ$ŽCß3=„0ºåÜüßüœÀãóÏ� c42ÎÆãý;wîlo-wn׆£Îî«Àgg§ŸžÞ’4~Ï4ƼùÅ€oíÌ`³Éóü½�–ª·Š€ )Àν…*À·7R€Å*¿Th¯0€æ-ñ/pœ ˆ¢Ä«@ì‰?Ìà瀫o\æk‹€¢(¬“ªÀ–¤�� Üä«ñ?�ýñøéŒÒßx<�?¿`>sùyöÕW_}õÕÅ_þå_þå_~õ—,-XÍ*/c« AE1!˜ ¹Š—gì’Φ¸ðÕeåþkÖ*tMé4£ìâ/4;:¥Ó묨ª�f4»žµ€ëì:Ï r@³‚\dÓì:ïš% 4£„Md„¥%žÞ&b„1ŽM+ˆâ¥9# ˜Éú'¥(HplyIŒPú~Š¢(Á "#‚ ! 1ŠQE‘§ù)"ão£Î諯.Ÿ>~<ÊI\çNcûÎ�Æö�í;�;w¶WB¿Sˆ€ƒÝ“aóÝ Ã0ÔÞOOOO *•ßSØYªÍÛªí{üNó†°³³ó2po1˜1€o®Ü`ÍñŸ€(J¯ŠbW(‰ ïÔ7ì|ß(›JP¨¶$}¬ + pñÅò¹øê//r6~R4ý°žÀBßûüü|n?Kõƒ'7üÀ^Â0¥…1F˜f„PVï#Åý�Y3›•'4£4›N3ÖO a(1�f³è¥y«øh!²"“ Ͳì³ÖáiFhF¯ó/.ì9‹b2½fV]ìiŠ)+Ö%�,4¥³ƒ B�åa’¦§8eQ�søaG1-/e?J“0N”bBR„ا ”¢8IÓ8\ÕEã}³øøbÜ1žýââñùyàãñþ�mv÷ß¹³½3ÿ¯Áð³ãÝÁp1òç0o=;===°2`y6 T{­àßßÔ>ê�€·Tj¬ +Ð,ªüb€¥<¿Ój·o-æÀÊ€ÍWS€Í…*À½¥*ÀªÀ߸ÿï \<ÿh¢xÿ]®Î)Ìc@ÌÇr°?þX ðjxr <~~~ñù篊þó/–`‘¬œ³iÄ F„âboæt&fY6�â)žÒ<�¿¦×”Ò)�N³)Í®¯sÀ¼Û�$š=AŒ#L‹Ê?Ó‹ÎAšé4/$LivM§!yÁ�¡Å4»Æ¬)˜¹{S‚qâ[Þµ<ûqR”"[NÄq’"”`#ŒNqŠS„qŠÂ0N#ÓMã¡Øâ8ˆcDRœ¤$Ác”¤iÇiù®æ¦I£äÛ0€æKÆãý­í;ìqgëÎ�;³ÎžÎ :ƒ�1êì†l-øÞ2œ�ÍæC0Pb  öºk7TÀºïß[®ì¬h U€öŒ,‰€Ý[R€æb +м%ø¶U€öÍû?'¢Äó"ŠÝb—¨ ¼Ë Š¢È @gƒÅªcK’ +X¨¼ªµjµQ­ÖØ”w£ÑXb¯€ó‹/¾ ÜÊp(›Aœ·Ê²Ñ»ì:+nbJ¯³œ†Óë)¥”]÷ r_1.œKÙuž °u[yAŸuÓlŠ™3%Ók¶º“R¶¿3× ¸ÎÇ’¦ÙtJX#aVlîB˜PŠ“À SLoD%FáÀ4}? +“¥I£Å!”Æq®ý…®Eqœ†aŒ¢0œ}%JQ‚Ò8M’4M’$Œ|GuÓ4M¯ž[S㫯.Ÿ_<.ÀØÛZ:ƒeÈߟu¶;lx…,€qj§Ÿž²*@ÎjµZ­Vû=¾Ýþñ�F ~!¸Q˜kü7U¾¿Øp¯ýª*@ó•U€ö�û_¸?Ëøî€ÃÃAx÷�(Š¢èâÒÌ£ªÚ¶$}¬Þÿ“ðÅK Ú¨ÖªÕ­jµÊx]£Ñh4r£àWÀùÅùÅç_\,Wnø�ïVãŸø‚±=Y³¼;»¦×¹"Çú€ÉŠ"»É)!×YFX ׿ò½.Ôz�å•<†%¬�0#×Å @–g¤˜Êè´ø¶s—®,›NYÇâ4ËØv’ơ볉Œ1Ƴ¨LÓ$F¡iú~%(Nc„’8e$>N„Rù1Š,/ˆP”F^'AŒp’$(IPŠJ”¦i”&q…ž£:Q’$ir㬆ÿçç,0c¯¼t·"€1lu†ƒýNg°Êš>óžï¨Ô¶jµ­êÖ¿ÿ÷¿?*À,Vv~°ÈîåU€Y+ðBàÞ=þ%)@Ql.—R€ï/5½´ +Ðl¯Üÿ÷á³ €þ„]ÿ‡‡÷…ƒwl[Q”#p¸Ž-} îß?A˜ë/€F£±µµÕhÌ®ÿÆöööööx<.W*¥R©1ÜÛÛÝÝÞ®–¾é,Àê$ÐM?„}Aõ¢S&E€¼ðG²ëœ·Sz=3ñÈÈìÎ.Þä]ÿÙuQê›f׳‚Âu.éÑŒdÓÙÔ!½Î2r]” +sÑa6†ÌTœMIáL–Š)F(t2oÏ�@”Ä1 +LËóƒ Š“$‰ã8Åi§ Š£ ŠÇ�“8ŽÏ‹#?J’8Iâ4Å1Pœ¤Q†a01âDI'ñ­p¾p?>uŒgÏ.?{|2ßËÁÏàx0üìx{ÈìAV€1c§cc085– ¿*~ÿàû+U€•Y€Y Ðªy'àm�@³NÀ�•2àïVh5Û7îÿ €ïözbOÅÃÂýƒN·EÑõÃE�Ô\8È çÊË ú* ÿ»ïmßÍŸ)W +ííínoo•Jß*³:`yFnMˆßSD0Å8Ëoâ,ËÈ5�•ï§„íÔËh6-Êû,KŸ²¸Îýv3š‘iFXàÓë)¦³DbÊ.óœõÏ;(Φë¼Î¦¬Û—ΊL#d¨Âï˜Ò)Î×ðä B³,¯þMi¡æ]g4ÃlY»ñ§YF§ô:Oýi–OðQ<Í +¡cŠIŠÇ#óiÀ°8qGIMÇâ4NPÄ:úâ4‰Ó8F%‘çú‰¯¹AÅQàxiìqÇqš$q‚â(FiÇI†~軚äDQ„’à†° +�GãÙWŸ_ûã±14 clì.ÀñM8 �Ñp{8dîŸ+ÀØ8ggg§§†±ÿGƒ³Ó½j¹àa«1 ŽbÂÂùzšM§Ù4»fŠ`Þ½_èvÓ,·ñ"ùôP.`B1ÁlóN–Ñi6-Z™E«ì³�ܸ¿è)`Œ!˦Y†Ã D$w šæs¹§Q¥Él`v-ûqÅ®¦Z^à~…Q‡QÅqGq‡a9~諦ïû¡ïšnä{~ÄQ�KˆiÇa…Qä{¾gj²DQäáê¹8??6?ccŸÀ`Æ[Ûß §ÃÑpoko8ÝÝŒçUÖ øš€2€GE£ÜOø "E�Â,4ó°{d›¬•N9RÚ6€ìÓûê6sìn3[på§ð bK¹Ÿ7û*•}‹6ëÇU €6è÷Ù�€º~!„ýž�·ìæûš?™É×ááa±6Ø¿R3 +ÀÍ W€X€­Û¶¢èpðo@©TÊÿ³i4¶wù£ÁB¿ñÞÝ»{3ð%§\)é¥R.�`U\lºu…=3NƘ™ð1-?&!‘\ÅŸ^Óë,cÕøé,‹Ç¬J?üÏM�Ù +.F&¥„ftÊ 2B1Î{}¦¹÷XÆŒþò¡VdB4CID0ÁiJétšoûdþÝ(ˆÑ|Fw!þƒ(°{ªåú®ç~†QèA†aaèûžãyVO2-×r5`ú®åaFQàûQAäù�ﻮ빖¦Šª¡~3¸:£g¿¸8¿0öGFUÆÒ p)ø��‡ƒA§3ž{ÕíÎp{µðt™l3� VË•Z£ñzW”9¨,0PÅdp¨æõ/ý(WÏm3Þ£~Ûl퇢¨ëBE™€uGG D¶1@í~QŒƒ6[ÓÑï èìEúmfÙúGð1'Šâ¡¢(ý%ø_öÂ}áþ}.žçy±+ꄃƒ=O”£#pú  ”³õÊË ¿ÒK�í»ï5Û¬p·Q«V«�F£±]­æ´ ˆö[!`ñT+…CÈø>Æ8Ô°­}¬˜âŒR‚ÒÄ�L:f€ø�k ]Õ´×ñ<ß÷|ßCßó|ß÷üÀw,Yó4A��úYdÇtÏs=×|ßñ|×÷ßs]×q,SÓ€ :®çº¾·zn€ÎèÙ/Î `œÆ~õíêÛo3xûí·ßfA_œáñ°ÓaU€ýÆöv£º½`¼ +c°}‡¥ùf r¥V«ý�·0€>ùÖ°Èð28ìÿYÎÌ€V€¢(Šç5±· 0°ç�‡ôËEè³`¿ìãs;Ñxïnã½»yÚßhlße°½Ýhlo7–®üòìý<ògô²² T*%VX2.ßf JV„RD(ÍpF¦ÓÄ�(‰“$Æ$F´hð�N Í.vödS:�õô“Â"lNR#[&qBharÍT@Æþ‹±áél)Q.!2£P‚ü˜’$M0BQŠB(‡~´` >)Žçû®« +‚ +MÇq,ÏwßóüÀw]ß÷<ßõ,µ\ ÍT5¨Êªã˜–e;žãû®ë¸®çù�ë¹®ë9–©©’ ZŽë8î·aƒÎ8¯ŒrÝ~ëí­·ßÞzûíjuë{ßûÞ÷Ž���vü³ã!û5Œö¶îl½ýövçø› Êª<[Õr¥Z«Ö^ãÕ`Ê·©¼·0€þË ¯Ì€øj�Ó€<»l–0àðÌÓí\°¿Ù�ÏBrnؽPœWîÞm¼×h¼w·Q©VòG¥R)Wª•JuAæ_¨ü-…z Dþ�o›Œ0Aù!G¦‡pà¹>¢˜²Ñÿ²çÖ_Y1Ï“M™Õwáð›e$ßᙡ8Íf•|f)Nض_6ÙSô^€yš@s•1qCŠ}Ç� ò#Bòæ@‚1IqìÇ$�¥³kÙõ<×Ò„®$«–e»î,¦}Ï <×umMæz–ãXŽe9ŽcYžc™ªé¹žë{®cY®åÙž3±,ËÒ4YîµdÇ4-Ǿqnh€F§c\<;¿ø|°72ŒÓ“Sãtÿíïm½ý½­·¿WÝÚúÞ÷¾÷½›"`ç8€ííê÷¶W Sc°{gžTjÕr¥VmÔ�êëÿߎä€ò/aúÑQ¾Þ7_û·óèÛ¤JÆn€ÿuEap�Àƒû÷r PÏE€CPš_ÿ¥[@^»gz~þÜjð½»�F£qw½½½JµR®”ËÕJµÂØ›r¹\~»\<“S€ê¢ø_ɇ^ …²#¶J›f”Œ?B$ý³…Û„²dÊzy§Ùlã'™æý»”ddJ§LÄ#”f(H)Á¥IJQ‚è4›flùÈõ\,œ­"›fäº0$žÒi† ž‚˜àÀ÷cJ£˜0Ó@L &˜ (ˆž•�⸮ã8² H?Q5Û²,DzMÇu=×÷=×µ,×±$Ž—,DZ,DzlGÓ$h–åL\Ïq,Óq<Ïs\DZ,ë'²Üëò¢m͆æÊ�Ë�@Fg߸xv~þùÉ~{Õê÷Þ®nUß®V·ªo¿}S Ž;Ãáh´ßØmT«¯€Ñ`÷Î`lÌ[�Ëåj£Q{mE@åwù_¡èðh‰¨ËÀË€¢,jÊ71EQžçÿDœõß¿/ˆ¹8ëX¼þK·j9”—Vv¬tò•JåFµT]ªT«ì cúåJ¥ˆüE`XTKùbÐUpc-@ › &ÑŒ-Ó%8A„P‚Î(Á$ÃÌ*ˆæŽ„0=ŽPæó•¯ù!S2ëÈŽU�à8IÒ(&ØŽ(%”äˆr5paè7›ùƒÑk:�²åù?'J¢˜`‚ f5F.PE +Á¬â˜–e™@Djšiš¦eA˲\×q\Û´,Ç4åÖf½eZŽfš¦ëˆõR½«Z–å8®c™.t\×µ,š¦iÊR¯ËK¦i›¦¥­žg�ÏÏÏÏ/د‹ c¿c\<;?pzºWݪV·¾·UÝzû{[Õê­0ÃÑ~c»QÝjt†�—Ž�Ûw:cc¯R*—˜%Xy«Ñ¨5^W àw€™øþ¯Ò½¢ +p,h߆(ŠÂ ½Ù(°ðî»â�^¤¶¢è Ù©üPº 8ÀöÝ»w;wÕRãîBf_©T«å"ÐËT– ÈÊ˰88P¾Åù²ÃñsÙÆ)Ê2‚0NpJ(š™og”’M)�ÒŒàiF2Ö•ÇŒA¦SœÑ)«âO3Š‘š¤E I­c‚§Ås÷�™á8™bB¦l"(ßÂÍZ�1"¨ðö¥“Œbœ{ Á(ŒQšü6ÿ5Ûìlš–eª\«+«šfj?QMË4MÇr,×¶,ͶLSù:'˲ܓdUîÕ뜠jªé8¦cY–éX–iZ¦ij*�Ån‹ëš–M ®ž‹gÌ‹áüüüââÙų‹<xüx'{Õ··ªyðíÛÀp09l½N +(Ï<óýàµ×9þ¿�0Oþ 4€ø-S€ßE˜å…p_¸ÿn¡²V Ûå…®»—TnÀL¨åv@w÷Ê7@þ9åU0ëÎU�™¸�Œ¼"ÙŽPJ[N ŽSš!DŠ®bDp‚IÑÁ�™]HF§„N)›Øcn„fôg$£Á˜fLiŠ F„$šƒóx§tšM§SZx ±ÆÌÖ�Q2Íg‡(ÅNq†¢‘ …)¡g¡³]F( cφ€fÄ\3-hÊ×%YÕTU…šfj–išše9¦iYæOd±Åµ�Û世 ´QT5Í4-‹}šiš¦5SÕdI[›]M³4•ñ‰…£=»¸x–~ŒÎÀ¸¸�ÇFÇ8=Í`k«ºUÝÚªV«óVàù1ƒáÀ£Îövcë•pj ¶ïì��½ò¬ +Pª6j�×Uø—@ÿß‚¨íGß2ø³›}ßÀEéõXÀ}A88È�mÛÖ•ò,½/•W°¤V«ÕÆÝÆÝZ­VÝªÖæUþ"âËÏ/(ÂbPÉ« 7àö½ù²§c’¯ßÄ1¢%˜àÈ 0Ûœ=s Î(e»ü²|v˜y0u3’O(Í&¡˜‚ õ5á)Óï²Âøƒ-$Ó)ë>Àù”0ͽ0E)&8J%qœf8Aùx0Åã4�⛾YXªšM™ãº½ž,ɪ,«ª*›¦¦išišš ¡4¹ËsÇmlr|Kèö$YS5S3MÍÔdhšš©Êªª©²$v~³«©šªÞÈ´™ö7{gt: FƒbOãþÖVuk«ºõ½­jõf+°± +wö_†1ØÞÚE@µZ.m5jµÆë©(Ê¿,øh3ðwª,0€¿P”ëx÷ݼ ‡€<¶Ë˰ÊÊ/€Æ�³ýÁ|ðÁ¥™ú¿ +쯷�—gÍ¿ P.ßlNQœ±¦?J &8J1Agy¦)¡dJpž·‚§8#ã¼…�d”’ g¤ðþÇY–aÌªŠ˜RL3ËL˜×)¾ŠŸ³¥Y¾`œPJ)"ǘ $fáŽQŠY €b‚1Fi§()Ú™ÔâÈ@SµÞ'ôz’(K’$©2P5MÖTMS¡¦©ª*K½®ÐAZ-A”%QÕ4MÕLMUUMU�jª²,I¢$v[ÜFKÕTY’äÕ³0”¿7:û£gçãñxd?žNN�ý­ê÷¶ªÅ,À÷–À0†Cc8žÃᨳ½Ûت¾J0ŒÎöÖ_Œ�½jnT-—ªµ­­×”üNP”ÿeU€™˜k;ýo•üK4€" 8<áþLÔm½<§þ¯`å—ÀÜ]<¬­·:»ñ+3¨V^þcƒ3pÃ¥(��!DØEL(ŠSL˜Æ~T$ßùå;�VÖ•[¬úb»³2BhF!8ÄŠ¦¥Y ¼”5þç.#”BqF a2`¾»“ÒÜrS‚3”`ÂVw“„AÍ2æü�Ò8 ¢¥ÅO1KIÖ@·^ç[BO’º¢,J’$©ªüUV�ª>”{]A�ou»]±×{?QUU•eIVeȲ(÷Ä^·'p\�eI•e¬œ¸`ï‡�ÎèÙÅùx4ÆÉéàôÔØ¯V·¶ªoç<`Iü¹1�“ÁÉÉp84h¼’ìooíFn V­UË¥jõu5U~7ð£“NÀß­ +°¤(ßž(ŠÂ2€ûâ�mÏïÿYà¿‚¼fI@£Öh4j9¥ŸuöÏ@u•—{MÁE R ÔŠ¯MНT+bÛ�1ÆQ%˜¤ %1ÆŠ1E8Ë(ÍÕøÙŠ’QBY�ž’|¢c‚)Â4ÇDi$;ˆÎö‚J É(%Œ`B¬טf˜J² SBÂ#D0EIŒqŠó%Ÿ(Mb”Da”¦¨`Ew†(ɲ,µjuŽç»]¡Û%Qsdè‰bO’¥^·+t…® p|¯×E±×ëu{=vÇ‹²$É’Øëõz‚ W¯s½^OºåÜè8vãgŸ�GÆÈ8Í`‹Å~ukk«¨3‡ƒÎðÄ8Ç»Û[[ßû¸³µŸ3€µjíµ¬üŽ ÿ›VýŽUñwcŠ¢ +÷ïˆvž”sÿòB#зg¥R©Z­Uk¹®S­Vªøs˜1€j¥ú*w°J%ÏHV`e MÙŒ”"ÖX‡q§§S!AIÊÆ”PLò‘JóÎŒqÑ„ AL1f„‚Œ1a@H–‡<ãó÷ØœaL)¥˜d³/£§1Æ1£±ý¼”bŠQ‚’4ŽÂ8Jg^€½âR¯×mÕk'-¡+½®(‰’$K½ž(ŠROì1“÷/]Aè +Ý^Wè2£G¹×“eYêvAèò-ž«×ߨºBof??ÏVÏù°3=»�G†qz:<œFgë6C�Å Ó9T·ö^ [�€R¹R©UË¥j­V­m5~ÿ@ü?µ +ð»iyc pÿ@Ôó`±ÇwÞ +ð;2€Wž"éŸxµRyõ¬˜†½ °/›~’bŒ)¡aœF Áa’a?bbê@F¦8w +ØMš‚Y{-L1&8_¨�H©N‚)¦9S ”bB)Æ4cÓGQ–Ú³žCÌ^ǘâ$F˜ (Á8Æ”`ŒR6˜F~§qñCñßí +]¡ÅÕK¥ú&Çq×jñ‚ B—}´×ëu»­ßâ9^hµx¾ÅŽ t…®ÐêõÄn¯Ûëu…V‹kq·Q_/ÕY­àÆyv£ØØß7.>Ïàädð3c<Ø^>+àpxÜé ‡�¡1ÜÛnÜ##ä0š1€j¯£%˜ò»À¿ª +0‹*@ÿw¬<ø]ª3¸ÿ@ÔY +0»öË+1W)øKùt^…Ùx”J¿CìÓ½ ¶^sqï)@¹¼´´hAZÕp «^£|›6ÆIã4MRD‘#¶W—¹qbJ1!Í!sŸ±•šc6CŒqŠ&˜m椡l¥„d!L Æ3áŸPœQL(aš!³`®¿˜bœ¤ F"„  "8NØ7AÇ¥A¥é,‘iÍßjq›¥R­¾QßÜØØä¸V‹oq­– ´º]AZB‹o1là¸MŽã[-�o ­–Ðj±(ï +‚Àµ8žã¸ÍúZ©Tã8Nà[ß +:£‹ñx<§§§§Ç?3ŒÓíÝ¥_«U€áñ`0†Æpo»ºõöÖÞñ*8��FÆh42Œý;ÛûÆY•ju–6þàߢðw¯ˆ¿;Páþ�¨Û¶­ë3±mnÕ5ÕÊâ^Žñ™@ñÊåo 7 à«@ꋪÇ "!‚0ŠÃ%iŒ1ÅQŠÓg4çäÓŒ"’QB2v‰SÂÒƒ\ðc0A‹­½ŒÆaÏL&EÔÌÒJ2š!ŒÂD fì�ŠiNü“£$ "Œ¢$Ï(R” 8�ý(If `ææÄqÏÕJ¥Ò¿«×ëõúæ&·¹Éñ›Çs­V‹çVþã8®¾¹±¹Q¯or›|Ç·¡Õâ8n“ÛܬoÔëõúz©¾Áq<Çm®ž)À…ÑÙŸ�GcÃ0NN†? N cwwooþ{w®ùïÁ`8‡ûÛoWo€Ùb ã�îÜY€òÿ °�ühßrà_£(Š¢ˆ¶®ÛviÞÄ»`ص°�ûöð¼)Û¿:þgP^àó¯B€¥`«îÖÈëiA”¤±ùú8òc‚ãG1B)ÊïrŠ &„RÖ2@0Æ„`Œ(¢˜dˆb–,d#„qÌ‚ $3Á3Ê€X­S‚0&aÔƒi˜PÂ* +„Å(�RŒqÆ$�ÓbõFEQÌû€â�âlnp›¹ûêo½U¯olÔ7ê›››Üæ&ÇsÏmnnpÜæˆz}cƒÛÜà8ŽÛdHÀqÜæf½ž‡ÿúZ©Tߨo°¿.�—ÀãÑxd''Cc0§»{{{ ¿—ïÿŸÿÜÃáq·j#ÆÿG†±·}‡UfPù…Hÿ§Vü®U¢mÛ¶>ëâ_y_þ69>ëÛý&`UÀâÕGŠ^û¥òªqx« n�/� B%œ$iF8NÁ8ñ„“„¹{2±SÌ–ˆPÌ”©Y‘A  QŒ0N‹¥Ü$Á(VŒ Ź›B8C„ÒF Qr/BŒÛ@i˜¤( +Jã0Á8ELHqŠÓ$*öù°³š9¬—J¥Ùs 6⸶¾ð%›ÜÆF�Û¬or³Ï)­××K¥R©^«ßvn€ÑùçŸ�ó>àÁ``œî-Ÿ™ú??ކÃaçxøóáðçÃÎöÖÖVuoØéì/œ%po{{ÿlÜ©2I¨Z-•Ê•ÿAÀ�~Of–‹�¶nÛ•WŸê̤³„Óœ5 ”`‚B�d¥yÛ!ÓñP!ÿ“ü9B&L5Ì©EŠÓ0&(ŒR„’8A(MS„HŠRœà4I"/ˆã¨ø)Âú­·Ö—þçx«ôVí�…~cý�õû”·Þ*½U*  –ÿ®×KµÒúz½TŸ½Îzi­¾V«¿µü¸é0Üß�>f)ÀIûKççsþ?þÜøùpØ GÃáhØÙÝÞfð²*Àñî�íýñx¿Â�*ÿ#¥ò¿¢ +p£ðÿ¯³‹Ç¶Ë¯<³Þ¢Swq\wnå=oÖ¹5¦vü,0€—|òìûÞüx^\±¶Œc¿§úQœ&q§qŠPÆiGÇ¡¦8‰1Êõ<ÆÙUO({Ÿ+óá„}B)F8Å$Æ Â)BØÿ‰'¬0@1Ê‹�c„0Nq‚ÆaV†L[ã�HEI†I‚â8!q”b„S„PÇ8Ž}/ˆ’¸ðç+¢ûß­××oüo®ñüùúúÚâÇÞ(•Jë¥õÒz©´¾^z£¾^*Õ×n…áú¥Úâ£~q£ xÚÙ3>ÏÛ€ƒ“Á`pj,Çÿþ�Vàaçxh �GÃÎÞööö+Ë€'»w¶÷ÇÆ^%ÿ�â÷ ®Á#dž™J_Ñ"(Šû u^¨l¬BІ}å§Ìb B]?RìÜ (G:Š% (P×uøÓ™)(„;ù'ÛVÀÇÌT‡êöìü5”?ÓA€Mp_8<—úå¥Ò@*J2„P�z~ŽôÛÎ'�j­öÊßµF­V­-Lõ.íì¾yË¿(nh¥U¿¯å=¥Å>ÀÒ¼-p%ˆ"§%y~EIŒJÓ$ö£4�âÅ�¥(MSŒPŠò8G£Çq’¦I‚’¡ácŒã$Å)N˜U7JJPŠQDZÛÕb”âÇ£¡¼Jcþ¡yè')NqŠ’EQœ (‰QùQ’†N’(Ž'Iú–ùñB +°¾¾þF©ôÆúÚ-ׯëy¸¯­¯D÷Zi½´Vª¿µV_[_¿$ÖsPX_[/•Ös˜¹Ùt²¿oŒGÆg†aœ°½Æè/þbñ1·üc9Àg€Ï†�ÎöÝí;·1€ápöçP~} Ù¼W<ºíöN»½Ón·wšÍv«Ùåù&¿ÓÜØØÜl6›ÍM¶ ”íi5ï5›Ív“oîðÍ�v·Ýæ›<Ï÷Ú½¿ÓâÛí{;|“o·»­�žßiîìðí·Ù6±ö½öÎN»Ýn5›|³Ûæ›í.¿Ã·Û­6ßäù�v³×íî´[íöÛ8Öló|¾8¨¹Ykò<ßâ›Ívs§ÝâyþÞN“ï.o »yšµo¦‹“¹¥Åì :òË >qaÖë_™cÇ¢Ä87(åÛÁØ©ÕjùàÐM|ÈÁ`ÕÝ:vyÙ Ã8Nbœ Œâ(PìGI’†®Ÿ¢8b�#œâ#§) ÅK“$E “ç1NS”¤1ŠQœ&Iš¦q‚pE±×…Aœ¦q’"‚S”¢4Á ŠB(Î�}“§$A¥¥)ŠQG~E~§(òƒ$Š¢(Nã8‰bQèÛŽÏœ€ëëõõz©öÖËd”µõµRi}½´^Z+­¿qãc92¬Õ××^ªÄ¬¯¯­­—Jkkkkëëkëk¥•FàgÏÎOö;ÆxdŒŒ¡qZÀþþ`áÑét¹ïç g�+wööv·÷:7`häo»w¶÷Æ»w«Ö—Kår¥Z®T^?�Ä^ñ˜@ *°!EñcÐz@D~_¢($fé !„šÚ…PmÚvöö÷n€"þ�Óí;Û{ÆîÝêÜ6o ý 7?… 7@<b«m Qº5(¢(Š ßSYö­€>�a[’š¶~ €GP‡˜Àü`OÀ×’$ÁSÙJ.»[dæPàǪ܃ºÊ„<â¯DûJñ¯±¥æ°¦î.AEÚ ²-¿} ©²ôj @=ý& R­ÖjµFcöWv7<`îèÁfúk+0çõ‹‰@¥2û]YZV›Û‚TÊ Âi±=yE}“—� â8FI”$QèGqä…q–Ÿ$aÅJ1BI’&£4I1NâÅ(�ŠQœÄi’"œ $ÅIÅQ'iœÄQFQ…®¤…(I“#%Q'qš„(E)Jâ8A(F(Žã4ŽS„P³ò^ø‰ïa”øN�ÄaqQ'QºšáLÉx«¨þÝ¢”Öw/1¦¿ô)ë9¬—J¥µµµÒÚÚZ½t;äïÖÖÖY1cþÏž�Ÿ?{öìâ|°ÏD@ãÄ8 NN;�“Ñ 3X|t–ÞŽŒápЇƒáðxÐétönÀÐ0ØØc»ƒí»ÕÙæ§êkÛ Ø{Ø+/òe9ù öD’¢ Ô€ ˆ¢x(*’ f¾Þ"�€Ô„ºû@�l9×ísçohÃ&c÷€ÔDÀ!8êåK…¢»Òë#BŽ Jò6J( +€à(°m÷%^8�P÷€Ã #Dpï4@Ã0fWùâµ>óð«Tj�F­ZeM<•ê�Ã.ìÙ=_®ÜÒLP®V—îö—Ô—Ò…E(/À*ðM®kù‘ÅqÅQ…ŽçnDZo¹QäQ( Ò(‰ÒÅqœ 4IŠÓ„‘þ8M’8ŒS” 8‰£(L¢(Žâ8 +ü ƒÐê©AÇa‚PGIÂzxQ’Ä)ÛÈ™ÆI¾–3Mã(ŽÓ(ŠãÐõbßõÃ0ðÝIQÅ%aF±wåj–ÅOqU«^+Õs5oEå/­—Ø5Ÿ«yËŸÄîûõüOëkëµ—¥È¿úÙ°÷ p2œœvög'Ëg0˜ccÇ�ápØvØ’€•Å@‹"àh°}g{ûÎö^uA4z]`ajä{³­  Š5IAÅ�>øgÀ|·¶,ª]¹ ᄊÂhÿ ÷Â|‹˜ `¨ìHbWè‰"Š2‘¡¢Q?@Á=г¡®C*Š®CÚ@Ðö8òt% À‹‚À ¢€’­˜—DI’TðŠ_†aûåo8¥R¹R«Uk�Z­V«6ªÕZ­Æ¦¸ †7Nc«Z��ÜôöˆŸ¯*Ï`$®TË¥%±`Þ¸"¾Åõl�-Ò�’(]h¹¾ë…Aàɦïù^Fq%q’&qÂ~ÇŠ£$Žã8ã$.ˆ§aEaàû�ïM<Ïó½À䀸aÆiÇq’ÄqEqš$I…QÇñoÓ8ŽÂ0Žã8ŒÂ8 +â(°-Ïsm?\Ëõ}ß�â8Žâ ßwMÙ\?¨×ë/ÍÖg$>�ýµÒR +�_íŒ&¬¿q“F,�µ5V)(={öìü<�þó:£Ï Ã0NòÀ��1Z>Ë0úyÎ:ÃBØ»E4 ÃŽFƒííÝí­í½j©üÚ@w~X“ìç  uÙö=ò¢ tÿTD¼PPXpKì>—lBEQ ÔŸÛ ¨ÜPêN¾$‘­é@™ˆPYàÛ¶!*ð^NàÙ?Ķ?îôxô‡¶(I]Aàñðôué¹2«JŠ2lþo¯8̨m¿úŠ“ïn¬mUó`gÃ[5fþרÖ V)¨Õ ZAuq×Gµ0ž_ïsÀJ¹”'Õ<‡`/ ´’”oaW�µ)h¶ç�ïGa¸&Иƒž«©ªe9ŽDq¡8Ž“˜ÝíQFQGQ'Q…QFq”ÄQÊqÇ�çX¶mZÐ4mÛÓ6zÛ®GQÆQ…~ÅQ‡qEqR0ù(‰Ã8Ž¢( }G³S³l×±TÓu,7pƒ0Œ#ß Bß³dÓ_ØÖã×ëõzí@)Oß×—ó„µµõ¼ +�‹€ëkoÜ^+,­HÏXð_œÏ8À †'Ãag0tc弜t†�a§³·’äáoÆx´g{wûÎî(r¿×[tŠI(±ë_èvÙÍË\@·'/¤ “ët¨÷°%X(…,Ýg‹D›¶D t»‡€¯Eý¬§È¶Ûl¡ „º®€>€¬AXy› ÝV€ o‹¢ØA"@ºœå*@œèGW¯8L�ÙÛ3^Þ’[e±]­V·Uö[µZ­‘#@­Q­U«ó…¿3—ÿB(ž¨Íø@e±mˆ�LµZYšùË7‰-Î'¿Bô=K’-Çò?Œâ(¼òÍrËõ\ϲ,ÏQMÏ�¢(Ž£0¢0¢8Š‚(£0Š?Â0ŽÂ(Œ¢0Š£8ŠÂ(=×r\Ïq\DZ\Ï5Ë ‚8 +Ã0ƒ(rÐà ˆc¶“7 £(Œ¢0 ~EQè{l;§ãyžk¹ž%«^àù~à{¡ï{–Ö3=Ï›ÿõúúÿîå©{þÇ‚¬-–ÖÉÀÚí½kkkëkëëëk³šÁùùùyüì�çƒ½ÎøsÃ0†ÃNVâ?ëeè,ù€íu:þ¨3« GFgk{wwko¯2“† +sè×Î,�g|Jw$0±¡(ˆ¢(Š=ápÒPò‘~©ëÏœ€®Cl0‘úBÐW@~‹C ‚~>HbOv¯Ÿ‹w?Õ¯.áo&Ò$€¯!€¶m CÀU¿@?€Ë6EQò 7Q� ðR‡úóW”†30^ÕÅÏîüj­Öh°eî�Fî÷Q­n5Ê•rµZÝjÔj[,Î+ó»åÅúaµšWØr�›.` M‚ß +\ÏqMËñB?ðÃÀó]×uƒÀ÷ý( +ý ´zª“_ßaFa»ˆ#?d\? £(b¿ƒ( £0\Íñ? ÂÀ÷ÂÐ÷Ë ‚( +¢(ý ŠB?Œ£0Š£ Š"†qù‘W{aèù~†^„~x¾Å‹Žïû¡ïyžç:TÏóæ‹º&këo¬•ngïkk¥Òzi�•×V´ý7Jëù_«××ÞÈÓýÛÊ€d¬­—އ�óó/ÏÏŸý5ƒ�g 矆aÏ`%˜Çù 3è‡�ãNçøx:uŽ;Ç�ã\d,`|¶g{{÷Î"ä™ßkÈ~<;]IP5[’ ½#u{’j¶m±ÛíJ¢(‰¢$H’” |:„êG*„ª(A þˆÐ2�$`K’$ö¤®£©+й–º@’$Ȳ/mÿê¡ Mh«P…¦ +€|OP%ø5�$ @xO’z’ä~l±+ôº’$I’ݶ�$©P’eU·uhמἂÔjùåŸÇ93zyØ×ªóM?3ßÿÂ#lë6¹ îííÇÕeò…i#gùxŽçZšf9l�Và»®cš¦åú~èiš¥õTÇ÷C?ðƒ ŒÂ0ƒB<Â(ò? +ƒ üˆ­ßŽÂÀ÷<Ç4]ËtÂ(ôC×Ô,Ótý ŠÂ Ì÷tz~†‘ïyQaú~²²^†A臞븖cifúž¦ijK¶\×÷}×u݉cÊ‚ä:îâOR*Õß*­­¿_`ƒ“—0€Åf Ng8\ ÿ<øh8ìt:ÇÆ0'†aìÝÙÞÞÝþ‹NåFqèõ€«« xت­þß¡=yqeN&Ïõ««êĆö¼ÒmÛ¶á#¯BhÛ¾xqeO^Lþ«)Ù/&“¿²_H¿½´¯Ì+BøÚÛ¶íç¶=ùߺöÚW“݆A» ©ðj˜uõ¶'W¶÷ÐþÕdr5y±óbb¿€¶­ýüñ͝^@êðùÕDµ¡=™Øm݆šWÔ í<·ÿ*x1±'±=¹|Épº·g†ñ°R«Õ¶jl…cÔªÕ¢¤_Y +祅?µ5jµùê€âj¹Î�o{¯ÑhÔ–.Ú‚ÏÊÖʱ×ÖLËq=ÏóÜÀóL¹ÅmÖe7ôM®¾)È�Ip¾ïl�v†Aø¡†¡ùžøAàû��ïû�ï{.T»\]r}ßóÔÇKšã¡çûžAàûaø¡ï»žæ_…¡ï~^àûžoYZ�Û¨?t½@ãê\KÔ\ßw]Ïs}Çul¹%[ž»°¬wÂZoÄîBsp1´øIëëkkk, X[[ƒÖ^žG”J{�Îà¤s2ì<;ÿòüË<8???ÿœ¥#cxb ;ƒÎ`pš[ù¼ +އËÍËÀñp84Ž��ãáÈØÛÚÞÞÞtªóÂoµ\y»úöëX�{È2@–ì\Æ×/Ÿ_þ“ x €\qƒÌqõcáouýë–uØWú°iC€$ A ö!E¿üs» Eñ�¨ˆ"€Í™LЇ^ê_-MŽu¯`¿øPÛîÀÁwôËËË>@EÐ?<}€¢š¹ØûÂ+û¥çd�k3CFnG€R©¼U­5ªsØjäPÛÚjÔj…}ÀTæMC•jµÆ¸C£Ö¨åOnU�Æ\ï«Õ¬Ñ ñÞ{ï½×¨U*Õjåíê|°¼8!\*­ì·pLǵ4 Ú–kY®øžD�ã$Çs5�ºÀr-÷Ês=/زí <ß÷êìu>?7 cxbƒÁ`Ð95FÆÈÎÆÞÞÞÞþÞþÞ> óaçxxÜÉE€–UÀŸ ‡?3†CchŒŒ½;Ûw¶wf+U4…T«¯#@fYHò€@^^þùå 8� +Äyá¯?�yo P!„—¶®_Ê*Êe{2ó›HLFTtý¹~Ù»T€ø€-éÅCÈ3[�Gàx�mëºdC~Ý´u�KŒ´ÿŠõ‡º~yi_*ñc<8 +€}XT „>É€®ëƒÁ ÏÎ +0NoƹT©U«µjµQ›íýe°U«V�ê-PYÐÿóç˜jИƒÓó/(HÅ{�÷�F£V)W+åJuV\\IeL Zš,«–í:Žãzžë8š*«² $Ušf:¶ÃVk³Èô=oÂVmæ°ë±«Ù÷˜pç9žëZ–*˪¦BÕTUM³LËa«z=ÏuŸ |–Ã{žë¹žçºÞÄq]×÷Ïõ]ײ4Y’$YS%IÖ4Óq&.ÛééXš&¶$Ëv–°Ì®¯Ä­aœgggs%Ý8ÞÞ«VÛ{�ÎphÃÁ``gcc÷ì«‹O·w�¯þòbd ŸŽ���Y°ïmmÎ�Ñh<�eú““aÿççϾ|öìÙùh�€1281F£Ÿ/MôïíåóÁÅ ß™¥ÃáñÞÞ*ü?€íýíA§Z.—0°üÀÇ’Ä’$ I6èC _^ê®ÿù肇¢À&Ù«¡Îá#piCø[ BåòÞoà$o @}ŠþçðH×�ˆ¢(ÂS€ ÀÇ}!ìO.uÚPÑ%x õY ¡mÿLW]‡ú'Œ�<è‹(@õ á„ðR?z‰0¸Ãá )` +í¯€Z­Z­6ªÕ[À|x¸Ze àkŒÌÑ¡h˜@­Ö¨5Þk4Þ{¯VfÂâK=‡V´LSSMU’5hZ–c¹ÎijKÓ4Mþ PUÍ4ÇtËq]ÏwÏu]×qÌ|·ãº–ãZ®;ñ\×õ,×q'¾ç¹ŽãX0ß´5“íÚsYZïz®ë¿|Ûs�‰ëº®c{žã°¹®åZ®e™ª¦Êª¦ª²išŽã86[ïå@Sîñ=S3Í¥ÿ[¬7JkëE«¿1Ÿ�åp<¨c°ß c0Øggccÿ�œ}õÕÅØ >eUüýý½Ng¯º=8Í`?Г““a'/ä2àx°×ùì|42†ƒ¡1tƒÃ�澞£ØÏ/þ¼˜I�Û«°€#cïÎ�]ƒ1VìaÿáTʯ%X:ÒB]‡}xy ŽŠôÁƒ>€�€( œ€(¨ëºþO] ¼hêðk Ê{¬R +àPQZððþýû‚Àqœpp ˆ"à�(J¢È ¨ëºÝ³” <ú�2«¶må(‡‡ŠÎÚ AÿPÅC2 =>RìÉ+îÿ9œÀ¸ ˜^_¨ÿµÔ¶j/IŠUŸ³çy–¿°0o)È5ÖSô^•r…•Ë¥•¥`¥ÛR jš,ʪ©i–iÚŽíX¦iZš¦BS35Ó²˱-×r,Ûe+tmÇ´Ó4]×±LËrÓ¶˲lË1-˵‹­Ù³LSU5Ó´LÓ±,ÓrLǵ,ײLË™˜–i;®e9ŽcÙŽe9¦e9®SÀ�iZ¦å˜¦fªZ¾æ×µ,SsLGƒ¦¦IÂF ˜« »Ìz®à,ôÏÎÎÎÎFÆpp“0,Àéöž1€OƒÁÝ`ƒÎÉI'/.Àè|42ŽÃ§+"à~g?Ï:�½œä*ÀñpØÙÞîìíí}x+Œ�Ý;wöÇ»û{•üþ¯”+åJµZ~Í;¢üÛ>� Ô�¨O Þ…t¯äÀ¢ØEûÁw¡®_þ¦ `SWý’)"”ó1~x(þð@à¸ïÖëoÔ¹wA7tEQ”$(°¯Øöå׿E¿Ô!��»— ˆ@�ú?A >‡¢(°>cõ�d 67tùõÛÀXÈŒ- T*—*l+dÁãµF[/gyKßü¹"i˜‹ÿµ)@­¶3ãá[\Cnì¸S5¹Û“TM55Í4M¶"SÕT5jlß®©™–m™–ÉÙ2-ÇÔ˲LË´LÓ4ËÔ4ÓÔ í²à×LÓ4US•¡ MSÓLͲ-ËÒ Ó,Ç‚–eZ¦fjš©i–f™¦c3ä0-S3US³ ©jÔTUƒ&C�}L•…:/É7j³Læ3ÎÆgg£9'«°¿»g_]üìÿ¶W0Fr¸�œt:�Îà¸3“ž={vþYg¿3:Æ`0<9vƒÁðÕU€Î°óÿ£îo#Gò স±ãŽ�Àu{ƒÁ›�\žGßì too�î‘Á@^€÷ö{{ÿH{{ooÞ¼‘º^®â~C÷Þìíí ê+õ›7{oèÞÞ`o�îíí½¡{{{{d‡öoÞÐ7{o¨tÞ¼¡o*•1Øìí Þ¼‘ë;ß Þ¼Ù£ƒ7ƒ½½Á›Ý äŽßÁÞ›zyß΀ø�õ–˺žõü ²üedQù(€ÃC'uœÃÑùò©ƒ€Yšf‡£‘“¦Nvg€¼£L†þdÎÿ½€0-íÔ–k%dÛˆì$ûþ`É1#——ÑìÝâßÑ[zѰßöŒ<#»Ä'dr]†ý>!ýËèòòÿùOý×W„Òè2º )!”^þ껥t·ÿìYßw··×Ý�×ݪ.È_ÿÁúºûÈ÷ý�Ò($„ÐÙ¯//ÿéù�„PÑK†„Ð?\FÁ[ÚÿÔ%ä!¡OgQ†!!ýg8‚%³h&»�/£ËËoožÿ˜_ÀŠÈrÇÉò²>gg¿=-Ót$Ÿ�¯«@†(ŸN§_OÏSÃIùë2=:<ùì³Ï>yÔéx�çy[[Þfç³Vgkkkkë'o¼ÞóÀ ¼­­-¯×ë7Ÿ`½*›®^�*¤N¾ €³²L¿-KÁr _iÊó2=:L�ŽŽŽò<Ï_-9üš.û´;‚€•X¸õôðåå ‹B ?�ßó:›noÇ—Ûóªy�¿;;ÁÞ`'‚�¿ÞÙììì�ìì ;Á_Ëu¹$ ;;½`‡ìüõN°3æ+:ë…|ÕÍß vvv;dì;ƒÁN°CA°ì;~@‚ v2ØÙÙ þzGîâí;ƒ Ø ‚`°3ìø½ øÁNà÷|ÏÝ|ôß­»Õ’ÏÕóúõë¢(^ äyúåµ  s; + »W:‡Î¡³ €ZçY–�³Ã4?L»NVÞ©§ëŒ$æ.€aÞ,si‰$”FcQBþ=À’`žÍ®¶èþl’/dÏÞÕ»("û„J¾ „B)%Wÿ@h4›…¹töî]4£ÑlvõÍl6›QzùÍÕ (¥¿$�ﺭG­u7šE³àjE4¢„|·ZÏõ®h]íîGßßÍöéÕåìrvÍöéìêjön‹ÒÙŒøžKÜG.%³+ºïýÇ�Rò¬JýÍfôjÌfW³wÑ›Ùì?þÿ�ÿãÚ-MóäY^ùÕ?»Ëøío[–å*Ц_)/_—éáazôw5þ®z+ÏÓ4Ï›U¢É=ú’ÐêàÂÜX²´¦¸À5{ñ<×sµ:žëözž×“ër{^ÏóýÀï;ÁNà½Àßñ'žûÕž½^à÷z~ôz¾ç÷dWVÏùÙn¯×ó{½ÞŽ¿ã{½ çõz½_~žï=ÇëõÜ^Ïë½^àû=/èõ‚�À‚žßÛñ½ž'Wtö‚^Ïßï¹=·×ó=¯çnºî£õÆzgÓ»y^¿~]’  À� +_WÙMP,)€ôÐI�ë>@áØNq–åùaš¦£QÚMG÷ Šü¹ã8þçέY€y%ÑYntT:GKøþV.ÇÌéþVU´èè¡>õý~¿OüÀ¯G”²ýg-BgßE4Ú ÷Ãý:Ñ¡Ä÷}×u[­V«åòŬGe‡ !ÄÜrÝO]Ÿø~? wwÃÙV5MˆîG”†”FÑþ¥7 û>ñ]×w?vý€ø„lF}¿ïoûó"J=ºÊaDÿpuý€Ô©Pû9^ 8iºL€éMt»ú<-_—££t®ò£¿{]½•Ên²²,K}nÿÍæ-h.e–,]øç¸6Öl³ãn¶Ö×[­ÍÍMwÓÝt½ÍM×sÝÍ^¯×ÛtýMÏs=o³çº®çzÞ¦çnVÞ^ÏÛt{=Ïõ6%Iz=×í¹ž×Û¬6lõ6]×óÜÍj¯çº›®Ûó\ÏõzÕ®žÛ‘ òªÝ~=Ïó<¹´³·)·{ºž×ÛÜt{›ùÈZ­V«µÞh´Z­Íçõë¢X6ÿׯ_çÙup(S�é*º¶SœY6Jå×߯lÛqœÌ±gä8#§Àаª::Ís»ï,ھ爼·´ ðy�èÑ*èûŸ“]™…Ÿ²Ýj´ýæ J÷åDaº†ûtŸ†W”ú¾¿ívZë-Ï÷}²Cg½PÆîdÿ^ø¬õ1u·åèa:ÛšUqLjþ2¤4Š¢èoBú¾O|×ó刲¨ï÷ŸUƒÉ$3<9;,¤”Þ€3wæèÚË£3'Í+×ïô´<»Et1DyYÇœ³×y*�ß@ÕZ–EY”s /g´y}�ÀBþ7”ÛŽ´VϦÛé´­?ú¤åºnÇÝܬö`nºn¯çÎU¶7— ›Þæ\Yoü ù¨uËyýº¸é>D|yStïPΡã¤U-P] Tà8ÏFi–¥©#°°»N×î:Žcw%F™ƒ¤ÿŸ9™¥ PoqYFPä…TvQGfÝä1Ÿ§}¯ƒ€4¤Þ%�7ÙJ dû™œÃÿy@é“]ê_‘¾ûQ£Eè¡”Ê�@!¡û—4 w£YØÿù¶ûi«ÕrýBv‚�Y�È€ð ²CÂÝþÓÖvkÛ÷Ÿ²îo]QJ ¡! Ýß§!%Ô“ üÀ÷}�¾ïû›a¿ïû®O(  )%ÑÖŒ„á. )}s½€4­pXò£å<@–;i>Z +Ü@¹ ^ž½.ÒÃÃ/�þ®GG«(ËR ,‹²XöVb•¨7Õ» +߀N«Õj=Zÿä“–´ýÍ…oàõ\Ïõ*Kõz›®çy››ž'?Í“èÉÏÚ¬°éI[vçŠÂÝ”æíy››››nÏu7[^õ‘9\<¯×s½^%36½ú�t6+mnv<×ÝÜÜÜì´Z­O~¸Þh®Ò’Û¾–nŸE±êEžgQ‡ïQ§+u‡Žs˜:Ù’˜æ]»›ŸåK + ÍÏÏVμÖßvìJdFÕùëdŽn;Žm/! (Š<—8˰‹"?4+m÷½À’اd+ +wCZÏü"„Ä“…¼r/à[ÒFfÁ·á3÷ãÆÇ}zEé. I('‚D4¤¹ú'Ò¶í¶Ö[•ÏøWÞö�uŸ†$ ”îâ>n¹ÛRÎ϶.wå‚êòO#ö¢Ýjð­¾wЙíöŸùn—B.)!ärëmXókö_”`îÔÈó|i:ZÀoËò,¿ÿö«Ó/�´<+óôËüðèè(Ï_W1Àü&ʲ,_—¥|Çë¥"�ª@*€Æ{Ði­¼t:­Vk}ý“OZ›î¦4]×õ¼M €ž+íÙÝôzÕzÝZÊ{nÏ«?G +üÊj{®ënn.®òr3¯ëɯóz®ëv¤j¨>Ås7kô*ùáyÕ²ÞŽ[‹·€ÛiuZŸüp½±¾þɧ­NçÚ­(^¯ºÅë<}ù€,ÀÑÃc2 è:Yq² @ÖEÝâ<ËGéá¡#ÇÜL.ЭðçU ÐÖ«vÀ +2¶�U{�ó¼(SØEžgfõ;Uæ#�¾‡1€%£ùöÝÌ‹f %ÿðt6 ”þñ>'»$$”R½�"Bô¿£äé§?ø4¼œ}ñÍÛ«Y}K/gûÑìòr]zI‰ÿØuŸQ:PJ(tž}üg�uŸ|C£¾ºœQJú®ïo“+Jé»­Ùìmty9#³Ù,Š®.÷¯þãÌ»Œè¯ª¡¿„RBß�­?„!!þ”ÒËw——”Ò?zßíÓÙÕålvEßì/Ÿ|‡µêÇËQÀ<åÝQíHp©Àï¦ÓÔHOÏÊ"=Ì¥Õ¿Î_ÿÝß] eYµ”Ì‹|þ¯9d% ®ë�k¸eᘼèÏÿtZsÔêßõ¼…èÕVú—‹÷Wf{¤«_`³ãnº• ð<éx=×Ýìx®Œ4,)¯çz½žüî›^Ï•þÂfå ÔÔØÜÜì´6kð³[Àu xH ¿þzúêá1€ +éaZž”¯‹I�ܶ»Åyžfrh:êÊ®àÅq§kKÏÂqÇ9v*@ÃùsÛ®T€mÛ¶}œæy!ç¤t‹üèШÀÒL°ïõD Ïó>{Þó¼Àó¶¶¶<¯÷Ü{þü³Nç“O>é|Öéx[žçm~Öñ~ò“-o«õÃÆ·¶ó<¯çmy[[Õ}x?îÉwmnmmnõ¼-¯÷Y§Óé|öɣΖü†�omýxË{þ‹-ùŽ_,½ä׃µÈæ ;Ê—]€k + —8�þnzžéo§¯Ë<}Uàèèè(¿áÌ�çE^EQey&ß7oÚØhÜeY,iÿVgsáT®öÜß÷znÏ•×uÏõþrÓõ<Ͻḕ P]§ç¿Yé ¯Ž+,\·#}‚?ÉèÔ� +à~ö:Ïó¢,ʼ(ê‹<;œ×Û]Sºi;éáÑQš:iž—eÞEÅïÎ3h¿þÝô7yþåÂVm»€üäNêt�tTU‚¤iúºÌó¢8)Ë“ó³Ì¶»ÇgE&õš¦©a7`w»¶ít»ó,€±€.cÛÒC°íl>¤( w‹ü0µ«Qokµø>ºK…€aôm0£¡ŒåïîîGQͶè_¹®ëûýÏ}‡â{4HðW­�-B¥oÕämºGwI?Œ‚虿í¶Ü0¢$¤Qèû®_-„k¹®ëJ[”ø�Z?“~ÉþOêAb³èm}G)!„†!%¤¿K÷)}·I|ßuýj"¡äÿ c•*+�–g€ä¯_ëÀ¹Èó•v€,O�Ѽä쫲,óô ôº<=—8Ÿžåùa.­þuþwGGGG¯o 2ÿò8_�*•gåtš~ýuSoê�Æ@gÅý—.@ØÜ¬=o)°Y+€Êöç.€·¢$*¼MoÉèÜp6kàÞî¸×\€ÍeÀ«b›­O~¸þƒÛð³N^©n9 _ÑFYšçÙáQ~˜ÛNfkšaw�lt˜¦iz”eÞEùô<…Ýüwçe~XY×±mÛtººáœWÎÓÃÔIÓÃ4Ͳ,;̲Ã×eyR'eqRœå¶mgçEVMMShð&ìn·ëØõä�,›Çü�]Ìy ›w¹t§È$�FCàû_ +†³%!�h¸¿†ûQ´E?!O}ß÷=ß“3�¼ÞŽï¸­õÆG}BÈ›z p´OÂ0쇤Gým÷ñG�Ã( iDŸ}¼în·Z~k}ý£õõõFË'ÁU§ªp}Ÿø„vd¼�Ì"B£�„t6 „„4$aØïËÅ…[Ä÷}ÿ/]×÷? „Hù~@%d°L²|ôº|HÀI�ÚlóÛ¯Êò,ÿrùÃy™¨(O§Ó¯¦©‘žNå Ùü(Ï�ªÀ=Àë"å´œfé×_Ý…p¥íÿúrà[‚€ `IÌãõ•q×&ÙëÝtz7PÙõæj|ì²{5 dŸÌè% Iøë�„Ä‹|·õØ}¶EÄ÷·Ÿ~üQËm}úXz°ëÿ§u×Ý$��Àk­¯·ä¾Ú!>‘CAÃ0ŒBº?#»¤O"BÂ(” =âÿ¥ï»®×óeÃ`�’ª©P*�ùKžçY^ð¶ Àò÷,O�´¶ÒÓ¯¤xµ €"7ì¢<=¯�w+å¯�ŽêtÀ—iºêe9'BYžÉwO§sàÆÊÂÀ¥q · #ÿêÜÈl.À{¸ 0 K.@ç† ï¯ãÉ·nº›• Pló† àÞéü¬ÓúÙmöŸ¦i:JSÇqRdgŽcëºítǶíî(ËòC[wŠ¢ Ðáy™ËÅ]v·kÛ¶¡k¶ƒ@·È²¬(Š"O�Ry_£Ñh”ŽFiQ'EQÅIq’Ù¶��ŸäÙüz€‘eùÒmžß«àd޾p€]»¦c›¦igù(ÏGy>ÊŠ¼ Œ4OWP�€ý^ghÉIÀa´Eûͯvé,ôˆïþ•¬óI@|¿Gü^àûîÇ��|9ö“„QEt·OÃ0 w=òôqk»†Q´»þƒ�>þô±ïº-×uÝŸµZ­ÖGë�ÆÏ>Ûñ}ßmµÜ§}ß÷É È,¢³($d?ŒB”ø»4 Ã(ú›($aD<Ù–èzµÉ?ÿLß­A»»:úy^~:ýê|Õey™Ý¢(ϧ§§_ÎtšwóüUšåGG2°¬VÿâÅYY–eq~6�f_ýu· mÜ�—ý)Ë¥?«Q€Îr`Åp7ç"À›Çæ.@ï�.ÀÍ,€{ݸ5 à½? à]O^@ëÓÎö?o¿1lDZMM7LÛ¶mÓ¶'ÍØyfÃ)²Ìqºv×¶MÃ4 ¬éŽ Ð|�¯ö¿€ãã¢(Ž‹¢8Ù¶���eY5û{ä@`¬îŸgø+dΪpÛ4S mÛÌW0ÊÓT–×øP HÙGCB¢èoö£KRBÈl‹l?}êù¾ë“€�ßHàïøÛn«ÑzF¡Á$ú›_…d“l·>rÃ(Š¢g?ø³õ�Z�=ßu]wÛw]×u[5­Ïˆ,ânW#B|" £(¢!%4Ü%Q†QDHèû~´Eäf·®T (!Ä¥áîÒ$r’åy–¿*_è¤Îõ @n£å4@7­ðÛóéô7ež.• +gy‘Ý2/ϧ§ÓÔè–Ó¼›ù—÷`%PÎ@YžŸM³¯¿þº ÛîΗ…Î (·g¸¦®‰ò… ð¾,Àm.@gÙèy•iËÀu`ž| À£eü¬ÓúY«ÓÉnžQºV7 Û¶uMÓ Ã´ Ã�—aŽchF5™ß¶ Ã0 ]š¢Û†j,wï:ÕÄy[JñIpVdõþŸÌ� ®À™+� +¶óqÇÖŸ8ŽýıMÛ¶u]×Á2€£|áÌ­ÿ{ €_/N]zaÒË(Ú�"†„„tk×ê{¾ïûrŸï˛ے1€Ù€üêrŸîG„ø4Š~EÜݧ­õÇaD£èÙGë­ÇO·;îS×w} ·õñZŸ‘€îúú§î¶ßF:U / + ñ£¿�¢Ù†4 +wÃ0”/;¤ïûO{n½w„xïB|BvébE!DÎw}U¼.¨Û$Ê<Ï dååR!@íœýv:�–åÒ@ŠÊè–y9�žž§À.§¹�åù—GGGGG¯_ß­®ygeQåùtše_ÝíBhw»]eièý¨9pK`) Øû/s>$ à­d¼;³n €Uàg­ÖÏZ�VzËqiÐò˜¦¡)JÝDi˜¦i;º¦;Ž®èOÇ4¥íëhš¦44SW€£›ŽóDFðVú޳,“"@ ??©²ŽTÕèÏk +`€Çpê� Œ˜ŽiêºÀ5Ø.)€ï7–’çQ4ó(¥á~FQÊâ¼-ºýTöï÷Éî.%þà•;ƒ?ý³�IHvÿHiÑ}JÃ]â‡!�B—<~Üê‡aöÜj¹Û¾[ ñCßßvÝÖºûÈ'„øŸ¶Z�ýg¾O:$Š( #JCrÒËhF©ô'Âè—?ï÷ !W[¡Ü @Ù )%$¸ªzhHCòË:�qx”çYžåE¹H³L E£"›+€ΦÓiYæùb2ÌH (Ëéô|š®¡bšã4ϯàèà†Kpvv>÷ìn·›. U”Æmè¬ÔÞ–ð\×Ûü¯˜p¯mÞ]4×}Y€Îõ,ÀÏ:Ÿ:·ÛÐu½©äxŵF£žÁ¢ëº®›@ÑtSkh¦©7u°¼¡UÑ5EÑ5Ý47 ]7l{uy_–gYq,Pœ—Y:’ñþCdž3Êî€i;Žs\¹vå8¦ãØóryV /2P^,bвØøýÀr·)¥[„� $ð{½^à“Ágþ¦ü­“ÙŒø�çÔ z=¯Õl|äù½ýý A@ü^@zžëýÜßô[®ïû½À]o¬¯⺾çU¥©>¡¾Ûi­¯7yþóÀkµZ›®ëúŸUÁŸì¾ïôd‡ôz=¯çKÑI�Àó67ÝMŸ\ÍHô‚_ ‚ ô¼€� èÕs&òãj4ã�J€2ϳb„ÒÅ܉ÔIó¢¾PO§e™åé\TAÀ¼<=ŸžNSÍȧ9J‹ìH`Ù8\@Q–ùÍÀÙ4•@€EöOiÜ€Õ"à +`µè_Hàg­ÖÏZ­NëSûÖcêz5:©ÙÔ�¦­5ªz5bY×E××mcc£.³^Sª«º¦4´FsC]1�¥B]Û¶¥]gÅIfÛ(?+d@šf£l‘0m»¾™æ’ à8¶ýçŽ-K�]â*U O@Y‘¦©ñ/!ðvq®¢«o¯¾{÷nöŽþ#¥W3Ò¡3B(yö9%ä÷›�‘o£Yø.$ŸÏòéºK¯è›+:›‘�]]¾\]F3J¨ÿ8º¼š‘Kïã�]¿éß'{{„PJ=ŸPŸ†¾ÛrÉ`¶3£�·Ÿ‘€Î(½"ôjövvµóÝÕìjöÍwß;};£” (‰¨ëBHD(¡„üž�Ùýö›«ÙÿòƒÁÿkðnvu)×Ìf³Ù,¯V<¼*^�:y8Ìó"Ï_¹1*ë-ΕX@ž/vÄ�Fy™#»(ËóéW_å°À¼h€Wiz˜çÙª˜‡Îdb`:�¦K@š¦K¨R�÷fZwdÜ?9 àÝ›�½ï/ú€,@}ùoµ>혷Ã0Œ¥ê× ¯À¼€æšÀ†®ë†nÆ’Ûv–W ÈO²®mŒŠRÀI3Ç1t2ÇU2Àqæ_'#�¶ã86XÔÛ±mÓ6–@–Ëåyj”åNšsûÿ—Œèe½ä+!3Ï!Û¾ÿÌ÷ƒŸBfä—ý>éû>í¸ë��ŸBéî.Ù¥d—îÎHÒ�øÛ­õmJ)ñÝÖÇ­§�|·NÕù²­×ßÞÝþØõ yþ�¿¾Þr}WV!J©GiíÓKÒý�ø®+W ¹¾/wû.¡„F»OI(Çï.„S €,U¼.€–ʉÒéQµ$+¥ȪJÀt^®s~Y–9²‹¢œN¿ú*Gå¡@í¼Îó4M�®àu~38M—=€4ÅK¸õ,‡[­ÎæmYï¿aÀ“s÷ö,Àu sg!Ð\Ô—ÿVëgÆmGšxµ™µ@£!®`Co‚kÐÐuÃÐ s ǵ¸?ÎN2Û6²â$sœÔqg”:Ð�ìð0K�Ñh4¥éBýÛ¦mÚ¶“9¶.’OÇOjtгy i‘ÀÎò…X›/‚\û~�Û§¡4¤��]Ò—Ø%ÛþÏ}ÿç¤#m˜ôé3÷©ßúôã–ëÓˆ†d7¤t—õÂ0ì÷Ÿ¶ZŸnÓýÐw[­ÖcòÙ_¹u¶Žøñ‰ÿÔÝv[Ÿº>y>뻟ºî3Ù†»„Rïj?’„�þîö§-×m=%®ëùý>!Ï|ßÝÝ“óI£p—’�"J •C(¥‡ùáažgyþ*/s 9y‘×Èò<ÏŠC”YÝ,‡AJL¿:[@¥n 8ürÒ‘xu]dK(Ê¢—©:B~Þ¯Üõu}ýSBHH÷ Ù•ŸMfÁ¯Bâûî§.!d—úëë·\¿ã÷üùÌÑ€úÄïûO··××[äùŒRÿñ¶ß¯–��R¯óGCÿ±O¶××?Z_oí¤ý¾ïÎäg’0šJ®ÞÐ}JgQT2%%lÍž šûzt„ÒRFø²‘@özIdi5Ù%“Þ ;/Ëéôì4GFvžÛi~”•Ë.@š¦£<ÏE€+˜ë‹4]öxjŸ¾G´Vò€7*W +�ðüÄâÅÆœ „†5Ú „,Ì”à‚1Á$ãœaŒ1à€1ÁØ †ù2°qÆ0¶0Æ!¯@0†æ‚3QŸ8®@«óiç.Èej@kjè@®[½ÃXÄÖ®)SŸ‹€%ÿâäD†Ž‹â$³McTœdÕ¸Ÿ4Ùè®T†mضaÛ¶mš¦iÛ²p ¶ýÄ1@Èò,�F£,Ï»:èæyš¦fåÈyÒßPJ÷EHH(�‘�Ð+�„ʬŸO>#„„¿ õëˆõ}×}ì~êÿaàº>!}Bü¿rïÒ(º¼œE”\Ño"9JhYeù(Ïs[CÒ>když£n!¯ÿ£JTÁÓß®`¾ &/Êóéù4G =ÏQš}yttTæ«8ÌóLÚ¿Tüe¶è(ª@úõ×EåHpzú0¼¿/�D¼¨€Á +Ü ÁæXR†·àcØÂèJ£Ðm¨ ð³V«ÕùYG.P¸qk6µj¬j³ ®+€1€¦v—¨Î +²,;9>ɲL §(²ùúßÌ »² Ð0lÃ4 Ó”¯l» +ý?©b¦cš¦m€ú,ò¹ @7Ï�Ô1» ë<À÷½°·µõ“ŸlmÊ™ [Ÿmmýd«óYç“Ï:Ÿuþû­Ng³#ÿ:[oÓÛúlÓ“Ÿ»ÕùIg+øÉV§Óy´Þhv~ÒÙê<úacýÑ£Îÿ(;þ¼N§ÓùIg«Óét67[�ÖøÈûñsÏëüð‡�}ÖélUŸöãú‘l}öÃGrÖ–û“ΣÏähÒÏ>yÔùñÖO¶¶¼^Ï—]ˆõMž,«Œ;ËóÜVŒÑ26�£n‘e£QžeÙò$¯²üíyY棴*8ªö¼Vøª°a:Í�´È+äù¢ àè:ò�íÿárß'ä¯üA@èlFgôêòr6£oÿ¼›IåpEè7ž÷–†——QHÃ�’]:£³·ÿéÛú§àrvuõÍÕÕÕ?ïÍfu ŒðˈŒ¡i>ºE¼Ê³Ñ([åWžž�Ÿ–ù«y–�ò¼ìÚùQq>=ýª´azž£Q™§GGùGsŒ–<€òuY¨€ðÛé4�~]T€�¦ijŸžžNß§–pk/€ç]3ÿk +Êg ªª*P u'ðƒ@Á–?BkraÂêMUú¯Ùl65M� `΃€w*€Ï£€Y‘Ù†áäÇ 8¶VVýŽ�a¦-`Û¶mJTs@L`Ú¶mšº4y› O ©ÇTê2€ï1–cdâï�BCýxk? /£°ÿÌï‡Ä'„„aôëÿðöÑöS÷±ï÷ÃÈ£þç„�jT’g¾ï’ ˆï~¼þØõû$¸ê“_EQî9äk—„¿¾|ëúŸ¶ÖÝ�FÑça«õT®yîþ2¢aøK²ëÑÀ÷]×ÝvÝíYÇõŸõ£¿ «e#D®!ù§ïJwÃÙ~}Dd€‘ü=äyŽlPà°R2¬7¯ôKÓ£¬.Ù;ýíùiYäY팲,ËË®�çùùô«¯JvOGvVæ‹b¡££ü(•§iz˜å£×K8›ëг²,‹ò|Z~9]ñltzúõôß.jïl¾·ã»°¬Ô‡*v?–þÀÓе՛ÜÊÒ ÙljMíº¸%  ß¡–b +¦Q¿ldÇÙq&ÿ*2Ó0œ¼Èª´^æ8ŽV«† Ã4L™¦iHÔŸbÛöǶmW + Àü‰çvó|äT.À÷Ë]4ƒàŠìøÁ!aÑÿôü‹]]†}ÿY¿2½ðo/£ÝÏ|ÿéÓ>!!íø>!”�0$„ød·ßßv?õ?w××o÷¯üàÙ%Q†! CBú> £ÿ·ð}·µ¾îGÑŽßút»ß¯B´K!Ô›ÉÁÂÛþvÿ3øý>�Â]⓾Ü)]þ‡ÿð. !¥³(ŠèY@–e™þŸ:ÀÉÓk¨V„޲Qž¥éQžJ|uv~^–Y–ËÁNù«,ËòâÈÎ_ç§Ó¯¾*»F÷4[àõ\¥•�(äh¡zÈr ð«i™OÏ»Úv×¶Ó4í¢ÓÓ¯§_¯®ÿÐ^ŒoÀÆüÅB|¸ Àùª ßPµ p- Ðx?cŒkÚM4­9߬ò~@¿=0·~ ëK)Æ*x|||\8¦±�¥}ÀΜúÅq*U €íÈ ÇÖŒ'2PÙ¿–Uµ#£¬kÐͳ9ªZ/y¾ß ;[©¼CúîŸßt7¤$ê?{æûÒôÂèí7¤C‰ÈnHégDîê%„�¾Ò÷ÝVôœ�Àw×?r·©W„„»D®õ!„ø}þúræ“§­u·FûÚjU•Æ„�Ù/eu¯·5� Åûaðö;J ûô—ä羿ퟄá¯ÿÓÛÙ%»—”FÑÌ#u¦Á‘­•ž+Èò<Ï»(Ïó£Q&]€¬@Q–çgÓßy €W£ÑH ”0Œn–fu#ÁßÕÈæû‹²,ËóÕRàªÎp:-Óé4í„À×_O§Ó[�Ö €Æì� +|� ÀÅ{€tú@ÀØ‹/Ó4°zdDOŸ@ˆ pk Pñ¨_ #ËŽ�³ã,ËŽ� ǘ+€j¬Ÿ­k«‹ Ö°MÛ4Mélý+·µÞh‘pöÖÝÞv«jA*ëÙ¢ÄûÅU†4 +Ã+ZÍ*þÿŒ†ûÑe4 ê^ «�¨ÎV¿·nqTUó¥u0­fý£¹‹Ÿ¥i6Êòªøü«éo +9›*¯j‰òâè(/æ�¾\šöêÕÑÑ«££k¸9 €s>ÍS €üUjçRLwŸ{{„B<ðà,ú€,@uõgqóëùÿꕦƒÅ;ïwn jJC®g®ïÅXuêsâÌ7ýU +,5:Îh¹'Ñ0LÃtŽíȺMwLÓ4õ9Žë�™cè ›g£î +ª@Ï÷_Á?þ8 të2ŠÞ"JwCâ÷/we¹mHé[²ß!»! )¥ûÏ£ýð—;~@H({rû¾Ûò{~àÿY£õî„$ ÉC²K­ú‹wCFo‰ïûO[5“}J»Û¾ë™—!²Eƒ`ðY0˜‘ýˆ¾£4 !»á>yÖ'$¤t?zKß_PºK)¥oƒˆV½€„Ђ°»(è¿^+€Ñá¡lÿ΋²(Êòìtò·YÖ +À€£‘œ’åe)0Ÿbsm&`Qäy^¾^®ÊÓé4w ÝíÚvY:Ýüôëéô}.Àݽ&m‹Ý�7³Êƒ,@]€n©¸ÕÕ?ŽãWüà@Èy_!ÐM°‚ ºaèºaèºî8žU·,sŒ®a;Ç‹Ý¿Ž €sìK?Áù‹ìz™²ùÄ1�éÈ ÛÔtÓ4 S¨Àñqžå5–€R}ÿþ+€Að¿Ï‚ç{W¸ºŒh—ò²î’>!$$4 ÷Éþ•Á·ýèùå¯ö)¥•îÒw[ÔŸÑfcÝ%Ÿ„a—^†!!aíÓ°Î5„—Ï‚Á³§îÇæ†ûƒð±»MˆR†»„�­ßÿ~+øÇ«w³·QFtFwå÷'Ïú$”ûÃÈe@)¥ô›hÿÊ�¨ÜL¶_¹”¨2»PNšey–):Ìó£ÃQµâÕ(«ÏO¯)€<ÏË9 f£¬T… Ž^½:’u_æuíßo–—ÌǃœMót:=r êvíîéiŠsiÿÓ÷¹·öp1™H …¿%ˆþ¸×Ò€uª«¿4 á�•€2X½ñž,À�€t'@`X¹çÚ¹?vœìØ12dg'N5m̱'säàLº²?É4 Ó0 £vL ˜¦aš†´ iÇyv|œçYž;†»Y6rºærà_BpçÞ oè€2›=§ƒéíø=ßó¼€ìø„’2ëÁÎÕ»ˆî ¶v¡$ ƒ� z~àmºnË}þæyç‡ë­Žø„3Bˆï( H�Yø�×s7}wý1¡Ï½VËýKÏ÷ý�ßÛñw‚!;ƒ­oJÞÌ¡{ƒ!;=BIà{n@H@ Èày°CÞ½£tl‘�ª¸€QeGY* Ò¼Lá¨È�ŽFyz8ÊÒ4½Êä,ù³ÓéW·(€¬ÈOOO¿2 4JW†¿zu”¿ª* Ól©ø·ÈË¢¨ç�TåA•0ì®mw§çKh<s0�. „ ò{ø/ʈ»À]yõ�ã8Ž0–¥iÍ›·¦v7nsVÐЫûÑ*«Ôum±À«ÊzOO§ÅYže£e£QV¹¥ÜeójÙX VU —ââô|úu™–_ç)²»]”KœO’\éàœHTXVC†1ç,N{™`&0ÂB¦UU…(" !„FŒ]€3ÎcÎ9˜s Çql³ýcÛ8αãË +)DÃ0 Ý4MÍpž˜¶i˜¦®¬é¦©›z%1@žåÇyžçyšÙ´³tuIð÷]ü¥„†Ñå7ÑeäÍêËz¿ï»}9Õ“x2ñFi´ý:ŠfWï~…á\H=nÿ`ýq¿†4Ø!ù9!„†Äß ñw|ŸÌ!dûikÝ £(|JüºN�|Bèlë’Ò]F—Ñþååg²€�ô éo»þÏûAø_x‹‡½E³oþzggggg§²­[)€ÑèËtî–4Š¢8<�Ò4Ϫ1K +à¸@åHäÎ�²²ÿyžçY±$Ê9ò²üÍÙÙôërT~]¤v×î¢ük©ÎÏÏÏÏß\*æ¼[€sι˜«€:#0Äø@àX$â3�"UQ  -˲,,ÝçŒc̹`Œs±àX`laÆ9ÀücŒaÆb&Œã  Žù#>æ1d`�1B +„°-CJbpÀ0æ 3&_1Ëââ@Ä·zü7 xaÈàþJÀµÛCU{Ñ< °€ZئišU°.<Ît½žQ&Gºn›šn›¦i¦®hºiè²HÓ€–gyv||œçY溓g©Ó5Vlÿûº#‡ñÒËÙå,Ú�9zßw}—ô}ß÷IèÍè.¥$ iÑ(Š®Þ^F²~?Ü%¾¿íúnHéöÖ·wÃ0 ¼YZ¼ö}BBòsGê|â?u[ë�Ãh×Ývÿ‘rcW®ÜßšÑ}†Ñå7—Ѭ3 ;>ñIŸøÛ¾ï÷ý�À'—¥»”*¥Á¿ +‚à_€ºEqtt˜¦Ùèðp”¦Ù¨@Q¬}€ˆ9oÞr¿ø®¢ôª(èª!ÿ¶c›†mÛ¶]… ÿ¢r¤˜ËÙLÓ4U_‰TI€<Ï2Ùj˜9NW_Jãûž ”2øeHhl=ßêA@ªu\=ß‚€<§”È ìBÈ`ç³ÙŒR¾çy�V‡Pꮯ·\ŸÁ/¼Í !ÁÎN;ÁN°CA4 z^§Õh„ú­N‡„¿$$È Ø ‚€�JTƃ{[AÐ#;¾ïy¾ëy~ Èo6[z dgËÛÚÚúó-]7 hè +]€Q¥ó +à°, X–²,MóQ%V k‹£Ã£Ãüôôé¨ê1Ì‹BÖ-B¯² +§§²ÑÃqŒj­§øeƒÕRàj¦˜nèU%‘aÎ`˜¦¡¬é¦®›`Ìòì8ËŽ‹,s C–êK¿[Y ô=À»Å™ÑË·oß½£³Áw³««wï‚73J)ñ>!3úÝ%ï¾ñÞ}÷íÕì»ÿüÇ?^ÑÙì¥ÿôîíÉÕ¥ôŠúäYØ"WÿùùxÝõ) ¯®ès:£”Ò¡”Ò?¾‹èlvE¿{÷-�]×§³«+ÿÑåfïÞ^]ÑÙ›«Ùà �ýbvùÝÞ}Ggä�WWï¾{·õ{JdðùþçÄFÞ]Qz5ûëwWß}óÍÿøÇ¾ÜŸ½û ÞìÓ7oÞ¼©4pŠ2?JÓW£ôËQ–¦r¿l% (Óu Õ>ÀôtyÐh”•5 c$;¾å§æuÎ'¯ÖŽd£¢\iÌó¢Ì«j€ßœO7çE*+�¿ž–éèüüüü|z¾|�¸Û@#!„œ3Æ8çœH?@"@ˆÉÅ„%b,’‹áKÆ^ „9cPi(P YÂ#ÌùD\À æIó8Ib'0Á,Ž�9çq Xœ$‚‰dÂb–L`’  6œ$LˆÌ™`c4Æ!¬"( 4Ô„_€s&b.xóxÌëÈÿ’ù‹‰þ!çþJÀ;¿J¿5 Çqäb?Û¬bËX*%®TÀè¶mÊ +@EY€’Usf³<ˤw³Ì¹ø~¯'¸üUt9›Eß¾Ý%„~Aƒ+BH໾ïú>‘®þæLn¯Îì‹( +C߯æ…úþnk;|KÃ�>îoû>!dß'„ì¾Ôû‘œ;J(!ýíÖJýV³ßï÷Ãjv0¥$Üší_Ò«Yô­œÿ÷›3B|?ð}ÿ©ï†3J ¡[4Z<"³Q!Ã0 „@·(ó=MGçÓóéùùÙ=˜÷` aŒ1BpÁ9gLº•P©>™–ŒyÌL0Œ°@PUE° ‘Š eaŒ0OøE|…@œ Îã˜c̳ƒXÄ‚Çq’$ð N’— {)/0I’0|‹¡/°œÉÝ¢»rdÇþ>¥!�Ñþ¼ Ü%>mm‡——ý�>~ìûψßÌ32@|òÅŒìÊ  Rê·š~_Æù)!tŸîζ¢èò×rOAòÅ%$ ¾ï»¾ïö÷ !dæ}A«þ¤}JC:¨BÈ0j¤i:J¿�FË8,Jk ƒyžÉ Àô4_H€<ÏFË.À¨^]‹ž'''åÉÉÉIѵí*ú_y^H0=ÿÝï¦yz^¦ÈqºÝüß•å(=_�(·O’öÎ…$€…Eí`\EùÁܘ$Éäå“g! TiÀv» Æ3„ ÂÌBóDÄŠã²æ�sŽ-haŒ1Ç0ŽñÅK!.&Lˆd'±H^þ=NÇq‹XpYðSüSÛAÕj¹‰ + F˜Á˜ãªœ�‹ÆÄÂüÇã$ß ùéwÀ¸«ð¾ã×ðäÉâoûIµü£€î<©½ƒ'«¨§ Ùº¶!÷Ž™ºl<6µy¹Â\H87Àƒ m?X +È¨ÌøOQ½·—ßìÿ*Ú¯{÷+ໞïûý�ŸÌ¶ªp}HåDà€Òpi?÷3ÿQÿ2Šúýàñ¶ïû~ð. Ë�¯f„|.³„Ògn³ßï‡ýŸ÷ õw)¥tÖùömEѼ9¸S=ÿ/]Ù5ä“Ëê�„aRJÃ]HS ÈóôËÕ&ø…p¸¨�5^ÏP+€s#�'Š¢¨«€óyâ8OÓ”@Ó0mÓ65Ý‘Àî@Õ º©¯54C>yÇqœÃC'Ëó,³�áŒþ@p `B`É ‹¦*m ´’cŒ¯›?Æh£„Ð/ª�4¼ +Ù'$ CâÒ'}·µîSý£ÇO·}ß'´@ §zû¾ï“` KZë�ŸÑðÙãæ¶O|Ù.RúcéÚGTÓÎŒøÒ‘¨L°˜Ö,ª`6B –5ªD€¬0`Y.ò\F‹år3�TÖh”åU °È›NÊ¢,NŠ¢,Š““““94MZ³È‹¢<+Ï~÷»¯_åùyiÛ<ívóß�•e~~vvvvvv„Ãáp8¬T@ÕíƒP­º W•Aœs !8ÃYJAÞ˜@hYÈbCŒ0F˜q.˜ˆc<L$<3.†É &8³,ƘÅdаŠ=Ê)àc„»˜ $ßú)\€¢B„!ǘ .—5„KWÿÉdr4ýlÜ|paýbÛ¦óäÉ<XÍûPuÇ~bÞ 6L°¦›¦„”ÚÐt]ßX€ãfy–eÈEâ +x; uÖ2nôjüêâ‚}h à»p7 Ã�Tv׫|u×÷û}Y@:ƒÀ÷ýàs^~3 ÃÙ $3?¬šx ñýÖ6 C}ý±ëúÄÿùw5üj¨‡ï2|ßs[Ÿ®?Ž®h¿õÈ÷Ÿõ}94���’­Ë�„ò‘�]B¨TÛ¾O~î“ÙV iBÂËÙ~Ò:•���n [@QÐ(–‚rhY–åô4ÏçcAG£LfOOO�*�åy‘yžå¯^½Ê‹ò¬,Nв¨nEѵíÂÑ*hº¡ëeyvþ»ß}=ÊóiÙívÓn7ÿÝ´œ–gçeYž•÷@ˆáp(–€,«"€à¼Ëºµ€¹àœ Æ‘…1´—ì_òòÿSŒØ1ÌD3ÁcÌ9æLpÎ1ç‚wa"¤±",„ÀŒqƱàœ1�B\È€$Ü#ÌâÚþ!„@iÏ Ð€„1—wÀØŠø—çfÕ¯¦oÜa¾ó÷_ €m>1Ÿ˜OlÇ´Í'f Ó6 Ã4MC@–ú›¶­¯¤'u ëºajkºiº®oÔ.€^=rµÞ00ʳQ€ku2Ês¿ýß hYMÕTµ€u?Æãñä‚1þA UP½jï9¥t—×÷¯h5ÐWÚbäSºE”Ìf!!ô’îG é?#®Oh¸½þѧOý>!dð¹l¹ ) CBö{tG–üÀ�"ê»�¶ýg~ô7!�ö) CJ·B¹§¨êøbKÞÇç�ÿ-ñû$¤Dî1&4ˆö÷/#†ïêâ­Qàõë©ö}?yâTC× ÝÔ5ñ«¢Ó6íõ/7–ꦦêÿê¶œ/(ò,C†íd7 7@ÿè.Àû0wåÃÀÄðÁíÀß~{5‹fÑ,Ыè-½¼Š¢ÙìjöEïí%½"UÂý fWWûï®è¥Ü'¸;óèì—W”Rþá*ì‡3zE[þ£�†tîÏf—Ñì �‘·ÑŒÎ":£„ÒA@ftæ»�®ö©ßs}ŸÌz3r9Û�fÑ»wøî»+:û=½z>£3zE¯®öiÑ«Ùgÿ< #Bél¶7 ³ÁçW³wôÝzI”T#ÁBJB¨|€Ã4M3é|9Zn€ó“§ižUi€ééù< PŒ 2µ­œž¦u@VÏ )–'þe¹¨hÖЗåEYv»]§kgùTf [þf€Æ=¸éà%?@:\òqŒF¶ÕQTUm„3ˆ™˜p,DÌ>‰ñ˜óXsÁ�1 &b.„ ÁqÂñP® å˜ ŒgŒsÆÎÅ��»L° €PÖÖÏvUËB¼ºkÎÅÂü1f ¯iʵÛê–`ÞOãZÏ4Í'æÓ|b;¶í˜NU×kèºaºfÚO¤D°MÓ¶ç}ÍfS:ÐMMÕMS×›Rhº¦ßÀqžeH7œ‘cß­n!„ðC\€‡+üì/NÑ0¤”„ìRJiîÓ�ìöÝ/ö) +7? „þ’„tVÍé[ÿ G‡Òï÷ûdw—ø-ÿ‘ï“Ý0$²«—~Ð ål?ø„Ûm="¤ï»O}ÿ¡Dº»aH£KJCJ‰GÉ® JR2#»»Ÿ=‹dp€„„ìÈ•ô™Q²z�=ÀÑÜ� þO]9 Ëó¬„@WF/P%zò<Ïó×E]\ ˜ßª@\(€ã<ËÏ3£ÛM»ØÎ¦UÉà5pCL&w @`¼äÎ1ër!bÁXÌCP–åÎ=UþÐ3 ‹±ÀLÄq,.b$8ã±Hxœ1æð3.¸àc‘Ä �™à˜‹8œÇä,ŽÆ8®—ƒA�¢.¾k£ Th!,˜àñ˜‹„ÏÍŸÉ0‚àŠ¦h+·M© ¦n. þ¾åE+Í|Õ|oSJ}[Žõ4 ]7M]×6ÌåÀJh覶¦›’9M¥¡€Û�΃€ö½øÑ‡àzðƒw, º€}úÅux»%up0 „†úö)Ý%Äß�à™@î’P.ÿvŸûDv=êßw·å~‘eD4¤á5„»Ÿ=Û_ JvCz5£¤OÂ%˜•x�燕 `AØÊV¡[e«ë­PU¥NæyQ'óöß“ÅYÉÌÀI~’åef¨ŠÒhdÙ´š~ö›ò^�LîD@U„¿P ‘p!DŒ!G¨êrDàXˆ‰‚�yœpüeÌãê>b!b$æŒ &„˜0΄ó8‚‹„¡1ç\Œ…àœÅs<–-Bˆ¡¢.‚€ EU!Â\0!¸`c!âñx<Ž1ÃUƒˆTMÕ4U]Ü4UyÀ©`†aêÆ=g5 h?‘æÿÄ4Ÿ8¦cÚºm¦i®H„ù¹Ö¥ 1 U>JSo* EÓ5]«ܹ��{„oÀðÃ\€÷+€W+àø!@*€/Bv÷oÀ.!äóeüœ�P*€_‘T +@®¡á.¡ÿû=p}¿O(¡„„Ë +`¿\@E"†áå £@‘O.Œa Bõ~@AÛB#„1²*(+PEf‹²<;™àäìD¦ôʲè§t´µµ5MÓ›M]ßÐMsã¸8Ί2Ó+ûPÖÖÖNëÕ¡÷Ä&É=`Õ�šœ_$œóä†1F‹`CQÔ¶ + „ÂL0ãX ³˜ÅX$c...Æœ³É…Hบ(21gLÄLp&.Á…‰qœÈŸœ GÆ[c„ðÜü‡BeMUuMÞTE]Ӕؿ¢¬)Fº3LÃÔõùôÿÅŸ.€išËnþHÔUæ¹1ß$jê·¸š®)štššÒP´f³YOüoTæßuò,Ë ÛŽcÛ ñ@ø¡.Àûc×] ÚðFa±%÷hÔ Šjîß¡® ¬b ô1€Zìúÿ¾Ûsº»þjI�U z€x5^`r!Ø ©À{]怷»ÒG=;999)˳Úñ?;«ßSæ¶1’д¦®ëº©ëÆqq|œg™^@ÆšZSÓîÀpø~Xã.˜HÄDp&&ü`ŒÀröiñ[„|O01‹9Ã3Æç˜A̘�e„†sÎX|sÆ’dÂIÌ!"ãXÄ(ü‚ñcŽ„BUU—B�†åó“CŒ¹�ÿ±ó«ÿp(„PM[[SÖemMÑÖE›ÿ7ß ÅÐMC¯&õæêÓ˜÷ðßÀ +4Ô)Ù7$몕 ú­ÓE4E“» t }ñës¤Э€t´ÆÃá»� +à, ZЂÐBûûÑþ2è5ð«»Pgæ@#$£Ãb² «Y0ÆbY‡!0Ú"˲�µ¢n�ìÎH¸ûY?ZR·`üê:†ÿUÀÒÓ¯<)ÏÎÊòää¬<+Ïʳ¢<;9;«@v&c@×õ ÝÔ7r €%@ÆVp[px †·8sžŒÇ<Éd<±&�k hU`-!4Ƙ!Æ9f¢š.ÂçœÉg˜.aÆÙ8™°ñp2_ IÂã F! ¡®,:†!h«« M*D²D >_:Z_ý‡C!S5mMS×´µµ5U[SM}�P ÝÔ7tÃÔuiÆalèÕkÃ0uC~pyÏX É€� +ºY}RUƒ4oþ½™|PjÈld£±¦iÍùÜ­Ž“åEæ`??z8>8 p‹ P?Ûö/`Yaec‹3CÎ0‹ÂYæ`Œït +aY->¶ “ås k°, þü�Y€ep« 0¾ €ï�XQ󧟪œž�œž�œžž–§åiyRžœžžž–åIYfÝZ4›5Šâ¤8β“³®”oÎÐlÞ_ðpÌ1„Y‹$a Æ¸Ú Xû2¬< Ì1Æ]Æ8cœ£D&1gBð ಄c¡!"c†9û7]Ž‘œ^?a$@{9Øh(³˜aÎѸZ²tõ +Æ¿>úK}P@Y3tS×—`ꆮW¯ yaŸ_ÛW°±±a𿯯†©éúFåÓƒÕ"Ä ýÚD²5US4]k]Öh�FcMkjÊR @ž9pÇ6Á�¿ÚU¼ÿ²¨‹'þÂþ- B ÞÀÁ*a„ñí.À< GÎ~ °,˲îÉ „,„á¼É ÄY<Á1g\n X`| ÞŸ°>D¨ªr~rvrz^–EyZžžŸ�œŸžœ�•g'çefY•�uª¦ažœEže'綶ȬÉ:’{� ŠÁ8gV“º9cíU €ê`ÌX÷q.¸( Åp(–Eûb ç].{3Œ±Å…à˜ Ž1>ÀË$B á &„ˆE¼4˨ºúc‚'ñõëìÀ +ôÛ ß@åll躱aêfÝIÔÔš«£ä‚òylrM©tJSS4½©ih®5�5¹·¤RNåŒNò,­p�¼[&ü\€Ž0 ÔåçüÜþ-ygs°;P¯Û@Dñwqô©€¥À« +àVXw(ËBÖO° €58ãUc+®ðê6¼x¯ `-²ï�¨ªª”ç''ggggeý?;—y€ò,ëÙé Ý0‹"/Š,?9w4¹ ´@So.pK yù0È¢]6†¸ÚíË9\ÈqEQU ÆaÌ1‹»q c!C!D"†±¼L !8&"±,B0Îå]sÌæBpÇØœ`!!€ÀÍ‹v@EQ c‰¼ë!¨¢ b<žˆD`!ÃËÑ`„ h×#A‹a\­L˜@Ép8¹�¨Næ/®�ÓÖj©u÷ßj €eý_À¸€ÕnþJ˜•G Có±$Òø�ô¦Þljk  ¨kkÊÚÚš¦)š>ßXÖP´µy°!C€Ò(2ØïQK¸mœi»]½1ç�—r· FÂ`Éæaû}Y€À+XЂ®@Hp ò»bŒð-Y€($«4²0ÆÂa Œ,„1ÂH”?¶ Qߪ,À’À¸€ul Žï@h¿÷*€e(gwœóÌ6³sY (¯%†¡çÇÇÇÇY~2u´F£¡hŠ|25›Mí=.@’$/ïBÀpŽ€d(„`LL€Ƙc!’äB$Cެú¡ZÈ_E,¸À1gÖ�às‘$b,Ä ‡]’$’=’$Ɉ¡à‰¡N†É„w%v aÜXöµU™Cœ1Ž_$‚Å"#Qßõªù�“‹ëãkWïø{)0¿öË›Q½i‹ÐÀý-BKkõ¦¦ëMÙù£­ikò¦iŠVo'Pä‡Öä•m ©“¦ÜI»N–ÀàÖÓm¨@ØmІ–… „*B " ÄxÉæÛ ­¾' °¬p÷[ó ¼Õ¸®jÁ¡¶UE@mksƒPEQ�e!„,˲F°’ûHŠ~h! aŒ-€- !KT`K†¨* ­ª¶m@[…ÖÖ� +Cë¼'€¦”ÀÎ~[U6›ú†®›úññññqöúL`­©T.€ì4¹{$`#y™$/_&Éð~$6¬üö±óñE’$Iª8„"9³˜sÎâ˜ãXÄc!„àq �„N†C‘$‰à‚Áâq’LØp˜1b,øãñÅd2¹˜pÀ‡fîÀ¹€¦ÕI€ ÃÐOм€Òh¬5—Ðlê÷÷¼|y¯ +…&“‰N^Ÿü½˜%Ò-À)j[QU‰| †9?�›Äã ñJˆ¡à"‰™@2 À‡IÂÅ8L$Ãar1™ ‡ÉD6¹ +Ì'É‹Ép2á<‰' lÌ9æ CŒ$ÚŠ¢* O˜Bp‘.ïš ‘ ‡œ-›ÿ9Þ\�ì7›Õ ‘f­©7µÊÈï€R¹m�µêC é(˨Qe™Ûð�h4ÚjûæQU /Ù‚¨r¢;B +‚1D#T Wæ`|p0fIŒ0ÄÃ�1Ã@òzoaËB!ë/°�p c˘YŒc±…å·“GQ +@S$¨"ynUmù0,Œ�@„ …«©³È´� +ðœh¯¶A[… �%–yH „ã æ1�yÌ™<è¼§ð¿º�1€fU`èY‘g¹Œ(�ÆZs­ÚwÛÔµ%4îè¨UÀðVŒE"’Éd2ÿz(Ÿ$\Îù˜$CŽ0TTEUT´0‚2Œ'¸À8æ '‰H&I2Ãq"Š—L6 +.Æòd,†“Ir!ÄÅ¿€�'Lð‰¸N’ñóx|DZ`3Î1ÄØBÁ¶œ ® +ÁÅDÄ1É8|(&L6‚ñeóÅ >(8_(“/MM× èš¶VÕ".'þníJZÓÖUd @c Ü©pv–w¡“gŽ xë"lU™3ŒÚ*°0Âв4„“ÊúˆÂisÔOmóø€aŒc„¡@†Ôi`ËÂR@µ*Ä´,„!BZR @DЂH–W+Kh«70'@ÛBРd!h!TwÜÈ¿åµéã´¥|œÖ + Ý®% +ÄZÈ‚@€1ã<ÆIŒÇqÇqlUãù¼)Œ{!&¬„16æB {b …ÑRð¡ +`) *çwœ Ùùù" ¸¡ë¦y\ÅI–×.@u͑ɧ{+'ãñdò2I^JÜŠ€ñ0^\üOCñ¯_ +À'<á,I’D�1VUé@ha XÌ‹Ç8Æ<Žã.ŸˆñDˆaœŒEÂùP Å0I&Bˆ$N �ÇÃáÅÅd(†CÅx‡b<^$“Dt'ãIÌcÎä¸0ÈÆÈB©@QTUQ‘ì޹Hℳ¡“XL„‰X˜¿â@ãOŠ<4Øl6õ¦®Ëaºœ@ üJÝ Uß׉TüJ½¯ôÈ3:*OÏËÔHË"sôÀºõÈEÎC9o­­¶- !°r€ #Kà6ªœçjãâ3†0f0†OfVÊí°c«Š ¨Â:æUX˜¨…Dµ™B€ª8�²pÀ-Pª«*¨, X¢¹ÉÃ*ëh±ŸZl£è­*P)€Sjý€%e?ÃÇœsΡU¹@©}Æ{c9ÖÊ‚°�� +�À3lU~‡Qàò÷`ZÍhÊAVfQE‘å'¿ÉôF£±Öl6k Ý—`8�'“ʸb,†“‹äb8¹ø×11Éäåp’\$œcTUUUhɧç ó±À‚á8fxœŒÇIœ$"󱬘Œ“I2ž _¾Dq2br!.†/'ÿz ÄÅp˜$“Éäb|1ᜋÉEÇ\$²±#„�Úª¢ªŠÊeh!q“˜‰¡“ÉË‹$™$“eó²ÿa¥ ¯ù`ÈzÿªèߨßÖå{o鸶‚To6›Zc �µµyÜM[Óª]ž (вXB.¥¿r Ò¼<=?ÏQzVæ™ýÀ¾]@T'Ð,Ì`[m[A õB„0d bù4^€œiÆ Ã3‹An laK…L!0Æó°-ï€znLB @ha  ¢º,BUuEh·@­†­…À¶ª2‡Ê–Zå!”—~ °ª *€ªÊŒ¨¼DCp^�äpÊ9ÚªÄ�a,^�ÈÇ[–� +`]ÏTÿ7Y^p'ʹ�‹i7tݬPž9õ>[½©5ïÀc6O&™xù2^G@2b2I..†/Ç'‰�y’LÆ!bY`Yc cÌ8ç1f1Nbóx2Ž'Ir1áb,1“‹ÉE2¹H† O&Ãád8¼¸^ €‡‰�Å$™L.&If,98C‘° c„–Ž™Ox<ñE,â8‹±¸˜Œÿo/'“DLjëCƘišóS° PÙ¹©ëº±±°÷ ™ ˜O[Þ9T]÷µ*+¯çs ¬.&o,›~õ�ëhÜ€ÓCôåWe‘§Ž ÔªoIUnû½y»°0²�…€eAlµ�Ú¶ DBx`Y�Y[Y–¥B ‚öBÆ8NÂÃ3†1”1Bv€ðR  -m³ @´5´% @«6}µ"PWp«¨5е‘Í çqGhY¶aûN  ªj[m×}L@ÛÀ‚",0®žØpI¨2Öm%X`–`K$x[ Œ€ +!Ä a»Ýn[×ð�JÀ÷*€n!@S—i@Ã(OÊò$+Š“ +Í*êÜ|„ ãÉx2™¼L’äe%–pÁ'ãIÂ.^‡I Ä�ãÉx’$Éd<‰åf�j70Âð€a£W<Áx<ŽeΧf)Bñ8‰¹,ðÁ £‹‹d<ž$òÊqÁâx<¹˜L&cŒ±…„Uñä! ‚R@ˆ¶ªÒ„Ä8‰9“k X=ÇhÈb æÃ ×WÿkÃÿV.ûËoƒzþ‚Ìû75M +ziëkk�¹m_@CþUÛ{ýÑ[À—_~™¦ùoÊiyˆ¾<-Ë<;ìÍplÓ¶MpÛÏt½iK/,þ€vÛY–…! mµÛjÛ’Ñ@! â¶ÅÚЂª¨,@^*±…cùL†â§*B2©ðBÔõ‡‹:D9á ÔÒTñse2 p 9v¨° AЇ€6@„^ÀZr nQ´Uµ]-¶ªÒx*"¹Á +A‹1('^× +b˲–@?å +Œ³0†¨ˆ1bÌ‚ívZ¢V‚€Êéíç<3ºÅÔÑdp€““,/ÊZÔÐ4½yo7 Ã!Ƭм|™\W˜31™ˆñË‹äþûT{;cqÌÄPm4ŠÒ†²Þ‹óø€ócÌQÕ©+0Œ !ýEŽ1BLp¹Çƒ%“D\ /’¿ÿ{d—Œ �-Î8O�e1ÆB–Å1ǨZÖh¨Ð@XXœcVM.Â3„™`Œ½X2ÿáp¸ (p›ÕEÞX2zãºÝW,�©¿&ÐÖ¤w¯kU-OeùkkõæîU̧ø.¥hÖ”ÆÚZ£¡Ì ÿvpv~ú%JOË2Ï2ǦcÛ¶må–4Ÿ¦oØ6RÛ7>ª}S¢6�›�´ThYK� TÁ5`ADf" ,†™Õ6²ä+1€vU\1CÈ‚#i”VEÔv[S€¢\WÚíPUµªdTÛÒ?Y°b̶’Dfýt¼æ¬* €ª@RUU,h!•§Q@E…alµ‘%,˶,lY!Z@†Mƪ*€ø°€;³È)ê,€¬;5Íâ¤(‹¬(KG—M¤UPÆ£ß?˜16–±€¤® +¨Àg\`�1 A�œ üB0†V•FCQ!´,ë§ A1baÎ9fŒO°àŒ3Á0ç±à8±΄cœ ,d‘D˜1Æ¡ !8ãb(b„0cB`Ƴ d³ª4 ÌØÄŒ ö‚aÌ!p‚ã±07ÿ—sC—/¦inè€a˜æC×½ ô&k•�¯ikU*_«.èJC‘ƾÖXS·›‹}k‹5ŽÊm8�žM3”ž—ežg©ì× �:ZSß°m„n¢Tª jSUT¹! (Ô†[m(sÛ7€@`†,hAÔcf¥ -ù�€”Ö!h‘… B#ˆ«H=í¶´òk¸KT?ƒ¼j·�ª¶µ +QmX˜cl1„̲~úSëj ªm9nBQ«v((““òÊ]à ­ª²^`€¡eaˆ¡Å,`YPm£6€BˆfmE…7ð +àî4` ­©7uÃ4e àä4ÐïŸWý3 ãd H–>bÈ!b&0ÆLðƒØ<ÆqÌèJCm·!ÆØ’3ü!ÄX0!æ\ˆ ‚W€!êiãÕ]�…àŒc̘bŒ‘°a"†œ‹q#ŒC�9FF  !jCQÆ\$ˆ½`LîeCžÈ†ãdXõŠápøòåp¸aêò¥.¬ ëî?†±hí{t ëúòÕ]þ4­Ñ�îüÜ£¯þÛ6µ6”ÆZµÃõ6H¥é—_J œþ¶@–�°Çv¬]·ÿ4Õõ�¦m#[» Ò·`Âv[QÛ@P +ªeAÕ²TÛÒú¡ +€ªT ¶,�Š ÄXÖù«Âb†mEXXN…@ÈÂB@í:Ù‡€, �…4‡ˆc  Ê‡¨µ­�jÕdåÈØÀõÇ_]¶U ‚6h«mPE¶,‹Y [ÌÂÆC,£@“Ž„–¼w—Š#Õv…h%éX•°€–Ú ¨*Â@ ¬6¶ eµ- c܆¶lC Bk+*´ ”Mí²è‰cŒ,da˲8dH圭¶O,Ÿ»b¹Ý-OdP*€���¢(Š“¼,Oœ¦l"]«€®ß[Pwç‰á3é,Õ‡"áBL‹yÂØ‚q&¬DcÎÇ@QªÚ–ͼ ½À CÇ3Áå„oYE,1®6€$B‘ .X’°1O8cX$‚sÁÑ8¬ê<Š! ³a"cˆYªÉåc,>`B0‘ˆ1ç‚a!ïúåp¸dþÃáF­66Ì ]yŸõ7†a¦i<@,Cbs™¿ÐúÕlÏúv¯¹s`:�V + @×±m ¨ÚòK7ut ëMÓ6�r›¶!€@µTUª@Um¨@ !°-ÃqR~AZЂ²�ÀÂUg!Fⶪ(*l[b a[ÖÀC€ªŒ±C´xÆcˆ,¨ ¡ +€¬'²Ð@UUc !² BÐBÈÇ'Z%ùU0@È0€d„ÈÂвõ¡tO1´0‚*P¡T9UAþ„pþÅm Ja[~ü)lK•dˆ ×TCØn#`©lC ÄÐj·!Tá ´Õ6h·e P ° ÂõÖ½ª@UEÆUˆ«äE¶å�„¥îQÛ2;Ò†° ÛØ‚@mµ†'¥QaŒ+oCµÚmÛ@«-U%Ý-·;Beft‹³…0ÍÇ'gef(�† Ê<)ý`8_ÿ#„ŒÈŒ€lÖO†“!Nª~‚³Xp,ã1ã˜Ç¨@�ZŒ%òr,0ŒÇL°Xð‰b‚!9êŸó¿ç”Œ_'b˜Œyל .X"¸ˆ…5fL$\01N8ŒÄãd Ác Ä P� +?ˆÇHž$‚ó±|Â'(I’d"†“ñPšÿäââBð%˜ú<"×h(·½6—`› +EY[kÌÀòäÄ[ )`Û¶m;ŽmTC?l Ãh`É£¿ÍH°GÕ—Ì`è ë¤i +šMÓFHfNVŽ"ýgµÝn«¶e}åüÙ¨Ê ¿ACîcŠªh@ò©T™=¯Ëi!€Àj+Š"í¯]E×e†OUÛŠªªª&¿Z]ôæ(Ò �´Õ†¢Î Q~!rDI[~gµ­¨õP�ªÊÐD¥ªrI�,õ—‚¶ªUQ jdíºb_ºªt€€ +Ui¨j»  äe¾ÝõLZ¦¶Û ´¥Xm¥Ý†`µ­ªm hŠÒ–2@ίThC¨²’@U…R)´!”¥ß9¢®¼ý™á'޶¶Ö @qR'ÇåYáèÕ4 µ5eMMMk¾o(hÝô{]$/“„%C!†c6BÄyÌ™ ÆEÌcÂj«P�À’«x^0!qr s>cq�‡ãa’$b"b‘ŒÅØJ’±ŠDðÉp2ÆãDðq1"O!¸˜ >� ŒÅ‹Dp&†Â‚6Pá�q[<‰l 1ó1C!†ÃDð‹áp8™\\\p�q ]×uSUî­4MÓ4kÀ|x.@×çyýF%úåÅí®ú¼•ÓíÚ¶ãdŽ�e™ãd™ 4 C`¾>àNÐív+ iªªjjYºî8i +@s£i×h¬>צ¤´�Z… UEU‰Š¶ªÂvUwY¶¢*J[m·ÛU¬^ÖîhÒ”ÚJCQTTcTµ­´UÔª_DU•v-¯e¸­­@ £ +PŠª©mh©PÕ¤nÐV«P[¾¢©jC©Â…mYfŒ¥çß* ­(í¶ŠæRÛ2ɧ*j[N}€ª”Ê·jÊÿ ¨Êt©¢*�†ªÖím “j[UÚ*TÛm¤¶å  *í6*hCU•áCÐÖ@[í¶ªÈQ™R:) BªªÖe•µ Ñ�ÏÄòî4àY)PgÍ¢8)N²â¤À¢¨©-¯–¸m,xU3÷o®«€Éd’$"IÆâ"²‹DÄ1â\œ$1Š�f˜a4 @h!Žã‚1!ˆþ¯ÎOD"œ$bœÈ¾¢q".P"†"I’q,&/ö÷‰1Žy,p2H>Ž…B\Œã |ÁXœŒ_ +Ár¨ c� +Ø[BðøU,ÆqœŒã 4–w�ˆáËÉäâ₠̰XÀ}Ý@�†´ú…xx.`k•e|R¬”ò¬œîÒ±»ŽãtS'sìã,�œÌÈК€À‚5NË š>Ws`CÕï‰lÜæÜk÷«.@€®Ý•#¿� P­ƒU+˜NóQ^–y^æ]ЭvJ†ÓͲßþÆ0èvS½Ù4mÝ€zµVÔrè’´­ÔR@�?Ók’(K�_®ÖF!ëäkuÑüÔ˜ ƒ + »–»&ÕöÊÃUçV_gT—Û¨æšdB�¥º+ùÈ,–¾¶ÒÒ?ªY÷K÷:¯GTé—Ô²qÌ¿F­mLUVm»’s ±P sU ¬~¿y¾FYm¥VKFµzYŸ£gé~TUY�®rmêÿ›ù?µŒX[+ÿkrF^ä«»TW¾UC~]õJ©œ0EQ¤w¥6ÚÊ�…@Å'³‹õÎióuQœœäeq& gÌKëo‚ûž™ãÉ5 ãJñr2L(ªÁýq,;€2ô‡ùæLüÿˆûŸÞ¸‘tÿÍÅÅ0‡d] P^ Áñ� +`Â>@œëEÁµ™|¦†{Oú F™Ë¢Ó'œÍÃJ©œpºNßú +¨‹y þí `x#xqè¾çMÝE™™RJ–]Õ3TÚ–m)eYŠ¿Ï÷ù‡<`!óÍYÄúñ© +…R„nB= £< ¢û +©mË’8)*•Ë/*$î&ÿ€›ŽV‘ß ¬@iæV„÷ÅãAÀ2@R +KEÊò<ö«|ÿQ]Wûu-OD’ ¨d±ÌfË_:Ñ,»¦iš‚õì iº:áÕ¬îyÅ…¬*Å×·#€¾Üy}lÏ ¸ÛSƒ‚ÞRk„ð§cëÈ®•y¸l>éZ Š%Ü €ð# +`kâBø m¨÷5‚ËàmˆKÀ§‚ÁjX¿.¸à»=€Ÿºn6“QàKýÓëiz}6›Íêz6k<üh©Éäc•€m{D¥&"*Wm[^–%¹Ñ¨ +Q±©ˆz +ZM�‡nÄ“B ¨– ‹¾"hŽ„®~ˆÊ²4nËÑêAK†÷‘B¦A¸f$´­±Z¡RÊ ¶@׼ǂ€ƒs�ˆ´¢Ú•!­ Q™yšùã¯ÔzVÏEˆÙe +`r‘`Q4‰&“èòHëJ +@Êý*ßßðò5¤,äU]×µLd]K)ë$rÕCûc¹”R&AEU%Ñ$žä¹Q°íN|.†`PÁ›pòv/ÜPµëÐy/ý`/Øë°½phõ xè³æ÷ï¶„<Ûãë„EŒœoçÖèr� ÙTYüç™Ê¸à¬àZ)º¯v„Áå‚�*€õŸ.Ièsg8ôþbÿìa„!\ðÝQ@w<À—_Og³Ç�׳Ç�Œƒ‘Cå1™L&ñ0lfG`mÛÚ-”„ôï„ô`U–Tò²t]: +”BÅ4€n£òÐIgœ +ÕrSTˆQ£@jÑmþY•¥Qß·†J2åƒUY’Éʲ$BC¨4r� ‘4 šÖR«µJ·\ ·$P0××ÉI‘ÂiY’z Ñ(2fU–´Ê\»qüÕÆŠÐ8¼`þ‹w ½4ð£?&QôÉç ÷óýGu-¥ D’°˜Åqœ»s�DIá +d<™L‚è¿Åqœ&Qy›"¢8šLÆ£(—UU%l§©HEøOÀp7æîºFA°p�€²{{á^°8íìímÀ¥ï˜@0`Ó{ùÜÃyœUn®„Âç\e~l5Sÿ.¸V0�"ªß%è3g‹­zཾm„ÀxaâÀw`6 ІRàG�êzö¸–I0õÀبÞ2µ=°m­mÛV�Uè–x§DdP(˜*6E4è)8øqÊ)P”F¥è ©D@*­ÚÒÐý²üžK³2%îv • +€ˆ[TH`Ñ¢PÖ´¶%PõªŸ*. @‘Â?—DxßPy_+mV¦¤–SI† º"ÜØºÓž÷ <â3uù†0>3ÔwxD~Èo@!«ý\Ö=x"’Ä ›H)+Y$Ks‘ç¹”ñ$ŽÇ“4�ã4�‚(võJAÅQ<‰‚(Éó@_0éÐÔM]×õc÷C¥F~d�:Ž¢ñŽ>sRªu—ÚVD¾'* w»=§ZjS­ @@e§,dŒðLE  צô[¤Ìk4¢!³Z•ËÕƒïË’¨\QÿÔ„ +‰8j­ +D´º%"޶¥•&…¨[ЭÐJ¹õ ‚³ äÔj�úûïï¸ÿàAiJRåŠHNd •ÔÍ×Óøw`¹Q¾—)€³{=ú½Þnøï r¹¿V K’œÅ,Žg“\V•”iøÀ/MÓ2N¤Ls™³0Jdž&y…îˆB‡º`¥…ØôÿY %lý}Ÿ ßÐþð¸2཭€Ú¿ XŽ‚`/dCH¼·Ç}AaŸJ~½PŒ‚`XŒ"�χ~QWÀË6ˈ”ž"NQ†£«†ÁG<€‹ÀàëÿŒ0p „\ð0ì2L†f Y]×u]7MßìLÀ¡ŒÜ/¢ÎÉ—þÛ-”¥2­"Mœ •¥%R ¦J3­§-¡RÂOOã )4\ P +¡ÎŒEK ´Y•Ô> Z­Ê’JeVD9šÒ”†ˆ5×Dˆè¶‰)´†  Z­u˧nÆ\gãÊ*mV¥ÒÕƒ¶$2ʬ ’j¿/XkÎ?¬wrf%Wß¶w›•€aœxŒw'zwaôùyÀÞp¨d-sÆ“>Oâ4MS‘Œ·b4•¹”2ÏëZJ)“ˆ¥Ræ©ÌY”È\JG,bnsTšó$ý0Ĺ}’Œí 4Á&½MÏ{@†Á^àv¾º§Bž‰aFhÐWøíÀZ@¿X)7«²,ã‚óŒ»ñ’LJc9õéª�‡áÇB€ÏV½°}ÿgLpæBÁÂf6;ÿ8 €º¿dGÆ‹&ëM4ÁùÕ`„ä'�´f@@ù ½O-j¡”miµШ›ºié +q +€c~ꔀºå¦Z)S4€ÀAk²š¬ý/2Ö ­ˆèÁE+"$¡Zó€Zc5ZÍ5’š¢R„H@Öjc�Z…¶åúÐŒ‡A˜!Ú)jú«"ƒJ•Hª,µd9Zó 4Æ"iÍjs=è¹»øh|&ØèHÃ8‰“Ø úÚ]ðyY€Mœ÷ræ À˜%Ià÷¼DqœÄI’äRÊúq.›ÇRJ)"–×RæR:°–IìŠâT¦qx~ôÈ?)è�In}WëJ:¶Y#¸žðÅúZ¹aì1±·ÇÂá„+€~»8@ÁÝÊ7îŸç�q!8˜Œ£RÚà5ƒ�d.÷‚ @Ð+€MDaȸÈ|, .À8šLb7ê²®9 Ó>è³qoH€³ß ˆ=Ú¶µt¹*[C†P™vµj-©©Ò µÐz*¦0UF«©à\0E"AJYËj­•ÕQ ™[ŸäJr¡\chE¥- ³Zµ†ˆP£&aŒ†)jÐÙç+Xµˆ0mµn[Š�@ƒ‚¹i+N A-i­ÍýÒZC­0fµj‰´;þ0Îj¼“3@²­z pY!аާßÍè'Žƒ«Ày®X&“!bÇq’äyšËº®›ÇU1›í»„A¾/eQË„®•0Iò<Ï“DÊœíp=~oŒÎ·mÔëRøpÝà^u:€9HùýÈ›„™póòF^ =)7 @d +2äà{À™Nè0 H¿Š ^-ø°}ÿ�¢=Æ{ , £GÍló±€ÈO»þÈ Yñ˜L☭ãß³hq@€F¹\œ¡VÓCkÝsÓÛ25�N¦Ú"X£µv‹Ü.(@änY£3•„RB)… D¦ˆ4šreµ% äžZ_¬QhÔ-¢µÚZˆˆ¨Ð=õ0Iš…aÈ2€L�R dHi$ZµÖ¢ýSgÜÍpWtîŽÝ?ØlW®0Ž’³×ð¬yß;œJ™²TÊ<—R&Ñu™:�Î)‹�«°öpͧ0�‹b‘$Išç¹,dÓ4³ã:ofµlêœ%y]UÕ¬J’"/Š<ÏëÇ2agðÏ 6À„ÁhÝúnή3h}=¬?}Öo�1²Þþß ·"ãÜ)P�MQ)P¾)¡ÉfäŸÚ�&¿Oׯ÷ÝÃîÞažÿ$ÛY€qº}­ à†4Ir)ó(•ò†”Ræq.ež§I’H™çÛï¼ )÷÷‹Úyu±ÈÅñQ�£8Ž“ °92bñ$rOŸçy!eÕ ¯�g3€Gõ~ÕU"‘³z¿k¤�…”²(fK€ÑöZ²ð÷ v`´î�Ýü@ÁF7¡+îë[’}%pȇÂ^Ƹ«;„Æ� È…<ã f<À­;Ùc,ä! ³=± Œ\nœ³0û}§k¸dY +ᇤz¸I¨}й€qV­¯f6„®}ãÑÈ%ýÇãIÔw¹] :§¨ÔÄ5ùuÛšˆÈLA¹æZåþ³¸@@(üüæL©©1�ÀQÓŠKRÎñÓHdˆH»§FC¤‰î—-"**‘”˜B!¦S1%B˵BdL§„À9‚8cAÈ•Ðn5+(®�rŸ •åƒ)ºuH´–Œmïùºùf%àà'ûÉœå�<Rùÿð�7R‰þÇ 6ê×u•lM‡�“8v⿟Ò¸‚Т>žÍ|P×Õ±@ÝÍ*Ç )/ëêVœì^ŸÈ‘�Ýëà@Ư€Ä ,°V‘Û¿�qîv˜î‹\Ô… Û +8ãkÔ³YÓôðßÈk¤> ŒÆQ|(ýÃ6Z"½ÖøSJFSi¦Z‘vç…@F„!癑œs¿Õ�uA´"DE–°µÚ¨ÒQK¤m¦ =ŒUÔ"¡q½F…@¥XÔh5q "ÂM#ÂmTgaÀV®Q�‰�ˆkÔJ“1hM«î·HÊ·7®»�¢u7ÿØ®X Šâôzš ËÆ/@�³¼–RÖµ”‰ì%€ô¯m�<_°Ÿ$<áþÁy’äÎý—~€@%ë٬뺮¨Žg³Ù¾H’¼®ª®J’j…”³e-D’Ä¡ÛÿE¿Îz aýˆ�Q€p³¹ŸÉºÎèû¦{gŽÖ È£sP ‚�3þ9cœg"ã‚AÆ�ãÙÞ^æ‡aî:ÿœ¹èõ<¶sàçÀÝ(ÑmÀà b~ßø†`*²0ò!ß8ãk4�@´þN^ 錣+)P¤×@j b˵F"0šÈØÒ�BM +•R€� 5…©ÐÁÖ ‚p»CßOr wÑY?ãÇwŸ³17>úÙ•:n�d(€ˆ±|@¶&@Dã(Š'.¸¿¿¿¿éôI}߸º3 + +ÚȬZÛfn0§Qš4Q‰€ j¥@¥�¶Ç9€ ÝÂÐ’¦@ª5n,‘”j4‘UHÊ�Y­,ù§¶J“±ÔjP¨I‘2@†Z¢²T†þÊI˜’AK�e€œ‡Aæ +ï·­¶œŒ~ˆØ*Dj©5D Hk5ä'QÌXGqz=IâI¼³àL/À–�¤é ÏS7ðzÈå¿ú ®m(€Üÿýð#u+½Îx›‰Bžð$IÒ8NÓÜÀÍmœ�ݬ;–"I’jvPͪ$?˜Õu×ô(Ž—yž'±s~ví4fálµŸÀ–lX?÷F[Ïzì×hkT×¹Ù&gοLdÐßE3î¹íE€³+*þÉ + d‚'Üm"Üßí8°+ ÀY–eûg@4L¹ïïïïï×ûûÛp!€«í“gðQ/ú@ÌÿÓR+,j"B2DÊè)�Ÿ¿B!ˆ=–q!€M� 2¨Ú«¹F$2Š¡´-�!Tˆ„dÿÓèVXÒˆÎ0å}£I PIf +ª$S* ²\!’åFPkõS–Še +(! ÃLgDJ( Hÿ©Èð5YD$kHkR¤h­†BO¢˜EQœÄ› + º\leâ4Mû:àõ´ w–s™ß�ÿš3éPoàÆpüóþGžú±€k`ûü'I’$é$Nó|Vɺ™Íf³cYt]×¹6áY]u’çuS×]#{oññ²ºÑï€óc•ƒañÒhkO0è÷þïFk7os@Ïö;„ëq„;`AˆíÓ/„p«Á8Ï80ÎCÆÜÚÓ�Ìâ=~ƒÀ/ð¢5>®þ§Í,€÷² °îwˆÆÑd2‰Ý†`¹¿¿¿/e]çq0¹¢ßñ¸ÿ³‹@%¹±\ �Ý×Ñ­¬dI¡¶ + é>¶ +� ¨û€D%(Î!Ë2`¥à‚è¾RØ–+£3@2D-¢RdŒj[£Ýàú¯•Õ\i‹JYtI�ÕCRDˆH%�RÆ"U>hW¦-ZЖF)Õ–mI\ •�à|/ä­%r倸ŸDÈ]%¡E¢RSÙZ¤½h6@<‰“$½Ä8“تH®§iêúÔâ4Žg&æù m)€ÚÛÿùÚ�yžç7rÙ`] ’óWÇI>(YUu3›Íšã}9›ÍŽ{ì÷˜5E!eUâD¿î5 FÃúÃáèú7ý Ã�Øš¤¬Ÿâc+w¼ß¹†Ì÷Ó�wû|o‡ˆ>UD;w¯à8ðl!Цàûf�ï˜Lœ(ëj¿®ö=ÆãhŒÆcæ¿Ä®]m§€XÒät¶sËTkÿse,'m”›©aH‘ÖÍ)EÂõñ*¸Ÿe™œ€+j•²h<0ˆ8ÕÆ"¢5@ÔhÔ`Íê¹±Ü�A$Â’ Þ'k[Õ’"2ô€J"lÛï­.ÉBKW-)kÛvU*ïÁ9@k—PHe‹”"D4~®‘±h$2̆ 8‰ãK�ìš´¤i²€3ã|ðê� +@ÞLÀù™ozb„÷òB~zxÓÌf³®.šÇ³Nò$Iä¬©× + È yPÉ¢˜-åÅ + 'Àgàã½ýŒÜÑ0TtMˆ`½¤y¸»k°É‘K®g''¯ÎÿOiÇkü^ +€mx^œÍ\œ)Z€¯%@³ÑÇ. +¨¤”RÖû2ﻃ`<î;TÝ\Y¶ˆTzhMZmÿëùs+V¤ÉzO]­ µP‚dàÂÉ}„�e @e¤8Q»Ò¥)[Dk ÙÖiRD`íjEd­Ñæ¿þs¥…Õ[2`ÜSëV= jï#€i‰H«ÿ\•Æhµ –ÊreLiJD + 9Bk[ƒHþçÊ×Ö¢%†,Ýÿs«KÕj2< ÍE?I|6˜\¥`ø( Nã¤ÀÚ¨Ïz®È¡@nœ~·lí$I²&€Ø@âÞ¶�…¬¤» ÌꢙÍËÄ`&“Âs)¤¬‹Ç?õØ=Ëä7àªGlÀFh0ÌïËg·7§›ó /»î>;9yõêsÿh4bo·ø Y¶�H®šˆ|Àî ɲŒ÷=¿� Æ“¸€¬dUÉ})å¦èGqO|p¶±, (�ˆ­^iÝf­6­±†ÈÚÕýÖZ£Z…™*ïO3PD ŒZ €L)äVeJ•ŠÈ–æA«2¤ÉN¡mÛreü¤qÔØšê–·ÚX»"$Û¶´jm«VJ j A*5þŬVØÚ6[‘pË~[2¦… Ñ*TÀW¤¨)Xj5·ZS»"E¶5jÕšVõSOï›tM€t €Éœ¯ŒÎ…išÇ“8Î×wêþüïP2ÏÓü†£ƒ—7üéwwvç‘$"I„"p1@%åþlÖ4]“7³Ùã‡u#y^7U=kd.eU4?Éæ±ô!@t1þi.üm°yâ7Oú|äü;¼ú¼Ã? ü}³l; �\5 À¶²;B€d €º–‘3zPɃJÖÕ`A04ž Òw¾m�+  Kíì@È2ß% @!ÛKmi h­”!@†Ð�e™à­Vª]QËÿª¬YQ~d¿R÷ï?XùßA&`})¶¦¥UiIµÆ**IiÖ�1Hmk•ÊVÊÕŠZñW2ÆYæF…óŒƒ!„È8ÏYâÛUf­ié?�)Ukµ¢ûd asOÒ4q!À +�†y›i@wÉ8N6«û=ÒÝ +ÀUåës?¹WÉNð!ÈsÈz6kšnVÔ�g�Lx«Y]×s˜9ÌþVÕ�,ò<‰Y8žì¼¢ÏÀè7][ñÀÆIÿ¤ç½w÷îÉÉÉ«W¯^½æŸùïb�óè÷ͰÏÌD;²›àYR÷x4““qEÑ„¹Âöý})+YWuÞo‚ 0‰#'bÏ}åŒP‘B@R­R +(% 3­USŸ\› + ²Œs×$çPZÁ_­i[ €J‘R 2…t_¡BE@J)A@èë @ d[Ä>´¦µµò»È}l¥D«=Çç¦m�ÛJà>:gÂ-�̵ ¥²á©…(M«Õ +µm�!œÂ` ˆ?¤›ˆÖ@š¦R&éffÿrà=€mà_Üy!¥H„HÏÀ…éÒ`ÖÌfE=›ýT%,á²9¨ªœåuS7MSäRVòñr¿�•Ìó$aa4aÑ™—IE“èóðY‡~ÇïHþxïß¼xõúÕçžÁ8g‚ "ãÌPwæBÎ…+ßÏ„à<äœñ½ŒñLìq–qÆXàö’ºÍàaÁ†:ßÂêVfpιû Ü/YçŒ ÆÃ0p�X2μd®*2 Ã0 × + É'~"ØdÀ¾¬«Þ�ƒÀM¬�£1‹cO&»@Ô#±ü¢ÆV‘¡4)$"�ð4QYjÀLϲ,‘©Ìçå� 2P ´åE¿ N +Ñ�B"\•d•uåúñ9h£[Dl•3ÈÑÊ@àÊŒ´p-F�e‘ TZ‘›£Á�"mÈm0\i"ÝS´ +§¼×èyÒ‡iÇ“(Ø@:Ô$g&¹[ë Oå`ño`ÓxT?>çÜÈe¾Qè�Pä…ì£~‘l�"IDOÒ<õÁ‚WMÓÌf²žÍ~ª–°¢®<öë¦.r)«ê§¿U…¬dž& "·$fëbQ4™DÿWà·]ß|{÷îݯ_²¾¿”‹Lˆ½>‰ÁÝáçYÆA02ž±0cœg{Œg|Ïí YØo%wFù CÆ3Îà à"É8ç"a‚ñ¾(™ñ�e{î7<y誅CÎx…QúµåŒ3!X„¬ïs®ëfð&ã~æßr?�Ç®ïÃ)ß Ç,Ž&.$8€ß@)@BDM@†,!*…!‘e „à™`"Ë@@Æ÷xöW§”BEt +� •BPQ#)l •"…ˆ¤ •ÆUçµ(´¸ }� ¾÷{ËI�B׎€( s Èœ +•Ò +€€©"…¤�H)‹@Ú-ê¾RO꺖Ryš$I§Éu·û×­SÝ +Ò$qÈÓ4Š?U%�ãd[ÈFž½6À£sÀúèK™Ky#ÿO�bãÈŸÉäy§y²Ñ °_7³¦q“à�kÁVÔûu•ó ÏeUíÿô·Jʪ*œ 8‰ü¢ÿ#ŠÜ€´I|:F¿‚ߌ[·¿½ûÇuðúõ›ÓÏø'Ï.Y&¸ŸnÇ ÆCÁ]÷^Æ3!Xȸ³ œk¸×x²ˆï1ÆÂ�< +caÈ{À¹à÷=ó‚q–‰=!BÁ…àŒN°�1Îx†l�1Æ8Ï8a¦Yîyù�qßô?{<›ÉI4O&}okU9oh?wþ€~äE?ðÜlpŸ.3Ö•Ó+£È‘H!®ÁIiDmÑRiJRʥȀN¤�û ?ŠÊ’ )Tè&)EˆS¡¢W‚' �¦ªU¨5xN(mÑ€%¥)@šs€º®ëºrI¹$q­{i�ƒÀ9)Œ¥2Ïsé[õR¬³ØÍç�¢(ˆ|,îN­”¢šUç°Vû»<€såÀRæy~殿¾2î�æn‘pQH)÷›¦if³YÓÌŽkÁ“³º–‚M]׳:Ï¥¬êŸ~ª¤S›€nàÀ§`ô{à·ø·nÝþöîÿmC¼}÷î3Ï2îÎ"pθàØ ƒÐB÷ÂDÆXÈ9ÙÞãágQºº²�ï±½�ù—�¹ ž…AÄ9!88O¸oX`!Œs7Ýš±€srÎXÈ#ÆœžàØIU¹™>qò Ú?¨ëƒƒê žÍŠƒÙAUÉõCæ—לïr8[Ì7fŽåùdÒ /‚÷}ÐÔͬÎ#Æä£º.VÔÍ€úog±õ6£(ŠX4™D>ø½à†VtÝl6kš*�¶7úŽF£`¼]H<6u}œ×nݼuëö·wïn†oß½?}wúîý'œΓ$ñS‚üÚYιàA†AПÌ=Î÷þ„ºƒÉüQf¡‰ç£ôÐÿ コ0 ÂÌߺ"sïæ£{ÎcQÈW'È8sÎxÆö8ç cŒM½·Ày–eYæ†þÔ=ÆQ»ÉÀqÕ Ñ|260‰'“Øs~² èûýé߉Ü88¨ê¦iê‘WMUyž¦q"«áMšfÖÉÃî°Úº.VÎØ(~•yîšÿ8OxÂ}0çîã\N¢tˆò¢rÏìþ�³Y�³<)êºÉ—u³_?:Ès)‹æo?íçRº`M¢(vŠpâ~�L&ñ$f“É$ŠâßnjUç¯ÆÅ¥=úM n^ê®ë#áæ­›w¶C€ÿÏéééû>¼»òùç~–�œ3ž¹ÓÍEèfsÆø^Æ]f@pÆ¢0âb�ñ$t7r¶ç,@Æ3&Ø^ÈYÈCîöpΠEÈûé>‚s.\¼ÏCל芕z•XÈ™g‘<ãáC·Íˆ±¦Ï¸Ràñxâ¾8®ö÷Ýí,�6õ‹ë|3à :ðƒëý'�,¡BÒ¤�,�)Ý1"…0�rE€2á €ŒÑZë"A@Bm@"M‚ÈXêk�ÀÝ‘I"…-�qfŸvË„ÒÊðQD„QYkˆ4p„©B€û +8dèò.MHH¤ a«ZBëžÚjÍA5ó¦™5Us eÝÔMSK)ó$qEvIÑ4u3›5õ¬išf¿iºÙ¬)òª©¥,ò<�Ó¢ª÷üX¦¦ëŠf²ª.TCÀf2°¸k^·íÀI\ÈI”¤¹Ø4꺩5uóÈ--d]ׂ%òQS×M•çRÊfPΘøCßþ(š¸eK ®€«ÿY3ï0›5õz0àrܺyó¦ þ·³!À»Ó÷¿þúáý?~ýp…óφñ²Ì›p! Ã0p“ˆÝ¬r¶ÇÃ0d, ¹S! ƒhÏo9ðW–ƒ0 X…aDŒ±0F>A° >kÀB÷~ªÛ‘ÆB?< £ˆq2ð~½JŸ¨ëºžÍšÙLNÆÑ8ŠúéVU%¥<�Ræ±€?ÿl2aQì7bì ‘4i"²mK„¤…ÆZ4¤Èf-™R!iEJ#$n1HFÀApP¤ §Úò¦¤”;öÂ=·ÆØ²%4 +$C– ‘±¢%2¨Èw¥‰)2h�>PJiBÒ†+Je¤4p`5)E+7€µÒD– š–À”DT"¡"Í-!ꮛ͚¦98lªÊMX”Iš§I.«ªªò¢™6³n6›ÍšYs0ë~캦UwXÉ·ôÖuã^š¦ëŠÃÙáöù¯ª«z¾@æyžsÎÿˆÎãÄ…‚qÂcçùÄ™�…¯¨¤lœxT?ª›‚åu½_×9K䬩ëFn Iâ(Šü äµps†Ÿ¯€�ŸÿY3kæ³YãÏÿ±@°U|™ðõêÁÅçÿ‚àôôý¯>¼ÿǯ¿þú뇋 �GQžE‘{Fúýeýßazú?êSŸÃÂÄÑvd¸Æc0L÷ŸÃz¿éfÕÐñ0”Cn�8pcU€ùÿµ0ØÛÛÛÛÛÀx¹Æ¶8Ž*é&@äl>öŸDñd7  M¦%2V£6@šiEÊ€)­0† ‘VHD¨9‚B@ ¥¬RjJ†Œ&Ò5º7&ý¬Œ%ÓkZ"CŠŒB¤Ö` †ú§F"*�¶‰I·T–d4YDg <$ÒµsÜÅ´Pµ5¤Ñ�BÔJi"« ˆŒ0%Y²@D¤µZƒÖ]×ßÛ+—NÝ/Ò4O’\VV¹œ5‡‡³n>kf³nv8›ÿ8ëf…¨ºCé�æÕ~}PÔÕASÏfùasp>xy/€ï–îøK°„ÇqÂÎ☳˜',á‰k_.d%i:À)€}7 þQÝäq1««ú ‰ù¨®›Ú=ýÿú©. +)ó$aQÅq4‰£x2é�ÄQMâ(rÕ¤“ßͬ™Ïšù|Ö+€¹Àh—*€s+gä¿în‡¿züúë ¢XJ)G£ Hó¼ÊóIžE!r/8g.õÆ|! Ã Ü ]Ê/ä|�…{lXx¼w敽0Œ†Mˆ,÷‚½�1ÆÃ0…,ðq¯XÈ8ÛcáÞÞÞ°¹>7ª0d{{!sÎ@(XÿÄϸ÷Üj°É8r€ë�çÀØ­­žL&Q÷S�ÏTYü@ˆ®[·¤‡¤A¡5„¤ ‘QH$ )ã¢RDÜ(¥A‰ìŽJ€»ûºédy« È´ÊX­ÅŠ4 ²-@²Æ2¤‰•ʸˆ@“Õ¢mI+B,ˬ³þ‘ÐX"²Üj¨ H‘àV@¦Q·ˆ€ÚhChÐR©ˆHXƒ†´6DV ½"íÀæiª¦išÆ•ñ$I.e%«¼èºY×Ìf‡ÍüÇ®›å¢j<ò$—ÒÝí÷ª¦ûµt²¼(Š¢È‹¼(\p©Ð_ÿ’çÿ’çù�œq–0ÇŒ%Œ¹…`1ã,f,f¬È£(N’›»kÖ &€ŒÖæÁY°1¬4ø(nÞ¼ysüñîà݆øõ×_G[�ãñ8Ïó*ÏË‹BæÎ�óåAÅA€àÀ8c‚ åNŒ;Û^ÎD?Ùú¢>.2_á B0.x&Ä2ÎCQ#‚@!„›p nc©óÀ?a– È2‘eÜ…Õ 8® cYÆ�Ñà´çl6›ùB a¾�¬ü�(�£5&=ü—:ãh[¸Û)iDk‰ˆV­ÓÛÈ‘¢•DhJÒZk´¼…L2È@ ˜(å¦ü¡%äšI#‘iÉêlEÚX2†ž›–�£È’m}ÂŒ5FÓJ<· Ñ€QHõ*±DcHñ©J! jRÌ +È�4aK•V¤­¡ÒÍ\)7µA­i%l ¤fݬkšæaí@-ó<]À)€ùlæÐ.ç]Wl Í¥”²:�ûu#äÅ¥À n ©@véUäQ”$b«âpß•…Õu-“¼®d]%—M]×M!ò¢�³¿Íœè«ÿãh“q¹»È$šüvt]7ŸwÇÇݼëMÀãîXF >k + ¸¢¸uËŸÿ›·Î½}÷î¬èß-NzŒó´ªò8rœÎ€˜j…J)­ºqsà¼@1�L§rP<ã\¸„îR{\$Üí÷“ëýN %¦*ãb�ƒ@Ýj¥q +¨”㌯cÉ5D&„k’É2‘)Å@!(&¦ÙJ .€g§ÓétÚÔµ€¢É&*YUy¼þ�¼ï ˆÆÑù½n—’µfÕ¶Ôb‹Új­ !’ÑhÚYT[­©ÍZD­!�)J€+ÈÕnò·æV+T¤L©�1V¦%»j[Z•mK­!²š�¨$Ó>ä@dµ6«¬ÕHZ!= c4BB²„†È®µ@ B… +¸Š+k ­ŒmUk�Å�ý‹sýeWÜLjÝÍfMÝ4û`…À|ÖtÍlv8k~ìºÙyȪ:¨öêÙNPò#ÀöX�<ïïùýOnÚX¿´�Qäê–†Þ!9Ì€«÷ë‚I)å£}>b²®ê:Oò"—�—?9¸J@—0Šú%©±[iÜ —ü­ðwýY×ÍýáïŽ��? +€Ñ8>N€µü÷!À¿í +Ö +`t^Œó¼ªòœåBˆ© +P િw3BÀ„à‚p‘<á"á…È$nIN’9›? ¸P¨d�ƒ~3e4ö “É„9Ï'ŠÎ„Z{(Eˆ­Ri,Ym`e,im¬¡)ñ•nÁ* € (@¥µÑš ¡å­&²ZÙçDíóÖÿ'‚"ÿÔ†ˆLiÈ’…ÖZ2DmKh ‰çmkþÒþÅšÖj²nŠ˜6Î%pO=µ8Å€ZÝ/YÀh´†´-‰¬¶Ê«-¡m µ%xþÚ¬ˆˆœƒ™˜¹–æÙ¸Œ‹ÀþÈ/è8W,óÉãþÞû¨¿1c1KdÅ›sÇû¥º®÷뺮Üàáº`Ñ6÷ˆãÈ'Œ"_2‰X;s(^—žÄ“߀Yì»AüwÝ¢ëºc9î-òu'ñ¶ ØËž0x&üßþ·»$ ðëÿw—§yUål’Ë<Ï…RÊ¼Á³?ÀTq–1&8ƒ©€L%S>�fÀû¥.Cï‹ûüº1àb€LpÎ…¡ c ÀhƒH +”€¿ý»Ã,˲Ì/¹Íøg@…�ñ [Èxæën”À¦ˆ#M&“(–ò ’RîWy<^+€`ä'WF‹¢ó�FF;¨¾lF�òcBA‘RÀAQk­5ƶDmˇ¾­™3Á•F­•+øÓh…èÜ,ãÀu–¤ �RÊõù*H¶µÖ2–´nŸ È\0B»{xKšÈ¢B¸?YÆD–)‘‰,…D 4øÅ倠�2Ï�µFQ«µ¶+רPÁRyΘÀ�³�¨>¦ò‹{¶MÀ\æ2N8ã<æ<Ò�¯'2�¢$ñ +@¸@î˺®kY×û•«Y®¥€¬óDäy}üÓãÇ2/ÆÞˆ#攀7þ¶,Á(šL.Àåî7Ÿoÿ¦;^tÝÓµ&{_€ 5À­íë›Ûß|wçÎ�{'/^¸V ·§§§§§ï?¼ûðáÃ?Þø°™œ$g�NâŠçB0á¾¥¹3¸”2nð.ŠÂÝ£„pߺ®ø8Ë2.2È2ÈQ¨ 2¸O*ãÈüvîº�Üj0ßãO;pÖ”ÜÀ¸@<™Ä¬¯ß�Эi]Âôuû +É0K÷K?zK)ÅH¡Èü4@ +Ýj_ ¥¸BBå‚*‘[BÒÊצ¤Ò÷ ’åšî—äÖú ·%¡B,•k+"åÚ•PQ FRœúðIY‘iDW4„D†ë’ʲo3$n •ò­EHñ`�pÀ�ó]&à�<¸< Pø…çënœ+ÊóÄ×ÿº-}!°_ À¹¨Ó(Š]�nºu]ïï»Ó/¥¬óÍ Ï÷��»™@õ)aNØ$šLâ s š0Ç×ôé˜u³®ëfþ—!xºlšå�Øò;‚`<ÆA¿¹h7®ÝüzûºùÍíÛwîÜyöìääåëW¯ß¼yýúÝ»Ów¿ž¾?ýðîÎ(€M$2/Æâ8I’Þ�Jpà<›N…Ê|Ï^¦ 1!²i¦d¼ÀO|‹/w·g\p.8wˆ¹&Eh@)rÊÔ€ P¡¿ÎÐ} !�\¯Ï2‘y$pÐG ÃrÐޜı¬*)÷÷å`n+·o—°HHÚºýY†ÈØŒ«úEBE†•e©�”"¥¦Ì(BȼYA •V†€#‘B�„¨Ú²å+cÑéÒ�1„uµ}èN)•%•Ê7íoý,_B@ú�J"2„Ê�rO Ц†ˆ[BW$2E2‹èþ›É�åX–ä=o•"}]�¹< à<€Y·¾àRÀ—ëœón áÿ¿ø€ ùÈ•n@ˆ�Ñ#®iiß�ÿƒ5dšäy.��;¯’ ¸{ß Å“¾R|¨‰vàRó¯söß¶Ð/—M³|Úur¼nèKÑzë/ÆA°Q»²‹×þçk×®ÝúŸ7_sûÛïîÞ{vrròêå«×oßž¾~súþݯ§ï?¼ÿõÃ?>|ø°Ñ4¹.¥üW€QÇI’‹uiÀ WüèÊÑ8]€q¯ÿ¿Þ||ýÍíïîܽûìÞÉ‹ÿýõ«7oÞ¾9=}wúîÝû÷ïþñ�üãÿX{€Aœ×ûûRz?,N_T™»·ý¤yàÜ-¦æÂuí w¢…áu;V[¯2áîùÎó¶X–eÎŽJq@÷<` + 6Z·¨Aim¬ÑFÑTOAd\i­´FM>g˜e™ã‰PUUU4u×ãë<)eUR®Ó€Ñà©ú�QÄ"v&h[Ûjݶ%YEd´+²Ö�ÒHŽª, )ÄV³¥â™!€JŠ4¡Ñnǧ憈œHÉVÔºª*µ1 þ“ RdÑ æ¨Êò)ã¶qk}®±Tºü�Ú’È”@­&$®Ñ�ßòeè9o5YtÃFjà+_l�¨•娈JRÚ &ãÚ"K%*m´6Æã�ïÈ4kœWÕÁÁdzEQäg<€RÊAÄßè}?zä’G�FãIœ$iÒÏÛLÈ\ʼȥ̣ Êk)¥‰ÈsyÜÍz rkä¢ c}3ð¤ï‰'Ãp€ˆEnRàÕÐuÇ [.«fù´{,ÇÍÀkŒÇ£QàŠ†¶ó×µ××·nßùîîÝ{Ï^¼|ùêÕë×oß½{óöý»wï?¼ÿëûüº©Æ©¬ëZÊÍ®…ìëœP>Ç9ÈÁ�‘ îοvÞ�Á•5Z?DDBÔ-(ÎyKäúÑÁW5$¸›„Ë! ~r(ÐjkµÕZÛiÛÚ¿ µð§Pê©Ö`µÖ85¨„ˆˆèÀã¾ Š¢˜1ß\UÕ~-Š|â<€3ð +À ¼3 +ÀZ2} Ù"Yi"|ˆ¢VĈJ*ѱJiF"�‘P%€* •[Çe-ñuñ –ú¯Ü¢&²†Ê²Td�¯œÓ +5i÷Ô¤¬BMÊ0CJ)]µF•ß#Ò"2T’5Ä4ùE¿I¯¸·¬HdˆŠ—¨Ýô².pAe¢BÃûé@¦%cŒ1Ž. �^œ¸Õ�ìM@ùìRRnŽNó\¤—=ò:G–$IšæyšæÅ:èG—ä¹”Iz$Ižçõq7{,S·ÀO™lŒš\:#èjèºã+ [{î†ïL@ƒ·|½ãºyëö�;wþøìÞ‹/^¾~õúÍÛ·ïNOOOß}xÿþ×þñ�üã,꾈ª(Š¢À¢( +—×Ë2Μ%.úf}iŸkw€‚"!@kk´Öd´&ÊÄÚµ5jBí:ÓÁ;X~b‘¹ªA‘‰©ÖÖZý0Ó µµö¯ÊZý0Ðöùó¿Ú¶µµÖZ‡©@¿Ðw:b³^T²Nré{¢`@k²T:L“ÕC"4J!š5Œ@©„8k�Ò¸ ,©|øWZ­é¹¡Ò”d[Ð9{ŠL©™¦ïÝGE$2¼lbI†H#=@([KdÊÒX$Ž„HJ¹}¥-k5¬¦îëc€ÿ; )"k¹¦?—¥"š*¤Òpc!™Ò ×9ÐmyÝ!@µV— ¸°Pæ[-ÁââGžçuŒ]%@šæIšÀãZÖRºª6)SÆB÷Iœ‹\ÎoÀ¹lÑðˆ¢hó·ë?�£h|¸H±X,ž>}úôéâéÓ§‹ÅS÷ÛE×u‹åOE³\ËhÝB×WŽƒ`¸~€`<�.rw+€[·oݹsçÎÉ‹“/N^¾~ýæÍÛ·ï>œ¾wúþÃ?þñÿÛ2£\>ªkéÌÒBV.b*Š¢è³D"Ù0kÚ¯pŽgî ÚZm­&2`‰H€&D*‰HkMSœ¢æ +µ°hé¡ÑØ>DD½ÂÝL»¬Ð¦µ5ò©B$mŸk«¹ýÜ¢k­}ø°µ¨õtúpê*=êµðãâJJ¹P'¹t½}` qMÎf6€€JV‘ÐÀ&Ô䋙΀,¶½•Wš¿ÒJk­=ÌNÐt+KdI”¥±t Ð/×xh¸¦ïKÀz˜mÐÅY€f~¡p�WÕ¥ÈÏeÒ³€;å‘çù~2ŽâØ‚yÒïÊ¥¬ëa ažË×ÖZkZ½j e@@¶l�ÐS­‹©6`§V[$´S1…d´A´¸²–TÚ´VkTµ%²ÏÁ>D­Q€@û¢µZkmNõ¦§îûÜ ýÌ×rùÕ`u�äù¢5\Ïà$ºB ÄJÓyèb'Ðl KKç@ûI +À`­è2Ð@!Ù³¸Híô†:€ åGK�=òµÈóRÊ"Ïÿ¥ß ´k<Ø®‰ar€ÂؾøÇGN$Qâ�æI={TÏd’ç©Ûˆ¼ë”{$lýùß\ +€®;>Þ,ù[¬ÏýñP¼X>•ͲóY€±Àx£ÇqïWû²ªë$‘Ûp_¾~6hŸæÝl`— ¯Ì•@IŸ €MP@(Í ôÇ€ú@ti/À|gPmôTW€Ÿ 7ŠåU€”É8šÄ}RP$ëf¹9h\Ê$L êÇ�ëÇRäyš Ø:èÑå_€Y×­0œù®{Ú=íºã§‹®;~êp\4˧³ÙCSÐFÕï8G—à믯�{|ýÍí;wîÝ»{òòåË/^¿~ûúíÛÓÓwï~=ýõý‡|øõ×_Ý€sKªƒƒBÒÀc„ÖViDx•1h”1‚J�­±BkB!X�¶k°T,­4`Ùâ_­µµÖ…Ñ-jûp%Ú¿ÚÿxÞþ‡ž¢nWÏW¶-Úç­%­x†S­µÖ¨Ñ’µðœôC�ÆÚ´ÑS8EZ{ «JzàTܪª®óD®ë&Ñvà›¶z²v‡ƒÐ;<€‹€=£¨4D+m¶Cú`œø@»³]_ +¼» ÷fUr½°î rç_ä⢻¿ÈE.eì�&I’o„>®í „dÞ+€8¢ž=®Ë<ÏÓ$ŽÖÛ�7°…„hÓ�ÇãÅb±pê~qtÔmÿãõMÞ™}g”ÿ@‡åSÙ,Ÿv[ðY7˜"piÀñ8úÄàÚÍÛßݽs÷ÙÉÉËW¯^¾~ýß�8}{úîôï>|øðëP¼I×7Ý@ÊþË¥µÖµEk�&«@#]h­­ÖFa«¬%ЖŒÕÑ´­!4¶V™Ö«ÑZ|¨§0Õš4jR+¥[cÛ¿jšÙÿx¾²Åç}ÞZ!ð!ZmŒÖ€h ¬%«AhÛ’‹Öଞ +¨.Ö!@#'~ás?¼ªäþ‘ï0‰ã‰s~·²í6ÀŽ,À•=, ÑÊl ½ªPžÀÕ=€OT´ €3Y€Ys®ù¶�ýí?õ)€4ÏóÔí!Û~$iš¦yž§¹ŒÇÑ„%q’$"I{Èm¤i.s¶VÉþãGõ#™§i’°øúdÑDÆÃé�Æãh±X,:Ç€ÅÑÑÑÑ�½ïwüˆ6K7²€ã>ˆ‚Ñ'¦o}{çg'/^¼|ñêõ«·¯ß¾{{zzúî×ÓwN½Ð+€ý¦yÔ8TU%e!«¢Èó<÷˜Zk Y PhTBƒÖÚjcµÊX£.€�­ ï[«­Æ‡ôí ÈÚçÏí_ñù_ÿÚZrxøPoÀ�Ñ ôlK†6€›xT7M#£`EŒ1ÅŒ17�î,úù_ñ@€M\ìöÌ'z%•D´ÒëÀ|rÀ…¢WWˬ@y@´»`(Þ™8¸j° €~5Øz˜Oì¥i~æáWŽº!d2G,f.Ч²¥”Rþ«ßFêR™yΙçR&Q"’zö¨~,“$Mâ(¾÷çýÎ…ãqäïÿ^,ŽŽŽŽŽ~ìü?Å9kÎhð.ÀW;®k7¿¹ýÝïÝ{vròòåËW¯_½~óúíéÛÓÓwïÞ¿ûµŸ Ü+€ý¦i=ªdU.°´¶5^Lh£¦­2Ö€9 ØÀƒVoÏÈZ¯þÚZ,. +€-@øp €fÿ‘@<ñI§êZ8À§T&c£�ûA;J�¯–øtÀMòÛôÌçyÎüP^I�¼p"Ps‰�WUÅ ß +r0GcñzUXžæ~ј”.Ó—¤išçIž$rö¸~,“$IX_ŸlDúãÍs¿�ç¿ëÀÏGGGË-tkl5»W]wÜgf2 +6æ�ÁŒƒ> Œ‚èSpëÖí;÷îÞ;9yùâ勯_¿~õöí»Ó÷ïNß¿zzzzz:`"ÝðäƒAœÀÔZ;„› +@;|Lž°ç²;ð›<€F€ˆˆvõ\æHyuà�ø^€«ŸûMŒcq’¤Iš$IšçI:x€y¿É0I…[\&Æ’TÎ×�&=®zm�¯ŽŽŽ–kx°À 6˜°|Z4Ëe×­à‚þÁ c/j¼7¿ùæöwÿvç/^¾|ýúí›7¯NOOOß�¾{Ú‡ÁuÓ4‡‡‡‡U!¥¬œ� +À‡0ݡ·ç€ýˆP]WEÑ,^>íÿwðáC³Kì +húP뇽°¿¿_ËÈ-ÿŒû4`µ¿_×"ö#ÁÞ'ÑvÀ„±èó²øéuú7{xEàß?Óð2`Wà‚vપ®V ¸SÜv§®Ô÷|í¯ûÓ´ÿEÆãq¹¶T8½ŸÈÓ4n“±ƒC€G�åc™ÇIÂØ'`ãüo*€£åÑq×=îwÝã®ëºãy÷ø¸ŸöxP�û¾ eW4[n*€ ÁxHŽ\°ž ì¸vš€·¾¹ýon"ÐÉËW¯_½yûæôôõÛÓÓ÷ïß½÷Þ¥ýÇtx4À­ÐrKVÎz0ý<`µÅ�0mûóÏ?ÿòË/4?þòôi_;±èuÞØ j­õÁ�ëCÝß?8ðpuŒíËý}Y×I¼µà<â+„âó²æ\€Î›€ð·(ü')"úË_þr¾à¢và+Wn@Þ8Û|Á•žWÑ$ö �þŽ?¤óð +à_r™çËãfó.©Èe¸i*Ó\æÎôÀ ßPœæi¾ €ú‘¬ëïü¬üy×-—ËåQ×TÛ·ü�Gz΂hÇq*e4‘2M’d] 4Lp + ÉS™2ÇR>–R¦,‰£(M£OÖÿ>ØVŽk,ºãÅEè:€ãa/@_Yäb¿m§ÏW}ZÀ7ß}{÷î½g'ÎxõúõÛÓÓÓ·ïÞ¿{wúþý4ÝlÖyT•”²ò_¢¼@mѶæ²,ÀÇ=³íÌ}�ôòçC^‹Ÿ—ËŸ~ñX¸` €ù|Ö4粸®˜ê� ´Ñx=ÎÑõ îsžO†JÀñd2ûFÐ8ŽcÆ&“ߘp›„ËRSiÛUùÀhÚÀÛÛ€Ú•¨ûZ;”ei=˜@iLÙ–¦Etâ` D­V4=è~9€óÀ-\� Ä"ű,w ?ÿmÛne.l¾z%`áÎý“�këb€íGšn©”qDQ'¹Œ£Q,Ó$I]!�k0N·Æ‡¤©LY”Ä®N eIÌ¢4Ž>ãü{¡º¥Ž\øºèŽ‹îéb#pÜuÇO‹E÷´/ b¶|:LõÓŃ�t W£‹»�v§o{çÎ�»Ïþþâå«g¾}óöôÍéÛÓwz`Àñqw|³Qƒ¢~“÷%•¦]•»À(Š.Àý^üû9�yÀl(DUž@ÆGÛ +€‘!"€òúãomkm»Ñ pa;°¼j%àpãïEÀ&ŠéP0äÿó¼Ç@€(No¤Q0É +€Ù²+f˧GÇ2ê€a)fÐ�}»³·oß¹sçν““/_¼xõòÕëW¯^¿}óúÍéÛwïN‡n@g6Ý€ºö;\7PLmÛ—¶è•üÜI?!ùè—Ã"Pu¿,{Ð%Ö óïut´\á6¤”µ¬¤”û~È8�'qOÆiš¦kÄ®ºj<ÆQ¿ + _»U|J/€BDDQºvÿò‡3 + ÄÏ 6:\I^¦¸óÖÉMw ¿ý·¶m["­µ¦¾à"°ºB%`UýÐßõ»O¶TišºÊ_÷ÿvæòHÓ8Š‚Q0’Ò·§išø€d@œ¤yÅÌu§“8fìzrÅóß�=þçÀ�]¿ùûòkÑÍB€~ˆïþñŽŸâ+/ +¶Ó¸yû›o¿»{ïÞßOþ~òòÍëW¯\9ð«×oÞ9°@¼ß̺®ëöý÷õMÊbíL?ÏÕYÌ=ºB4¿,� øÃҠ뎎Î*€³8ê6C€ªÚ¯«ƒÚí –=â8žŒÇq𦕬ªz¿b‰Œ£±û¿�Çn0‹†,À™Í@ÁU³Æ #‘.Iÿ@äÀïDWW„ê +Àõ8 ·ÛZÝ_÷Õ¥Y€ªúX%`wøÃó®ëžtOæóîŒPTó+ ÏY€d‚Ñè’Cè�û÷Ž“Ä�“$õø×•7dÊâ8b×ã±Âwù£[ì¸v(€fÿJè~ÜöúÖÂMËÜÁèSLÀ[ßܾýÝÝ»÷îýéÞË/_¾zí׃¼yûöÝ›÷¾Ð]ÿK½ €Úw뜋b €ÏɈ<9OwΗ�XàpéC€®;:ïøóß ëºnÀþæ%÷+€(žÄQ0Ç×ãýJÊý.�£øº?ø±Eç.]¥À ÑBDDø�ô%ÑÅÀå!}Ìø¸Àí,À%Àž÷½0Ý•è£Û¶Z“;þê>]Ö,/¯<êº3˜ï0±(Šj~˜|ôÊsŒÇQœÆ©Ìc�F7ò!ùïàÏ~ìë…Ó4bq*¥‹âôJ€OOoþ� + Îg½Ž�›§~$X—ósy€Ñ8ø,ÜüúÖíÛßÞ½÷§g'ÏNþþòõË—.øòÍ›7§oßn ‰ëºéº®s¹À'ÿåfPò7Ô!R!D±K-!f¿,þøiÑW5‡çÀâèhéà1êPo]Õ~µ_åÑ8ŠãIšF£Qr¿ªö÷+.d�}uõFþ17î\–°mÛn $"}Ƹrpÿ’€]Y¨OõØE +`ˆþ[Ûsßí1 KJ�/¬\.—Ë£³xÒ=yòžÛ@5?ü8Ò4 +ÆQœÆ)Ó4Ž£Qä;€RŸ&>Å,Nâ$MÓ(êCÆ¢€] OºEw5 ©óè +躮èÜTà wÇnب_6ö«AF£OS7o}ëÀÉÉÉË“—/^¼|ùâõËׯ߼~õæõ›7oÞ¼:Þÿ—ºiÖ€3ÑΠ(>×ÈE"’\ä©×ÛàèèPÝ/ËŸÿ÷_ŽªbþóÏ˧ËE¯�60ïÏ¿€{›ù|©§›ºÞ|ô˜L&ãÉKƒ`4IYUNŒƒ`ìꪇ•onøs4‰ÆQ4þ´^kŒé `ú(€~øÜ,}Üü==€`ÓÜ€uô¯ióöODÔ¶å…íÀÕV%`·XÌË£ŸÝÙÞ€! p& X5‡'€Àõ8ŠRùßÒ8ŽF©ëHÓtCüÇqÌâ8Nâ4O£ˆ%®Q�EQ]�ýA»äñ¤{rzuM>w]WÌ–GÝLnTý¸@·h�üFÁøSðõ­onûݽ»wŸ=;yö÷—'/N^¾xùÚ �—oÞ¼yóf˜y×Íü§Ÿ~ú©ifMÓÔUUUEqöüÅÅu—ôE^Y’Š\!7Ð+€Å¼è~Y.ÿ÷_Žª¢ûe¹|º\îRó>xÚuÝ|>?::Z +·lyMÆã Çi€Jè{DñÄ[‚Ÿ–È̳�O€µð{f«)|’°en„ÃùÔÿýþöOí÷>:suóy·X,Ž~ùe¹\.Ž}|±è拟�~Ù ·2kÞu;B€¼š>¹âhEQš¦1‹b™¦i'›€ùqœÈ4Ž¢8•2õ¸Bp>ߥ*€8º"~<>îàûFÁhä·l ø„f k·¾¹}ûÛ;wïÞ;99yöìÙÉ‹/ON^žœüýå«WÿýÕ«W¯^õ•£x¿ž +À@ž@ñ +À×$Y’>À@êðª[-ù¥“ÕrÀ¢Û€^,�ÖÇÿèè¨Øß¯ë­‡”õ~�Çã4�¢q†~[…Ÿ +ìç; …Ân´>¡ Ëܽ¿Ý@€ÐTþ3²Ñ•À§zkp îø·- ç¸ý_~t´üy£Ïç[.‹n£ æÌçݼ÷Îdœ8œ'ñe/“(¢`4ŽÓ4Ž—ˆï?î× Ç,N’É¢( +¹H²$OEÕÌ›f£ð¨«òn¹\-éŠêèbïº +‹¼(ò$K’¢éºnSÌåár¹ìË_rC,ºÅÙ`Þ /ðÇ?Iò³÷ÿªêê`ŒGr4NÇcEc÷ITûn;°Ÿ¯ÅîüÇ,f·Kü*!€Xùr<‹€¶m[¥Œ1[»2mk¦@Ô(…�íùdoî1Æ�(•r+ÑÑ"¡FDC€„ ‘°$¥è>d4 ,É’±î©µPJ)P +1Ó5�D @%‘FBÔÊ-xÄ~›"Øca€0DU&HÆšöA‹`L[¶¸>ÿª7ÿÛvõý÷.Ë’6ðóYü¼üy±%.@·Ñ¸ˆª9œûð€]x%i<Mâx<Žâ4ŠFqqžžå„ÛüèVŤq“4M60ºpÁ×€'Ý'x“IÇé%xúc×-ªå²{ÚÉh£ ÀUÿ[÷üK°ÓüúÖ­onwçÎÝ;wïÜ»w÷îÝooßþöö·wîþÛ·ßÝùãÝ»wïÍ'²i~úé§Ÿœì>¨v+ÿë•z\¹G^@Q¸>� + ÈóD$UwEã°,ª§ËupÔuÍá¼Û@@×=uèGGG‹®?þy~¦  ªªú8Åã �ãQ´áH™Çã5&“øz_¿îf\Ò ´]d�9ƒ€l#¸¿$À¶$S£�¨5nA8ß@"8ç A€EŠãýR)cŒRD �ˆ¨5¥RTÛ +,Iµ%¢Ö­Q„-‘Ò¡š*$@R p…ÚhrË×Wê>¸MNY&²€q¶× à¡ %°4ʘU«Q›¶Ü8þgnÿ.KêºÅÑ‘¿õÿ¼< €_~î‡f»/ôG<€u1ðV \`þäÉ“'Ý…{úb9�â8òí]Ñ8M‚X^w¥?“8fñdÅÌ>b“I'qQšÆIAM&—¬÷}òäIçîÿÝŽ4àå + ÍŸ^xýÔuþ¸ì޼ è§~ðxC\2ì"póÖ­Ûw¾½sç»»{÷�wþxçö­on}óÍ7·osëö�;wîÜY`ßàq×=nª¾§~óª†Q�òã + ß6œ×Q… ߀»3XÕòçåògçñw‹®ó>˜w½XlÿDù°¿ ‚IÅã8 +â4Š¢JúÐ&�ÆÃP`Ÿ¸Çþµ(ŠÆq!@kŒy`Œ=#²,[õ A$miU¶Æ�Dãï¼k0Î8ç 8¥‚B@r›{�"M¤P#C"B2ô=©¶D¦ŒQjÚ’!C%ÁT›•14ET¨5 +MÊmW€¨„%­WZk Òˆ@Š”<˲€q†®xO©H(%ZÓ–Æ´µ5«Öúó¯6Ì¿Uùý÷.ÿLTv—)€å²|ÓÇG@€ ²Ožnºó> 0?<|òdþäÉ“ù|Þ]à¤éx4šŒƒ I‚Q|=Ž"D2½û.ïÉÄ�ü¸— ¡‹ ‚ ¢hÉw.þŸ?qǼÛ\’ˆ'qœ¦iž_,»ŸŽ7¦�úYÀ[§Ý¥/À;®¯¾¾yëö··ïܾsçηßÝþæÛ;üãÝ»wÿø§»wONNž�œœœ 1ÞwiÀãããããz¿@%×/ÒYÉJ^–(Dž +!DQäÂ�€¢(<á0ošfÞ-º'Ý¢©ºåò¨[,é:ø¡óßËÁ?²ó¦ëËårÑÍ�?ø»î>Š8 €ƒýFŽÆÑh4΃ñK¯_¿¾ ã(ŠýVÀÉd2ñu@‚�f u€Jã0`@ÀÊ!€tk˶]D@TgaÀÕZp¾Ç9�qP¨Q!"RDJYk�±dŒÐÆC-ó@3j�!ݶÚveÕhµ²Z“iI“�:´VM�FÐÚÒšH“ÒH  �RDè0|×1Æ2dþ½m-"Òêyk¬ÖJ)üMÛ®ÊïËï¿/‰Ê²ë.WB€+¥]7¿( à@7ŸwOâÉΗh4EAÄi0НGÁXã4½Þ×þœXGA0ŽãI€~CÄ9 s@×-º]&à%ui~¡è–[ +`ýðë€Î`ìLîÀµ[·oß¾ýÝ·ß}ûÝ··o{÷勯Ü\°·ïO_¿yóæÍ†xÔ?}êÐìûC¿+ +ð×Åu�nþR1Œ)ò<Ï‹b>ïš*Ͳ›8<ì]s´üé¨[8 PuËÅ¢[<ÝØ¨Ú+€yÓuËîøC.rQy.Î+€¦�âÑh4Ç7®{TRVU�7v,L\ c+á‡Uíç·#!íèÃÝ®JKÖjÓ¶íÊ�ös7‚=¾6÷\ @(""KÔZЖ,²­Y³2¥�ÕÔ–Ô> U©�ÑÆ�y`ÚUk5€ÊN‰˜V[-âTkƒˆJÔZ·-éVë¶tÓIÂV)„ BîÒ€Cßc„Œs"2¦5še@ªERàå¿q·ÿ?—ßQy;À\I¬€!ÀüI€¦ÙéøÚ£qì¼€Q”F£ôz<™Äq4‰&,òÛ¾Ý[{ŒÂ(ŽÙÄ`<ÞqöݦŸùüÉ“'OžÌÝgó)€ Ò<—ÇÝù—§?vÝOÇU·üq+ ëAv(€«à‹k7oݾ}ûÛÛßÞ¾}ûÖ­¯ï¾zýúõéÛ·§o?|xúÖuö +@6ÍñOþª÷+é‹?1ÃoªxMÓÌæi.D’¤¢àz¿Ö^@žó]×ýðÃbqôËÑÑò¨[tGNü¼Ø‡ÍaãpÔÍ�…H„€B¸Íïy¾¿eʪگë`E£Q߸ž¦iÚÒÀ�ÿ(¾_�¯Ç›D“�Àå× Q)Õ‹3À#W+²¶µ«Ö¶mkuÆÝ)ã{'-ä<ã ç‚ ž‰ @‘ik5iB + mµÑˆV¦4FGÔ¢ÖÖ®ZÓ®V+ B ÎÝØOI°­ÕжZ¸}í „€Ld|j@(‘q¾ +Á }-XòÑhìq"]¶þ©�EqŸˆÈ›Ï…"B¸‘oý%Š"IŠnÙÍ� Ðu]õÃb±Xv‹îèhÑýÒ?TO�èÎàð‰´ä¢(D^äyžž3÷e4 +ÒÑ(ºžn ÈÙ8�#€Éõøúõëñ$Š/€Ö}{Ì%"]ÎlWH� ΂Ñh²p(ŠãÌå\•�… ”B‘R.àЭ¥U¹2«çSæŸ�!ÈÈ2EDÖ´VDš*!„`"(Dw \ÁyÆ9cŒ±0èÿUa8�FA‚ B† +тȔºOdL»j¿/˲,ýù°ìc€ÝiÀ+fæ‹®ëÇîè0oºnrîŠÇ½y�ƒÑõh4šL¢Q”ƾ¶£_óÛ¿ê‘0Ç“I4‰Ö +àüµXlµïŸºîÒJÀùQwæåèèÇ»£ŸªnyÔoov[ƒñx|²pí«¯oÝúæöíÛ7oÞüúë/¿¸ýêÍ›7oß¼zóæÝ›Ó÷ýb�õ;?æÃOý+²G�¬ªê¼Ø8¬‰¹H„ÈAl¤òB$E÷Ô+€y×-ªüðѲ[9 ðtS̺ná#€'ͼ[,—ËåÓ®[ E^‘çâð°9€ZÆ£Ñ8Ç×ã4¾îLÀJE‘F[ðI€É$æƒù”ì6Ö2‘è€(¥'…@¤”€Œ£ ¿ÿ{w1ˆ"ÎË„àB€ÎœÔV€J‚�J*Ý@p|”RÈ]a¢B"Òþ@ª$E„ K8‘¥°ÍÈh¹Ê2‘AÆY†{+©ÅÞh4 +9dŠ�êuŸŒ;ÿÞ8þe×m‡G;Ó€[½—+€ÅNPœQófÞíÈÆ~¥æ8žQ�‚x�Æ×ã(Š&Î×�\õwŒÇ“hxy°^Äuþü/ºùðiì.õ˜ nä¹Üíu˧•ëëu´.8ÞÊü2¾¼vëæÍ[ß|sëÖÍ›__»6¹}òúõ›W¯ß¾yóæÍéÛ7Àæ¹ïïþÕ:XUUuÆغ_Ï…"Ir‘yEïФ:ZxtNuÝ¢ëžu‹…—› éM3Ÿ7ͼyÒÌ‹åò¸€#J.D~x¸lv �G£`⸠¾™ ü^€ë½ èf‚Ž#/Ø€µ¶Ü@)ïn#À…ÌZj C¤€³0 ! ×pƒ€1Î…€L(ЀJ)P¤A©Ò‰~y E¤,’B7+œÈ +�Z‘!� + i€Xsÿ{BE$‚×)Z!µà`EZ)@PÀúÂ%Î÷öö‚õ¿ +`/…™RhˆQIZcWmùý÷.WÃù§n;pQÀ9àêY€¡ àÉÙB m0Ÿwóî\‘ìÄß¾ƒh2ÇÁ(ˆ£É(òÞ¢(ˆ"¿U/ + Œ£ñ(˜8øÜ;Ïÿ¢÷ð©ué ·åP.Ï]O»åOØ «Á¼õã¾H÷ .š öÅÿý‹ó�¯¯]»yíÖí›7o]ûúË/¿¸}òêõ›ÿãÍ›×oÞž¾}ãÚ�ו€M3{üøñã®{|ÜÔ}ôïÏý ä@ƒªªªj3 pF²Ïgó'>è'@¹(@.»m8 ðÔI€£®ƒºn¹ýt‡óywä«„–K™@Qä"âðpÙ4;PåQ4E~$è€Bæ€Èï ™L6jÅú 8[–8#¬/ F׉G(ZCH@¨0޲¬×a†ãYÆy&„ýèÒ€dI¡CT’) ’2FY4ˆJ¹�‹Âº|?"鵡°m‰JÂ’ rýÐ�êP*B"EÚepdã{{l˜ 1 +A)> +($MDºE �)Õš¶ý¾Ü:þDç€;çÒ€]×Í?ݹB æððÉ“5ºn>ïÎÆÀNžÁhGQp=îÅþ8r7Ïõ;ô¥5ÎtK8wŸÿÁÄxâÛš¯îøJÀ\zœ'À¢[›Wè&ü6ðÕW׮ݺuëÖµk×¾üâ‹/nýýõ«—¯_¿~ýöíÛׯ߼~ýúuÐï›ÈÇÍzNÉÁ�;ñ€@y¦Å¡ifó¦É…È“Tˆ¢È (ò¢(¤Í€y×-ä} °XK€-`Ñ4óù¼éænÀ¢@•ˆ"Ïóâðp¹t �v �FiäëÁ‡rFW 8`3Ÿi¸}þGÁuŒF£`2 +Æ“IÄQ4Ž\Óg¿i»¯³�ÇãqèàÆmîÊùã½NvŸ4h2™l†ò<~ì~ê°[þÔÏù= £ÀmÀQ,¸*¾¸öõµ¯¯Ýºuëæ×_}ñÅdôÍß_¾xýúõ«W¯Þ¼~ûæÍ«W¯^ë:€GͰhVø¬ÿÇ ½ØÑåÔ4Íál–$I*„(r€Š¢(| gù¢+z °XK/kàÐuÝò©ÀÏ•y‘.Ÿºã_u;0�Fãþö¾Y +<^`ãô;øáKk€RJí®*H)ã0E­±D¢’ŒÊ …´Öœ„è³á &€sP( á’Q+a샶,˲5mKhQkƒÑ�QÜÀ(4H¤9"’Y•†ˆ´€Ó¬‰[ 2ÊýS!i@®|&€³0èó€\ "`„J;¶  +EŠLûý÷ÛÇ›íÀ„WÌt;Ò€ùv° ÜÍG[ƒ[ƒh´VñîÎ>Çýzïñùìùºº>¸°èÈÀ ,yòäI·èv¶_Z ¸ì @·ìªn¹ü±ë‡‚º½ÀÞ“ÜUtu|uí«k·®Ýºuë믾øâ‹Ñ­“—¯^¼|õêÕËׯ_¿yyrrrôÍñþãºi=ªëº®gõ�¼š�Ò¨i;ïºf7šæ0M…p©z`w´1ûi±¨~øa±èŽŽ pÔO·Î×4�{—®[,[8\ºÛUÍ»³¨\0Nø“qD‘דøz?ÔWŸý†(•R +à ´÷I)%¼€S$BMhˆ„qRZ‘. Z¦Ô ‚p/ x¢x–�¥´ …Zâ +WÂXC-•¥5¥!0ˆDSBMHFg- $åÖ€qB*WmÛZCeYB¢íŠ-ê–´i��³ P0\)•e�pÎ×IJ•Ä[TD®v°E䤈Zûï«ÖŸ¿ö¤ëÎxË£ Ò€WͬÀÎB MðÉ9ŒFãh3ŒGÑhEã¾Öc ïFýÜí¾ãöB,{ úÿÉ“';G‚}¬pPÕ<ý±[.{ôÿ4÷‰Œ× l70¾ÿãŽkòÅW׮ݺùõ­[×<þû«¯^¿zõúŽ»ºçK� âè™Ë£_ RùÓsá.€j±èÐÍÝâÈI€7%Àò,FšfÀÑ&¤;ÿU5ïº3�=‚‰ß¾©¢qEÛC‡Á`ÑØWß3¥Rk°á:à€J $­Q8•NT¶Dd¹Ň .Pd0 +ÑfH¤µ[ëg,ZaŒ¡’L‰mÙZe ! +$Kd +ƒT"¤–Jlù}…Ôš²mKj�físMd�VdL+LI†H�¨5åB&Øë@ PiBa‰JKÉ–-šŒPkÊ–È”eI;àsgLÀŸ?±àÉ“ù\1 àŽä6‚ àÎËÄUÒ»Ìù¨ŸºßŸ±~æFp–kø>@'>¥ ^‡y¿§p?-»åRΖË·6ù1àýäú~ÈäÓðÅ—_}ýõµ[7½0ºùìäÅË—/_¾xuïÚW_]»uëÖÍ  išG�ꪪªýY³_Éêàjp÷èK0?ÌÝ8À¼(Š"?ß&Àxó—�º¹uM÷FŒ¿®¸ F£ êÿŽ~þyÀ|Þus_ +Ô}’àB€Á¬*)6ðt±\VÍò'€~ØÈOÖæsð…ë ¼víË/¿øþ‡Ñ×wO^<»sçÎ�{w¾øâ‹/¯]»vmÃhê¦nšª’UÕÔûUµ/¯'Ñ›�çЊ\$¹O6GùÞù¢[,¼ p4H€£�i)Ã0Ð àJ†*!’j±>þóùülÕr>ŽF£ Ž}œ?ü]ß àkIâ‰ý<€õÝ”(a#Ø}M€˜•dÉ’ÑšV+Ûºú�¶Õ–«L)ÅÖ€àx 5"´V·Æ®4µÖ¬l †ÈÓZ2íªU«UÛZ K–¬µ´j[²†HSÛRËI‘mÛ¶m • ðçV?G"zÞ’!mkZmVšŒ6ÖX>U$ÀUÌ #Ô-®ìŠZ€–lBŠŒYµmÛßý©tm@g=€Ÿý^ÌÏOÎçfÎÀ}omïoYÃÀ•�ýxÍÏºŽ¶à$À|PWœ +¼Y”ö +à > €Ùrùããm`7¢h|u`2¹öŵk_]ûò˯¾øbòÅhôõ½“—w¯}ñŵk_~ùÕ—_}õÕW_•€�š¦i¤,*9kd%ë+†®]·kšÎ÷÷m]KgâUEîC€¢Û@7ï‹Å… qt™¯€ûÆXø ùá¨ûÁo•êæM³Ý·pàB€q|6¨¶ÀPM6xëJ@wëEÇØ‹zލ‘ÖVs@HƘ¶¥vÅ ´6¾ˆ…A�e ×JhÔhD&@)à÷ïßWB¸YãÆ¶dM[Þ§¶\!’±Æ.HKÚ¶dWœÀ˜•U­1¦lIpk4®ZcuÛ¶e Â}À•RÀ™@¥@ãÎð +@kk5ÏP“ÕZ? j9)ÿÔåpúUyK?hy¾ðê�º]•€}`�lšy7w +`›£³Xßÿ/¹.âMÍó>xÎì>2p+¨¤¬êj‡Ø6Gë` *€/þ‡³×“É_|õå—_~uí‹/¿�F£/nݹsë‹/¾øò‹/¿¸víÚ×_ýõð?0‘MóèQÓH)+9««jhýû(ú­}lCs¨<òb£éëŒØt¶‹Šà¿y]÷óò!’Žz»`>o¶�WNŒÜ4ØM²klÍð!¨³q@¹mºZBdœqÆ9$¥€‚k™S Æ2ž‰¾Ž_¸š;"0ß»ª^P p¡ÜWÅË8ã\d°ñÔ ¸¥©Ö–Pk´È­FDˆˆÚUÜ'ʨ¼ïÌÁ9ga¸·®Ó€!gœg¹ºCàFkm ¬ËyPIª,KZœU‹õ²† º?–Xô«�ºK{æÝ“nÞuÝìôñÛí}»…ÃfýÿÑ–èºnî¦z\Õ`ñPÉê –MwE0Úö.@÷ÅîëË/¿üꫯ¾úâ‹ÿÛh4úÿóö7¿q\Ùº7˜Jš‰bfO^("aDòì\Ñæâ€x!P“kÀ/jPð™­E>{/1Ä”3ÌS[y·BdÙ Uî +toÝ>ýÎ.`¸g†0ô 0<¨ƒóOõ`G&“_úpÕémVùCrRJçþų¾žÕÙêßݾ;l;»{÷÷öööV¿ýá£iUM¿¨Ê¢,"Ê•}Æ%ƒÀòÊ_-×vÖíî®ë©€Å¢®ëª4±¸¬Oëz~9 pM¬µÆÀZàËø){þ|Ж�«ºªæk0Åôц[k9€GQl¬°µŽs£«$à2zäåup·Æˆ€L Pd“ca0ˆÀD&M“$]&ºÝÍÍ{iš¦ã41c""a‚:�k\[¸w M™Ñv ƒ˜ÒÈjçÈÌdÒ4V“Ô“""¦TH˜b–â wÄÌ+K Í$YëènF¥Àm¯ Lã,KSНÝÍ�[/Í,ZWà+!À{Tæ·VÖÊ€Õ¼ž×aÀúµv:½^¯7u;[Å0Ëâ>°h >l­Cz½öy�¬9 +&ݵ¶Á^¯¾ +€ÓzÞš�¼Àh4YWÅñ´¨bCÛí + …@ç-!@wY½ ý~çƒÎÖ‡íôa«¿½³³³»³wÿÁƒ.VƒÓªšVÓ¼(òüdZ>º¼å´?t±µ/þ¯¾A,u]š<Ï…Z¬vÁG pzE¬–Tk)Àºn¯}¶¨ë³³Ù$3³hCg‹/I€,ŸNÛ*ÀÊë§¼ +€�Þ…ÀÖp˜ {ë9€‹gó +—â€UY¬­¶w©03˜{õ™|¬¼SÛ +Ô�Ž IšfcccˆÈ03ÃÁqxØf9K|Â,H…¢}D@¤Ìܶ3|"@ì+$�ÆÁ"@™‰Lÿd6Ó$M×<MJ,D»ˆ!Ì‘ÀЄW×ÿ2–E€k!@4=}ÇY€Óº®ß¥ +0Ÿ×óöù_×õi½*ü%YQôzY6)þXô²/O¦Óªš—ÑǦ,Êèm³ú ·Rö$O†“iQ´‚óúºXu¿×f ­á•F ¢(�«¢ªÏggoR�îsËBH»Oáɵ©~ÿN¿ÿaëκ®é÷ƒÁîÞîÞîýýxViЭb:­¦ÓižçEq2-‹òQyÓ}¿v.-î[x]�Ää’Kž?^¶†Fp³Xö´¯Öþg_^ÿú쬮g�MÛV¼|ü_ÀRŒÖPEY¶ˆÍ ½^²TÉðÊnÀe›¯à7Ç˶ (€„H˜Xb.©�—!@wssó^’DC€Ä´n�§pGí 6Á9MEìn_šÅ�0D,3‰Umûü‚8M£f�MâC=¨2Žâ¯‡ÓØl¦i@·õ4$D,VÈŠ�À p YÝ\Ë,‹³ÖËí†iÀwÌÔõ»ÍÔõ“e{ñéÙi;ÐfÅó^7Ë«j’M_TUU·{.ªª:.gåú™NËr:{TW³Ù´:)²a1�Æeâ“Öqöùâ +b'Ðé{»_.–­h߈g§§§õ|V–e=�ÝFOêz>Ÿ?™ÏŸÔ«=˜õqžçùüÉìÉj‘Z]/]’žÌŸÌë›™î\ºÿ�íÁ`g÷þý½ýûü×O>ýôÓO×Àt:�Nó<*€²|Ôº­ÆÿŠëF�eYT—÷w×Kpu ²˜<Ïˉ̖’p¾üã’ˆC�;bÖ'Þÿ/‹vŒrQ׋ÅccLµh=Ãæíâ5°Ñé|w~,P<ŠØèvÛ¹Ðá* Ø:F-ÊÚ–Ñ€ˆ¾\Llb‰ÉXd!Bâ-Tøà€MÊÍÍ{1§”Qü✸‡¯^s c´ß@˜!H,1‘ˆQ�Q¯Þ +€�’ÄQE˜`8z@àà,C�Cb¢‡Lc³9¯ƒl&_Zˆ™œH >X*ð)��‹™{ƒh%ÀMeÀyý÷Î\À¥ïß +€aVÔ—ðÇ?Ö8>~¼€Ge9�UÕ¬š=®ª“b˜å-&õ¼¾ª. A¯ïxÃvàK�€­8¾¤ÏÏNOOëy|#ÖIø&İ(^ÿ'ów©ll{÷÷ö÷÷?ýô“ßú»ßýî÷«ÀV €Éd2™œL‹¢|T\Ø€]ò[ý¯,Šr6›]^à]¯Q`ù$/òr’W§Qb,7¯O#.$Àúв°ørñ¬®ë³ú쫳Ӻ^œÍVhïÿl6;YgùôQ;‡[½^²5nÅ_sþ(&7ºÝÞÆFoc£ÞZÍl¬Ðîdå剹±?\�.eD$Qf¢81ȯ +ËdÆt€Í$M÷€¢‰g£P~Ø(«;jÐÔ9D!$,’Z"ÄC‰�ar�øf,«%$Â"†Å– JÎ�1ј7ÇѪh³ÓétS“ ‹µ`¶$^=‚fmØûT¨•9ÖÚk9€ÅrAØ5G w.ÞÚ4¿ íŸâ½ëv7z½ë¨×0›_UÇU5«feU�”iÚ*€hCyOž<™·3ïÓpS#Ð%ðâÅÙééi]­ ö8\@Ù`6«Zw¢øäÒfNgïpÿ·vöîßßß°ÿé'¿ûýï>ýì³Ï~¿¶¨UxtÙðæ¯Ùì +VÉ€ê䊀r~m1Ò% ð¬>k�Nêj‹/§ÏêÓzQŸ�-ê%æ‹z~²|úϪª¾€˜LâÄO¯e×£²È"6¶Öú’d¸u¥xYE¢Àz°â`-‰@+ÄFÀ* +IP«rÀÆDtâf 4MÇã1%ÄBÄ"Ä¡Qœ{ˆÓÆ9` ÀÅXÂ"ñBDö¢Q\hÀ$úMt@Lv,Ö1‹@¤ |èpÈBÌŽˆh3'IÇ»D=+däÄ ¶z® „ �Ø&�Áì�õ—{€¯/¹< øÖY€e#ÐMU€õiÀùêRŸ.¼ñ¢D˰j­[°®ONêú¤Š®“Éh” ‡“Ȁ㋧ÔÕ©®ÏžŸ½¸ÜÐOÞ«`xSÀº¸@Ìæ«jèM +`6¯Úçþ¼~2�FEóyýNèïÝ¿ÿà“ûŸþþ÷¿ÿì÷ÿÇ×_ýõ5�O&“I=-ÊŠ7æg³+X ªçkqÀi]Lò¢�Éã‹ÆÐ•X“g§õéÙ2X¯•_ÖÏÎNëÓzq½Bg³Ö]luýgU4 +Îó<�9€Q@|Àoõ.Ü͆½�NÛiÝë­ÍGoà^wãJ' .#€È^�–€HĦËÆâUƒ‘‘q§ÓílnnÞK6Ó4MÇb8‘övئ�ŠkŽ:vÑË"±6³ˆxX¤¢ç^¢�µ1Þrô +aQˆ±ÐàETl rè�Ù¥´™^˜n +%9�b/VŒXåB ¢�Q˰€µÞû�ÎÞb +Z¿c#ÐÛfæóV=®ÿæu{—O.prrRM�Ë"ŸLF£,ŽZ̪º½ô«<Ó:Î.·×Ož<™¿÷f ásÏŸ_Só'kÕ�›0[JÿåpBÄÀ¯~Ìôïïïòé'ûŸ~öÙgŸ}öY\ ¶À£u”Å£GÅ[PÅqy�Ëö½ØÊ·REžG\UkàÙ³º^–ö×K‹E}º8‹«ëE}zúåâlf¢»Ø¬ªªÙ¬šÍfU}‘L'Ói@«ð“­^ì(ʲȶ6º+ôV“€W†�º+DCmfæCfbâ‹8À´Pç<f+6õ€!�·ñ°Ö‚iC€$‰}2”0H„ÈÚÆ¹#µ�sp¬ ’Bœ¶/�ÔBˆDD­…€Å+ùäÓO|ò»Ïþ×wß}ýõgÿòõ¥*ÀEPMËÕ8à›5@Y®PÕÕzS@]Õõ*8«‹Ižç¥yÜÿk¬�Ïë p÷ÕAæóù|Q×§§_E0|UuºX,g�[T󓪚͞ÌfU]W«`²TÃÖ¾Ý ”çEYdÃÕ¬UtˆßZµ­—£'S§CL—DãDLd"Ô*Ä#…@HD VÄ’õ^UÈéøÞ½ng3 Í ¥&MŒˆà@¬ýVo�£#FŒ§.Xe�x›XÉ…Y,ˆ/­Äbƒ 4ÆbâŒ�a x oÿCàäP!txH "3ÞLMLt:�M‘Är´!` ^U=‹X/¼Q+b¼÷iºüìŸÍ?.˲Ìó<�S_“2ràô´®g³ÙìITöÑϽÍëO&yñxVŸ=þüùÙú«ë'O¢ xüL=‰d_žù|³`UÕöæ^ôæÇ¬q çÕ,Ï'“,Kz±ô¿™LŠiQÄû?e‘çEQ”³ª¾ØHT]ìý˜Ïò,ËŒ‰ŽÖeÛ Ü6?¹ Ïò]8;=­c•¡Èóܘ,˲lR´=èÙ0eY¶ªNOêguõ8ŸLŒÉórVŸ=_<~6OfQÕ¶oÆ“µ7âIU-÷(ÆÛOæ³Ùí�þþt:w:�NÿÓO>ýô÷¿ÿôÓÏþåÛï¾ýúЏœ(‹âÑ;€ÒòZ& ÆóU2ð¬.Lž%ÍV]ë˜/ßÊúY½”QüWUkPÿñì´@l¡ˆ8«ëy]�TOâw¿(˜I5-.�$ía»ì¼¼€UðÖp8ì%U€Õ 1_Ž˜ˆ,&bc¼wMâÅŠ±z` +6 +ͱQ"Úìt7ïµ^ ”˜q:§&šú +‚ªÕÆ9ïBðM"¢ñ¥…¬Ä˜_¬èyCMრ�!«ª^Ô:bbba2Ñ)DÈP’¶Æ€�Ng“(=°tp D ˆ/DȨ©@ÕxŸ¦Æ˜K)ÞÓº>==km�—ݱg§WŸõ꺜ճÇgíÏ]¾Îž<™UÕ|ù�˜·ærOæ³y5²\4»xdŸž�.�óUÙ¨®ëº.3cÒ4GgY6)&£Q6œ”ÇÇdzվÉK¿•r¹»,Ë'³Y;xTÍf³ù¼M´È‹LÄÕsvvö¬>9©Š­^ÒÆq7@ÑvM«¥|©gåéõ7¢žÏžÌOª6Ø©£ÆÅ;±ªŒÏW)²ªºíþß¹Óÿp+†ÛŸü>n +ýìÛ¯¿ûþ‡èpS š®µ¾k˜µ*à$ Æu]ŸÕ¹Éó2Ïgqé×ÕTà|­p%@ €ù|^·oϳ€/[”&ËëÙ¼®ë2–fÕl y5-²�^§M ‡½yYí5ô¢h»Cv­ ¸ìÅj°N€˜ +À@ÌdŒp;`—¦Æ DÖ{¼õ�1–8ÞnCi·Ó–6ï%ij’4MDZ§Wˆˆ�aˆjãUá ClLël-ÈŠ V¼÷Þ²$—Šh�€ÓhL<ŽKŒ�€ˆ$3X˜½%Jͽh ÚÚ�¤F¬±bƒ�÷ÖÃ�¬�¬ÖÆ—NÇ)c¨^æ÷ž<©OOëh˜SÏ£«ëz–·»`®àìJò¬õÛ›/3ßOæOêú´ÌËŠâ£Ñ(›OWÓj>¯fOæqý`ý¤^SOª'QwDøÌ£ÆX—Ë¿ªOëù“YÛÌXUU]Íʸ¦×ëmt{½ä£a–�F“ILL«öÓ|¶ÖK¿ç“Øû¤�=<�Å7b¶JWÎf�W�Z;“›Åÿý~¿ó›þoît:¿élúÙï?ýýï¿þúÛϾýöÛï¾ûî»ïÖ·· + Ÿäï €T@;0¯/@Yæ“Ù¢mô½Š€µ7âÙYìhK§ggg§§‹ºþª®Oããÿùâù¼*M–×å¼®ë|VÏW…€ Ä 5ùÛÚJ†yÛv ½5c°›€¨õù +˜È:±Ù8tñ'1¥”eã1ûü)²D&M²4ÝŒ{Ú( ¡$1&¶ 0G§_�™ˆDý˜â®°Xv`J)54fc"2"bLÆddÆÆ˜hü›zaÆD 1b{°¡ÔŒMJ†î%÷Ò{Ë>CãÔ¤cJ)¾4 ÷ +Œ�1c2&vÑŶö"?¹ø/ÚÎÍœ®%z.îÿÙòC_WeY>~<›Gá#Áº®ge^–UU׳ÙÉIUUícx^×óÙãÙl¶VÍü8Jþº>[<�[¥[,^<‹Ý¶_Ö''Õt:=žN—N¦ÕÉÉI=»Ø8[×§§gg§u5+Ërö8WNü–Ë*ÏžÔõ|þd™¿8]-A‰Aðñññ¤·±¬.Ç æ£Éh2)ŽM«º>{Ö Ž]嬎OøjÞ¾yÕã2/gÕ“z6›ÏãÇ{'];·ŒEmõûý?ìÇ¿|òé§Ÿý. +€oø>àJ#PQEÑæÞ×pr²6tVç&—²È«º^¶úϯ=¯Ë ˆ‘ùütqÖ¦¿:�Ó/‹YU–U]×yYÇû_UÕ¬Ýc–åÕ´œlltZ[Èd˜ ‹"/м(�‹á°·ò[Y`™*¸Ø¼±Ñív66:ê£Ö§Xd_W±Àñ‡|ÄspLd͘…ˆÈ¤DÄÖ¦†ÒÔ¤éfëÒMÒ4:ôCë÷" f(‹v`"CñŽCˆ)¶÷Æc2Ä&Ú{c(#J�1ÆÑ8%‚ˆ0�™(JƒØ ÀaN™iœ¦q3Áf[ b2æ`1fbLfr)g³Ù¼>�þä³'ËoÕÞOâéɪX¯ü“eëÎê]8©ë““êø¸õ6z½äbä ˲Ѩ(Š|’—ggg§uâÙÙó³øFTóÙìÉl–%YôÐɲ¼}#–mROÚTȵsãTÔ�ßôûý~ÿNÿÃ;wît:ƒÿã³ÿã÷Ÿ}öÙ¿|÷í×ß}÷ý?üðõ*@ÀÉ£²x\j®¼žm“‹Åóż,Ë<7YYçU]ד²žÏ«X ˜µ› ³|:-G½Nëû™ ·zÃ<.8/§E¶µ€­ °uÉd9PÚ®ø¼*„ˆˆ­ +Ž$¶à;&!c¤]ÆA±6x@Æ�'�¸#¤›¦cc26D†äÀ�µLË–b¶caŽwÖGÂ$☈Œn÷|°lvÐNü"b�±)Ãd 0[IÂc2&é½Í{ÝN§³É2Dã1CÆ�ˆÀš8:DbH„A&N2.¹_I`µOÄÓå-9=;[,NOŸŸ]=­ÛÆ|^U³ë"u}V•�gq‰LìŽm[WIû¶f\?©ê'ÕìIŒÔŸ<™ÏãÓàøøøbnu)†£²š˜Ì˜,ŸUmc½¤¿w“‚qÉ‘1í¯ã¢º¸0F�¿ò““êø¸õ–³f1É” ‡ÃѤ(ŠéIý¬®ŸÕ§Kœ�-£€j^ÍnêY]–åi]ÍgUì�½z®µÿ¦Óélõ·–#A�;w:ýO?ûìëϾþúûï¾ûîëï/`X”Ó/–˜ž¼Ûóÿ +V¨ª(ê““U¯E €2†g×þS¯'s땎hŸÿ_E,‹ç‹E{ýó,] XÚ�]$²I@oc£ÿJ¶b�—ÇÅ0Ùèv;Ý^; ”$½Ø-¼5n ×ªí œÆ-¿×E€ÄÖà¶Øa8ˆl¬ˆ98`Â�OxlȤI§ÓÝL’¤›˜ÔrD4fÁZ�B`€MUE .V/ÍDD–ȈÐÁ�DSP»ÿ‹ÅÂJ+�E[ K°L’À™8œÞ»×ítº)3ˆ �Í“ÉH¬Äg–Úõb$80Ä \àô¬�’¿d¼xñâÅ‹¢üùóÅ‹/ž?ñüùóç«¿Z\ÏÕõ|6«f³ÇežçÆL&ùã**ô³µKv%…4ŸÏæ³'ñ–>‰Oíùlv|.Š¢ªÏž=«ëú«ÅÙÙÙb)V‘Ôéz�ÌÅ;qºxù!Ðïwúýþv°}·ßïw:ƒßýË×_ÿË·_÷¿¾ÿîûï¾»”Üší4`žçÓª8~ô×ÿF\AÀU>)–û¯ `­³«%Àê_=]´X´ò¿Etš¥Ù$7e�W§gõÄœÔUU·�GSÈLY•£¸¬×Kz[½Þ0Ï'“\Vèv[0ìõ¶’­eµà’ˆ­rA€ °D€x¶P¸#+íZ° +Ç^ÏÖž'80æŸÈŽ»�n7M“Í$�£ï�acãR ²Ð¦ñvl@Ö»`©Má9V"‚ÂqÀ‰âÏ)˜ ±*ܨ’åò"‚g²€ò,Œ&¨OEˆÌ˜Ò4MÓ$Ýìt“È5¶Æ±ö�â2‡&U"Ã|¨Ð86íý‡{qéüå/—UÀbqÖ&oÏbáç⯮ïâÅÚO>�é³³e-o>_ëh£ˆ/þç¿]œÿ׿ýÛ¿ýŸÿöo/gõɬÌs“eY–¦Y–™ø‡É/ž•EYL&“É(nõ†“¢(¦Ó¨NNÖæüÏÚ¶žkuý«zqÛùKëZ{òEÑæzKOïQ1YÞ�é뺮Ÿ}¹”Fí[ /Oë“XØ8[ÑpõNÜzÿÿûw>èt®|uúôïn¶Ûý~ÿƒÎÎ'¿ÿú³¯¿ýöÛ¾ý»¬.à]r«v‰[û,N® 7“²ºŠ€µ( ®Ïf³j^ÍÏêÓËäߥëO“º®&Õ颞d³º:Yú‡VÙݶ pI 766º�è]@¶VÕÀÞFgã²_‹Ú–h³�l‹»ô8ô¢ÄP'$@`°M• Yç’Ng3IÓtsœŽÉ°¡1ñÁˆ…�qÅG0V–¶Âj!ˆ›Ý±ƒ:&8ð©2“;:"AhþÛ‘¤(<ƒ„‚`™±Ú>µ$464n³€Ýî&G™�"±ÄÖ¹F€0¹£ÀGáa�Ô€òÍò#ÿ×}ŸŽÏoÀbqvö¬®_^ÀóUŠ ^º*þôº~²þ¹_^¿/^üõñ¯þÏû·¿FùÄdY–¦i–™‘1—PÇE1™L&Ù°×Nò¼˜N«““ÙlÖ~òΖY€ÓëJü�ð?Vø2àŸ‹ÑÆuLŠé¿Å´M|µX,¾úrñ—ö½[ºª] ÎG-Þ�NçÎå¯:�þV0ØÙ îöïö;;Ÿþþ믿þöëo¿ÿîÛï~øþÛo¿ývM™L꺚Wf¶XÔ“´¬cÞ6J€5t»Ý��Þp«×&ÃÉ$�mEoØÛØh/®­˜ïu{ÃáÖp4Ê:kÃq¸€Ú5`mÔÆžâÔ}s†°e8%‚:u"ܘlhlH;�Í{é8ÝLƆˆm¸”TÕŠDðÿh¼MÙ*{n_Úƒ!" UbVUp«i`¨QeÁÇMðiT(�<¯Ë€öO€¤DbLJqEø½d³»“&ö7 +Ð4�‚‚ 0täŽpîa|iV’o¾¡ýkÀ‹¿F¼x#®)€@?ÿË%<[,ÎÚ‘zq /nÀJDdiT“̘Éì"P® � + >™Íf'ÕgþûU0mÀj«Çh2E1�Å´®Ÿ�>{öì«/o@}¡æõ|>?«ß +€�Kÿ;ý:�N¿ßß vw»ƒÁvÿÃÝßÿËg_ûõ×ß~÷Ýwß}ûígŸ}öÙ:ŠUðpñ0Ö’ÏJSäy¹B@^]EÀr‡äi]Ϫªª¿ŠXý—×?Í&”›I=ŸWsc/už/® -§-b`¿5Nòɤ(‹i5i°ìŽý?›½Þfo8ÜM§ÓÎÚ8`€èR¬‹kYàTT­2DÊ‘óPÑ£à`Å’¤ä§ÝÎæ½qš$阈ØÐ˜ˆ`ÉZoÙBÉkó�÷©* °b¡Â°Þs°D‡`‚Â9‘ª:ë)Àp\Ó<„D÷ &Àƒ¼zeÀÀj¤6ŽÍ8MîÝK6»›‡BÄÂÖ+Àà‚ªC_Ú¾išæ!8Æöœ€¥xñâW ú¿øË + àì:þû¿€ÿóß^ýäÓÏ>ùä“O>YŠÕµ�ÃÓo{üË›P–å¬>YM,ÊÌäyQ¬`&7  ­ÊT¸rýó,£Édbêy5Ÿ›‰É[œÕí\ð| €¤˜·Øj ò<ŸÄ>€d¸±Ñëvº± `8Üö’Öh8œTmgu»Q¦µc±v%¤b-<¬¨Âsãm�‡B¤ ‹�óʰÔ4AD)XP·»™¤ã4"±<&õ¡� Vÿã›sk¼Z Pö°žEà#¹!B°8´Ü4GKÁ8×xwô0€½Â‡`Û¶jBìçÞãÀþGl*VHˆScÒ4I“ngbŒ8> ñ¡2³pœW þª84zôð¡ò>¨% !ÐýÕh;ø®(€hwzƒøŸWð?ÿº8««YY,�f™Éb"ð"8>>¾¤ò Pÿ=øëZ ð?.Àéÿõ‹-F½���­ÞF±  (¦¬Ÿ�>«ŸýñËÅW|#æï€E¿ÿ›þ�;íWÿ·¿ý°ÿ›­þÝþöîî`0ع¿·7ØÞlo÷ûÛwïýÁîýì¯'/)€7Öó\b`r“¿ UµJ´~UæÆ˜¼(ŠU'3U7#à´®ªê«ú«ÅEÚóâúOr“Ód^Í«jbò|6[,ê<+Ÿ­ ,Š²Ì’¼*³¸K±×ëõ’^¯—Oò¼lÐ[ ·5ö¶¶†›½Þf¯×n­°4dî4Mí¯e$Šñ�÷¼o ê½á– +•&4�½ê¸ìLɽÍ$'›©aC £ª8²laDDDm#ã Ö‡‚à‚úÀA˜p!ŽóÁòMh Á�vÚàèa 4€Z +!5* +{Õ†¦^˜¬RjÈŒ“4Ùìl‚̘&¬eúƇ‹—v�;úo� Ú(8"¢xþÇ_ÿðü&0_ ‰^ÀuÐ ¿!0¹ÀeÐ&«¿-þúâÅ‹ÿÏK +`ÀÚb¿ÑhR|üq|Î~Y?«ßgï€N¿ß︵µµÕÿ06þ¶¿Ýì ;wwöööövƒ»[«½¡»»{{{{ +`TÓi ðÅô]äžç&Ï�y#.Ѝ³Yžg¦(Š"—òJP]Ûv+íY]“ÓdBU5¯æÆäùl6«‹š²r¥êª*Ëâ¸Ì’|ZŽzÝ6ÊOz½^‘Ç +Á´¶kã– +`8Üjƒ€ápëãª:¹ B‹]­÷7±�Ñ �PcÕ¢Q²LÁ«…ª23�ƒe 4õ›IjÒÍ{I:NÇiJÄìšöÅhlèâ°ðØ{ hœ7^ +&¯P„ "ÂãäšÆ5æ?š€qœV4†øððâ¥Mlÿ‰óBƘ„ÌØ¤æÞfw–â<�¡ÖZ�µÂtÜn02ư0[K 減@ V¨ˆ³%0 3�Çãqº™$&évîY"bcÆãÔ!8Ç �²1"3&‚Ç]¨ÂÄ¥ü¯O>~s ~ï@¾žc²É­9€eðV—rÿ:½È¬À¤m˜ÖÏž�>{ö®xpçƒ~§³µµÕ¿³uçÎ�~ÿ7[wîtúw·ãzðûûû÷÷v{{Û;ƒÁv0ØÛß°¿¿ÿ¿_@ñÅr$hš¿ýù/ÙÄäsùÖ^=uY–K °˜Íf³ã<Ïò¢ˆ“ùWpåß}ñbíú›É$ŸLLü‘‹ëÿ|±x~’™Ù +u]?zT�Lb•“5 ‡ÃÖ°œN†[½n§Û‰?ÔÝèõ6z½îF·Ûíö†[“““ªÝÑ|ÕU`ÕÆª à]°0y Šn"E‹6‡Î�qÝW|onv“$IÇw�‰„ÁD„…!Q8Ä–ÈÆÈ0¥&*|â‡xèçœ�,Ü*0iW•1s4'ÖØÂÄÌál¤I’nv;�îx<6†Mklð� `â8߈!2 @(î1Ƙ¸Âô×àæÀ-}·åfK$ËF sµ x|½ øPë:ಘ~qCàã©|~ p¨[üñíx‡$`gëƒv Óé÷?ø óá‡ý­»ýíݽû÷w÷ìïïïíìÞß vwïnööîß Ši1�~q1øæçÿRTÇ·…u]×e^®z·#fy�¹®"`v•ÏW÷bò M&“ªªªy{ýg‹ÅóŋŢª²IuV×óe0ö4÷²²šô–…þ$&[ewžFt»����ÞF·³¹ÑÛÜèm.0*Š¢­´ÿñÿK"€—a«A  8D;°ô@ˆ"u +"b5¹ÙÜÜL“ÔÄ"b² – 4ˆ—xùÌP²C„EéAòe÷ÐAãR�hW"€Q»ò(…QXE#€Ô“a&CÌÆŒ)'½Íng3&c Ã!f„):¡b b‹!¢eØòú«÷þ×+€ÛûNß'C€¶`t¥àj06ýÀ__¨÷€Âæ>Ž\ÃEá½'Û¦Š™ù€AdR‚sŽ­p»hýP¿nõ?ìøÛ?üíVëÃûöûý­þàî`ïþþîýû»»{;»;1¸»½½³Ï%üó£Gź-ÀŸÿQ“OL]׳Y~ó™Õu]æE½x¶– +ŒÈå¢+("`~Õ*×81dLˉK×ÿyUUy6™-�꺪ãï Y@ÒKâb�²œ–ey<{Ýn·ÓÝèõº�N[®ímlt»­/Hl\àqüœ_ÄVmÛäÔ©‚Ùš¶XØŒd ¦¸.ÀPL€‰…’ÍÍ{ij ‘°‘be‚|UÀ +ê�SñN„`„DŽ#>6#1 a†s€C˜X¼Šsbij"80ÀCâ ðø$  �Æ“¤÷6777“6å˜3–Øo¸\E"cf¨¨s�T,¾]T$íý÷!¨¿g7ånÀ›úb/ð…È&·–ß j"² �0 "¡ÔXBqp޼BÁVU…%߯o,Þ{BÛ9~È|ÀÂ|À;%ßÞ +Üï÷?Œ§ý‹­?ü°¿½óÿû{{{û{;»ƒÁ`{{Ðßî»{{×’€Å£¢ø" +€Go,H[ÈÏ�1u}<›™›OyR×¥ÉO_ÖKC¯ ”ež²ÀY}ª8;`&¹iŸþóöúÏâõ_TUžgk8999™N§Ói™ee5º €ãããut–èmt{ÝÞææÆÆf7ùhØëõz—C€Zh‚¶"À1y±C4ï·ÜF8HŶKöD Kıšñ½{Ý4MÓtLlb +Q,ˆ³¿Ì€y"`–SÁ�èlÇ ‰{Gââ/f& ~¬RA`'›Ø  ÄŠÄ5A,c&“’IÒ$MRC$$Ì”òÁ˜„™q" ÓÒ˜ü⥨¤¢ªê5àýmXÍN"Y™X+ ’ø+·ã�+d[K3f‘¸4‘ˆ�1$)T$®=%) Q\š€qRâHâ` À^Hàœ³ÞZÄ­ÉÔ©‰È2Ëf[‘õ’ƒfC,&5V¢ “C¾‡‡Ð%d €Ã[àðÕ?7.ÞÞÞÙÝÙÛÛß½¿·7ìloßíouúw·ƒÁ`gg0¸€éô‹/¾ˆXú˜ßX\–êúäxVUÙ�'?©ër’×õ¯ 9Ïf³YÞN^æyž›êT¹1-ÖŸþë×?MWhÛ#óMZž¬…ëøü²èƉ�îf·»Ùí}4Üêmõ.'Cp.ŠÝÐ4Ê,b@€PË ‚S8U炦DD €Å3�ÉÀ0Iw3MÒñØ�‰mÅ&(¨<‚ˆ(‰¸Q›�©Ý<‰DèxïU<¥`·û™�÷^¡V=³XQ‰L“š{iš$c†ˆ“¤D阨�%Š�Ä«S±’‚(.˜Ø¨*¼ª�# oÀ…Ò:h ر\€¥1C ]€½ ×®NÅX°ÆUk°$°¬ö‚DW`y¹5y €ÄæƒjÐÚ6½E¨Ø5˜ø�ؤ„‡×¼=ðvüö·ýßþö·¿ýíåû?Øì öîïïïýï{÷wƒ»ý­N¿ÓÙêo÷ûÛƒÁ`û�Š/¦ÿº@QLnN,Àl6«ª4K¯}eY^E\îôùr…€)˲,M†ÅIÖÛhû€†1 C€éU´£Ýn¯›|4ÜZZ‚m´è„Bp+ ÌlÄkŒSB©SçâcœaMôïÿ\Â"K ŸHƒd³›$iš�‰™‰ ¬Æ‡¼FOoUÖŒæâ¥�Ø”Aq1"$¢"LΫs°’ +Ya @,LìÜàEâÖàø$kؤƤɘE¢ÉabØ€°#ð&¨ƒƒH*b…@< ¯,¼Æn¾^;à+°jÄ^€3V +@Þ¤×pØ€oÖÀkHÞ^*È� +7vMææ<¼÷wà¦5@ý­þÝííÁîîÞÞýû÷ïïîîý¥UÈVëî`pEüsñÏÅÓ/¾hC€ÉU\ºÿ¦-œÄ™Ÿ,Í®~eÙ¤ªëY–×�—í–†€g(˼>›™· Zš"®jÏ/ª<ϲ4Mó¼|\µä² ,§“$ŸfKßï€G�=Šøh¸Ñí\ÀÆæÆÆæFox€uBp�]³ÊÂð€W/ÊlƒñP·’ñdˆX ÆC,[13ï,Äl’¤ÀxÜŠO 4Þºà‚@™^à%À ¬7p(,b˜²+*f™z°!b!«B‚�W@ÏE,‰²€,ñ˜Ä$ã4IÒÔDÃâƒÄ‹,—�±K…¡EH-‘�‚�Š40^•E–�f†sëX¿þë +€¯)s³0oQæ’p+´ +@Öàâ¹)x;ÈÒºÀ›`qI®ààÜß €Uüßÿ͇§? ÷c¶ïþîî`÷“û{îßßßßÿä“Oöÿëý¯k­À£¢(þùQÌ7g׫ @;ôws zVÏ&y½, +<{‡ ¿\ų¼ž×oTóÉdRÍçó‹ëÿ< ϳ4KÓ¶‚¸L!ÍçóyY–eYåɤö66Öl™=zô¨*Ër: {×+½á°·Õ†U‰xìl£ªÚ4 G‡A+yç�spˆá±E0q®ÏZ8Ç^è€= [�˜hÝBYbkÅ6ð Ë"ð^)¼�ƒÆç.¼m ¬e� p®–ø]õ1`Sk-X!ñß0 <;ïƒñ–£)Ø2¥D”ŒÓ$¹·™D7›JÜT�ˆ%Ä äV}´/�Uö!Äo¿züÎ9]€/Ÿ5Øü,ß èÍ + y‹Xð‡u¼UHì­)^ϼxƒ¸îïÀ�ßt:¿é÷·¶¶:¿‰†€¿é÷ûý�ݽݽÁÞîÞýÝÁ`ûÁ×ßýðÃßûÃ?üôÃOßûí·ÿër (Ú>€é´˜\K¬Åÿ’›ü’X%ì/{•Ï. ,Ëg±r,êzþf7½Ígëê±Xy–¦YûƒóùªÒ¸€l2\Z~mm ³,‹ÙÁÛÐÝÜìnnö†ÃáÖå@§‘ˆ‡?œ7ªŠ¦Quµ€²¨#�¨€×4Xñ�sŽÔR[ˆ}IÚ%“¦†8ná�ià¡ø%��Ÿ*…²&òã°·&QÃ=tìc’‘!ˆ%M½¨(T¡ô <”ßÀRì_`ˆ ‘IÌ8I77SfÃl%µ�$N]¼ ,,„…¦�6ãà-æÁÚãpPU,‹UêïF`×€DÀ·‡·)€„Äܤ,½ï–àuP €¨o °¦°€Ãàþ.ÜùàÎwîÜépçNkk«¿Õžþ`wwogow°³;Øî÷ï÷ã�?þøò§úéÕϯ_þøã�?®°»/²ÿ“kX¿ÿq +À¬ÙwVeì²[ÿ2³gõlRÖ—›ž]Ä/ZLÞ€j~Uý/žçY`µ<¸®ëª]©P$½$[Z~mõ†Ãl¸Àq±ÀÖÆEÐÝè¶eÀ­­Õ^€ðR¸?à¼QE€¨%«$`¢U„q +âIÙ)YḴê'LiÒMÓØ*Db6m¬µÞZ§ DªO�ŠŸR…Áœ+Y(Y~MDDU±@*qE1T�ñ9<¼ZEPÖ¸ý±‘_Òqš¦ÉfÂBÌìSk‰¬eqDJñbá•á� + ,‹i  ñø´Me\¿ÿ—€\€}CpkÀˆyg€5ð®9"fCtMß`M\˜×ß�¿mÎï·wúý·¶î܉cwúýÁîîîÞîî`0ؾÛïÜÿîûŸ~øñÇ_¾|ùêõëW/_¾üéJ#PUœþó“[*²*\l¹¡È”u=3E}ížÅ8`ñâ]@uEý/ùµ¥ Õb-ËseÒÛ^Ø~¯0-ËY €nw£·Ñív#.767ºÝÞð£á°·Õµ»Û +\$€âü¼Qñê½…@­xßçEPEc¬÷©µmQ™$v¥iwlÒñ˜b8�¬Â7!àÁ#(à5Vï¼ÿ†–Í7ðVmcÔŠU(ެIô"ô€Ö¦Ö²ˆŠz¨( À‡ì¹÷ {eX…0 kjÆi’l¦ÄÌ|à“¶ÃªEÑøÒNm +Dϳø½L�6% ËûoÌõO8ÝঀyÇ*€yÇÐæ rpC€nV´¦øí +À]„" +°9f–&NÉܺ/®&¢_€­îܹóÁñëƒúw>øàƒ>¸s§¿½3ìüß÷ö;Ûƒ»ý΃ï~|ùãO¯^½zýêÕëW?¿zõêÿºªŠµ. + +à’¸Ï&WÀI}òúÆ6Aóø“w@ûð¿ñÅ"Z'ÉøOÊ4I’å´Ï°7̆Ùt:�VÇQ,“€ÝN··µµµÕënÆNÀ�†½­ t—DЖ(ŠU…zï�oÈAáñ°POA</6šz¤D"lÌ,”¤›2ÃÄBµ¤Æª=PÎU¼ZÕ _mžzØ“U¼Âzà ˆWµV YÓÒB +%Ol]Ó¨þ9¯V­«ˆ,iJã4M6“f"‘Ôé�H£â=1bm¤6 °í³Ôª(’ØÄ@,’Äïlèðm!nϼ½ +ðî + @~s`ö"@k9^Sº ¨ò±,£^Õ…6PHˆÔ‹XK–R†ãvmÓ•“¦iúkða¿ÿaçÃþÖ‡±ýïÃûý­~ëÃþÝÁ`g°·w0Ø úýýöñÿòå«W¯_ÿüóÏ?¿¾Àd€è 2)ŠüV�MÌUpRW�¯ž7 _À[@µšû¹­é¸ŠŽ@k˜–Y’ —Ž_qGë´šVUY–Ó"[)€^·³±µ5ì ·ºÝÚ*@7j€NGW@!XG†˜¼…W@5À«Rp +hì U5�6ø¦ùsÐà…UˆIXÂDã$Ý4qaL4a†!&¯Ö+àÕë'ïjD-Ìyö›æÏA½ÂúØèˈ +ñiP XA‡óÀñÃÌ CDj`–‰„8%3N“^ÂJÄ"i8hB¼Wë}{ݽÂz'âÓà­ j„|˜È0Sý¯=þM:N߬ÖBX½–x×*À»+€6à›sW°R—€ƒÄºC +>BYaE=‘—Uj¡¾m +§îà€,Ó˜@264Ž;YV'kÿüë°VøßÚê·ƒÀñÿ;«Àí~ÿÁ÷?þøÓO/_¾zùóë×?¿þÛßþöó øbúÏ+¬ßYË\U]Uׄù¤Àìú9ÉßCTÕlñ|GynùáÇ~üñÇW/_¿~õóëW¿üòËÿw-˜\Ž®æòµ" ¹.ªº¢äòº®L~ø`]¿—ˆÆRä†LcY”eQ­P_@» 7«ê_«jZ–�ŠlØÛè.°1ö†½áæJl ‡—p!nqA y8Ç,`²©@b;­!"J™ÆD1Ù#,Æp´ÿ�ÇÉfç^r/36™!–DË) £Ì 0Ç—f&Ž]Ã)1“,,lŒPû±‘¡„…-z€ƒG™˜©¢¸$414NÓäÞæææ8›$jSŽQ.“EûQÂlĻӶ7¹-Q¶ï�'ÊMš�ÓôºÊe"36Ì&v)3X ö1 ÚßG¬30ƒ5c˜)�Ë�yKà­ +`™`™Ä’�ZÃ2Æ›Š�“qZ›‰ÚŽ0,$Á‘@”IX ãÅÂrì”öP‚´¹VD˜�Óv%Ûj/[vIdiú+Ѓ�Á`0ؾ;èouö¿ÿá‡~zõúõëW?ÿüóÏ¿üòË/×P,›&Ùä¦1 ¹ÞÐ +JÒ+×öVÔõ{*€JÖ÷rý«ú²]'r€G&I6»íú飯/ªêdZ–�‹Q@§Ûëu;½aoØö– + ]Ö pÅ�¯] ê80âãARm‡ðcÛ|N@›éa¢t³»™¦ãq7ð�0±m§†` y‡ +!MÛ. @X€Ä·ÓíµY)@ §Œh &ç$…ˆh3xca&"IˆÆ4NÓô^JDœØè\bHô5gÄ—fs*€ÈXX„œ“±� +ààøî(™4MÓ¬9o/îúWš¦©afŠ”/'L;cL b"Jˆ¤]vµÌX=ƒÈ˜ÌИHit3Gó¸Cv±×ŸRC`��bÀ + �ÐJ¢6H Pk“D&5FR«,$ÆCcCÂ6�ÿõ¢±Óá(êcƆ˜…Áp+m“„A„‰Ç)�ˆù€)MÉÐxíö_@š¥é{ ¿µõÁ-_ýþ`°³³7ØÙÞÙô?èìÿãËW?þôúÕ«ŸþÛëÿùçŸÿ¿7`Ùœ\K,{€®öT'U]QÒË®�òÔuE×P_À[@U¾ùTgkÖâk + uØêm ³,«N¾¨N¦Çey qþ§Õ ‡-ß–¸!�mÃ'1ç£Ë' 04µx' '°i€„„Y‚ÀL`"%›Ý$§ibˆÈ@|â­²�í÷Ö+b»| +¸¸Š ‚øÒ8„³<rN^˜ J“@@Þù4¨/P¼Z2 +vܦ$!âñ8Mîm¦Ä$)8F",,ò�ãKƒÁÎ�97€ÕÛ48/ª>6 ê‰(KÇišžŸ7͵¶°Ô‚…À4޳ &öE@H%ÆcY.9M£oYšÆʆˆ<„…bm}lŒ1㸮œ—áš�Õ[!21@†™IˆKR¥ ËÚ8'm锥fl(5DÅŒ�14�ã†d"a&2ä ñ˜ –qH̤Â"Â@íÓ2Š¿)æ4MÇË•ŒíV–‹ÿ�‘¼7ú[¿¹å+öûÿo»ƒÁö`p·ÿáÞ÷/_¾zùòåÏ/_½~ýË/ûÛßÖÀÇWÿ’5 £K!Àõ€“ºªò$-òK K#òk¨ë÷Wï€Gå£òÑÔ$i¯³Ñëõ’­^’ ³,û¢ªªª:.Ë"nEÇßÞF·Óîî. ðQ«ºÝ�%bÙŠx1�óŽ»·mbq/0@êã, 8· ƒ”t’dlZy+@j­²'߈i 0ÄjêÁ±ÃPÔihS�{(­q,ÒX¸‡cKNCTáIÕ–L SÂÌr�Ð?¥Ir/eaI<·«GDpÔ¾4“¨ÀJ +„áÄ“Cc‚ +@ýImÿfœ6çÍùys=ÑW¤)4ŠæqJK©#B†Lj8¥¸2}œ¦ÔH° `A"lÉcÎ=Ù`Éž«J ‘ÔPjÆië¯Ä"ï=4(TD‰q§£,“ˆ†RcÆfX: kÓq«cRcˆHÀdá¡�r˜Æ†˜(¦7¢ñ‚14&cÆ&�MfˆLz`W™ÑV¶„ b~?ôï¼!Øîß vvv÷ÛÛý»[¾ÿéÕ«—/_¾üéåëׯ~ùå—_Ö’€£Ñåë?™$Ù:dÍ +xrC O’´(ë¸  ý*òª®&WPÖÿ + ¾€j’¤›�nè%Ãa6l_ë8 Óévº½îÃnwY\`c ëÛϸ¢­'‘ù‚W°õ ¶©°sG€HpHE|ÞxÁà $ +°Z"…˜¤“¦ccRbf7©·^ÛÒº:%ó'("ž•}*ì\€hŒ=ÒàAœÀ ª$A­ µì!ˆ…Ç7i£TçááeÜD£ ø MLÜK‰ã#ž!Náw$¤ +0‹÷V�*;‰×Õ|“6*^ÅÂ(T•(OÓlœ6!„æüüWOBV¯‡ªlU5†ÆKÿÒø¼'æÔC –¡Ñ Í‹ã†,±œ7ŠÐÄBA¢`¡\¬µc±öMÓ4�‡°W\4Ný&À°1K�`ÌØCʤ Ë«¥�•&ˆXØ&HÓ¨±ðêÅzoEŒU¶"‚×$µ‡æÈ«Á7�ÆÞ„åÅ6Ƥt€Ël‰ÖZkLcùö#ï€~ÿÍ)€íÁ`gwwgg°½ÝÿpÿÇŸ^þøÓ«—¯_ýüËÏ?¿zýúõZ0»:ú7I²Éä㢈_kV ×@UWUž$yqüìÒ­-òª®ò¼>Y?eùk@õ6¬mQ,§å´œVùÑh˜ «ê‹éIU¯ª��n·»Ñ`3`«íì®)§~) Îçi£¬Ä;�sPˆ’¨BXþA`+†! ¤›¦ã¶ðGÀyjY<Ô9†Ê¸±À$PØP8°gQ0f�AÅþÁY¯Hì²a@áô<õ (`Uœ•4 õÛ#¢ú§qšn¦D$ ×ië‘�ÆA{²N=l­ ,¬*4¤"¬¶ Ä䔦ijšÐ„Ð<=oì5b¡Êª*ö¨AbÑü)ïµ�ׯ’D ÖZË$ÖK+�…ÄÚ 6xae(D`a‰AŠh¸£ðP-!‚)þWÁQÃâÏ¿išÆBðhlJÒ�%k ÖjP�ª ±¯^ °b²,âk™…,Ô¹‚Xöœ:4*jC£hô›‡!x‚žÃzKB~ KÖ2X«!õm¯ò-ç€íÁ`0ØìíîÞí÷·üðã«×/_¾üåõßþöóÏ¿\îÞ€br£¸É͵@ž$IQ>{V·+�«ºªªbÀ¥Sü*ð®xöìÙ³%²t³ÓémôzÃÞp8̆ÙÕUUUdz"Ûêmt»ÝNç"ï·¹¹¹¹Ùív‡ ·†ë{�:8çÔ/3–řԉ€!±�Dà]χΧ,`…w*.ˆhãÀ8 &é¦ãñxLB$bSo­µ"Pu"jRA„ª‰Ä,7„õÐiª†õ^AH…(Þ)4mG€@Ð�……�—jLCq&�abÓxœ&‰!–”! ^} ù `x+ÎÁúÕK«p£> Ú¶Áy(¼¡4§¦ í¹IXe�µ¬‡‡*îHSxïð<£ ÖR*Ô4a±ÌDÀÖ�hðµB¬qh‘„Rï%:³Æ¡?k¼…À98vMsD€6ÿ­Q¨H€Šrj8Z¶<&±b-,9µ.€ÈŒgXOð–ˆ@6ˆ™ÂGMÌÙª*b (šÆ«z¯"b…ˆ¬h¬>CÉŽÐÓ; ÿ6ììîììîvwûýüðò§6üýËß~¾œÈ&ÿå*Fë IžÓ$'¢Ì�1óúøŠHóâ8`åîW˜¨ÖŽ©ÿSÀ<ŽFã©òQù¨¬ª2Ï6;��^/&1_YÏŠá°·Ñínl,ðQ €^·Û®ú.À9ÕÇ^ÕSàuÙ+I´‰Š ú&¤�ª¡i¬9ð +X+¡´›ŽÍØö¾¤AñP…ª¤aÙv(’hè­š� 4šÆ{gÅ{x!àµM +¼XßX—X‰sAðyöß, l…À�„‰ÿ‰Æ&M67SÖ üÙéQ°ê,ûàã”�‡‡¦mD!.X¤Þ/3"𒦩‰�ÿðôüüiš6Á¿úJ¬%j‚#uAÕ©¦p!„?‰l-,Ȉ im XXB¬²aaFMP‘œáÅŠ2¬!!H"j-1k Ï*@£ƒ; +�GRõ` –Sa4*¦hÛdÉ+»F˜­@¼5V`­+2 ñ ¬��¢Ñ^�¡ÁGÁYçþd?�‰• i`Ù‚lí�Mƒ½zçyiÏ;à-÷ÿn°³·»3 ;ƒ»ýÎÞ÷?¼|õÓËW¯_ÿí—ׯ__®¬)€�—IÀbRÅ$þ™É„ÌÄÊŒÉÌ  /Ÿ=«/¬}gUUfW`LUþg(€ <[,ZP•f €áp˜�²ì䋪ª«iÐénnt;�N·7�F£Q·»ÙÝÜèö†�€—{, 6Xãl¢íÃMœSõ,Ü„,談ºÐ@Ýòg ±LÚ5ã]"h’ j}°ÑàÇ·/í¿ ‰eç€@@Òà¢+¹ pëZ÷Oç›zmW³oôÏic½EˆiDx;ö°�„„zl˜Ø˜4ÝÜLá…�»È(8¦%…à‹Të‘!øoÒ¦±*mNÔªdÆ„6ú�§±výë Uµ +*wx¤)\hÇ·ˆÈÚX‚„0ÃÊ(„Î}ðB–a™¬„HNa­±PŒ]PàOAçÜQÓ=µG�⡎Ҁ£#0[uN5@Š �uç©�ÏØ�ÿóX=yëkA k¼XX°X±6!’¡4ÙL ì‘2GjuTm4©Æ¹@«ÁÃÿGj=©8%¶Ö|¾ŠÿC!4ÍÕ@ªz8 8hc><:l¬…#± +2íÔ½´÷LÄ‚Ý2ÔRU!Aˆ $D°4b¨Ä9Œ¡®qNÎéÑÕÐ(dÏbÓho*@ì¶B^áB,¡8X 0q?3LQ'¤QwÄ5íppäàà8 Ž�¨9ŠömÌ +ë… X"sA`±ã`-½í¼ý~ÿÎN¿ß¿;ØÙÝÛÛÛÙ ¶ûýï÷ÃËW¯^½úùÕ«¶ð" Ø]š,Šb’ ‹øðŸL&ë9À4¯Ë¬ž?ž]Ê”EùìY]Ÿ=Ë×À´ÀÙÙÙY½¸“_€úڙ׋*ú—Çå´*#†£Q5¯ªºªOóØ +Ü YW—gZ\|ja¡°º€6ŠMU±k€ÀZŽÕòÍñ>oð9D—�`[  Ú�Ã;§ÚD¸ v €v5¸6hüŸ�õ¤ð.ààh ¶À‘mÀêl €ÇMd‹…Õàÿþ#…’êj�?ož®�½r¢hpι£”êGPXeƒ!^Ñ'ÀF;t˜ ^!Là¶Iˆˆ”Úe§3œsspÎýI|ü^d´àˆ!°Â)(öiǵib…8£:¼˜„‘1‰°ØÄZi[ áœ#@áUvp€�ÝCÁµß ÊF ²­ï*Y;à·€Þ€þÛÏ`°³{ÿþýÁö`wp·ßÙÿñÕ�¯~zùúÕëŸ_ÿòúJp €�‹¢ø¸˜E‘W + �â$`š/f¦®ÊÙ•@kù71U5­ªiUU¥)×pº8›MÌIñ÷*€úÆ3o°ö3«2étzÃÞ0ˆÙh2�œœœÔ'Õñq1özÝn¯×ét»ÝádROz½�îFoøÑZ+p{Z<¾½ÀÑuàŠ`èê®àÏýùX•>‡}4¬)€uˆ:ÜÛ¸ÆÿÙ¨'¿€Ü Cé½Í”�¸•Pµ $@aƒbM¨…µÁ{ÿ)”ì +Þfþi|òŸ?=???oB#WÎ +u:¼ŠsGMz€åÓR  ÷ + 1ÀÎAØŠ�ŠâL%œDOe¡èŠHˆ¸`,.„‡�@:ÜQ Ò‡G ‰†çlRXá¶'‚ dÅD_õÖóD e'àØ{ÈDÄ©À‚˜v`çœs�àØJˆÕ ±ÑPI HX œçÄ$œªð;œ7 ßïßYYÿÜ|úƒ»ƒ�ݽû{ƒÁîö ßÙÿñå�?½|õêõ«¿ýüó«+U€¢˜VÕÉÉòñ_E–Å�(³I]•Ë Ž€òÙ³“ú¬Î'UU=ªªGUU•æQ]M&§§Ÿ¨ßå,p\–Çe5K:�ÞVo˜eY6šŒFUUU''ÕlZ ·¶zÝn î '“bRLºÝ�îæà®) k­ª½€pbÕJTkàs>VO^.ÀÝ äfà¢h®×Àç7`ójpÔÀÙ -.€®+§1ðËû¿ ®~ Su®Yn)xèSHpNÅ:“fŽ‹ ‰‰…D±£,<ÈXq4=o‡ƒ‰Ó€S<†ƒsMÛ2 ˆ‚;r.nlX–Tˆ‰¤Ý  +ŽßÛÅVŒ—6ø`!2”.ÍÁÛïrñ³ÑN$¹#ÄOB´næ4/cý1Qªx§ó&ôßåܽ; ööƒí�ÁàîÖþ÷?½Œ…ÀW?ÿí—¿]ÀÖô_ãó;ÎFLÖ@&~M²¬\Te=+ËöÆÖeÚæÇÑñ37“êd]ÌL4í#ÞEÔ×66ÝpN«ªªŽ����W[LFÕ²X ·z½n··Ùév7{Ùäã¢(Џ´7ݪn€ê�¸8Ä¥ÛG—pØàó+!ÀãnVÀ%¬åŸ�}¥½¥°9€�/½´ +À] ìåûÞЕn—1ëÃ?Åy à¨1pÁióY¡ÔJÑ!"Â!“ƒ˜-<¬Jƶh»îÉ@Úˆq9R +‡ððOއæx7¹�éIãÇA‡.RˆëØ ÀÃ#ÂCAëûG”¶æ +Ñö‡Ò4MÚ*лàfôßÛƒÁ`wwwgw0è÷·üðÓë×/zýúÕëŸÿö·_þýßÿýßWñáô¤®—ˆ'K&ÿeMÄ/3ÉLµXÔuY–³YUͪª.³Þ¤¼õ‚T8ztRk�@†Æi’Ž“4MÍẋDÌ c’•# +³{ø0"'Êpx[+ŒØš,©µ–@±6µÖÑ:QÈÐ8MÓ´—¦f<6¼ôEˆ¶ímf°{xHp.ú?^nRkÅBÄ¿£ ›Ðï¿�ØÛÝÝÙÙî÷·özùêõë—¯_¿zýúoû÷KIÀa«&ë­çâ—™dù|ñ¬š?.g³Y5;Ž0E|B·  ªIQ—™)«êó_›8;;«ß³»|&£¶ÈY}þ¨®Oª¢ ‡køxòñ¤(~…°oQr= xKàóËøU€rïÜ»© +pIüáÖÀ² èÏÏÏ›U)ðispõ¨BÉzk16äø�ÓtUgõÖ[üyðâÏ­±6@ƒó …àÒà4°ƒ˜Rc/h,¬�¶Ýì\ÐUø4@ScÀÌtñ�ÈÛ4XïCo¿Q›Š8ÀÁ{ñMã•lâ›°ê¡*LLãTš¬¬Pu`×hP��”÷>GÄ1­Œ Ôß‚ú`µñ61Ô@Õipæ¿„›¾nÀÖïvîÞììîîîíììí îö·|ûêÇ×/ãóÿõ/»ÔtIÄÛ’õnÀd’æõ¢®æ�˲,g³YUÕ³ìåÕY}!ªÏ§­!ÀI™™r6»@ÛTç“r¾@V�¾ï€ÙqÜ;«'Ýî2މ¸PÃ^;ÐëeEññÇEÑK’^’ ?úè—¸š¼­ +àéóËI@<~· Øk +@ÞÜžt—úV9€[ÀÕ€z~þt­è|ÐÖŠ„À¯ê‚Þ{%oY­· +ïsïÉØ8Êã›&4ª–9+®±bƒê7Áž{o¼Uˆ÷$hBhð°iÔÚ‚ßXÄf<šÐ4Á7ÎûÖ%xŸÌ�•$. !4¡ `¸„Õyx+Íù9¯ÖB¼·ä5„¦qM!XÕÆA}ã�o”5œ«žÇß“,ü�Æ>ïo‰áà BÐ#}—¯#wýw;;»»{{Ѽ¿õÉ·?¾üéÕëW¯_ÿüú—ÿåõºN«úYý¬.>.Š�[lŽŠÑ(ŸÐ +ÕªÇY’G°ÌTÕ´šVUU'e–µ¨ÏÎf“t’•guU×¥Y€©êè)øœ¾ñ¬ jBÏN&›Ýáòþ1�¶ +`€V '“I1šl ‡½a2\Ov»ñÏ�—­À×sïÀÚ7)€ËeÀƒw,ÞPÀÛª7…½·æþpk`4OÏ› \/kiP„sX%ïƒ4qÓ™:Ux�ZV,T|ð&óp€Bƒ÷V©Âà ¢hÒFcÇDY›£oàÂQ@ðªPm-[½DáÕzåh]f-Þ«$§ §Ú„,‹&¢ª 4�Z¯A½¦¢-¬@ƒçšÔûàUD½÷Æj õP%À€«` øs !>r8‚·—›¦Þx® ÿîg°½·»·»··»·³=è÷÷¾ûáå�?ýôúõϯ~þÛ/×P×)€IQd›£ÉhÒ~åd(*€¬\WeUU³,™äU=¯ë|RÕUUMUÇÕç�ªª,OÊ,+?^,Îêúìl6É’¬\ÔU½¨ò²Š˜Ÿ=6U]¯Vþœ]ÀãÇÝ£¢xôèÑJ\†±z8‡Ép4�²l­ ð��@ï\ˆûÞP°o¨Ü\¯è[«·7]T.åì›sË$ ½< ׎úª`ÔÇ §¸IÉ{¶˜­’uç^)õ>š.ï½À‰g�2vp�qÛ1)044 =:BP‚úàTÄZ/€‡Šª*¤ª¢Á,¶i/‰„ÃÀ + MHÈÃ9 ˆ{^|+Kæ#uhêœ +¬µÖ3T­·ðp>®b¯ 4!qê¼oŽŽŽô¾ŽŽT/à=îÌìÝßÝÝܽ»ÝðíËW?þôòçW?¿þùõëýúõë×ÿ×å@±ÞÐË.@ÔæLZÖ‹ºªfeYÏf嬪fY²Ôõy=_�Mc�0Ëò²|PQ–E|Y—euöbQ×óêôñ¤ªëÙeWá“€‹Û"€Åz *ËÙl G­xôèQQ|>­ë“i‘�²õàãâãÉdØžÑG£Ñh´&º¿>pCð×UÂ;W,~M�¼µàrO/uß§ÔeVm¼^=¬4ÂPi¼7©‡*àÔ{õDR+*Ä �æ!Ç–AE`§îH}€ ê‚S6ê[xn÷xSÊhÛŠþügˉ=w`@ãÒWf$dqû€Û)¬¤u7àèÞêܧ¢ªNUaŨD­Ä.á8&ÁªÄÁP¶ ðÎy߸÷8ëè¿× vvwîï vÛwûýß¿üñ§_½zõò—×?¿zý·¿­c ¸¤–òy2™Lh2É'“In&YY?««Ù㔳ÙeTUUMg³Çm ÀbqV×§gUžemP?Ϋz±¨ëyU—e=Ÿß`+~ K¸¦ŠéRdÙ¥$àR ‡£Ñè£%:Wðø†À»‡ËNÀ›À•à]s¸=àÞ£èÞ›röÍ9§màÒýgº¶*R� ª^ ^àãZQ  nÄz4ÁSæã¦ !x3§b9@DDœ@Ôs<”K¬^Övcª ±<�Öðl£�9UÖ&§hð*© q ShBPB" '­æ'u‰@œâ)i°uÊA¡A�âÐXĉdQ¨Õ8Ãm!¡íh‚ˆ €:ïÿÞç\ ç=þèß½;ØÙÛ½¿;ØÄÅ ?ýøÓO¯^½zõòU4º†Óª~6Y�ÿŽ>.Ь›L&ñù9š˜f2™-êe9+Ëëø¼œ-@U—&ËÛöÝÓEÀ鼪ëz–Wõb1¯ëª~ü¸^[ÿ{óy Výój>Ÿ_Àh©Š€üjP|<¼Àp€å<à¯í�_Ý øŸX¸)Ø|SààÍ9€õ`uÿÏo(i¹hÒ£ÊP´úâœÆEÞÁAD}ÛK©uNªªA!NAÒ��8±h¬Œýj’¼÷ ΉsPu +©:aUŽ›[á A!X_7”©‹ßÊ7MP° â–f(#¶ Xu€uêGà1‹‡8‘vÑ/‚½�“ M#œJˆ–ú'÷^g €÷{þß½;ØÝݽ¿¿·»»··ÓßzðÃ�ßÿôëŸ^þøóëW?/ðê*þKQ|<š´˜L>�&£IfL–31ÐÞÿãdzù,^V³Ù¬ª>_ ™\@ZžUÕ¼®gù¬^œÍëyUWÕ­àâ¼ N[;µõà’(b° ³µ`2YÝÿáG£Ñ0ksÝ·àÝ«mð¶*ÞT¸}ÀÞÞð>�@½7õ¼càRpC zèÀP§ÌЏQKÅ·~®uô…2Ô[oÆ6¾ÝþH›&¦Tž¢‰n¨*€zJ=¢=«jh–D¶Âð±3È�½ØhÞë(Ž^ Ùª„6)–0ƘêeY–³jf²¼¬ë“˨>¯ª“ª.M:)Ë¢(в˜Y/I&�Š¢(¦“lÒ® 8.âOhOYEñ¾ +  í¶à50šL&£Ñ›@v ‡}t¡V¸­ +ð³�€ï¢ðkg¿f ùuU€fZC°›†[4Ú�ª21¼¶.½Ãøø´V'@PO©åø³�àÁL”ž }Aç*iXîl³C@N�8¥•Øo]à âÃ…eÁ‘UáBPf’Ô + ptVQÕÄ·. dEÚô¾FB×:²DUXXm-¡`¶"’ +\pËiÈ÷9ø5÷ÿîÝ�Áîƒýûöww÷ýýo¿ûþ‡|õÓ�¯^¾|ùãËóÿŽø¸˜“ÿ2‰]“�‹¬›LbUp4™Œ33ÎLf²ì:*“e]Wu�k¨ªªªþ0nõ†ñÒuzÃáÖp8ìu{mÉ-ˆ£lyFY6Ê.þv€Aÿ]B€¯–¦Wr« h@v « àp8úè"ðVð>³í8ð¯š8úÏžHÞ4 ðŽ}—B€›àZq!ÎÓJ|J*ÑTKÓ‘qLï;'ÌlR ~ÙXi,r´Dbì\\Þä qo +, Nb0»èç—† L2;‡ø�"‚ØqcK&i‘›CDøða\Œ†±¬ÏñÄnH8ŠòƒRwHäÜ!Þó8¼ÿýï÷ƒÝ½û÷÷÷ÜßÝ»¿7Øÿýïÿég¿ÿ—ùì}ýí·Ÿý~u~×é §Ë§ý™Ä‰à"ë&£ÉhCè¸Æ$KÍeÌʲŒ +`^WÕePUÕÉìËÇ-â~®n·÷p\ÀÚõ¿À(ËFY6ɲ,Ë^~6èß}—ÀÅŽðõàBë +`Ä Àe`ôÎx�Y€¥!Èö,ÀÛ�nþu}7„7Þv®½+„•ça €`BÂ`fA\$ʆØ9 Ýfž.'ó°œÑK…Ebw03ñ0;jûÀ†R,.W+Q#Š–HÄ0bŒqŒ˜™8ñ‚Ö1`‘ijĖà¸í¯].8¨oQ7õd£52�>úè£wMêûŽÿºY€dÀ¾C'௚o@ë£é.=°¢_†Fƒ�v‰Gj Ykƒ p0“·wš¢œ'2iÜ0$‚ÖaƒAflŒ€XhŒ™Á‰F@ËUІŒ!Ñø�ÚYbÇ&U@ÈrÜCD)µ»Œ ,DdX˜ ™¥�0À†ÚÝŒíö6"!S»t̪B‰Áxïóþ ¿½3ØÝÛÛpwïþƒýûƒþVÿƒ~ÿ·ýþö`wí &—N[L²QÛ <ʲÌdY–e&¯Ï–U€Ùñq9›U•æ�ªê*ªªªËª2©)Ëxµ&£¤»ÙËŠQ6M&ɨ(Š˜u(Š¢È/ÚŽãã?˲IÔ¯^ýøÙ ·¿õ>¨—�&“�W(b'àz0E%²R½{p‹Pk|»eÖ† èv;�Îf÷Þfr/IÒt³Kd,‘ˆ÷bÙRê!žHA}çTƒ‡)Þ½ +ðwŒÿý³í¹¹˜Å8äCafâv 'Å�èÑþƒØbÁ¡ØW›³1cĽ~ª!(Ô#® +& ÚÀ¹¬ƒúÃC‚ã¼_»�“Ú­À ¸¨Ü�ˆµ6x Þ6^ã÷xL©0„yl54 + ˆk%µ^Chœ' !ëÁ‡ f2ß)NŠPûÏE,¬÷^‚Wë½7ÄLï}Þÿþß þo;{{Ÿìß¿¿·¿¿¿o°½šÜ[ÀÞdmöÿãe@/�F“Ñd4eÙØdYš�Çy}Z×Õl¶–œ$yYUU5ÏËe0mÛ€ÊʤF¤Õá“ds3NE1œÓÕàAQäí/ _ò E�ýø²U[Û·vÖu]Ÿ^@݆£K + ¸6 0ºt&7àö$àå€:UµÖª?Pk‚·ö@X؆ ¶Àæfrï^’&››í*ÌïE¯Àò-¬©;ef#ÊÞzïÎ}oã?² kCÞ;§”žë�7dŒ·bÅï­Z4"> ³™&é½$M“ÍÍÍØì´iRÀˆVÕZ=�»=ž†§Í[û.,ÁV^`rã‰�a(`)xoÌr‡±1fllðð^åsx=x16zvŒÓÔÄG¶!œ7B°bEο!ã½êQ‚Sø€DÇbëƒ,·übcŒIåßXë/câ¤pšÊ˜ˆÆâϛЄୠ"Ö›X@C5P£-Dä<o.v}™uÞ7l!Æ‹ ÖUüÿCÜ ööîï}²ÿéƒýûöîïï ¶ïnúý»ƒ�½Ý½õ3‰®8ÅÇ->þ¸@ìcÒ,K³4] ½´y‘g½v¯�™<ŠÏò<ÿ¼À,K�äE{é³Þf2i�³|z²ô ,Ërµ{dµˆ$þ¯ø¾ÀÝþÖöÞ›0¿ìrrÖC€ÑG}ôÑGk?úèÝû.BU«Ú Xo­}ê­µÂX@·»y¯@—È€ˆoTþB¼ v ²BðÁ°Ky+*ÖøàÕÚËH“€Î +t€&„§OÏŸ> áéùÓpþn³ËûìÍŸ`R hÂQ<¼ÑØ7ÍÒ_Xñç +ÞŠñVCÌ¡Ya2ãÔ6Þë¹Q Á˜ŽŽŽBàð*„\šÐ4�VC ‹sAA}^ƒ�-¼ ˆz5VC�à˜½!2)!4Îk õ6„ Z1sî}ú´yÞ1 ·�1 |èpäÔ5îh,Îrã¬UhðçpÖ°(DÁ± ÇNF£‹,4x+A¢Mð�*™æè!Üч'¢0çª8r8Rh€ÓÀVb›^¬+��TDb�ÂÀ¢íÒFÕk4øÐ%¯¤Ž‚‹Ã=°PËÖkðêÊÁÀI«bãÀ³A\)jápAŒý5!ÀÝ÷>ÛÛƒÝݽûûŸ<øôþþ'Ÿ~òÉþý�Ý�íÁÝí�½ÝOö/��'“I1*–6 £%&£Éh4YË’¯ È'“,˲QÒ�λY2̆Y– ³,ËâÒ`¦Y–çÓé´(¦ÕÔ$É0Ÿ–åtz25ùñIu<;.Ëò8ní.Ëã²,ËG�EÀgÿ²¦úÛÿûm¨ëÓÓ³z^_ýçí0а +nºÿ£�nS7Ï´»Ã¯*ûf�lv9*€ƒ·„°ï€›€YWk!@²¬+±—B€æiˆwÿi´úzúæY€6¸õœB•£IŽƒs.Œ*Þņ9X4¶MC€=°!nç�ˆ%¶ "ꨆ²MPJÃÑÑ‘sŽ )TÕÃi\ß¡!6ðûϧ".°x‰Ý@€ Æú¸'µ ïš A„4¤Á³�PÀšvE˜ëQˆ~%ÖÚ¨ŒˆÂ³ZX'h¼OÕú÷üã×åv÷ö÷÷÷ìßßßÿôÁ'û»ƒ�Á`°=ììíÝ¿€¢˜L>ž|\Ä$àd4*ФÛË.Ês&3&3Y6Î뺞ŸTÓ*÷»Ï®)€�ÁMf u}ZŸÕÕUÇ�ÅéÕ2`QT!Àèæ³fÒ][ ânÊ ví.�«Àí +`sðEpCÐø·)€psàFà/)€Ûrk9€ðôi!D<}ÂÓBxSÀ[î?¨Bᜇ p€( N‚Q«€op°l "Äf°+„¬ +1lÑ5¦yœ;ÂaPà%e)£â§GÄÐØ¤ +‚5ä-DÚmo6¨M­2XÀBþà½5hš´ �Õ ’6`§¡�µ^íç&æ4q¤çŒ@êÞ‹‹‹ ¼�(Ùv8�õFTÞ[Èû+€þ`wooÿþþÞÞýö÷÷÷öƒííþöÎ`{°»wíì�&£Ñh²ÊÉ�&E1ìö.Jôã˜ÌŒÉ뺮OªGE^ämæ~ØK²I›FlÄ:Lž?ªŽËãéÉñ$I²ò¤šOO*STõIUUUõ¨œVÕlv\>ž–�§åç�>4-Ëòóß}ú»K +`k{ow0l×7#àl~‹Å⫳+�@1À­÷Õнe3Ð +ñ<€K!Àm9€îª +Ð} Þž¸1¸¬–¸A$oUíµÚ eÀ[rrûI­‚Ô†ª:§iÛ/ûpᑸÞÇ@” €¶–¬¨¨õ’‡£Þ â�ããžDøX§‘„UÙÃ9; F`â`!‚Æ‹X„(7ç‚�Z#ö!)4 ®išT…<à­¤‡J꫇7”¡âœÄù ‘˜â8hP4^�¬þÿxû»Þ¸®-K ×%H;ˆË8:ºõâÒ^„šDØ^š¼'`ð"R‡LÕ5/BV¹ 0ÐsÇÜË ~Ånv®¹Gʘ€YZŠ/KkÃa~œçk½^¯w÷$KÆï¯•‹}«yžç?ì-cWWûýü`/?î/Å Ï�‡ÃÕƒãÒHt¿Ÿ÷û{Gûû½ƒƒÞ~ï`ï`¿×ÛÚúæ›p·¶PoE¸Sy'äùðÙó?Ý€·¿+¿©åk–—ï_Ïþ¦Îâýååå_$ +Ýn  ±ˆæ•œŒys¿¸ ÿš)@™ø÷6ßÎ\YÄÔ +¢Ø¿:Õw÷ +þY†›ÈØÝ—¥‰†8ɲ¸u+ŠØ]AéæKOœ©:�¹° §fÈ*”E•8HBp@l×ïfÎ* È¢¡ qj©\Ó•¼w6Äh£xOÉ…‚‡Ó€óœE4ûÓͼ¡r•Èœû>ÛÂ$þ@€�zDCA@¼Ø¸¨0~'ùãxŸlHÜ€»µ_ýh¬Äm õöF{½¹²qzzvz::{õêõÅùÅùéô¹¶~ðàÁÚïoŽà Ÿ>úôYžÿéVð}ظ¼¸¼¼8µtx],¾å ôî)À˜ànÍÒ�>Àx“ ¹ÑÔô>v +ðQ=.K€"æÿS)@ §êÞ±  …* ï?Æ!Ë¢ŸøÁ(\p–!d°RÊ{@b-}º æ]Ö`»È<2µDâ½µÌ9ª€O,�q8Ö¬Ø Þ–ò# +… ‘‚IJ²‘Z, 8 OV‚ !¸ BL¬^ŒS³hÜöÓpN£/X–Y‰¼`\*©ƒ@XË g'·}€Ék e€ñF‘|t °²·Ûë­V³±qz~~~þúââòòââÇ×çÓçÁu÷®Ñ^žÿtéÁÚÚƒåß­­ýnÍ.Ykí²µvux|œçy¾ÖÛ;ìõÖöz½ÞƒÅdõ`¯·¶·¶¶ºQ!Rƒ'@Þïï÷òá¾5e0|š¯Äbâ ?èõ�úý~ÿðp¯×;ÚëõòýÑÛ§±¨Ü@€á³gOŸ?}ö<<}ö§éóþïÍòýûåêï­Çâòýû¿@<¶‹"ëۘà |¸P½w]ÐÏ7ÿGLÞÙ0ïéÄ)OMÆ£€ðCDd]ÞæÄÀê{_âò.@æ�eΔK³Q•[´Üë�€I� „\LË!ÂÂRU›‡‹ˆƒ@¡šX8€È@È2gWËxË „B‰\4$E”±*¡±I ÀV¢ Ù‘qJªd4. ÅLÆ'•2ñpÙ÷»‘Ž—£a(ºÖ—ÑM""*jâ•�²Ã7¹ããŸÆÀ€ëZ@ �ú¯>µF£Õj­·7×[ÍæJ£¶1zu~~ñúõùÅåÕÕÕÕëéó`š ¿üàÁƒµ¥êüâòòZä/ÛÖZûÀZ»:æùqÌö¢÷ª]ZÝÛë­¬õbaP@,–¬¬æy¿·—ïY“Øþ0Ïóá³áj^Jˆ÷û‡ûý¨/Øïõú‡½Þþèä»wd¸S¹F€ai=üôÙó|0|öËâ¿V[^Z\\\ºýXZ\¼?=xŸ(hü�€L÷w�ì¼£øèÀ¿n +`>”üðCø¡€qø«‹ â½Ë\>pŒ�öwáÊ&`)´KNàa`f©G -€KA.KÔ-½zmlš+,$`!�%@6¹U3¿Ôß¶‘÷ƒÈ+Ša)ª¶Œ<ßÃd»"«åY"2F™ ",F&Î�G6Éø3d´(œs¥&�D?1(`ÇY¾\GøøS“é&à$%ø¸)@­Þ(s€V«±Rÿ¬}zöêüõååÅåÅ›«Ë‹Ëéó6,ÎÍ/=X{°Àz÷îý2"Ðu@M ð‹§ïߘd/ÇT "²V#@Bð@ðÁ?Õüð>«Q�‹Û¿™!ÈØ\SH„ÄÆu{+DÂÂ$Äãýa7x%ZxÌ”:8kÒÔ$–ˆ„!¢²šÄ¶!Xâ†/ìu\•“¶h4ºjIˆ˜DD, ‘µ–„DÈZ&Êœ°UØ9±‰I�±Ö’ÄÖ¬° p]Xû¯êüš)À¯àÐ4üÖªSUu“Û¿|è¸0öÏ}ï±´fᔉ‰EÀbd<äf‹¤`†µÖÅè´ÖÚ%""K6%K¨Sêº"s¢‚S§B©%(Y�#uâ¨8 vU„£¶óv©Üà/½@㟖V%f”T»Gª‚sJ…SÒ(W$"€±± (ŸPØÒøc0„I D(åÒèG®¶”)øu§öQ5ÀJ³ÙŒ@wj­³ó‹‹‹Ë‹Ë«‹Ë«oÀ›¸ 4n./?XžŸK&Áòòß�Ïp8Èóÿgžç½ýƒýýƒý^¯···¿·—ìíìíõzùÞÁ^~ fùqžçùa?æ6™p0Ìó|ø§ãÕã¿�ꇇùT0��F£˜|ýÍÍ `º X©T* µÊ»3€ø¬2óAx' `é­)À€ˆºú K&-ùæ$Õ1tÍ:ðÿ¸)À{{t]üðÃ8üU�ªŠø? �–Zô‹ô-Œ˜(b, “H +áÒèi´â²L‚Á[bf"&�S¯Þ“÷U¯õ–”‚ +<{uê�Äv™XD$1KÆk­%KÂ"©%ƪD·ß/,‘�Àƒ‚„àŒ 4x� r¤««¢"N|W��†à `…ª*«:DÄØ4�~âefa­sLsˆlq"pÞ‡ÔŽ¥‹ä/¢Pk¬4[­Vke¥^oÔ6ÏÎ__\^^^]^^þt­ ~uuuuµ¼¼¼ü»k1åð»åKósÓRלÛ|˜çƒ<ï÷ö÷öz½^o¯·w°ß;È󃃽ƒ|/ßÛ;ÚÛ;Ø;Ú+K€R´W€�ð|8€|¿—÷{‡ý¨0Ø�F£Ñèt´µõÍìlÝÈjc@­LjµÊl¥rž?þ¼R©ÌÖ>ûÀwç½ÀÒû cæÝAÀ¼¿P�žÜÌ~ø7ÙxgàgwÆÀxðg-«ÓØúsþFø+1‘Í™_r’$IŒ1)ÙÔ1³�½øB½F²à|á}ñ뀟ýÚS[¸Ûh¬¬¯·Z+�Fãn­Ö>¿¸¸x}yyuuyqyuùfú\gû×Àû`˜Gk°½ƒýý~o?zåy~°¿w°w´w´—ÿý°·4ÖîíåÃÜ®&X‡ùñ Ï{½)‘á³ÑÙh4:-Ç€�ŸÉfffkµ™™™™©H�ý¤R©,T*•Oj³€å÷¯½³(cþ&È ÀüûõªÉ{J€þu<€ÿQ»4€Øù·äœ:·þ¦ÃŸ™(M­IYk‰EUÔ‹µù˜¢äsW¸à¼CÁ^�†"„¸º¼ ]/Š#·ÌÔ2�a¤‚(C­UbJS"ânWÉX?RY†‘w*ê=Žà5tUÕøÿ^8õªâ¢pAHÄ‹ˆ‰�ª7Ä ÇcGÀy"° ‰ªsÆšñdB8Â<�³Oï5sb²¢ðEÀGÀÿükO\\o­·õF£Q[XuñúââêêêêÍå�±09·e±ÖÊàÝ»úûû«½ƒ{GùÁÁÁAžìå{G?ìM¬½zy>Ì{½ÄæÃAžŸçkÃ?ó|�ï÷zy­×;ìõ{£ÑT ð¤óž@Ìfff§‚&¾ÎÎÖ>©|²P©Ô>ª °¼¸¸¸0•Ì•cÀÉØŸw?©qêÕ«IÉ2CC@ÕJ¥R©ÎÍ• xuΑ÷ + +êãohšš$%fkÈ{ç‚ �Uˆ@j ¢Þ;¯ÆDé ¨2‘V‰œ/”=2ç2µÆ»U ÇdCpêíø4L”&sUc’Ä$&™g ± +u*‰!‚S�xû«sê ÞÀ«¿þijMªªîƒ¥à!`URG^Y½xçBAeìâczLÅî÷Žô�—¬^Ä«A8 —EØbK "QQ'ªÖ©ª’í2 /Î+Ä‘Wï©wNÅ1>tjB‘í¨zH·+p"™�W¨F3Ÿ‰8�õñ*…HðÊü’¼×—pEA¡(€P:A½w€3¡Ô×}þ_~>¦Po4šÍf«ÑhÔµÚÆùùååÅÕÕåå囫7o~œ:?-?X^þÝï–Wv—,'s‹S0˜œ|˜òÏ×†ÏÆP’÷×z½^ï°×;++€Ø|Ç6àÔ`af¡ïüÙÙ ÌÎÖj•Jeá³e‹Ëïì,/./.,ÎO+•C`çA@dc–ŒM D”RÙ«F¿Ñ¹jõ^’Ü3óÕÄD�YË,ó˜ˆRÞ�X²DLÌd,�lúEjcŒILbŒµŽÿØ˜ÔØDE» +ò"PñbD¼X"cX„•ˆˆØIw˜¬Iªå™›ûŸW�IM5æ³66¬mþªÎA¼÷€×àý­ðOSkÌ/€ÉµÇPö�Àêà¢( <â€ÓC¬R‘9@5|œW%Q©‡z�'£¤Ë‘&Ôf�°‹Rþ 0KWÞËzv¤¬NI©Tf+•ÊÌìÌÌLev¦Vû¤R©}0X\~`qyyyqaqaÊ|®Ragç} ·!ÀH)TOBDLL”Œ!e®2W�™€¥ÔZkÊš‘ àI%¢Ÿ\&p†;lK�IJ¢¾%EÑ{&ËlmjÌR|²ÄX»dlÌ&ÈŽŸ3˜�/DÖ$J’1Ìņù=²éXN“!d‰Ù©ê8ü]ðÁûIø—ñŸZcUË.áϽ–28Ž„Ås(ôPb‡(\úiy ÞS�‘Pôç8â9Q&G�.‘ K$J6Z~¨#…”UiÕyx§qØH`¡˜ä+'ªj\bÑnNEºÌÝ.³t!åÇL™+‹s峈 +¼WGñóaÏV�RRÄ[Ø9)õ‡<œˆq¡P�º®f¿ú|DÐhÜm´š­f£~·vwá³öéÅëË««Ë7?þxuõÓtðã›Û%Àƒ¥ù¹Å©$ù:þÇÃÁ0?î÷zý~¯wh×òƒx+üÓÔZc~ѯJEòpÑÓì„�`Õ;ñŠ â ñP±�²WUU/¢P-Ù} +•TËå#!r"tUTÍeU=öPab(iô]QeuŽ1.«hWY‘’ ++À,IŸbMd*JäPQ—� Âj»€�>B®ôvŽœ@\á3 œ‹ü?z÷6àϽ| ¬ÔWVš+�z£QkÔ*íW¯__\]^¾¹úñÍÍøÿñÇÛÚØ1¸ÿŽ `Ó€ƒ^¯ßïöW{‘”ä½½<Ï÷ööŽööòãã ìÇ  ¥ ôJèçƒ<_•ÕÕÕÕµë +àíàv ,f?¹îÌ,ÌÎTj3•J¥Vùä#àþup*ˆkkÓYÀî ˜¢p3�‰Xé3Ù4Q¦4)»€sɽ{IbLj¬µD¥KHÊÉ œ9Äp)v38M4º '’Øibb!J ,ÌÌ]æÀ‚„Ë䃈™Å0 Ybá Þ!JMj §æ^R™››«Tæ(Ü(±–ÄZ%f?™û{u>„ðÖퟦ֚%óË*Z”¶@Ê çbÁ¯âÞ)�ƒ÷A�¹,çHl€ÄÕÚÕ¸bpÄ"‚X�9È(ˆÈX‘H¡r£WUDH¹KG^¼BpP… +©F½eU…sÆÒU銩ucˆH„EºL†!ŠLe‹0ì!^#•W­:: |Ißõ޳Âp°˜,ƒ�DÑ_Àän½Ñh4š�•F½V«UÚ¯.ÎÏ/..®ÞüøÓO?ýô3°¼ü`q~nñþõ–ÜqTœ:½^¿_røòýÞ~žïåy?Ïóü ·Aà(‡Ããáðx˜ïåÃá0· ‡ÏóµáÓhà“#ÈêÚ� à›GïëÄ&`Ì*³•Jå“Ù™XÌÎ~2;óIe¶öÙ‡ Nýß.߇å²O˜‚€�÷A€j¢$dU!–ÉÚÄØÔšjI˜«Þ‹½µÖ¦ñšæX§ó8sÊ`)®Lt¿ÓÈ]“¤Kd­³…�¤¤P×eá.k·ë 1"ûE˜IÒ8ަ=ˆw˜ÈXcؘ{e0g,Y“[eKÖ +ÙLJN¼w¡ BPu‘u›šéðŸLH>�8 ìê@bS@2•¿¬ƒËPöÿ ªÖ*DT•*B gõH€£8€XkUâÜM¹Ëu…HíªB”Y5e�æ ÊââgU zÇP2ªL,^I D$J¤Ò…0­u»bÄ ‹%Š{ ""¤;€–Þ_â�=r%ÌqT‡GÀ‹w„Dœ€ðC—È~åËG ‚”ñߨ7îÖ>kŸ¾>¿¸º¼zsõÓO?]ýË�s³¶¼¼| òè»}µ~'p¸_rxöóü Ï÷�Žóã½Ã^ï ÀQ¼ý��‡Ã<�MÀkè Ÿ‡%h䫽ÕUY�Åàôìôd´õÍ7O¾Þ�Î^�ŸŸw ¥(èç�zãNmf6}*×í¿ÊìÌÌÌÂÂÌììÌÂB­ö±ÀŒKöŠºwBÀÍ,àúªc㘉º€¥ÆÞ«Vç §åÓUÍ\5)ãßXkÉ�¤K"´›AÙÝq Pp\šg†Äl7Qfk»ÜÕ®w-;ï9¡ -Êlž˜‰‰É;¶"œ�%å"66Mɘ{Ie<$3WM’*ÙØ‘tÝèuå"íG�óSss+ü³L~a + *@†h +^Qw�®E4²%ëŽþ»@j�èØbDDÈ.y[k…YôH¡hÔËfÑÈĘIb§�X CœBºÖ8€¬ºÔ%‹s·kÉÒ*I¢ÑOLÆ›‰† auH»Pn.Hi J + 2ÎàÀà¿Dàn}¥ÑXi6�•F½Q«lœ½~}ùæêêÍ›Ÿ~ººúqšðãâmX¬Î/.�};ãp0NŠ€^¯ßïíì÷zý£½Þ^~pp�çùqlëõ{G{G{Gù þÿQûg8Ì×’µá0Ï�K8.ã?ï­õz«½³³³ÑÙÙhtvöêìlTî��½:uî.Ôjµz³õùçÍ•F£Q_i4š­æl¥òïþ]¥Lfffff*µZ¥²P«ÍTffþÕP6É §Q¡â6ì¾ ”�±!‘Iææª‰‰-€Jµ€ÄcScSSúÎQWˆCá;pÙŽ0ðw€°á,rË™ˆ”íZ"QòÑ¦Ž½/¼Wa"ÇZXêÆäŸ™‰º¦l Qæ˜m¤ß˜4%c’{•rP¥4©V«sÖK]•°ê�¨¼sÎï¯o“š45ãðGöý÷Ù/KJÝvD>.ýC%‹+»Q¥ÿèÈe@CÅúŒ%Šú€ `ü­R¤ëG®¾ ‚¸‰·ÊÌÈ@,ÂPf&ŒU…I!ÂìY-çó"^�˜�c‹0‘XR™XÙ®ˆY]í‚âº!Çø¦RËcU!âͪ—,®5•z`B¾ÔŠoÄdÈð‘磚€�ÆJäÕïÖ*íW¯/.¯®®ÞüxõÓÕÕ›S€Å›QðY^¬Vï��{—ÆCÀ1 òý^¿ßëïç½ÞAÞ;<Ê£X>ÈóýÃ^ž÷z½ýÞa>Èù`�bêðÇ|-é ‡ùñ`ø|`RPôÖzkgå�ŸŸ_œ}÷Íööööèäl4uê³3 õæÃæç�f½Ñh¬¬4šív£Öøí¤ 03S©Tffg>™ýlv¦R©Ôfî/Þ�C¿[�û‹o3ùeáÔcìxó^ˆs#QâÜf!1IµR¹'vnœPT“¹$¹g¬I­µ–­Ä[-+Šeìî:€ß &zÔ +wSbí&±À¬]/Ê)«——ŽIXi0*Ì~H7¨1»Ž™hÌ”CIr¯Z™L¬5ÕJ¥{ìbNœóΩ >xu1ü»ÝÔ¤±{ÿ<¿´ xk]´ù‚CæÀ ™ "Ú]µšeÑbƒã2 €U‘1ÛÆ’ñÊSd 3 â˜D…H™ 4îãt¢{yJãM[Èj€DËNfV"”ë–Hd•%†I$ù [ˆ“PT•¤LaT¢§ààÄ"®ô(ã.¾�¿¸Þh4VZÍæÊÊJãn­VÛ<}yqùæÍ›«¯þåÇŸnìÜŸ.„————çª×ÀÒbÉ·üwØïöúýÞáÁA¯7Õ"Ü;<<Ü;èõz‡×4 ã<χÃgùZÒæƒ<>ö†O�‡ƒ<σ<Ïû½µ^/†ÿ«óWççWç£ï¾}·ýb4�F�úÌÌÂB½Ùn6+Õh4šÍ•fks£Ýyøù�ÊŒÏg•Êgµ™OÞ? X^¼¿¸¸|ÿþ­×Û=€Je®Raæ—…S‡C"»wXE�ç®]‰tÉT+•ª3Žÿ¹93W½—ÙêLdXI@üàœÛÙ-v2v�IÈD¡y°0uY’®t-uY4–ù䜳8-¬ ³‰8¡TÁ*Ñ÷–D;`Jɤd’d•$%›T+s‰I—XX˽xàÔ‡0éüw»&MãBÜ8ü¿�ðKvÊíöc3b«\ ŽÆ«ÂdÙìûï³LJol†A„dÕ’-™„ âÆ .£5e"“‰0+@FéLU�ˆ"±^P¢ÔÈÎÎC� &Ѹ´CÖÚ4r8’.±°Hpd#þ0sš–tpÀ™¸Ú¯e€íbÉ@��Aö=„3‡__¸�𬬬·šÍV«q·¶°°qv~yyõæòòÍO?þô/ÿr+¸µWÀýh•³4âKÐü×ï÷ûýÞa~Ð;œ€ƒýÃ^~pxØë]ãB>@©*\–ƒ<ÏóÁ`P®Gy²³Ñ«óóó«Ë³Ñèd´µõÝh4uj•ÊìB½ÙnÖë1h6×Û�'�oÚ­Æìììl­V¯}6�ÓüÀ…™™ÙwžåÅåÅ¥åååÅÛ¯ïÊxx; Ø�Îð0Qe‚˜­½7W©’ffB,LÌ\’Œ¯Q6d ‰º¢úßN`X‚°ìÔªÜUq]£„nWˆ„”Y)ŽØ‰¸ë˜CHµ Uî’pf…Œ¨Švø'"!ËL”c3•*±š˜‘�B”Äé÷ÁMÂ?µ&MÍ8ùßÍ®à—ìÂ`˜¸$'qÖ餥@†�DÝ�”±ÃqÑžc¼PÜ…Š�BÈYf¦n± õ`sFi’Xâ¸ôŸZŽ +"Ua€H˜¹BBIÙ1aËàl'l´íz§Â +µ¶ÜëÑ +-à lŒ%.=Œ \š( +Å]G‚E¡CŒÈùK™ƒ®¬4›�Vk¥Þ¸[«mž_œ_^^¾¹¼zóã�?Ý€¥åëG€ùÅÅ¥åÅÒ+ëæ Ïóü°×ë÷ûý^??:Ü¿þûáÞþaï`ïð°wX +úý~¤ÿŸå½¥ÞŸ†ùòAÌÊúb\¼:?¿úéjôÝÉÉÉh{{4�:wf* w>o6ÿª^¯×WVVVZ›O¾ÝúæÉ£�Ï›�•••õ�æLåªT*•™ÚÌl¥R™­U*•Êlmv¶ö®G©0¸~}0¿,œ‹ªïz &Y€ˆïªXU¡.‰�¥äÞ=ƒà“ Ü3sÕ$æÿDl¬5dS˶,ÜW Á{u2çbÅ…s*"N”SÕ.uE˜ÈƒU4*w¹>Rç´å²¹\ÑM‰…‰É¦ä˜ˆ8MS›$Õ¹¹¹jùiq·€nWˆ8@TŽŠ‚ +?nýu»d§kÿÝòfú>˲¬\¸ÿù“be�š3‚ ã& Cܪ•Øo·ÎACÉ_`!Y"ˆj¡â}¡ÜnpŽ»’E'±8%N¬‘Xk'Û@Ì A—˜„É’�µÌÖ¥`À‘0ÅiJLå-ï‚z8 +�¯ä�c v‹ŒTŒá²+aÒ±¬w©äI|ü¢ˆˆ dɪ:þ‰ˆ°ó«ÏG©7[�F³Ùl6êå2Ðë7——o.ßütu£¸Z\\^¼~½_ÀâââRäǾÿy<ìçy¯w4¾éÃü`ÿ ÌþPÆ>æÇù`8ì-õž ó|Üxœ�FçWW'£Ñèäd´5:�:wg* Ÿ·ÚÍÏ#´Ú�·:�'Omc Î…"x/à„Õû—¬»pX²L²ãDvw…H“”LJ)ªŽ½y”LÄ–ÆÛþe) .8�ˆ!&`G !]뜈:„�¹àº»qPQˆE¡]5†¬%bq€wA­%&ÏaaÉ1+|ÐP„àÔc»¿ú|T°ÕZi­4ÍF£Q«¬¿:¿º¸¸¸¼|óæêÍ›«›ÀâýÅë×ÅûËó•dz.p;üùþáao¿€¼7‰ÿü8/oýý~¯—ó|˜çÃá`˜ùp˜/õâ@ñyÞ+§Šù`PÀ îŽFg£ÑùùùÉÉÉéÉÉ(fõJ¥V«Þl5›õWõÆÊÊúã­N{ãÑ£G­Öz»½ÙyÜél}ÝétÚµÚõŽàìLYÄÁøµ2÷~–——–"¸|×�Þ\¶Ë$àüÝîîn}a2d—Ò”¬IÈ+L|oj®87W�OªI™›„, [€£2}ìr¥Dd»êÓHã�9«�M)MmJÖ&QK”Ad­!klì+Œ¯=”k·©JɲÖZ“ÞKLRM’dnÿs)q:7—$† ¥&!!R0b矉ŒI¯oÿÝþåío³,ÓŸÄ;(DÕ¹—êcd¼§ÇDLÆkpxTâ¸=�ú¢!ˆðÞipÔ âPœ22еp Î2Çœ9&¢D!,,^Õ Ƥ©%²6µÆØ¸s%¡”QäO,¼s)©Æ=+²p™sN%òˆœÝuNŠ,À -)/!Àû âm”¡qáADÄÞ#ªðÎ9£¾ø‹Øƒ7+ÍFse¥ÑXYiÔ*í“‹‹ËË‹ËË7o~üñÇ›D wÀüû Nîú‡½Þ~ÿ0ÀÁ8ÿ ‡ùþäDZ`??·ƒá ‡Ë½gÇùñ°dÊA2^¯œ�^½:ù/'§§'£íïJXX¨^ÿ¼õeó¯þj¥ÙÚüöÛöÃv»ýèQ»Õlm´Û�Nçñ×[[_oušÍf³YŸßÿq3bvv¦2~�Y˜�‰›ÿÑötqùúíòòâ|2ß‚7±˜@ÀŸÿ¼»»ËD˜X¬e!K”""3Õ¹ù$IªÆXK–Lj- ÛØDdaGÂi°³Qé;åS  ¥ñ©­!�·–Œ%c­µ¶Kd–h5 +Õ¤l‰…tJ¯ßZJÒÔL¯U*s†£l�PJL)‘M˧&&kìTí¿;Õ›‚]ú¥]@ÔG‡\8eñÆ*Àp!ø¢(‚§Â›—>\Õ«Hœ+‚ ¨ƒzâÀà.t—v ´ª˜12bÛMLDJLHŒªxuâ�(”¼3N} b�Ý|±žTñ'¯.ê÷;Ö83¤à2f C†]8°õðqp"JF=œwÞW@¼g„H|xœzShö—€»õ•F«Õh®4›ÍF½¶Ð>{}ùúòòòêÍå�?ýxƒðæ¦7Îâr€…÷fyž÷{û˜$ƒá ïO`z…(@þ ÷lŠ Bƒ¼\5�®!`ôêä¿üóÙéÉh´›€ŸÔîÔëõzs½Ýl®4Û�·[­‡>ÚxØl®on´Û_mv:[[[£[�·¶¶Zãà½ëÀ‹Ë‹‹Ë˱°¼¼X¾]^\œŸ¿p2 ¸Â$²ºQÃ6*D˜¹©  ZML’Xc‰,,qJ¢– ›EP]f‘¸!¤Àn¤²H¶CDÖ +—èÀ"Ð%±qé=µ««kU ] +%HT4Êf2SJUkL’Ü«^—Ua‹(M»$q0îÜK”:²7Âÿûëä?Í~á€bZ!NYœ±àã¥Ð™Â;ï½×Ò« (¼Ç.y¨¨SÉ.«Îíº ; YΘYwÁ Çl»‰•Hè‹<�,1¢>¨ +TªÖk¹b¡¤±?"b™âl¹:Y(ÙLE\‘… Êœ°»±Û�98ÇjØA=kœbª#säƒsΩCðꉢ(©�¨ƒqÎÿúóq<€ÿu¥Ùª7›­•»µÏÚgç¯//Ê}À[<€Ûç—@¯ßï÷¯Ëÿ|0 ‡ƒƒÞޝOžóÕþ³ØÜ€Áp8Oâ BÀÙÉùç>9�¶F£³Î�Êgµ…Ú�zýó/Ûí/›íÎãÍæz«õðáÃ�‡­æúÆF{ýoov:�·¶¶¾þzkk{£Q¯ß©ý¶V�Šh�ñÛñ¹¿¼x?Ö‹‹“ñßòòâòââÂÂmÀ» àðz"—…„ÁÈÏ’¬t­(Y;•ÌcMb(%¢Œˆ¬ RVdÌ~ƒUžøäíd…ˆ02uÉ +“!Q!ˆ3ÊTNÇD3K"]‘B¤Q1q´]€5&I’±@%1Ä0Óªµ*dåSû%%êÚÉàowœý—·:É>ÔìŠ)Uðê ØM�ϱ¯ZxˆŸ*BüÿT\ˆõ3‚¬¬êIC .‹BI˜XJ‹¶Hâ�H ,”Y#® �ªñ$Ö9'âÕQ $…H”;ÿ[çp™ór&deâ–ŸÀ�qâJ�,ÅÜÅ9 x§>x/!ŠÈ0pî×gá\o¬4­f£Ñl6îÖ*ëg¯Ï/////ßüôæê¦"ØÕ[Òx?SŒÇz½^¿ßßïÝøëá0Ï{yž÷ûûûû×2"ƒa> †Ãaχ"Ð`�"Íðäääääôttz:��mŸüó?ŸžœŒFÛ£ÓN­RY¨-,Ü©×WÖÕÞì´××[­Vûá£�‡­õöWív»Ý~ô¨Óé|ýuçñÖÖ‹o7Úív{½Ýj¾û,Þ�åÎÒýû‹‹÷ïß_¼?š¼ äÈu Ó�…R|ž™±JV…¬x‘n·+4ŪV數IŒ!K” ‘…*;§Ž P ð^Ó#-2Å©§x‡Ä΄¬0[ò¢¢ðF)]"b&!ÎÀUõ§œ*Å‘93QbS“$ÕdœÌ¥&²�.Y‘®'Ä*�`”$µÓ៽#ü³Ÿµ÷ÕkL‘PtSƒ‹ ;Á8x¨/}3O¬ +Ð*„Ù.Ž(v¾w` LQi/ªñ [¾Gå@Á +"”ÿ—æT%�z�„™XÉ8V!X"ˆÄ'œe»¸Ë„La3±($Ë2—uÕP\LR@XaV½Š‹~‘*ÞYxd +§å—`<Ü_"¨×­f³¹€wã2ÐÅÕåååÕÕå�—W7�ÇÕÿøí‡ :yìN5ŽÃá ïõóü ?ŠâßÇ“e€áàÃápøl8<ÎèO5‡£“xûŸœ�F¯Î¶OþùŸONF'£íÈX¨Õjwêõ¿úòÿøúñWí/Û_¶Z­‡76¶Ú››íöW±øúëÇ�¿ÞÚz±ÕÙüª½Ùél¶ß}'=�ûå»÷'ß‚dñ­ àÝ0žBv]é@…YR&¡Œ��˜dn2¨&I€ñˆÊB•<UÁK£Ê +r*ðº³ë ݸhÊLÖv‰ºä#£��ñd­�’öØ…X¡ÒU/ä",qQØrÕ¦Æ$Õ{Õ¹Œeg;ÌBFˆ„¼h…À8ºþãëßÚ”¯Ã¼³û³àÊ-¾È˜ËÒ%pÃ=ƒ +ã¥'K~d!¸.•þ ŽºŽ¹ôõ&ÈF&²”¾ÜLóŽ‹�;k"mŸK¶oªcú%ƚĎ ”ˆ%«c±™ÓriY8e0 2D¨Ìκš�c�Ó’qìþÖ�Sñ>Æâ48àÚêËÁ”Ãä_w~½3P£Ñh¶Z­õõV«^oÔj¯Î_¿~}uyuùæÍÕ­àgK€…wg¥•Ožçý¼ß/‹€á ïåGGy~�ï óÉã8/©DÃáð:Æád +pr2:99�ÎNFgg/NÎNOFq°Y«|6S[¨-ÔëÍõη�/›Íæzóa³Õn·›­v»½Ùn·Û�:_ýõÖ×�o·¶¶¾íl¶Ûí¯:�¿~÷Yœ†»[ð–(h¹„þþ,@! *¥™v\´©q$Ëœ‡¹qüß«s��“(Y§" À…×4�ê³BKC:;!‚jÆ¡\9yi@d™]ɸØkP”|>±êàˆ”ˆ8s,÷¬5ÆT“qpÎÄÙvAÈI0PM%ÿß_ßþ7Â_”>È0 +EüeZËckP(TT¼)Äg +Hµ–Ià2ŽjûêÔv3%•ø}ç®dÁ â(1²ÃDÕÈÙ�übPBÄ–Ç.Bâ’Ò›+rˆ‰„ŒˆQÊúªŠXW"º wEÕ@™»"pˆÙHB*"Þ Åz-,Å%ƒÒ•ˆ”aDK.`üòb úk¿¾¸ÛXi6[ÍV«ÕjÄ&àåë‹Ë×—W—o.¯.¯Þß\\\\ü´2¿¸ðK`¿|/öÃáQžçGyžå×BbÃ< Ãáp˜†ÃçÃýáÓá ï÷óáNâ�œžœž�ŒFgg£ÑÉèÅ‹£ÎÝÏj³wêwë+Í/¿üêÿhùes½Ùl5[íV«Ùjollnnv6u:[ãómg³ÝÞè<Þ½óÔë‹“«q +î/.,¼Ý4MA€Œ!àhâå¾ã=$£’¼O 80 àXH¢HõÞ\õ^šRjª6¥È‹a¬ˆ + Dà +ç~°*"uYæqR�u‰âSY` ¤Žˆ²Ì‘h¶[ìÂP,9A xoË1 �HÆ,UJS“$¨FÂ3»ò³&Ö, )ˆØÝÝÅTòoí­ðWKÌ&Î@1 +k½s.óÎyç�JÀŸÓÂ…Œ2æÿG©Ý˜ø¼Ún–±t3H¤ø²ÐØCXY‘AvHæiâÆ–D)!a-]HXàaì3G’³M”â. Ä)Ya@Ìb£ &e88Gl¬v£g!A÷wv5¶úQúCÀù "ÈbÅáÄx‰¥Ï¯:Ål5×Ûë­öz«Q¯}Ö>;õúâòâòòêÍ­øæ*ó‹ ‹‹Q_ìvø_@?Ïó~ïp?��<ŽG‚ýÃü†Q  †ÃA>ŸúçQd8˜€ÑÉÉÉèdtr2ÅÍÀÓÓ/^Œ:¿���©Ý©¯4›Íæz»ýeûËf³ÙŠ×non|Õét:�Γ­ÑÖ‹ÑÖãÇß~»ÙyÔy²õâô]§V«×oÌ=®s€…ù·`âßöNð9àÂ`#sÄp™Ë„]Èœ0qu\T“ÙĤÄÄ·õ©:�öwøÇàÕ°:&v%�¶PP&" çˆ9.·gáû���-4¥b7c Û-B0V'.’Ñ=y@Ëñt ¢{KÆš©@•,w™x's–9’ï³".£@,¹þßO:ÿ;|3üãÚüÏMCÉ–W€áÿÉ$]xŸ98 (X½Oƒ A£ â,�AAYb�®e€bÆ 8R@a¹¼«Á4ùNLÑuÀQbY,‹D +°0»„Y‹ebfk-“±)19²ÂÄQ-æû°ƒ-D(Í€ lJe‰!p—Š+W %@ààRq!°Dãr”�‹wį;¿>¨7Íöz»ÕZo5õZ¥}úêõëÿßåÅ««ËË7?[Ü��,.Ì/Ì/Þ€^>Leý~ž÷÷{‡ûù ^íÒðQ/Nvˆ†" Ê)Àp�—PBÅh4�ŒF§§''%àôtôâÅ‹£N}¦V»s§¾²²²²Òl¶Ûë_~ùå—ÍV³Ùl>lµ±±ÙéDx²µµµµõ¸ó¸³ÙyÔÙÚ�¼ãÔîÖ§ ¼üï/.¾ üøþľïNæ%ëxÇ1e.s™À¹�t£*ð½j51&åÔ¤Ör\fµLP¼²Â‘sÿøgï�óq©$SuØU"Ç;èR驊�98OA-à‹¬(vËL±eXÕèjÍ$™'JÈcS�ëX 6ш�P Ånæ � +µTL-¯X›òíð·‘®ð�³•4˜#”2/QÎ×E ì,\ö\¶3…�%apÙðca°¥ @Wbêî$J.Š0‰²ìB’°�e :HÀI—…⊴“°$–"c³2DdÁBàÈ×§ÒÆƒa°qÛ)ÄvÀ†&°pÆ@aWW£ 9X P……f!f 7… ‹ÿËì4­özk£Ýj6µÚæùë‹‹×ç—¯/.®~ºx« øV 0¿¸˜Ì߀~žóá ú‡½H÷ä“u¡£<Ïógå àx ùqÙïú|pxò<Ï/â9=•+£8|ñ¢S«Ôjwjµ»õú_ÕëÍ/ÛÍæ—ë[ÍÏ›ÍæÃöæ£66:�'�;�·¾~ÜÙÜüêQg{töŽS¯-ÔëõúݲÀYˆÍŽ…ØôHÞ.¼kÈ”MìÛ ê¸ð.`Wˆ\±#báÃqQ8x¹Îk }ùA,^¬ì�É…P( +õÿýåKM½W)àÄg\ø,ð.ˆ bá8.ŠÝ¥Â +dYá±Ø;xʵW¡Â{/êUHþ”¢Ô˜ÄŒmªd¡DÈ ŸR!x@)8‹ À.¥¼s3ü£-¨%û!Q;ë£ HÚtŽŒf1Ǡʲê�GE ÆÅܸוfì”!:û`‡,3ÁÆ‹ž8â]†nB2ö°ñ¾ï–ªËÑŒH¢ñ +á˜w&8îë0ØÚHŽbKD“´Üø‰ˆÔ�p$pÐÌÐNy»«@¡©" qñ) +а™ò ÿ7^j®¯·[ív«Ýj6ê›g¯^_\¼:?ýúüõÅÕùô™Žý…q 0¿¸°0Ÿ,.,ÌÏ߀ÁêÁ0šý”°ßëçñú�pTbÀpøìÙ³áÔ‰¿á`øl +J¹ñ<�bàdôÝèÅØ!h4½xñ¢S[ˆp·þWõúÊ—ífóË/Û­f³Õl>l·766:�ÍNçQ,:�¿~ü¸Óé|½uz~~vz:~9;;=;;=­×kµz½~÷îÝ…XåLÀÂüüü§Ÿ~úx?1r~'W`7x'A„ðwðDÈœÀã‹Â±•Î`Õ{ÑJÆ$F˜È‰u.s…cÕ8K§AÒàÕ‡B ÁÁ{Þ"ìî(2çùsQÁÛBm¶v²¿-²°ØŠ +ï)„ŸÒ%&�%J(µÆÚ¤Z:UMš1‘¸!ÞAœÈŸC(ÄŸg³l÷ºö¿þcS@…võç^Æ=€ñ÷БÑÌI©¬A°’9á±¹³KÄÓ˜â +Od@1“eæè¯7xy‡FRB‚5Ñ�XŠâ�DÌÉØupìb &Y)½J¬ÇR‚Ç‚ï†É’’ìÄÁÔ�„Y††„œ–¢NÄAœ%øú¥Æ!6¿^œýàîÝÆz»Õn¯·Ûív«Y>??õêüüââòòÕù«ës^^å%xq!ÀüÂ|²pöúy¾šóþ†ý~¿�® /ç€ÃgüãoÀ`0�óá³çƒýáp�çûý|˜—p:Žÿí£ÑI9ŒUÀæo?©Õîܩݽ{7Ò6~ù°Ýü¼Ùl¶ÚíöÆf§ÓÙhw=êl>þzkkkëñ“NçÛÑ«óóÑNOOÏNÏNOëõzm¡V¯ß½[¯Í¿ã|:Å‘�‡È{ïýø—WÞÁ.€ +§Š�‘2‡ ÞÁ¹Rq£R©&U3' ™$1_¤6M ïìãdÔZ"Z-ݯœzï^f\x�ÖLNãâ°÷0à¬(\aÿ{ŠKý(‰wvv‹±k§‰Ë¼c›®{sI™eÒe±¿à‚S¶8Û-Þþq3ŸTá>쥷ÊLÊ‘ÑqVµKIŒƒX¢ni JlÒ4µ4½2`–JÕSKiüÂâ%žÆõ "æî˜TNY…“Xj—ýÎù‰(‘MÓr�‹¦\y©dósJD”[[®1rœ%0ØX²L°0;-owï@ ,²Ä’ ­–r"BB†RúõðD ÆJ«Õn¯oll´Ûë­æÆöÖ‹­o·¾}±µ5ÚzñbkúL +Œ›€ ó óóóÉüÂâô{·  ÿÐï÷�Ê €˜ Ÿ={öt8,³€qÿo˜Ÿ=/)Aý~>ge0ÚÞþn4:99==�5ÀéèÅFmvv¡V»[»[«×�•õV³ÙŒ,ŸV{½Ý~ô¨³ÑÙÜÜÜüêÑW�·F£ÑÖ·ßnv:ßýŸççggggg§ggÿ<ÎÿÇP¿[¯Õ>}Ç©Ü>D�)9—i K6ó^¤€*ŠÐ�ö¶65)˜­)%ÁæªUS%c‰£ ¥d˜¢£K·*Ñ›¬µpT�4x!0ˆÒÔ”;ÄL–‹–"Es´'&a”Ž÷“ °Ö&Æ$ɽ1ÐÝ##$NU»8¦ÔštgÜB‹O kííÚ?^ÿeøûXÞ3½ë…ED,ƃ8a‚X“÷J%C2¥!JV(n@ò8–­¥iËD)3Á:�„ÕY¢D˨�–¼œÎ�“Šèfk’¸’m#§ÆÜ°47Œ­M­aÀݸo�Ä%¦h¢@$dì8¶¥T[N8µcda² k옩økÎG1›Íf³ÕÞìt6Ö›Íõõf£q·Þ¨7VÍVû«éǸÛ?€…¹ÊüÂüâüüüüÂÂüûà0@ž÷ûGyÙè»ÎŽò?þñÙÿøÇqÐÃk8ƒ¼ßÜ€Û/Fß�NJRðÉht:zÑ®U*µ……Zín½Þh¬4Kh·šÍÖz«Ýnoll<ÚüªÓùªÓùz4�^|ÛÙìl}÷êüü¿Ý<�útP«ÍÝ>•Ê;€1Φôœ®!€­ÐKRhQIššÔq¶ÃišÒ½±+È\’$&µ&µ¶\<'+ÌÑN†™âGb[‘"u.ˆˆí’¦ÖX˲Åø¦”@©MY˜T-#ªd�É +@ÂÊ(‘ҸןܫV«s•¹Ê\¥Jbêv»«¤)KB;YÆŒ8²–ý‹Þ +ÿzï£3îÏŸqd�'m©d`޽Ð4@`‰™½²²Æ;U„à +ïÈ;ø`=º]/fˆXñl„UI@ì\ð^¼Ú´-¥4µ–ÒÔZNL‰1å’§†˜4Ù@ÅG¯%v**¢Ý¨‹BÌJ*BâD„8x8ç|‘’IÆB)¥D c£¤1Û”Hf£Aá•XÒ"x�PüE–�š+­Öz«½¹ùpÍF½´ ¾[kܤÈ.,ÜD€ù¹J ÿòôûýþažçy¿Ÿ÷Wûo@^À¤£—çùpøÇ?Þ€rN0>û‡Ááp88¾€kÀÉh4�œœœ��œžžŽNOOG£�Z¥RY¨Ý­×ïÖëÑôøáúz»Ýl6[íV;"Àfû«ÎãÎÖhôêìl´ÕÙÜ|¼}v;þÿ[£Þ¨×Æp§V¿ëïŠÿÊØ¸g: ˜n‚,@d­eK6�bÿLBÂÙî÷˜ìÎÍUïÝ3÷’ªILjˋͮ²( ?”‚÷"*ÁûdŽ8Àª?5YfcK1þ>û>ªL +±ˆJ&( Ðh?%B” ã�ÅÒô^µ,æCÆZÚ!+^¡ì{|Ÿe.C²÷„¿�„¿HñóÇ£€ÎyïCpDll\зd­I�"x§ +Õ >„ FY”�¶"¢jî:À+9(Á©ñŒ˜é0Á9#žÔ©÷â�ó@šR’ŒA(M�1,X!§Þ«‰Ufaeˆ¤ä”TD™Ä½LIBªDÄbˆ:„ ¤EpÊ¢Î+Rbc‰(µåêqÊÎ9ÇΩú<ÂKÒ(³ú u”#wè8ü(QÐVk}½½±±Ñno¶×ÛíV£Q¿[¿[«EŽàÔYX\XXXŒ0°ÍñæÞ ½~Þ§þÓ¼?(`8Ìóý¸0¼é0>‹g8|:|:쇃A~QàŽ{Ããããëàœžœœ��ŽFg±¸ ^�%@c¥ÙŒ­�Öz»Ýj?|ØÞØØxÔÞ|üøë£ÑÙ«Ñ‹­NçÉ·[£Ó³ÿvvvvöêÕ«X4>¯^¯×jµz½^¯×êµz½òÁƒ²DÓYÀt!@€�ZVÓK‘Ë2X"[ÚÜKŒ1÷È”bÀ`’®UQFDµ ‰ÒÒ$YÆ,ˆk³’EG +5ÊDqö}çbC9Šg9ÖGùý ÂjêQ°¨F6°µ”¦‰1¦Z­V+Ñ@b·«kº%§>û>CæbÏ*²è³L¦Ã?6ÿH?Žùy.» ä½S†óâ_jQüSÎi°ÊÁ{§$ŽÔ±H×9£]p—£)�@©e–®†�²1 âHÄ9%R‰â (‹§"TEU…‰†˜”™@ªKÒ•h†ÂDŽEØrœ²Qg‰|*Ê$,NDX� 340؉rT5r/Cá}ø§BœsNY‰”ÕQ`Uu ‚·r¤Püœ}Ê�sôãxÍõõöF{³½ÑÞìln´[­ÉZ\sýFü¯OÀÂÂÂÂü\e~áÓ[P* Þ Ãá ÷þ àéðé°ÿ‡§Çc*ðÓö†Ãü=é@§SĽN­R©ÔjwêµÚÝ»õø%´Ö[­f«µÞjµZ766;››�Ç�¯ÿ¿£³³³ÑÖ“'�o¿ÝÝ¢Ô1ðË\¢V¯Õëw? @yçåD`j fo†Ò8jˆ-ˆ˜vq-˜Ò{•Ju®ZMŒIækhìØ%"Ç;Ë •6™â!X�À˜~êh‡"Äâ�9ˆ%áhñG±iÀ +"¡ØLmbLR­V+•J56Ù„jˆ,hLS‰m‰”*äFøGé]…›„ÿÉ-^4ˆ¨¨(‚0|èõNU +ÑÍKTwUTŒ°#*�SIjVÁÂ@äõ‘%%e3qÉdŽÔÛø)  �@WQA¢FšM‰ÁÚ54¦lR—º ¡RH‰…,‹Xk5¥nLêbÛO”IáU9¦ )ŠPxý³ç½*œJ.ú ¸”aÉAಷðq*àqXò§OãWŸzc¥Õj¯o¶×Û�ÎæF{½¹Ò¬7ZÍÆJ³Õn¯OŸÅÅùùù…Åù……Åùùæ?�ÿt¾|éOÎaзýaÞ”MÀÒÝc8ÌWo&NUO‡Ã? óápp<ÌÃgχ‡Ãáu�ç7à$R�¦àÎìÌÌBíNIh4>o4šŸÇD¦ÝnµÚ›�Ç_w:�¿.ÍÅŸt:O¶¶_¼Øþ.žíÑwßm7&P÷êõ»w~ .œ>Œ ¹V²Î¬ˆ›ß2ºQI:n ˆ%f2s•è lLÕšÔ¤Äcݘx‰¸ ƒ„�zEÅ<‹ñS 1ª)Oæ"Ë\"I8` $£`‹¬œµ+˸–šªI’˜$,D, íŠaMéšõ$¬`0�åì¯oÿIòþÌÚŒn9N”Õ�Ù9§]8QíB4PÔ!–®t»ÂB¦ËÊ H"VCB–¤$ÑòÌ„aF&pA§sˆW�Ô[JY”¾IQœP˜¤kº1+ˆŽ*,BV`Éîì€,)‘š’í0ñf%U–h$qÁ…( VíZ‰‚m,Vêªé*Tü;ÜÆa?õ7ÞùõcÀZ£Ñj·Zëëíöf§ÓÙØhµVVê�f£±²ÒÚØ˜ŽÿöÂÂÂÂüuÒ¿ðé\åÓù[%À†‡ÓÐ/cþmȧ€ÃgÃüã"a0|útp8Ž©À¥8øT ßžNÔA:wff>«Õjµz´=o”ÞÍV«½¾¾ÞÞØÜì|»µõõÖè»ÑhôÝV§Óé|»õâÅöô¬£~ ã)@,~ dYôÜ™‚€ñD[‰!s™s.Ë�‘ª!¡R³ `±LDÕ¹JÔ1Õª5Ö³ea²NKÛ 8x(28e‚Õ,Ë2ï2 ¨a±Õ°�È.–Xžˆ'f°‚ë¼�ÃvéRdZ“s/À=3W¤k–ƺ¶ *ÄÞ;'ã•?žJþýTø?_Α�D8&ˆSçÁâ™YÕYaÊ»+,’¨€¢¼oô³a!+Œ`‰ Y.­•)J±°:ˆ*+‰ ®z§Ä†â¬ÑŽe:mT=!JLQ–˜ˆ„»bEˆxgDŒ&µ”’I‰‰EØ•^#"34¢Â)IJ8Äíànlü‰–6"ÜMIU…Òßøz3ðµ¬>f¨Ùl¯¯·ÖÛíÍÍÎÆf;:…×õF½Ùjߨn�Â>­T>��ðéüü§SS€~Ø‹Ð?ì÷ûy¿Ìú‡Ã|5š}½ú¥(@>>}š÷n@žO•§§§'§§§g¯Æ@}vf¡R)Í~î4wïÖŸ7›ÍV³µÞz¸¾±±ÙùöÛ­ÿ¯­Ñwß}÷ÝÖ×cØú&Æþ7ß|óÍ7õF½Ñ¸.b°~·^oÔ>;Ȳ,RD0�€² ޲Ìe1‚Á¢V…‰X%2Ï,‘P™€IbLÕ$ƦÄ6:M¤Ðÿ­œ@4 ƒzdŒ"bKyg�¨a&ᨭ�Hœœ b„D1DîeÌ/]µEÑ[kŒ­šêÜ\%)gØ îš(ßkE¬ˆpÉ<‡?Åðw·ÃÿçÝAXD$.NÄ~{¡ì5 Q¨³Ýè³fs¤*B0 ‘™ÈÂÍÀ6ò�¬á’"Tvù˜�v%J�ˆ°29§1ÓŠÀ–,Ç9!‹0­Š$ŠèI·µ™‘qìéYcÅÆy^Üd±c£_�#F! ðB`V&ƒX£Áa·«QrÐO…þÛ�ýÓÀð1Æ +­õv{}½µÑîln¶Û­V³^oÔîÞ­Õë­æ-ˆ©~ùŸ…O+•O?�þtþÓO?=ÊóøÒ?ì{6¿€Áp8ˆÂŸÑî3G Àúƒ)ƒá`Bž€Óg§g£³˜tîÌÎÖfggfÇð›ß6�ÏËmÇöÆÆf§óíÖÖÖÖ×_�F_o}óu§Óé<Ù~ñbëÉ7[ßlm}ûäÉ“'��© ^oNJ ²˜n:fëbš“õ˜p +SPVÖ¸‰b¢1P’[5KÖ²Vãˆ\… �, Ã3œd,¶´“Éà@"–IÂJP8±¥Ô9(‚‘®9°sˆVÜ*,(bKlÉkL5I’Ê\¥J¥q—eM!∠²ˆëû™º +W†¿}gøã—´´EÙ+C•HÔuY€wn½Dš=•J¤–(qÂB@Ù`&3ž¸sTáJˆIYÊ�fe"/]–8Aœ°ÄG™@c>D$±%6\®ÇvаŽ�ÒUHLÖš8Þ!)±„8í +1‘F*`ÜÔòÂLâXUàÔŠÄ– +�•¹Kj‰¡1={Gà߈zý×–õFs½½Ù^_oonnl¶ÛëëÍ»µZm¡¶Pß„“3±ò¯T>�ÿôÓO?ý4"Àu°ßË{òaÞÏ߀ޭà�×S€áðÙX´œäýkˆÿh¯ý“ÓÓÓ( ôßJ¯ÐÑÙY§6[«ÕffÆV?¿ýÍo~Ûh4›Û­õv{cs³óäÉÖÖÖ×_=m}½ù¨ÝÞè<)3€o·¶¾ÝúvëÛÆ­ |[6ûÛ°ƒ Ù¸ˆYäÈ{o³l,éE°±0TE–±vl*•J™Ì[Eq……�ÚBÁ®€Ë¼À�UY$ó^@. 6âŠ0§…Q( \@–IPT�ºtFU•$àÔpï<)JQ0Jɘjrï^e®Re€"Ð`T…YæJ±((%ï˜ YÒÃ(hs;ü?„åo´ ÖTXNÕ;§ª€£%YŸ¨K¦[:›Ë˜p¹z™A–Sá$ö3pl‹8(Gƒ?€šŠ�’¤”š¨tsK¥„7[b9Oñ"'fk‰"g)�€xÌ_ˆ}„ÈE¶!JãÇ#0ˆÁ:ÎΠVºqˈ•Œ"¨ÞP9ºñ‡£wü¥}”$àúz{c£½Ùn·77Ö×[wkµÊB)”y÷FÃðÓ2ðÇ@P–rÜ´`Þ{�®àÙòŸïLVò²0 J †Ã|pke÷lÿ£Ó³Î�J¥²°P‹ñÿ›Ú�Z ÍÖ—íö£¯:�ÇO:ß~½µÕùnô]çÑ£GíöF§³õÝhëº Ð˜€r +P›d�Fãßÿ‡ÿÐúëV«ÕjUn¯�#Ë2"&*®!À±8gž´v2Mƒ’/û餑ØjÊ1`bì—äbJ¸Ë`q`—º ¢Ñ4ˆJ­0‰i•}±VlJÑG ª$ÝdÌŽôGˆZ!!D›4�ˆ¡.q¹ dS""c-SZbS”@5¶dIºLVY ˆMVîÚ®%êŠâ/´Üj¶Ö×7Ú��v»Ýn5jc¿ŒÙÙÊ-ø´¼ùcÔÏÏU*S÷ÿü§“`o +âàép˜¯£} +nì=çSåAòkL`\ŒG§''�Z”÷/àÎo#|Þüòaû«G_}õøÛo7;O¾þvk{´Õy´þðáÇ�u¶¶¶¶·¶¶¾ÛÞÚÞÞ¾õ›=€­¿þë�¿n=|øûÖïÿŸ<ù�¿ÿýïÿû�Êôxv%;¦„GFáÒ¨Gpêoü}ëáÆ“ÿôŸžüÍÆÆÆÆßlTÊYÿÔO#CÆDT.xïP„—6ƒ�ñ€¨ÑAž½#C†ˆ¹äcì¼ÆÁ€€^ÉÓ‘Ã?8^z‡à�Cp>8„ì%ep¥‰à‚ äŽÁÁy+ˆº ÎAà–Š²“ä>S +$Ð"¨Þk,�-[kMb37W©’0+‹@]Z� ¤pâ= . +öº¼÷ÞÚwÞþøà¥FÌ«ˆXQ�²Šª†ãˈ«4lMìÌ¥$Ö’µDiBD€c²†,‘Mº-ÒxÛØ”K9%DÉ‚@édGŠr72Ê�‰È2C˜¬5D`î +ÒrSBÌvÕ&ÖXÛ¥qb¬5‘�LDDŽÙŠ�Ú„Ñꌘ%bGÅ�¨âN¸y�ü[ڃכëëíV«µÞZo5µÎÙùëóóWWW¯//_ßÐx×FܧsŸN6d§ _[òþ ÀÓ[ý;àY©þ´Ìb `¢0–ªàcÐYɈ|tgvfffvv¦R«ÕjwjwïÞm4Ÿ¯4[ÿÛ£G�:�ÍÍNg#J>j·¶µnlntžlm÷b{ûÅ4Þ"]÷Z­ß—%@ ó7ó7 ×Üè8b +Ðà +xç(8ç}pGÞÙ A_vÎ+±21�Kc U…¬e±äÁþeˆŽRÌÂ,–˜½Wç>óðÞ“÷êPÀ9ؼ¾,þœw¢>’Ô{8H0ÁC¼c �ðç@cy,"±–B"–(5Æ$ÉÜ\å‹0‚ iŠ"… +JmÍnLðžn†ÔÖŽ·ÿN–1ïðÄ8ýúÄÉ+—myÏ$BP†·î¼�7i\«#kR2ÖÆüԦƤ–Ä”KÿLdŒISk{íxd‰ØZR!J)Rvœ‚£A SJ)I‡ñr´±Ö‹¥®!¦$5c‹O.÷ŒãüÁFÅr_0®š”¬ˆ(˜ÊrÁ’%Ÿ¦,× ¶dm-Šc‘bÕZeÞaKöמÚÇÌ[Q¸¹ÞjÔkíÓóóóW—W—WW—ç—7�nFÿÜܧ± ð~ü ŒAà­ χÃáÇÀ �MÀ‰nà-ÝÎÓ³Rpt2êÜ™™™™©Tf?‹_ÚÿR61?oµÛ�uÕ‰°Ýyô¨Ý~Øn·nl<ê<ÙÚÚþî»Û[Û[·2€r +pçVðû�ß�àÉ5Xëÿvd2�¸öiˆ8x™xij⦹µ´d¬aØJ¥Z½—k¨š$Æ›¦©IMšZ)Ee�‰°£ÉÜ‹Äs1¼TCA©aârÇ’uÞ‹+ p‚µãMxkMì¡�ù…da-¥Æ“D&àÜ\% ”¦Ñ83je,^�¸púRƒ%²öfø�¿'Ìœe"ã`*ø§ÞG­b&²‘k‡ $¬M-YJmìó¥Ö&Ö¦ÖH)ÝA”23°“�¬1Æš” i¹ÿ”‘°H· ŽzK"$LÔ"m<½8¤«6nS§©-ub�çD‚R„„c‘Ȥ&‰‚Q|ˆ(µÜf[¦(;Ëy±0[[~b%áÓv�%fðµ+â¿á:p½¾Òl•\ùfãn­}þúüüÕùÅåÕåÕmYðÛ0÷>èõzùê­ àÙ-Í�±èí `<g·औŠ €˜ôóü�Ïÿ?ƒµÞA¼ÐØh4+�‡6KØzÒ‰!í‡�Γ­­íííí­Û/®àó[»õ%Àÿõ%€µÖ:܆Ž"ñR#ba‰R´†ã¯£€‰‰–L ¨¤t�KLͶ¬%é&Ròö² ìa­b¡ fW>5qü¥7§f¶vgüË"K¥N¤üFã'ŠH޳Bq>5‰™»W�«TªiJ©Mm9c#�”îL6^\ "J˜‰ÙÞºýÇÍ¿�hÄ7"gý;;ÌÉ™°¸ñ> úyÊ|º˜‚”´¢ ôk¿‰Ðl4®?zôèñ×_}5�<¼€­íï¶·¾ÛÞھѭ×*ŸÕêµZmv¶V¿S[XX¨T>©Õj¿i´ZÿáßÞjmlüß¶_lo?yòäÉ“'%Xu €©F޼2D•Š PS”Ä�&âŒl\Y§4©ÎUçªs&MM¬^-à“-•²Î¹qÈ‹ÀMžšãS‡(ù²»BY& ÇLBd“ ùÌ™°#x€b�HÔ +Kmšš¹¤:WM˺–4qËÞåÕ¸FÄBÀ’ÄÝC¹ÿ†“Û_dÌÚ÷±L­ʶ9O†ïD1'7†ÒÔ²%k ;�&¨Ë22ùiúÅƤ&MLJ [êv=u•TÙ¡ŒêÔ¤Dä Q—-©Mb +ŸÚ”‰I¾ ¡(¬ÄL>NËò̤d™‘2Y¢„”ºNƒˆ¥{e»ÀZ&Ë‘øIÝ{ì^¦ã\ƒRK¡(2dJgùž�óhµZíÖzk¥q·¶°ñêõÅÅÅë««×—WW?Ý<7€Q¿rZãV0x/ ŸþiÿÿlžMຠX6Ææ`7K€³Ó88é÷÷ó<ÏŸ=ÿσòÿeÜhΊDX»ÈbQ™“©V«I2gŒµÖ§D’Á¨:ñä�˲ NlÏQ=OàŒgѦ'S…ñ–8Ðì{d‘È'P˜r"—8sÁxçà­s‡ +%[ˆ¥)YkÒt.©Î•Ë4ÖÄǺ#š“”OÍ” CÅa¸¨tXNþ¦nù@oÛ”R$1cbmF.vÖ̸4J ÀêT²"&_¥†pE·P66¥„,1Ñ®¸Ô: +Yêð65ñ�%¶¶‹RÔË‘÷Z@š21!¥|(,—´£À¥±(ñÁ‹wH‰mjŒµÄB¨²¨s±È/Û ”²µS +f“ Â’µ65Œ +þŠ@õF£Õj­·š­f£~·V[uq~~~quuuyõã�7K€·2€[çV0øÙàéß? ƒá5<�j>Lzù \ŒpJ…Gv�µ¥„bL”ˆã½ÌdÉ~A!!¼boù¢P¨ˆ~?`"'ÜU'¦*9ç‰/”!Û+*l‰c)q…  1ˆlb�c†gþ‹dµ¨ÐZi´õÆB¥}öêâââõåÕ›7?]ýôã� àCªxSpx³0|OàépøôúLÀ³8  &jÀc=€üöàt4õ÷ÿýýýýý|øì?WÇp _=zôøqgÒh·ÇcÀ%À�ñùm$I×k³³ ³³µÙÙw@ãóÖÆ£'“ \C€Ÿ@@¸8”FdØ�!ï=`¼°Ûeɺę0 [[­&ÆÌ¥i©É¼4žœhððÈ$sb +÷É'š2d`ÇP‰C¹8œdœ¤ÎÕD¯WL2WOª(œ‚ œx!f²&µÖعjµjbÖKÄ’ÄI> âv…4º’�Ëœ‡KbÔ»‰•ÇíÛ?Šü¿ÿÔC‰‚õ^¥`bµ$ÐÀ3¥` /5x!çvwv˜ç\ ‘" +¢!¸‚þLdÌdlÊ;XDvˆ@(R0Ëcà4©hµ€RY4øpˆ0é)YUf¦”‚°ó;§Æ&8baT­ÆŽFÔýaòª!ʰ(TXCæH»N%ˆCØÝÝqRÀýzUà�á¬ÔWÖ›­•æJ£^ÿ¬²ñêõÅÕåÅÕÕOo~ºzóãÏô~z‡ý˜äq†ÿ>xútøt:8ŒL  Ly>—ùT p2:;�žžìOÎðÙ}Þ_íõÊ,`íG�_óž<ºÕøîÜ©Õj�zýNm¡Rùä­ð¯Tfkwê�FóáÆÆF§Óé<étžTâ&Ûm` Ê(X°ã‚ ÊȈÄ,”Ú2KdŠB½ñª^Eà2ˆ8k²XYªÈbyÁº“9ã†xç�—,¹Â«d‘‚,ÞÄE€Âyã]IOR0«5�„‰mjRcmå^µz/Jà F+ì½ó^à„\p`x•,¼‘ñS»éÛ7ÃÿýâàLШTbœÇ÷…*EÃRj¶i>¢ªd”A$ìX20‘†8—G–!NïK‰%Ë™YÙI-™qâ…™Œa*ûó%ØRÜ{"bN¿HÓØãKCÌ0iš¦V Ô sÊÿ†ÛImšRzÏXed !Wµ +aâ.¢µˆU„ÿî¸"b…#ñ*Ê �݉,EÄô;¿úÔ>r¸Õjµšõz­VYõúâõÅå›7—?¾¹zs3¨|zýøôЛœþÏÀÓ)˜€^T ŸùðYd•&ƒùð8ÀðäV 0Úïõbø÷ö‡Ïÿëó|µ·Ö[‹ŸGl6×ãp’tÝjno7Ú®OÀÝȘ}çæßl™´Z­ÖÃx*qÚ5É| nÜ àD8‹žzÂÁ 8B¡ºÉi"’Újõž1siJ–¬RW¨3ÁA=ÄÁ98/&LæŒp1¹ˆÕŒ"˜à p¡(¼û^»Þg€!À9o¢²¼h(43ÁCU$ƒªÀ±ÉDØYcMj*Iµš”æx gV‘?;¼ºLÅï:-· �s¦l�úRÉŸ§Â?‡¿þŒ;€…0‰3*ÄEL‹ÉA`ãÜ�X<ÂLÖ!‹ºFêkáÒ(à± Nɘ”î‘í:€Eº”J¡äÄ‹Œ`g +Ê] ¢Ò4e&¢/R2„Æ|‘¦d‹ @„wˆ‹òÇB)™²iÀŽ˜s +e!a›’%[¨LÊ,Ý € +%³å�l‡•²ƒ¿@ Po4Zcw໵Jëìõë‹×o.¼ºúñ& àja~üˆçv�çeü¯æoÀ³wÀÍ `mð¬äŒ›€ñò�‹Àep<]œž�F½^¯×Ûï•ðŸÿëpµ×[“žH¯×+3€/Û�6;�7ÇS€ÛMÀ­í­ííïêSPÿm½VoÜy|òI­Öh4£ØHy*ã+î(Ü„�¨d™‹:š;…[ +n—ý®Pd¥K5“5Õê½$­Ž=«ÈR@a +ñG¥(œÀ«Í4äIÀâjPQ˜�9vðÈv‹¸/ź™Ôĺû¿4…z…�óEh×d= RkL€™aY0Ü p! Î#C& ï jœ;Nnºþ^ØJ\²×„˜�1S�ôªÖ¡tÛpÊ`²dv³Ý”ID²�G–a£tqôä"cRJR«àÈ$0ÆÕhQ€&@LÒ4¦×íRƒG‚ˆ“¦)Q"(BIÅ Ày|A6Ö —“ÔÌY§j¹+”¦–¬ZUW€„Á0d v€r1æJÉÀl ×JÿÐh¶VZ­Vãn£ViŸ]¼¾¼¸¸¼zsõ㛫›öÀKÓçÁƒå¥¥Åd~þº*ˆ�º¶¶¶šçùÚêp y>|úìéÛ¥ÿ[°:x6<î�K€gÃÁ TÈûýA$þa0Üœì÷z½^o¯··wÐÛ>{þ_‡½µÞêÚšôÖz««“ 3ÝظYloommo7¿ŸÆowjw~[«-”ñ?ûVPk|Þh4>o|^J§W&=î xïAp^D¯F�Ë2 ( +ã«ãÌ–h° bIªÕÄVÇì\&8S°zïááx™y +ˆSìf +gÁø, ÅnbÍ�9'.2g“u…¿4¼óÁy8açW�£±)…IÍ\R­fÞqD¼ã§qЊçbdB…wL˜Ò@� +ÿqòï�S§îý®©JJ”J”-„#9‘ \©bY2b"ÉÜ.È!%c,ï쀅…î%)%%³žDÈkcHŒ)`ª kˆ-&"òe€"D@Yd§1öy‡ÈR:—"JAG²4ü£’�2‘µ¤^ÆŸZð¬ì ”0²Ý ʲ¿H°±ÒXYi´š­F½^«¬¿º¸¸8óã�o®þå§ožÓgmíÁƒå¥Åùk9€±@m5χ·àVàÙ°ìùÝ€üÙp8€§O¯ ï‡Ã~ÿý?äÃÁpBú¿�N÷ö÷÷÷÷ööûÃçÏÿëóÞjom­×“µÞÚÚêd +Ðé|Õ÷Úí[cÀ­­íÆ”üI£Ñ¨ß­ÕjµÊÂÌììÛM€Ù™ˆœ±Âh4�Fe¬vß#¨ +TàÔ9õðY‘ñße²`BÓƒX*0E{!J’jBsc‹)r(ŽŠÔyòp€w Vg�–ó4uÞEÈŠ !cÎLp.@!Ëœ ".s@ðÝàP@‘‚ÿ'«ž¼ €F ž%”ÛDÖÚ¹¤šDA"æÌ¨Ûu¬�,¸BÄe.Óà¥p¡@0.Ž>Áe�2Ö®Ã_#Èû{B–9%2–í÷€©« + +KA(Mã®°‚‰ŒËvS"瘭!b#&MIî²£¹ªáª%0Á11Å}iRL”ºÕˆû?ÿsm¶òI¥2é’ ~¬ ADŠ‚`"‡ Hm|*ta‰æ,À–c¹BdÉkø;î–¤b‚c�L¬0eNµ)gYæàãWø+ÏÇÀJs¥Õl4Z­f½QûlóõùÅùùë7o®®~úñ§Ÿþeú¬­ýnêeíÁƒåÅdJ#p²â¿¶šçÞ ó<ôûý<ÏÓ«OßQ ijš?¦2€ãÁ TÉãsýá oììß8ú½^¯×[ëõz«kkÒXi<\ô¨óxBÞ¾Ýün{këíEÉZ-Òf*o—µÚÝüàF£r-x‡Ià|(œ÷ž�82*ø¾p\d@–[8ì|ïê"±F¡Üubm’$IR%CD]a€\WK"o䨲© …sÞ‰ãøÔYá¹Y°ÞgÀp™ª.„ +gŠ l;¨ó;õ“§ŽJ7Ä".03Y2”Ì%ÕªÙ&bÀÀ9rL^=2çT\QoŠ—ž�c…sÞÿvø{� âß÷ , òÄLb¬PÜò"5‘îË¢b­ÚÝ,˜ÈÕ·lmW`ÈbÎÀlachÞ’ *3Y"SzœŒ V«}R«}R›­Õ*³³•Ê'³³Ÿ|R©}3€‚ˆ1éiš†Á` iJÂVÒtÎ +Ô3u­!¦U͢π%J ÑBŒ„m€Ê$†CæXíx“ãß+­ÖJ³Ùj¶Vêµ…ÍWççç—¯/¼ºúé§ŸÞL÷\»y,Gøô¶&h€Þ°Ô½ “àë/Wógƒ|º†y”ŒÝÀ<ÿC> ‡“)Àþ»`Mz²¶Ö“ÕÕ^oµÑx¸Þ~Ô¹Á|tc øÝöÖç7<�šŸ7�z½V«ÍÌÖj3o§ µZ4¸3Æ0†@$5iü-3Þq<Іs¦p.¿êáº]€»c›´Z½WMîE9;K”Zk‰Ù1@±¶f!‚§¦T¬2Îñßí:;Á—¹Ä9(œ‹[ƒÌbwÀBd —9/¥ü'‰xv .ywÂD&1&M�¹7g’¹tGÈ�™ãÈÀ9/Þ3‚˼z�è<È;`¢àœ÷RŠçÝ +U§Î‰Lé„¿ãu…‰ uQ T‚‡ ¬±–œ%VØn7Í2¤ÆR*Ñ»›Ôx“m€ºÖZcïbœ+¯÷SM€¿©ÔfkµÙZí7¿™��ýd¶R›­Ì~R©Ôf+•ÙOjµZ¥V«,Ôf+"Æ|‘¦i[óä ¤©eþâ Š›L]&NçR¯ª¬” ©PáH%K$È4ƒùoÂÊ)+˜•˜Ùüj˜ùÕ§ÖXYi­·Ö[­f³Q¿[Û<}quyqyuõæêê_ngÓá?ÎÆ:�oÀ` +n÷Ÿ£ÐÍ=À1 b P2�†Ãkˆœ€üøô]÷€çÏû=‘µ2èõz½ ø°=�+‘X{'(ªÞ½;•TZÿöší&D, Õ߈Œá,s@Œ|m Å©FC›ÿ?yÿ÷ÜÆ•¦ ƒ‰ D’¶p À8¸1ŒdwPÅœb%“ +„BÎ4^(»fï 'íS,ìä‘N"[(™´¿æbQTu3ĪíGGE(¢¶¯aºÌ¨ñ††êV¨b›Á‹ŠQ¸çsÏ^Í]ÿ µuYë[¾Ø‹“ €¿dI®ñÄÆRI‰I‚äûäóþzžŠeYF`Ák—^«Ã0,«bÛ�°l[¶ ¥´‡2�5qi¢£–Ô #èt¤”{ƒÁpo¨fçe0„BÊ¡Zη;�Üë(¹ûÀ+P•1ˆ I{ š +±õ°eXÁŠaYÆksssFØö@Šp8H6׆ÃA|i)…ݱ;Õ¹%cM{%¤R›†…a…B ƒè·�JEÜ4„°£h #ÕUì ƒIË2,kXAÚ–mÈN`V°¢Äm;4ìKË7oÞ´…eY¶ae ;ì ŠlÛ² öÃ0ÞV¶5��œ®ª]×uBt’ÒuMKÅ�J¥t=ERºFˆ®]OéD':!©áPÈŸï +ìWfÛìKv$ApS +[À@È N_,;¢A$¤T‰^Gi“Ø–-miY�Äö…/r^ŠTÍ*sY•™´X ëvüégŸž¬œf«KÓ`>3•ìNS€ú£»ggÎdÛ§ ¿½�˜�Õ +¸sç|èwO�×Ý¿˜m&“€ÓA ó|­J‹EZ D×ÎN%cÉkš%g!@!@ ;Ò^‘!… ¤µÜ +Ô,i…Ê“&6½³âå#ì•×^«++öÊ­À6„mÛöZH):áÀ&²à¶-;Ò6dH!a­Á­•À,[HÊ éžY–e[BØRÚQìWÉέ½Ž4âAäć;êÈp C!Vì@V%° {Å2*—ææ*+†Zn„ˆKæñ*±[J[ +ÙéH!#È¿êCŠ(P�>ÿaEa˜„¿.t¾N¤’Õ@R‰ŸÐ Z d¬Kj<ß¾iY†�vŰlUd·lÛ6‚JÅPß–˰P‹’a¨i)MK¥4M'$—Jéy�è)’"D'ºžÒR:ѵ”®i)=¥ë)�¤4¢ë)¢§躮§ô¼öMÉ@�€•xÜì`Å¡’ül«bIÛ†¢£,€T·1R†j-p „°ÅÍвå­À¶n¾¸€eY/å\¬šŒ±jµJ_!¤ù±Ò8>>~òégŸ^ÌN§3 @ÀÚööîîŒF£ííiê®@€èÝU»ÿIPíŸýñyñ¯àþöÖ©ÓsoÜX_ÿË$Ps3 àòסä™Àw +„$5‚¬Ó Æôl£#ƒ #¥´mѹ¥Dee¼X–ºçªmÛ°i¼v©b¬Ø+++¶]vˆ0P62ÒVþRJ[Ê(°��TR¿–-#i+‹o)l!¤P[ù–âôR†vÐQ ºø/+RJ‘”Ñ@Í+…�”ÁMåuõš´W,K¹¶a¯Ø¶rµƒÀ6,!”¾ŒÍ5b[ HH)CkÈaGŠÎLøG“»¢¾wnPÆÆd7WÂ0�‘ü‰”rKRFÃp%¶¥TÒ¬x7P +ãÒ%#þ±bÃnå·¬ªnö’eXÁ-;ˆ";Hiš¦é)õ"¥¥ôÉM@ŸÀ„�TJÓu’Ji9]O È«+ME¡WV‚àû +”ËW`"’·5$lØ7m;RF±íŠeah+O8˲¥-„mVe%Q$6Ôß/òü2]À"-PV­V)¥’­txxt|üø³'ÇŸ}öéÉA ó@¢z2ØVЋ`ggªó·³3�³0êõú£þd°>lo¿w^ü¿{lõê7Ö×ÿrýÆl `ÊÎù¶¨ÐŽ=ÏÝ"„èäX2†€xö5”2Š£Ê™Kv2öê b‘=Û7ã¥WaÛA%lëÒ%Ã0VlÖA%v¤‚|0�Ò„ £�­&ñ#Ûê„J#$�¡ºt •f�ˆKˆP[ +)…ˆ¬PÈ0P É�¬0 †RÄ”B]3ú‰uÓ�„eˆÀZY± £RymÅ^™-ÔÙ¡­.(þZQ ´F¥”²3ZQG cQÛÁ`¨â? <l{ÅZY±d Vd¯Úa,¸"d`ð Ë^»iÛ¶!l«’©,+JNÁ¶—¤Q1VV¦`Y–•"Úwt’")-¥iºžÒ´¸ª“Ê‘œ®@Óµ $ @×Sš®ë$¥åÐ' ëy-•J¥Rº¦i)MÓt-§kD#ò4A`ÛÆÊŠ±¢ö±#ÜA`+v ¶ c råDÜ4 ;&/†a­X/öü’sÔdUZ¤”’…úÇ�?~|t|üä³ãOŸ%BÖívßí�îîîÞßÝÝÝÝ=ÖÏS:Må'�Öõtì5˜Nkg†ˆ¦“ôìÿ�«bPƒR#TÆ»A$# +iGÒ–"¡B)¬�2Œ²+lkÍV¥R1V*†eË ")¤-£(DQhI„RF" +¥Â*U+1�ƒ( +bq!J!2´"¥'.dð¿Ki ª˜ l!‡‘FQ42ÊAEVG2”2C[HÛ6Bõ i¬•Ø"GYæ¡N¤NRZÂŽM¶…-ä 2Ä „Œb0þª4®çZG¡qSR¢ Š‚po¸×±‡ ÕµŒKË® [(§˨Á0 ,Û2T…nBËUì¦rzФR)=Eâ9k³ @×t=§@K%5]×Rª@ˆžÒ&E@¢“”ž×âÏ¢€E׈¦‘”b©„*¨+§ˆN‰F¾ÿý@È êD�aÙFe"h–!„°ã ض½d ^| ȶõ>„V°*¥E¢ÁÇ��=>>>~rôä³£=Q]Ñç¥ó™ù™øï% €^¿¿³½½ý^vþggÆ êµîN¿×ïoO`»ßW Y +ìϺugºÝÞ 8‹ÿçõæY OSýéÑ Iké´¦ëi=­iš–N§OÏgÓ©lVŸb‡&©'k8Ld€‚HBK ‰íD + ì@ù„‹Ž°BÜR¨À +„°ŒJŰ Ã¢›Æf^IiËØl4A$;¡Š@ÚB +Ùé )C©K )¢ÀФá@¹mEA(Q$¥ˆ@vö+2 ‡j;)’Ò’‘)¤Ø‘ l#T»-†¢¤�m+–mËÀD, ¤r ãÞ¡Ñ +¤ …£½�%¥FRJœ ÿÀŽÃÿ¢màаe ä0º%oGA4Ür ‡Ãá ŠÄ@FR••àf$nÊ0Ñ@¡e‰ÿ[”Ëy�Z|§×4•·/ätMÀ ˆëwS Ú{:Ié)M'q ¡ª �ÒS)m6P÷ÿT*†•œú×TN×R)BR)]'Dûަé)MÏ�ä©2ІQŠ ÂPFí…b ma yÓÜ l!#9�È6¾U`jRJ«ºÕ*%$ úéñÑÑÉàgÝ®×»âº02‹™y¥xŽ+ÈYÀvÿ½)Àhgt’«÷»ÝÑövú§`Þýñ�üîäüøÇ?þñ»?¾sNâÀúÙ9€ nÿzV1-�ÖÓZZÓô“�Ö⦰>­Hy†ÃŽ ƒá0 +��É`ÙC©*c��Ü‹„�Q'°¢-eÚ#BaÛÆÍ`e嵊QQR€CaG„2 +~"B;´;Q$åpO +a«K" ¤´‡2’��Jvb)Ý +Þ�á` B1ˆÔ¾Ï@JÝZB");ƒPŠA mÉHáMËDÒ®(�ý•Š5‘ºµ¬@†ÁÍPJÛ’uó—r ¤B!ÂA åíΞ!Â0ê�h(N†`?3ü¥”BFòVGv‚°3ìážìtþßRF!÷RT.YÖ`Ï…Þ D„¶ ‡år9¯îº©TR�×u=G´Ñ5’JéºFT¤žÏRºNH.f1PM’ŠÛ€)MÓNuRZJÓRzJK¥4¢iDÏÅ €�ÑuB4¢§4-¥çsÉÓ¼€›¡l{HFáPÊPÚ¶-­è¦-ËVCáFd¯$uÌç~ 0)Umn• ��=>züäèøèèøø³Og*Çâz¼f»”Yšµ 03 Š€½ 8üèLà$KïvG½ØîooŸªнsæ©Ûí�vvwïïþâ¿øÅ/~±»»«^îÞ¿ÿþ/vwÿþÆé9€ ¿+z ‰MÚÙ…`]×I:;Å-f Àâ¶Ý —B[ÈA$m9 …”øn…2èt†ÒHÞ …°-aÛ+ÁÊk—*òVl[JiØÂ!e ?·#[FQ„‘PíÂí›r0v8”¡-¤ ¤-:ÃPˆŽŒ¤‘ø‹p Cª`8Q´·7´l)ä@D)£=ué(åhmÛ±bÛ¶0 èT.Uâ>eÚö­@†”rKÚRÊáO„Ã@t¤�Q„ý½¡%¥ƒNg F€Î ÿs‹€a%ˆ{ØQŠQt;ª¹7ìüß…”RDܬ¼frÏ"n"QhYCíÿ_ŽŒ¢a†A`Hd©�O9”ÒƒÀ¶ÛíŠõ­ ™Ìeuæ2F«”�æG�=~||üéÑÑÑg³Û€Ÿv»¢Û×»gÀ©" Xë÷c{ð ôU\'2 ñ$àÎløß¹³Ý‹`{Ôï�îªj´Ý럀ëçœ;ýÑh÷þ…°»{jàâëé œ��tJKÇe"BT3 «·1�Û¶eö`V(„mF¥bY†!ÂP†"ŒRR7 97…eÛ–%mË–Ö¥Êk†aÙVÔHaˆ@„ƒa¸7”ÃË%ж,£R±¬C„a$ÃHFB²ØF8�5ä?�B£hhÂH†{{{{‘HÉ åp('§e¬Ø–eTŒ›V<4wiN«¨ä]ihIaá@†[¶¡ø‰ å0Šv$#)“K‡ÃHDƒ� Ά'i•�s”âP')‡·oECCFÃáÞ ÄJb¡Q±E &ov†¡m‘T*¥B5]!³ž#$§éºFt¢-¦÷yuãOºš¦Q]Oé$�"©œ–×u-þÿª–�#:ÕQ®OÄzŠè„è:ÑRñÕ4MKi$•‹‡‡O|LNÍç’ (ß·ƒ@†¡ª ‹Ø«È7mû¦m¶]‘+†õm‹ÕjÝu«.cUJÉ‚{ðàÑãß>:zòÙñ“££Ù>Àõîõ®¸ÞívÅ,˜.N«Ýµ~Ô[ýØÙ�vN2€ÉòPf¨?Ú~¿×›Å€~{{ûÊ9gõzç™ð÷'æôt<Öuæ¤u=Nü'Ï''�µ4IéD×S„,¤0�g„ b™îØÂö0^F2è ÅMCy@Ka K¬£bTŒ%keÅ2VV C‡Ca‡Jç[y�50ÈÀŠ/½V±…ö0 ¥ È¡†-¥Tv¢öà'áÏ¥ü¹„¡�+vg8Š ŠÔp,Že öíÀRw~#S™«T*—æ,µè&„°í +…ÈŸÈh0�?؃0Ü £Ÿ‹A‚À +Ë’{Ã�”Q$#i_DþÏCvd0T¦·nG22Dg/Ú“2 5ò°RIă@€•„g^# +É©þ\>ŸTyuBTÜëzŠèzJ#”hTOBÈ‚¶@4�¤4��–,$Ü.—§„�\žäNå‹)�¤Òjm(¥¢QMÓ‰žÊ刖ä–ùx“€RÐíax3T H2 +•h¤°í›ñwÄV62vE¼xøÆKƒLfšÕ*s3‹d>>|üøñÑñÑ“ã'GOfAºÝ®"×O¥‰Eø¬$è,l÷ÔBOâKß=åÚëõzÛç€úÇ÷{ýþ³‹gž3«ý�ÝûÏ<3]]OOãýTøgµdY"nû�ÚÖÔ‡¤ Éjº®§Ñ:2¸¥ª}RÉY+H‘´²× 5Ö²bBDá t:ÃÁÞÊpF¡m[ÆŠa¶•¹47w©R©T,ÃR `YvX�jZ@ +a KÄ#�¯Ø+¶b £pЉ†Ñž5ÈA˜è“ÈÀZ[²,¥2¤|t,Ë +a )•7�P—la¯¬(lY¹d•K—.)×­@ù ‡{¶’:Q^ºvX�še6¤ªk'—–R^�û_àP‘RÞRÛ‘Á-F‘!ÄPî…rбƒh ¥\‰…¼&‘Ø>Oò9BH.Ÿ#9¢Ó²PËSJÉçó¹<¡ñ-; cªÑØCŠ,�ä½t¡œ#„�<%9B +ó„,ä)Íårù|>Or9ZVŸ-GH.EÑXJÓ´!T{%o‰å)ÉÇáŸËR Dc´kMÜÞ¼Þ +lû–€XC&Œ5Zl!ìÀ¶ìKV\yùì T(šŒU•(˜I ¤þÑááãG�=9>>:ž1ë^Wë5B³�IH@æD(ŸfJÚk4�F»1üô,ôû½Xÿë¼ß{¿÷þû½˜˜’Ï¿Ô25«¬.«š”�õ�>~|[ƒÍz^ï +Eº§j18ýQßî�âU€I + ºwwwïÞÝýô<ÐëmoŸ—¼ÿþû￟8„%ÁçÀhçÏŠ×e&¥&5©i2JõIÆrÕ7«gÓé´®&€fãý 8UP¹í­ ˜èÞQ§#›[*±eF [Ê=C*MPn>JèÞ¶�K¯UbPŽQ¶mÇ·é06Ü’B²Ó‘"RoÉaEmÌa¶C)YªO +e°¡D…b)ɼBX"”RIïHV¨èD\˸d•Ê\Ų�••ÀK™V‰H©�ZqxÛ)D ��Œ›Ù"BXRÊPLÿ3 ÿÎùš¯Ù2‚½@ˆ¨#¥¼=4Â`¨:•‘�Q$åÊJ‡‡Iàtp>“¼˜�代µîh4€þlðoÿvgwwçowvÿvç,ôÏ+¾ß{_΀~¿ßﯮ®®®ZÛwÏÀ¯~õ«_ýêÿg.3MÓ¤Uj^5)¥”¤Ói�,Äý¾´¦ëi¢ëDÓÓi�¤/læèZZÍéz:­+ „”òŸ*!;·÷†Q,Ñ/+jjFmßʨbK!‚5¡<»CÅ¢WlCMX•خ¶E ƒ5[t’KG‘”†”·÷†QVå1§‘²oFƒÁ@v¤°£Ž”AGŠ�´UˆwD`ã}`[õ +eGþ$ …0"y{¨ÔAÛ¶ç,Ë0.Uâ= °„B +!¢A4T“>)l)E()…%dG +{(¥H¡z[É’ÐÉð�då¼siŲ£[{v :2dgÄFQ(¢h åÊD`Ûåä0Æ X.•KŒ1ÊjÔ|4N­ÆjÌqeŒ-�ÉJAáE�0J)lB©T¾ª0„1V€2+—ËŒ–jN£æ`�6j5V«9ÀJ”1·Tb¬LËeZ*å)Íçœù!V*MØFX™•ʬ\¢ŽƒNÍg&:µéa·‚ïÛ1t:±¢ˆ"A àÒÜk•—€—±3«¬^¯C½Þt«¬ +÷ÞÙxç�{¿oÜ»7£¾kï*­­¥Ó5€8 ˜�ä�s ÙÞ¹{wggçîÎièÍÀD Xuzï÷ÞûBè÷ûkkk£~59ÿ0›ÿ»Œ1JM“–LÓT?-]×tÉ:ÑÓZ–¤ I5–>µtԋɬ ¦ÅF€[2RK÷BZ²óW·oK©$óÃJÊN eGÚ�V¤r�†ÃagÝ´•pÜÊk¯ò+¶!Û–"”A …F²£îÿ)C«Ó¹=Œ:jp“‹ÎPJaÑ^Ev:RZ2Š¢¡¥ˆTøÊ.À +í¡”rË +[Q b!CKÞº}»#…ZO³.Y–QI€Vd(¥´ä0І�ÛC!"µH)¤X¡J)‡±8ªEƒHÊÎ9á/å¹0g+ñ²`²3¼•0€( +…rT9Ó›±i²»jš>»zÕdžç8`šo€ Ìa5×e¬:¯)Ïx ”Ò’Ã(-š&šÈLÓd”R“šP@“šo0Æsà€[`Àc ˜KÙU¦ltbŠP „,b¶˜IMÆ(5•ÙÞU“!cWóÀ©½aº.0âãÁ÷í$èÄ‚A N@åeÀ‹»(«²zÖ›ëÍ:«šŒU‹Åb±P¤Å"5ëÍÉ™Ñ×°Œ¥Œ6ÃM�­­8’ïL YãÙŽc9€äœ€÷ÏÀ{q +ðþÙqÀSë +~qÿþ¯þáW¿ú‡_ýÃýû÷ÿa&þc®ú1_5Mój¬ä£ëšžÖÒšžÖÓz:­¥ÓILëégLtè§«‚³·ºPFR,“2Š:�”²"¥ìDÑ0èH)åÀèHD–ˆ†‘€PÁJ`©]`ÛvRO2”¶�ênªØ„%å_íÉŽ”Q¤.-¤ìDC•.ïU:RØ‘DÃhØÙ +1ˆ†ƒ Ó‰‹ÖPÊH"©jжì(]RÉP– +lµ¦vÉ2V*#°ƒ[A ‡)eYvt{ýÕp(D "‰oi B)Å #¤ #i[²ŠPtbµ€á/å¥sÎÜk#P‹}AÈNçV@…¡Êb„l˜9Xp�·8À˜{Øâš€¼Åq\àˆã7XžPš­1†XCD@ÿM€È[>¢¯ŒÞ9‡Üøà6Zc]À169r@pßdÀ@¨1@j�-Qмµï{è!¼á6]—ÇàØo "4—‘{-e#‹o¿Ý²íIÐ9Q‚›A`YÖ¥¹—¨¼L +P¤Ìt]€f³¹^¯ƒË%$K4�BèŒJÞ,,N s’õû^w$¬þiHÊÀû½÷{Ûѩ¥Á‹Oמ¦*íÿÕªUÆ\æÆ €š4šN§ÓD~<ü«.š¼pÆ+®èªT:ú¹Tb¼ÊHÚ2Rþ]‘ìD‘ìÈ(¬Èh/Šl1ÜÛ‹†{aKѱWl«R©–m¶;" DÞÑ^©[m´'…èt:2’¡Ê@FaEÊŽÈNÔ‘�N40D4Œ"[Ü{á´£H©¨ò¤5¥”)¤��°£¡º´�áPm‘”AGضm]2V,Ã0‚ °+"ŠddËÎp8Üî…v ”T¡BJk 4FDGÜŒBÛŽ:�h¶ò/ƒ(‰¡�[X±y” :� ˜¦¡Œ"ZIPÁ˜“h¸Õ ÆcŽã@ š-p€A‘ƒÃ£ºNÈ+•(-1Çóüº5uw÷ «9ÆØ5Æ˜ãøž‡m§ÆG]Ÿ1ceÆXÍñg!O(ce¨9à¸À€ª/¨æø^kكɗê8›9m�PpéÒ\åeàe¥”¹õõõfÝ…zÝef‘¢iYR¬VÙ°:ËT�ÍdN@×êžYäõ'±¬à¤lGïý^ï½í~¿ßßéÿ¤?©ÄbB_“`Z¸ÿW¿ºÿÿq¿ªÌO\FMÓ¤WéU3–+ã‰5ý«Âž¤5EþÝ‹Àôw=ÒŠ¢¿º5ˆèv$ä ªIííER‡²bö")ä°³E{C[IkÅ0*†a¶qSùŋоb-Ú“‘*óEáš´:�HFR £Ž�ƒ¨bËAGF{ÃÛRvnËŠ ;R„Ã(÷†RÈho˜øõ Bk bQ„ÛŽöd'ÞBZ²RØØ�°/–µRY‘Á­ dXá”"£ápoÚ2* )d(¬a,  Ñ‘¶ e�þBÓÎ"@ÅšHáZ +nÝêtÔÂ’bƒi@p¦¿o0–0mÑóª p ŽÃjŒ’£ eZbeVsZ¾ç£‡à€Ð 0æ2PWù!zž�À¼)²šÂÏs¼l9G°Z­¦>±³oÖjŒÕXÌL|ÏÃå8ÉW LàT à›ÀË«Œ¹.¬C³^¯××ën•‹R$*•™œ™i­¥¥ÕÌÜœ6§ÍÇ ¸l&›™Ïl�ãzlö9ËNžSº=½í^?€ÉÖ_œ8L„_ˆ�;aWMjV(è:Ñ•ÞKjºïFàk@Ä:¥°!„ê77ˆd$£HRFƒN4¥ü«Û²"‡‘”á°³w{ ;V�Àª\ª†e–!D )… ìè¦m+s¯NGÈ(”RÈÎí@Ê #;²u !£N4‡9ÊŠ Cíu†·‡·‡ÒÃh/ ¤”� Â’RH1ˆHØR{¯É=Ùé‘„RHy;�2��´ag,Û2 K2°;·£JíIî)7êH Ñp0„2DI+”RŠÁ ˆD E�\z&üíÉ v¼VIÂßþ¾=)¥ Ã0ŒûS8q¼åÀÌÏkø>zh¢ãx =æ2V&„Ò,£å2kxžçyx^Àð æàêàû7< dm�3`¬Æ˜Ã˜ËjPÏsÇq²¥Ga†S4ÙÌ…4<€ûèñ¢àÍž[A0CÎ@å¥àå|ªõúz½^_‡º[w£êÞX­2wæ»»¶v}íúõµëkׯKŠ$ “Édæ³³ ·½;êVÖú»J×ëyàýí÷ûJt4ùˆ^ÿ<[áÑð‹»çŽÿÕYlÆ’@éjiTO뚦§tÕÝS½ÿtúÅâ_‹ïrƒ�”r ‘âér0†E¡Fƒ¨3Üû»Û9¼-*Áp :Bì ;ÃèöÀ¶¥�ÂP›@–m" ‚@vlƒ0\“C9*o�h z~rй-;rE†Œ¢A'Úû»¿êÈ¿êÈŠDBŠpou:ÃHˆ(F¡ªôE‘°?—JÛ[ˆ¡�ª½@E¡ºô­Pªyü ¨XöŠe¬Ø‘ ‚[·dE")Ãpo8”Ñža4Ø‹âÛz'’Öðï¤ÃH D0ÂV•Fµ•x2ü…ú®�Œÿ¥JebhÙÁ­ 3Í¢( # ¤4’I€Sñ�&¸*x<Mt€¡çíƒSF ¡4 Œ1p<ï†ãyèa¼†¢Øð�Ä7ol{ˆè²Æf&à25XÍq²%B¯Ñ`54Ð…7Þ`Ðh€ßòqsÙ޳gã¼ JÎôÒ¥—*¼D +P¤”¹uhB Y‡:s™I‹Å"¥&s¡>=kÓ“9IüŸ€ÑΨkXýÝ»½„<l½¿ý~OøFý^¿ÿ“€îùP‡z’$]J“"`±X(\ÖôD$&=-𥟯/„k+KRvä`8”QEà ”A§£SvnËÛk ¤Œ†�½Îí½¿ ++�ÁpxK†�áðçC +1†Ö¥K±B°!„-äp„ÂŽBa‹(RóõÑ@ ¤èt„ ·;�¡¼­„Ñ ’Ãag¯ÝF9¥ oï ÷†R +¹÷wÃA$ÃHÊ�°{Bö†BÈ +ÕŽz'î´d ;A0ˆ¢ÛRF" +°-èòV o‡9¢p°7÷†RJ¹÷÷ƒp0ŒÂhZÃÿ(å`8TÞÖÃh(CÉhEQlÒ%„Lâÿ4ÌÀ÷gr€ È(’¡Sh4Яá5¼†à›Ìˆ´|߯rhÜ@Ž ‡1J%Y§Ì˜ÐòÀCÿ +@<šàºu8‚^Û÷ý}€qèûìu¨1äà¨c¬æ�RŽ2`Ìñ<î‚ À|ð�£ïû|ÁtOžðT @Hi —.]z™&àˤԬ2—¹õf½^o6ëõz�QZ,Š”VÝf}š\*ý?‘(ØZ²ú»£n4RÆžçÀ‰1Àú œdïO^ŒF£÷_XꌙìD  D§@ +y%ÿ1­í§Óϵ0 Ìˆzƒh¶mX�Îp8ö†{Ã`¨Vm‡{ƒ½h¸íu¬Ÿ †R#¹·×Ù†»É( +åÞpoo(Ccμôš±bÛvÛ¶¥ØA`G¡¡îEÃÁ`¸·'†uB¹·7ÜëD{QÙápu†�hoØÙ»VlE�HD{·÷ööDdXv$BFÃÁžŒBûçBÈp0”2Q$D$‡{�Á@î ‡r/’‘ Ãá0Ú“Q$iØ�m¯¯2¢ŽÈØ2Šd$öö¢áp(ËÈ�”Ñ0Ú“Qh B!å`8�¶”ƒP äðç�á ÚF‘Ìîiç!ÀÒkÊE Ù'ª€2ŒÂHu,WÔGž Ô^£‰ËàqÀkÿÈç.7<ôýMæ@™ +À€çy ôÇè€×h 6<@`ð‰"~Û÷?YÆ,‚çù¼½5oÜŠ³}‡±�r¾¤à ¡àmE�Õ¾×ÞüáØ„ <}f�“1À` +ß ´êÖëÍu€úzêuF)%…b�V)«O‹€3ãš35ÀSš`½Þöh§·dtG½µþΨ¿=z.è�€íþ¹)À¶Â�sÛ€[;»wqvü¿uÆ®ž®˜SP ô¼Aÿgµ !D¹]N$Á,Û6Ô/n\È2¢pŠ Ó‰d`¶=ÊAg{·;�NX‘ÃPÑÞ0ÚÛÛ†+öÊŠmÌͽöZÅ0lÛE öOn†7ퟤeÛk±ìC`ÙÖJ8 DÐétÔ¥‡ÃÁ s[ʽN'ê *ÑPŠp nÓ{{Û¶­ÄÇ–Â)‡ö`8ƒŸï…êË�/mYF BaK!{eeŸ)„µbTVT"ž EréáÞϪh7sé ;Bùóÿ* ÁIW?¾ûËÙø? ³`ÛApK@R<õs8‘  ‰œsŽˆèóµÛÿä.7¼·|¯ Àr¬Æ(4âøGÞNˆ¹ç!zà"÷¹�ˆÜo·÷yó{<ô}=ÀoüÆCϧVs¤L"¢‡"À¯Ý"oû-DĶßn·k^ãoÂé£`vø›ÀKM²z½ ëÍ:¬×ëÐlº´H Å")©iN`íÈÌÏdžá'`g§gUÖº××úwŸzgà'gàýØ\àý÷Ïê~Š­�Ý3»LÀÄÇ›RjÒ-M‹€¯ +…"}Aa��Ë—ggBµD4[ÚA`K!åkÛ–-b“ŒPFáŒöþ.e Û²ì �HÚ†mVP¹té5ceeeÅZ2 o†¡n +KÉ[ iB]:qæ°زsKF"äÞÞßÉøÒ–eÙ±ç�RD–e·ÔrÞ@a(B9Hij…´%= t?U#ÞNÔµWŒ×ìpOFC»¢P–ÓKËȶì@éÛ9FRüd0´m˶V[HKŠ@4Å™ûÿIXzíµ X¶·T࢟‚9s¾gš溮ëVݪi6]×u¯¹ËnÝ4ͪkšËÅ¢YоCÈB¡hVMÓ4—ͪùàº×ª®ë^›\gÃtÝúµzÕ¼fV]×uÝõ{æ²iºÌ4ÍesÙ¬²jýšiVM³¨BhždiµêV]ÓTW®š.\s]·jš ï_þÁ5óÌ9Q˜€eY/›¼\ ÊêÍf³ Ðt¡^¯W Éš¡3_ìÚ­ÕŒ6§�`ÙÐßÞ¹Û³–¬5k­·£Ü½ž úSØMm�goþñéõÞÿ´úÿÚÖΙ.Àß³ó@‰R³4“Š$ÿBñŸN§ !yJ)}5€@Ynul�‚ °l)ÅÀŠD ;²Ó±[€[¶ò…Ûˆí>”Õ—U©¼¦T­ë¦Rˆ¶Û²)ì@ˆ¡%eRB„Rñ¥ou”'Hìé­.m Cù‡�-e§Y¶Ý‘yKJ +Û² Û’ +œì õÍ#a‡RÚÑJ·;ø¾±b+¯U*J¼rEi¨Y¤@ÚÊŸÀþ~2ë¶µd¨MC¡v[‡–B“»¿<ÿ ,F±1æ×ýøÌy78Ç1ÿ°ù�óñrÞv¶}¬þÙGl·X²Èys|ÀÛî?ñÍMŽñœçÈy½ÍÇ|Ìùxóà¿pŽ|ÜÞo·9GÎ÷Û|ßEßç¬ÆcžC�ó¶Ï9úˆ-äÇ|ÇÜ�‘·šã±ÏÇûgÎÉ)o‘¿<x™.€i2ÆêÍzÝuÁ­³ºk’…lVÓ´t–�™ºÅ,ˆ@KºÙ30Ú¹Û³–*K†ug4ê¿÷Þ¨îðÞéeÀÞío÷»£Ÿ¨ÿ²}nðýä(AÐn·Ûí®õv~qz˜%P�­P³4[,Š…bþ9@66Ux•–h‰R-`íXr�Tã±'@I½M ˜;€ïǰbØV`ÅQªàÖI��2˜@Á �¤ Â`RŠ@Y‡R¡€ XQðZEIœ!e'²ÆLÀ¶E'°m%@.÷lÕ ¹èþŸ`À’a¯½¦�ÏûC˜Nª6ßDäˆí{ˆÈ}įú¾�"ú¾‡"PZ#Œ1`5¨¸€-sŒˆØ@lÆ �É}¿…¾ï·Ñ÷Ñk¡ÏýV ÑçÜoòVÌÿY•RÊ(aˆ "zo4€-Äñ}Ñosß÷ý³GMÄ%©î!ß.PZu«CÝuÝzÝeõõ&¸õzêÐÄ�õw&gu*=À´ pŒîö¬¥¥JÅêŽFý÷FÛÏÛ ôûwF?é�bŠl�F£íQ¼<ÜëõzXëݽ»s÷ôý?NÎ0óD +P(¾ gRe4DÏ�˜û¦½bX†mݲO@pˆ“ð p>tfÀ> •Y�†Z"œ0€ ˆóÀJ@ÙfŠ?¡ÄNਘýíÛèûˆØòÛæf|[÷ñ†‡è;”:…c¬›táÚ&z +ÞÄ–ßBt±…-ã@]}ßÇVË÷¹ÏqÜÇq�©%ÀZb‹#>üÏ îû-lùû.W×8{”`ÌLðm@�RƘë²zÝ­³*mþòã�~ùË_~txøøÁáãÃéYšã9Àènß2–ŒÊRwôü5€íI  ßï�~Ü‹�¶·ßmoo'Þ‚ + z½íí÷··{½ííº«g€±³ €R“^-QZ=‘ŠEZzîß;¥,“&¤@)UÕÔ)̤�ây vÌ0€ïÖM{eÅŠS!^˜LàV�ðôS|°ƒÀ~&¸%m)exšØ1tN@ç™÷ÿ—F€éiªP'wqŸ›clµ¢�z>:4_.85Æj“9=€*÷Zˆ€ˆM•˜ª6Øjù¼Ýòc4@ôý¶ï£¿þ Þçu§ö†**åEô<ô°�~ËGLê‹þf�ûI†qúÈS%5pé[ËH¬Ìe¬J‹ÍìÄYíÝÝÝÙ9ÿ³5€É€9Sˆ¥/ÊÒ¤P,Ä• Í>‡¨Àó¤JÚk +¶uÓ^YYJ€øæ àëà P%é‹À´ à àt +ð§¾ýkš¦á›Éðý"¶1¹ÙŽ«ûˆ /¹�;”RÂj5'™ýkbêM³í£hBÛG„ö÷ö[ Š´}uÁ–ïû›ÜGŸ#ŽÑkxà@ ºáyØPø‰ÑGÄl¶Ñ;ŸLKñ/Í7 /£V4Íj2%gHýãÃÃÇ�=z|tt|tüh* hYKɳ±v]çâ1 ³°=Úí¯.Å0]íÿèÇŠ@½~¿ßSj"qaàè)‘€i±·Ú»û‹�Ñù0í¨9sZxe/ˆzŠ^)ä&²àçÀó13ëD @1€[ÖŸ”"0Mdô5`Mkz�íI$µÿËþx“#ã¸�|“óGׯãßðq›{|ìû~Û¬ÐP4�«‚ß¿÷I›sŽœû8þM{Ìë>ûü`<�9²Ï}þÏ|ìÿ°}0Þßo7Ûm=@À4Ôëãv ‘óMlÿóþ˜s~€œû|Üæü ÙÞßo�ù¹gZ¾iðe€P“V㛣Y,�æÇ‡��=zôèèèÓ££)¬Z–e)Ù cízFÓfàÌ@{´»m/ÙÖÒÒõ÷”+Ø×Ÿ^¿¿ÝÛRžÂýQ[Û1Rœ€ÞyÇêݽ? ì,Hj%sf€L G^àW/¥R(¼BNÀL + åó¦çÖfÀzpðë�öµÿ5δL]wÝjõÏ®¹ß»æþàš:î²{Íu]óšiºÌ,5ma¡P4ÍjÕ\6M³ê^«^s——¿·lšß[þ^Õ½æºîµåo^[¾æºn| ÷ñ¦û×TWu«×ܪ¹¼¼¼\, +YmÁ4———ÍeÓ¼vÍu]÷{ßûÞ÷®]sÿ½víÚµª{í×Ükîçd ð[g±/«2V¥RÿøñáãÃÇGÇ��ŸÍÀ¤¸º´´v=€ye š™ÏdN)‚ín¯-­­.-­�v.àÿçœm¥ Üë�&pg‚ý^/6 ßÞŽ=§Š[Ýn×zÿ`'àd €š'�¦ðb ›£SoÀs€�B¼Tàû߀üú!˜7ÞF¼Æ›€M޹zóMÄ6{PΕ<ÆxêŸù�8è"@³‰Mh6Ý1"6°…‘¯�±ÙDDŽÜGäû?ˆ³û–oÔœr¾€àºÐ€7×›¸ŽMDŸo`ë^ó‚"¢ý§*¼L જ�ÜjU9=x|øèèðÑãGGG�ŸÌh®®^±¬¥+W¬UkI1€¹‰ �z>£¶ïn÷ß{Ø>çÞì»ç�µí‹ z¦P='È‘B=›»\ ÏH„xÞàˆk/Ã~}ppð¿ +À›Íä ¾‡ÐÄ&€ªòï©Ñ<Üäz@óùc5hxžêÏýÐoûc‘#@³ÐÄfÓåj X¥ ؿٟ·9¶}ô|ßåqƒ¯N­\Ê Ô\h Âøo¾ +‰šˆ¸~þi®Ë �b¶pÉøÖ @MµP5MJ i~üøðÑãG�öÙ,XµV-kÕºÀÜüdà<Ø­-­­ZKký»£ç‹þŸôûÛ½-Û#eÔïuÏ‹ÿ÷Ï€Ñ,üý ©”ÎI”¦û‹tÏ€Ù@Èêü jñù_0Žþæ›MDäךЀæ: "~`"¨J^ =Ï+‘£eVÏóZ¾ïó–ïû­:"@³ ušÍ&®c�«îÀ›qw�7�÷÷}ý}ßWày¾çy^ ÆÊ„°Z`½®€yž¨RâoëˆüÂ3-|³ àešJõ'ž‘-Ò|ðàðñññãÃ'OŽŸ|úäd +°º´ºd]±–ÄõŒ¦ióZ,0ÜÝé.­­®¾ô'°uÞŸ<©7×N�ëkkkâ$0öŒUªÀ§SBHþ•Y0}ª@ÕPÄ[oùþ[È9ÿÑ�~Äïýò—I¯çð¼ƒ@§º§kÏ=ð냃ƒƒ_ôë�>ü_ÖÕÓ:""Þ»¶ÐTLš€×ðMls¿Í=l0]/Ñc +ÚmÎÑo£«ÚwÐTu|w �¤Ø<@lù~»í#¶ýú>¿æ{¾÷–ç·ZžÃÊT_P*aMµ”Íæ†;�@¼·~îPrþD5À…—8¤`VMZ­»UJ)!ÙæÇ‡‡Ž=>>þôèÓɱ,˺rÅZ²V­%q=37§ÍÏMT�3™ùÓmÀÑÝ®•Àöèù ·Ýïßém÷c¸s’$uÿµsÏèî/F@õt €šç¤„�˹Bâ£kQfÒš¦iÅõõ½óÖ³àì$ xÁ.À3jÖó0€~S€Äàzò·z%•:¡i¨ì´gpî‚õÇ“kR©éÅS³×ιøD‰úëkU.¼¸>{ññx<Þ�÷}"�_Cl"¬£ï#®^Ã&¶¹ï·}¹çÐ<£¬VsÐó<ß÷Ñ€±‹è©„±YßXo"ú\ú›íMαÝö}~­… Ï÷[-ß÷<§Li©€ `  ˆëÍ&l6›€ñ›ø,àðm—)PÆ«3J)-æ²Í�>~|ôèèøÉã£ýì_'géŠeY«W¬¥Õ¥¥®€éÉdÎG»=kmÕ²ÖúwGÛï]¨pºÐím÷{ÝÞhÔë_”¼!ìÜÝÝ%³À¯³ïBòÓºžžšÕ)®ÿe o�€·ð­Y0M¤xÙ.ÀÙÀó0€ßž8qé©T¼À˜Ò´TjæA¥&fh$?‹)-vОDl*–@Ö•¯fJÓôT*¥ç´8Â5�è1Žä'1ªÞ¡ë$¯§4M£©XrA×S©óW¬SzjêÜ­kº¦§RšžJ]O)7öÉÅ>zøðáo>|øpü7®a›­V ±e"ç?â>çè´ý†Òßó<µÜ‡xPEDð°é GÄ7݃€*{o!âúý¶¿ésŽí¶ïs[ˆ¾ïyžç°r‰20¹§Ò†u@l!67¡‰>oµÔt?ëüO*èD)¹¬J)- ��•9àñññññ¿NÍÁ­dxÕ²º×3sÚ,œã 2úEommuÕZÛ¾;ê?/ô¶º½Q¿×½3€;Ýî�sÎÚÚÚšúZ’?k–uN¥&»ÊX½Î(5«%JÍ*Kr€B�”U®3)ÀŒ7@qý�wÞB|ÇŸa¿¼w"8Íä‹v.¬<×.À“ß�8ÿ’Òu-¥‘”Š-mâl™Ór:Ñã%$¥ë¹<Ñ'·æT*¥,oSšžÒÒºcF*OâÛ¹Nt=•JiÊŒ3¥éúÄSÏ¥ˆNRñ˜!ºžË刮å´\JÓ“gMKë§–¯óq”ë„�TŠè)]˧R:ÑS„¤rñÕs„èDÓRúï~wô»ã£ßþîw¿û]rEÎ7p|-þy¨é{4q³ýCß÷}DoŒè7eŽãxž×ò=Ä"\ãÍ79zªbW?@Dh¢ßB7ƼÝVŸ}ÿG¾ë·|ô=ÏkyN�QZV€¨ }á`#$ò¹�þA“·Ÿ}fKßâ !EÅ\Ó¬Rå øøèøèøèÉ“'Ÿ~öÙ‰`5¶¥´™Ûæ Üﯭ­ÚÖêöÎhôÞ¨¿ýüÐíö¶g {>Ä'€UËZíîÞ=Ü:cì*3™ëºªö•^MŠ€ŠÅ^É%¡O!š®Ïˆd_¯×_gõ:¼žŒ‘Ö¡ž¨&i�²×= /Ûx‰9ùßNBˆVVÞØD':)çóù<ÉçK߉½rI*¥“!z>GR„Ìh隦ë$ERÚÂÉ©DH#$OR„¤t�è)]O)#m”¹|>Gr¹\슩Œ¹õ\Žè„ä Ñc¿ÜIi)¢§Rºº¹OóB(I‘‰ ·ž"Úô>•Ïçó9’Ï«‹§Rÿõ_þå³ÿú/ŸýËý—Ïþ%©zrl6›ךÍf›°ŽM¨»Íåæ:€»u€ºë2x½jšL僯»u×uëˆ&¨×š87›àº×šõºÛt]À&€ Í1BÓ¨4]—Õ9.c³ .«Ö_g¦I)¡õe·îº®ëÞ¯€‹M·Ùl®7ëÈ×›MØØÀÉ¢Ñ#Áÿ“j€„ҪɪÕ*3«¦I³õ�=~|üøèøèøÉ“'ÇSwðÕÕ¥Õ¥+ÖêÒ•¥ææÏ·Ÿ€µºfYý�‘ +ÿ¯€^o«ÛÝîoÝéõ§EÀîõ|¬)6°jYÝë0ö:cUZ-3“¹ªÔ™¤ÿ”Rú +-Ò"!¤ öz”“g Éê:!ie@­“¬®ë„(ÏWz~ +ð'ØxÞ.À?}þí÷„�²–›]ÇŽvùr–æs ËÂòT•<4-¥i)-•ÒIj��!ùÉ]ÿ%Ù|ŽäÔM8ŽËš–'‰ûvžÆß’Ë’ššcRÖ•Gö\u±úLš÷Ô•›j%õFŽäó%Jó$OiüÏ1Âýÿí¿ýÿíãøŒ7>ùdü�ówÆÍ¶8ŽÇœï#Žù?ŽÛõÎÇ­ lúž‡räܽƱ‰ï!¬ãxÌ?i�9çˆøp|0æcÎpÓÇñÛã‡íßrÎù‡ÚûÛ|¬z…l�6]à­�&çÈM@ûã6ÈqcüƒƒG›ü×ãñøm¾±±L´¾Ý@‘2³^eUåš™­üàññãããã'Ÿ}vüÙl `iÉŠ—�¬ÞõÌÜÜÜ,dΦ»#±º6€Ñ×Åÿv¿ßëu»Ýí~·Ûë�zñðO·ûãn·ßínmÝéNaàœÀêjwgww÷Àªæ«Œ±«UVefÕ¤´jRZœnò j+JyDªð&zút],Kˆ®ë¹\LxÖÉåË—/_¾|΀mK!¾Ù.À t~öüá÷¹](Ó\N¹á–K¥R©”/3yJÕý4ŸSÀ@R„hº–ÒSš®ë:!ºF! )��I©�Ìçó¹ÉÇ1š#%­DóT9r—ÊŠR•H-—Ë’Ë‘\>GH>¯lt5Frñç#„�ÔÉ~G¥! +tÊù|üQ9Br¹\¾¦ÑQ¯SZ.SJóåR‘Ñ\Nÿïÿöûûýïÿûÿ·ßÿþßþ-‰!Ÿûþþ>çØâî8YÃQKº€&¢ï·€•ÊŽã8c @—Ä+<À9ø€žbúÉ&OÜÇGô<Çñf` =DÏcŒcΡ  : &ŒÁksÇßãø6rDÞæ¹ÿìó?c +€J«”ÕëUV­ÒB¡HÖ?~pttôäè³ã'Çÿ:;0³ hõÞÍÌÍÍ« søÅHØkkÖjgÔï÷··G_WØžÀ�Ñ(^êu·ú[[ýn·Ûýq·Ûí) 8¿ØÝ¹{Ô_gÊäêU³J«ÕªIMªÔÐ&I!¤P(òJ�èšÒûÒu]?Y±./’£”äÉç/ÏØ«Rz¶TmÀ?É.À×tþ?øÃ‰ØWç÷”.Pš#¹ÉÑr‰:år¹\*'\€$¢&”æI.§¥R©”6­L†ÅÉBI’4Å7vJ©VÊçiŽä ¥¥2”ËåR©¤®Sö|>O)ÍåÑhžær„Nnñºê-¤TŸe¡\¢ù|Žæ)Íçr¹<Í—5õÒ<-•ÊN¹LóT}'a.)®sÕðçˆ-wìsDÀ–çÅòÞà™›ˆ0š§ÌaN 8 ²øñ¼ Œ7ᆒñä1øˆø&¢‡^ü.σàycc%g�¼¢.°¬´=# ¿6ö9窃°Á¿îüO)jšUæVMf‹”d›?9züäɧǟ~úÙäXÆÒÒÒÒÒÊÒ’aõÞÍÌi d.(Þu×ÖV-«·“øz<'ôºÝ;p§Ûíomõ·ºÝî�·¶¶Þ½Óí÷üã àîÝÝÝÑÝû÷ïïÞ¿Ÿ¹Ìeî ¸Ê®šñp±XT6ϦIi±˜3ÍBRzJÓcÏp}¶k¥2u/Êçé©sN +`¿@ +ðµ5€g3€?œ=¿ÿýþðJ³”*ËÜ<¥¹ó�r¹\(—ËåUö”–hŽRZ¢š–JÅügÊÄ ‰ ± D]§Diî•8ÊÊ“LŠZö¡\®ÑR¹\¦eJ ¥4Ÿ/Qš£årY£Êq;O(!¹!DË’&ßÑRº¦é eª>bzæËñW–£,_bÜ)—k”–ËêÑÅOøÃ´ À[omî#"¯�9GäˆpÀq€¢P+ç(-QÆX­NÍAt]nð&xèx¾7@íòqßG¥y7=ô^wœZ�±2eó„PÆ+ÄîÞ<àÕÍÍMÎǼí#Gl}ÝùŸJØduFi‘hÍã�ŽŽŽž?9þ×Y0–Œ%ÃXZ2––Öb�ŒÇ'Qæºs§×ß�~¡`µ·£üAF_? лÓívGÝÙàN·Ûívû[wº[ý­­­÷»ýþ�ûÀ/vwîîªÃNžjµZ~•NÖ÷‹* 0é«jJýª_&DW¾ßÙ,!z:�žV³UV¥´\އ¦Xl•œsv^$øš]€¯éüñ�üãÎ=4[¦¥r96®¥µ’ã— +¬Vsh‰RZ¦å‰©­–×ÑI.—£„¨x,�W(¥¥2+Q³eZ.%ÿ½D)¥ ŒÒR™–Tè²’ã—�«N­Æ:ñÇVNÜΣ4¯ì²IAM]Oj)�(+7íR)þ�Ò‚Ci©\*ǧÌc0æœz¤ð7Ûþ'ûíö¸õƒ1çèaeãá0ÆLF)Í—h©Tf5`ŒÁf“Õ”(¸ìC=Ÿû-„q’x¨îî Ä4ð†Òb”–4�ÊÔg¡¦ Á”È_|ÈÛœ·“$åëÎ7š0Ò/u¥Ô4«”Õ¥²P?|t¤nÿGO>ûôɹ°Ú»žI\AÈÌgæç“ü¼Ûëõ·G£Ý�˜Ü�F£QwôµU€þ»½n÷N¿ÛíÞé¿×ë÷ïôûýw»[½­­n·»µõîsÀîîÝs@•_¥S ”iR$ôr‘R¼LQž@ét–�ô¬=`öõzbìÆØÔ5©–ÀÙ@ÊçúF»¼àüá�üc®ÂUÆ€Ró*crpÀdˆè1V®1V¦È£Œi¡$›£”"J)53+•(-2‡1(9Œ±£À£YF¡ÄÄ€ˆ›À<“ùèyŒ•»ÊJÈÔÅ=Rd5V Œ1ä ”rŠ‚”Ii ŒÕ®ÖcP+1§Äè‚I¡\fHéÕ«Œ1#CÆüä�%ç{ñ¹æºu€º[wÿâßÿàÚ5Ó, +¤�%Y•ß-YÐ4maaaaA-ÂN6âÕ4¨Y(Ä›‚Ô4ÍeS ‡šÅåÂòr¡X(‹®Y,Òåø¿“’Í.d4MÓ´B²$»@æ YUY+Òªym9YS¼víZ²]ø¬ó�@ö%‹€¦IiµÊ˜I)% õ�?RK€ŸöÙñE0?�P=À™Qà­F[«k«–ÕÝm�FýµþY8¡ê?Š»ýn·»Õõ’É ­­­­­nwk«»µµÕÝêöÜ}&윀j•±*¥f•U_¥*äc(RJi1&óBÈå8ˆ ‚Oά‘×믻±ïc8 Ì«sN + ^`è›ìüÿøùçŸþùçüüó?þñóé‹?þñ�üc–d …l¶P(d³ Ùl¡¸PÈ’B![(d³Ù,)�l��,É’y¢i$›Z Ùl–B + ¤PÈ.dã`)RJ …B�dH6[(²@Ôÿ$…l6›-ŠÙ,ɲ„’ͪO£þy¡@&!G! ÙìÂÂBvÚz,P“ +…ÂÿI}t!KÈBv!K²¤_œ²…BáóÏÕãúãçñs’A�÷ÿË?ÿ¿>Ù<|øp|°ß(-B£¬ä°2¥D'šbW0 +´åAËk8 pŽÈÛíö¾‰ØÂFË÷Þh `¬¦}'ö ` (>£A^'9š/—�1ÊeeÏó xpð»ñþ'Ÿl<|È•øÀןo? ª@-xðèÑã£'O>ýìÉgÇŸÎÌÌ€Õ¿>?™<[ØJº[«kk«ÖÖh4ílÛý�3ÁÛ³O£í)Ü9 ½n·çÏ,Þ½»»»sÊU%ÜVeìUú*¥æ ‹EB.+$ „\&—ó„èzZ!@Z×Óú,À�4€©LÏ©M ßÎIÄ Ítææ^làó Ï?ÿüóÏcšʲ–¡É€9À+ÕcÔd”1ö†ƒ…«4ŸÏQZcåR¹Äs(pƒ_MºÔe¥’ºä„*ß` j Xù 3a/3N‹2‡k€Ã”–ná*«±2U�=½ìx~ `F©²ÝdTÑ«24h̵L€Ó�îóÏý8�öýöú䟱Í[È7ÛícºFHJÓˆžRI]×4M× IBi>ïd Í—kN¹\.—£¥cÌñ|®<|kŽƒÔ¡´¬tÿh™²r\óÈB%¥|>§iy=¥izÜQUmÑ|(k çív»9†g�Ìž—€¬Nô?q0n�j àøÉgOŽ�Ÿ\™ym’ÌÅgÆâ£ßŸ@w4�vF«[{†ŒfŸFÛý^¯×íözÝnwb Üëv»]UxÆÀÚÚÚÚš½u÷îßìîìܽ{÷îÝ»?�±6§¨&€8 (H�BŠÅbAU¶“Ä4�>eNêÍuµrÀ¦š’xñ2��/² 0Ÿ|Cç“oèÜsu.Šþ/¾P}^b”ÅnèŒ1f²WceFY™•Y‰²R©ÌÊ +,.í—JŒ–ËeÆ^aµšã°2sXMùï‚ã8Àc%VV5z•–™ÉØÄJ¶Ì+•KìUÊ+ÓWËeÆX£Œ1VsâT¹ÌÊÊâx"„¤òŽÓÇqj4þºÊŒÑr‰™,.$$å–/ÎúìɧÓ9€S071ô»ý÷NÀ{£�‘un`ÿé÷G£íþ�;wºÝ^¯»Õ›@\W|ö�:[wwÿvwôSw'¦¯¾J)­V_e¯ViuZ,Ò8è )’×È+„dUyZ?e F`}}}=vˆƒÓñ�ß$Ð&F«'`NÓ4íÙ]ñÅŸñùç_|þÅçql$o%çóÏ»jRÊØÕ*c5g™956)cPÊ-;N‹¹\.?©Û•+P‡±šSc5Çq¼Zìm]»»Ü×”¨i–c&«9Ìd਋SÆJŒ–Ë¥²ã Sô§ÆjIŤV+ÊÊ´T¢”æs„äj±q¶yº¶¢`ëÕ2«±«Ì‰æ_|‘<Ð/&?¿½ÿŸö7ÆŠkoâ¢èyØÞFò¤À¨k>�œ¦'+ ºž")MÓI¾\¦ª#”ËçËÑÔ¤“¦‘”OHÏ̇0¿A�R>_/öFðð‡ÿá?ø×P‘þ6¯�”aÀó€ñ­m.,,,R Õ*­2jš´@´úLJG�?~ôäøÓ'³cÇʸÁX2Œ¥ÕþõÌ„L`Òèwû£Ñh÷nommmÕêî(°6:‡ôO@·×ív{½î�;³ àÎ3'�OÀÝŸíîüt÷oþæo~úӟƆ¯¾ú*¥”¾Z}Uª§]Z,Äåÿb±X YU/"š¦id!›Mki}Ö!˜À:®¯£rž‚XþyzΦös¥š–YÔ´g€¦iÚÅ]€/žã0©ÀèUVƒ"s æÌ@¹ì£_�íÄÅûr�T›#q´¯AÍix ˆ«Õ˜°*3`Œ1Læ«1–4KÔ{YµÀ�%ñõ*c+ÄÅþ<ÍçˆF™SsœMBßQ*•ŒRÊ Æ(cÌd ±™}t“ø÷ÛÿáÿÂ×9"úÈÛ9Îü€|DDF �,c”è¹½~26Ô»pè"0Š@ Õju2òó*-•ŠÅbQíþ©ÁŸ˜�² ¢iº®éé´¦§Orrc׹ϕEÜi87xæÀüüüüœ¦egœg`ò¹çÏc_|ùuÑÿå—_|ÁLvµß›¦×`Žz=¾“×jàSVDŇ)¥%Z¢eV.°«Œ±×cµp`ŽÓŒ±šÉ=Úd¬ªª + zÀfnõ¬æ8^›2:µø�eÊX©h–(-—iŽBR”9PsS]<þŸÀLV½Ê )5œ }u¦;µíö'¸>NönùÃö¸ÿŒüo!ËÑÆL“£ríÝÇ–rôóÕ úMDÿ‡?ôyØB7ù&@, Þ€F›Ðü.r¿à¡ozŒRè·9¶bíðÿð‰mßjù¾ßÜçm<ùËòÌSùvã¿X,2ƪԤUZ ÄýèÑÑÑÑÑñÑ£ãOŸœ˜0–––f€6™>›lõG£ÑÝÝíµµµµ¤`¯�?�¼s´½ÝïÝéu»½n·×ë�ây~°W·îÞýÙîÝâûü«Õê«*í7MV*Ñ!¤HŠ”Ò")U€ $›N«u¶d]ö´70YǸ€€ÊLgJ»gS[9aœs™ÅÅÐæ/€¹ÅÅìâââbfîøò‹/¾¼øéË/¿üâË/¿øâ‹/MuOD + •Ì;àÔTˆ:È£8� ¤´Ä3ßPžÊ5ƪªg£á�¶SKîÒj°àÜ€¸S¢‚8¾¸ÙV$‚Õ«2VJ*„%Js„PBPg&‘WiI}íž5öÅêñ~?¶/¾üòË/§£À›ã‡¼¹ás_µÞ÷ÛÜGh"ò–‚íF-Ÿ[¸J¡É�óöCÎ9GŸóöþ¦Ïy«åóÍö'üa“sÞâœó‡Í6÷MDιÏy qÆ?h".sÏóLdŒ2[Ÿp}9çíß ¿ÆyËçœsÞÜoû>¾@!ð[€¥Ô¬š”š&£Bê>ztt|üøø³O�?›M&°Ö¿žI~c3ó™ø÷tÞíoO`k´3íŒÖÖF£ó¥G¸@7€íó ßïŸhÚj`mm­·; ¯*׾ꫯª|ŸRÊÌ-/“B±X,^VT “€l6‡<ÑÓºžÖôôÉN in ®cl ��:¿µ¡Îy)€8W(þve3óóÚ¼¦iÙÅÅÛÕç€ÅÅÅÌ\f)“ÉLàËç9_|ùå—_*Ÿ «z €8ÀX�¡çcP€JeU¼gÀ®2æc5 ÏsÀóðMEë özÌ(c55ÿR…xÐPs3Œ1ØE5Lç0ˆ?$ÔW3È””ÁÇkxx•1VcjVB#â¯ü‹ø}‘<ª/¾üò‹/'€ûí\orÎ7ÇíM·9os˜¬åúèPºX¬âøüÐoùcÞÞ䈜·7U|sŸó6¨hÿ°½ymÎÛ*—x'{Ä�Æãõß�Çußó¼«^­LËJ*ÄW΂~›û×69ç~{ÌùÚ›Ó/ä¼<(ÄÚ8j±‘¸?><::>>::þôøxvx)1XMk™ùùä7u +ýþè½ÑînÿúÚÚªÕíŒF?­­]4 §Û#Õ¼“@ÿÌ|ˆŠúY°×ìµþîÎhwwô³�ÑÏvF£x‚õÕbñÕWÕÔ}•–'c@…"¥ô2¹g:ÉfÉBZ' ÙYÐ)Ößyg×g¹Çii繺A&³æÜüâbFK(ÀÔg阋ã~NË,Ígæ2‹‹Jù5‘ÿtæõ8¥E4Àó<ð¹×p˜ +SŽ ŠN>ŽÕ¬5\V5òоïûû¾ßò9€º[']?Æ®²ÚÊkÃ…†ãyž‡ÜóÀdÌÎ�T ¿ÁX Þ`W)-© Í×ÞòÇ-ô¼1S×vÔÅÔÔ¤ýs¢ +|€Ml6rÎ°Ž¨oºM· .ºJLÆÀåÀys}ÌïqαÎ9âF³¹Áqý¾�Ífó탇cþNó⛈¸±ŽÍ&@sšˆØt7~à69¢‰€h+Q +JHx›ˆü{MXxpÀ9¿¶Ž±‰Íç=ßfü“B‘ÒªY­VY•‹YxpøøððèÓ£GGŸ?ùtº<³ ¤ q<¶G£Ñîß�®«.ÀÝÑh÷|Øîo«\;€˜ô'ÐO åÄY[[�`€=yÑ¿?íþt4ýíèg£QñÕ8ú_�@<H‹EZ,¨.À¤üOô´®ëiòBô´¦ézZe©i +ðÎ;ï$�1l¼õŒ.€2Â�@fNÙ',.ª¨V`>¦³eÀ™øŸS ;€+êóss™LæL˜ŸOã¨#¸. ˜®U�# [‡kHsDÝf¾€8`Ux¶Ú?â|Œ¸‰.€4ß` ¡þ&‚ËÖ�1@0]€·�1ð± ¸ÉýO° àŽ9GpñMTêÙo cŒÒ%DÏ}Ÿ{žßd± §ëV`s\à2ÀäÅ�ë©zåËļrük>>¸·qÀÇ>ä�ÇëûÉï�8çùÁ6 +ø9_»‡÷Æ9"¸�9ߨøè£�þòà—üƒ_òñÁÁçÇãæïÆc>>xÈÇ|<²0Þàm>n·ïñ ¥9 øC<䈈qãáÁ½¿ßÛßãŽù;?s>>àû|›P¤Ô4«&«Ò*¥â>8<üí££ã'Ç���ŽŽgÀZŠ­ÁÖ’.À\üûªÍis³°½=íìÞu¯¯­=úI®¯þ:Î! «öêꪵj­®Z««kköÚš½ººÖß�îÆÞ�;£WU©ÿÕW‹¯Æ}ÿb‘�dþ§XTÃ!´˜ì·ë š¾ eI6­©ØW〠Íw3«¢oóÖÆ3º±îÀ +EæÊ•Å Ä cn^Uæ˜ÑX{˜Ëdæ3ss™.!ê|ùôi<mšÊ ÊuÕ¦Tµà^«V«®kÆC{n¡X,MÓu]ÆX•.›×LÓ¬Ö]ÀeL½Û×u—7Üúº o¸Œ]uM³jš¦iV«Ìm~Ïe®Ëª.¸ìZ5¶À`,Û¬V™IM“™¦Ii±�%…ùM+2n\P¬²:0—™èºM5uÇXÕdO'�êéÓ/¿üò©zäO¿LDÁ›MÜ#¾ÍÛœ·Çc|T&¾ 8Ì)i$Oi¹\.QÆ:ztttt|tüéÉ6`rf‹€êø$Øî�bX»~rB`»ßï÷·OÀ» ôÏku"–­õwG£ŸNìC‹“£Š€—‹EB)^.r™�øÅDþ‡¤u�èš®M˦Oú€ÆÀïñwU)[œ?« …Bª”?se13Ÿ €JNQ€™Q€³@K*‹ñæ´žENßç¼Ñ@ÏC¨6¼x± á!:´T.3'‹ð}Š0Ï‹i« ÄB– €Fh‰–˘pT•¯ž§âÙm€‡>‚ç�xž�˜.¸^ x *Ìó<ôšq%<ÀFìÃác ÿÉDDðÀóh8Œ•(%”�’ç�×hxà�=Ï÷=¸ÆX}Øô<Ïó`’ÑÌ>¨/Ÿ>}ú›ê ê°1æy»Ýæíö&6(£µXõ@'$Grz¬x¨iy]×!û†Ã€1æ8à0Gí Ò7‹ X<à�è˜û¾,ˆ®A#©o8ÉÍü†Ä²kJËl�Ê9çíýýý}ÿàÅàE9À7ˆòŠš´ª×cUZ$õ_>8<<<|ôèèðhvøSÃ0ŒÅ¥0asš67ÛP5€vv·/N¦ÐŸ€~Ô�í„¶ÎDÿ�;wîL N,ËR°3BH1itg6}¦­ÿÓGÓˆNR YMWìÿÔ$à:¿wï��¸ö7•|�Sг)Àb6SÉd*Úi +°¸¸x‚Ì%@; § À•¥Ì%Eæ2™LfñŠ +ísÿL#?I—�€‡-à#‚ç©HõÖ(-—Y#ÛP#Ž×ðð<›xèc<ìæyž‡›à é0Ljð€‡Øò=|Óõ ‘"zèûmÓ÷=€†×ðà8Pcå2#9Bò LÀÈkx¸Ðu˜çsô—§Ú+Åɓ˄&3¾Sí²~ôñãÇ��ŽŽ�?�Zƒ†±´´´”ÀLßzV°uýúÚjwgw4ÚÝY»`` +Ûý^·ÛÝêõº½¸(0ê÷û‰íÏ�;wNÀªuò¬mïŽú£Y˜žP¥ˆ¦z›å"8ÐÄ–ßþo·Û¿Ûßßoû/x¾ EZ­²:4›M—™´¸þñƒÃG>~|üäèÑ䆱dL@‹�2™É­j¦\—@w +ן¶ºÝ^¯·Õ›™Øš®M ·4ãV?/YýÝ÷ÎRL¦ÿ&iÿ ñÏBÒ©¬¦B²š¦¥Ó„躖ÕÓº~bøò:ç÷ø[o½Ã76wcÆám6Pqž]\Ìd'0K²gª™ +pa `éRæXZ\ü*‰S¾šÊLÀ€€¼…ž ä*V!Í–#„2¶€Ž +Ä$¼Æ4c@õ*šPã `¸�7=ßWÚyØp”œNÜD\æx p æ¨-Û2¥„æHyzq®Ë€`»Þ9q?9³î ã‡ˆëëMDÖ¬B ˜Rƒe¦iR¢Š€WKŒ2F +Y5N‹”(¥´@)˪ .ÐÂ+”RJ³¬\.QZ¤Wi•Rz•š&+Å‚05Z(dÈw4Ê5¯VM“]5MÆ(ø›Íf³¹ÑDä|×ùxÌ_0xþ,àÅ?¡”U«n½Ùl°ª¹ñÑáƒ>:|ôøh&þÏ€¦Z×™Iµz6ª“`mm­û·»;q +Ðÿš ßënõzý­X,@AÀth†,�=–Õ¿;zïg£÷&5r™\&„\&ŸðY‰Nà€žÖôØ#vP€tJ?�ð_ò·Þy‡OHÀú ¸¡N’ˆL&“©ÄõþÅJ&''(@vJ2q%³8—”˜?Kæ˜Ëd²ÙÅ¥Åóà«§O¿úêéÓ¯¾úê«§_}õÕ,x€M<ðMG¿åy­Ö$ê{…�…¦3½FÃqÐh*] jqOßÄ:{½Æú*5À7Ðó áaÓ÷Ñó|pÔÔQê al2…& F‡�Z ”y +rbE-Àl2æ²:ãí$þ¿úê«À¦ž’Ö�ÿ3ÿÝ?þöƒƒù—ßp>~È݇Û9ÿ ‰orÐh¯ÅÆ8úd®n~k ÁDäœ�Û³6öù˜½áÀYÇ>ÔÔP-PJ(@8<#ŒùoÆ|ÿ_~û»ßŒÇ¿½·ñßþùáo¼Øyn(|“CÌ*sY½^o®7ë®Ëšïpþgã�wø/O#޳xPÓæãÖYèª"à/b¸»{w~’<ŸSXÛêõbC€Ñ¨×õûýþ¹öÀWV¯¬^YUÏWV¯¬.Y–µÚÿ›Qÿg?�EHár±xyúÙlV×ÉåË—Õ ®g5MWÒØ3wþEÀüG¿ä3L�r{U @Å~e1“Éd2K‹‹ÙÌ×W´ÓU€„Ì�&sgÀ⢊ò韧êÅ$ø¿Ra£â¦k©*@P…;hŽ�b¾¶Àc5¨ÅÄÀl NÊûo@ÓäŒ1×ð=ð �è{ˆÍ4¹�¨.Ž3Û“ÜÜð Ç©1VvÊ¥jŠq¨ôÍkçèÅ�"€™ÇóôéÓ§“allñ1ßäœorΕ-È�|ÏÃ7På`¥µrßSë dÓ…`,€£f¥¨1ð¼†Ó`”±¸à8 <Çáà9¾ï0æ8ŒQJHž17&9¸ˆØÚä¾Ï9ç­q½ÝæüÄéó�o�Íj•¹Œ¹Íõ&¸nênµÏͰ*›N'�€¹yík`wÔ튵µîÎîÝ�ûçíüälw—ºÛýÞv ݵ‹e¯_¿~fàd +ð3%×]œö;./_ž”5-«§ !—I6›%i]Od€4-þK?ebG<Î9kÚ€õ„à:¢W*•J¦’Éd+ÙL¥RÉ,..f3™ì +0’(®ŸYL¦/&™ È(°¸˜ÜïŸ&ðtO§¿û)‚‡-ôÐCD[�F£Ì)BeäMV«cŽžßêÝ 9o$I€ÉÕØ€ŸˆïzžçÝh" ×j!úÐhx€ P‡:óük¼á5<Ç©ÅÛC娋�2œiT7bÀ¹¡@mf2€¯&Î@ˆü÷Õì Ôn#€ë€‡Ð@l8šÚöó¼Vƒ1p ë°šš4P_98 ÍÉCmxÀ=Ïóâ]GõМ†çýÐóT“QªÆ”xx<8˜ømrÎùµö>GXáÿã @©Ye šõf³u`USÕÌH�šÉ‡ëº®añ.€*ÎÍÏij(™\�Îé©9€_ŒºÝîÚZwtÿoÿöþ…Ë@ÛSµðÑõÊÚè½^²Ø]�úÛ'…ÃTp÷ß»žœðÓ~ÿ½÷&5€Ë—/_¾œ?ý€¤µtZ×’B`:­¥§&`i]%§—�PM޶fÛo½óÖ[qàÊ•+‹1d+•i ’$gªóss™ÅŒ¦rE2óÉluL5-&“•(07÷Õìy:ûWr÷�Sƒ¯ž>}útº“^ÃÇ6€«iBh¹Y¬ÆÀ÷PóÀ`u€ïA‚à�g3‘ÛPÍ|êàù-¸ຠ@ä&4âá9jeF¥&!º–c.›Þ!ã…˯fÀW œM@í«™¤™„¸û‚µ|Äåù-Ec Ýŵ÷G=Õþít×Fïõgëú3o\?çX½Q¿ÿ^ÿ½øœT·ŽeîÔëi’^ÐuU\ÐÒš¦eÉ´õ—ÌÿŸ2!oâÛ1Õl)|‡sþ–:Ú•+W®,fâÈ_\¬¨$ »˜©|-˜Vf &‹ó ˜?[X\œ›{:�ûiT$wËI¤Äñÿ<[-¿Õ‚&ºž*€åó”RVÀ˜þ¶}Ïð=Ïkºñ?ÜðÑS!âñ* ‡Ói Õflºjì}lÄóA.sу¶ï9Œ+•X–¤R”Å*k܈ë€u×Ç¢÷tb榃<'† >ú~Ë7Ç>ú à€­V =-–¹á`��ì'€à9¬ÜlÀ¤×é¡èÝð㺧‡ˆžëù-Çñ<•4B�Ñ<)(�qï {·T0¾ç$zдo f•¹õf³¹¾¾¾^¯CÝe´X(RjVY�Õ'g±²TY4+Æb%fóÊ |¢ 8€­‘Úèv»b­;º¿»ûL˜ŒoÖvì$ÚÝíZÓˆOîý£Ñh4ê�Þ;'þ׬îÿÖ÷½÷N@|ËÏf³ÉÆEÿ¬®ëé”N²š®¸À„÷«)àô¹®ÕDmÿnnrÎã½ÐÙY íÊ•+WV+ d²™³0K2S +0?¥š–$U ˜›?S˜›Vææ*™¯.8'€ ©~uðð·m>æ-· +j¯¹q€íñ96À¡%êdìã¸�|ÜÞDþ°í8Fä¸�È9"Œù9‡eœ�Ô-��ÇŸüS{“#º&¼‰ „&îãxŸ�}¾?FÄM>Ùo‚èý¨í5m�!ÀS·¼9Æ1rÞ4]Üü#Ÿ>�)¶ÍR‚u¦&Oâ¿…>úü{-Dð6Õ¼"ÂB™–kq�Þ`°Ì�Q¦–VcjY +<ðñd"÷n€§d…£%K� $`nJÎVæææ³_]ˆO§YÀ4„–MÓ\^^^þîòw¿»ügË…ï~·¸l‹…‰E³ …l¡PX.©ùÝb¡`šËËËêCLóÏÌBqyù»…âòr±ðÝl¡°\\Îf …B¡°œ]^^..›ËËË…å?ûîòòòŸ-////›UsÙ\^../ +ß-¨Ë,—)Ͳ$›]XXÐ4m¡P,³ËÙÂòr¡X,– ßý³åÂòòòòL‹kgqƒ7ך€¾ßÞç-t}Uéð=ôZ-Gc´¬�,vHF˜Ñ×u]À6÷7b�Oîßú5ð€±¸·É ÆhN-Zz*½YG÷Chª/¤ÝÞç>w}äˆî¿øùðÃñw~=¥U¯þ¦U@ÆsݺÛåtËÌB�ÆàõäÔgBaIyN ĉúÚdx«{}­û3btv¼÷ÔbP×0¶f aÛ +0A€+«WfžWWWWW—2WÞ}·Ûï÷ûý3�ΦÓ:I=Mˆ¦ôþbů´€t:�NëgòþóÀ|üáxüÁi…7­råÊ•+W²*ý¯d*‹™ŠêL`†ÌÇ�€Ì) + iqEà XœŸ;�,f/¤'xsÒøê«1çãqkÌ9Ç�æ>¾9n«%v¯LK¬ÌÐâ[8æ.Žùæ˜s|Àö÷Ûÿ\u90øÎÇø6�c“™||€œoð6ª½ywŒ8>àíöøÃñxÌ}Žø£–�|<ÆV‹£ ¯ÆÊ¬œsøØÈ\D·îº€cÎÇ9à“Zß©ûþô$vˆƸŽ9o·79¶ëˆ-loúþ&o!¶Z°@˱q€50ÁQZÇÞo[ˆ[x Ðîc»í#ŽÇˆoÇÞc-Ĥ¬Ár¥dH‚1Fó ±‰>�}¹;n®#Ç Î?l·}ä.÷÷Û/yNÅ~ìÞžÒSDÀëߨX¤&cõ:0XoºPwë̤R¤EJ«³ÎZ3¡`$0wš¨¥¾µI°×½~=f«‰(hï¢ÓmKÝÑv[Ö‰ +À‰sêæ¿ºzåÊ¢–¹rýú»ÉùߦºÇDÝÞÓjÜ_Ï*ïMS[¿ê¨ýŸ§]Œ°…œóÍÍñ¯ýë1��¦�¹—¨T*™L%³˜]\¬d+™ó«K§(@ùš6?€ù„ÌeæNWææ²ÙìââW_‡qsðDÕ¬ "2ô|ô€çÕòù-•ËåšKz`•ûÜð¼†ç·}ßos�d±Jc¬®xñè_"˜bú�¸èûžçûzžç5Ós˜ÔÍêx¾gcU—1å¸àAØ4üŸ^ôè&}*p›Ík×êͦ[Çwp½YÇåñ¸®[hÖëÐDwžŠ”MÓu¡ÎL3[¤¦[5«àºPoÖ›Íu·¹ìšfsp½Yw›c·ͦ Í ·@%…ªë0fº¬@ +æµfÝu›Mhºîµ\sÐlºÀ7°Ù¬ã¿�Á…úËži½OÓR)-¥ÅÆÕD×u5Üü k¬^¯»n³ õªÚ *PBŠEzÂøbz*Ýë™øu.QÉÌÏo'½µþÎh4Ú½¿Ýíu» XÝÑööéøæôú£ž±8€Ÿö¬þdªçkàú•ÕëK—–®Ï@6›N§ÓºžÎ�¤IZ׈®ë)’Jë©´žN§Ó$�Ö4=�Vi¿~Aê?ÛPñÜ bc&þQËdã$ SÉd*™Lvq2´˜tNP€ì Ðb +�IV€ÏTæÏVæææ³™Å¯¥Iø$±„¸³Ù1SΘ´n4Êù|¹Vfår¹–�j6V2@žç£ïû-¾¬zfàÖœZÝ·î0Pw"úG5ý`ª½?Ǿïµ~ôö¯ ^£á80%JózÞix^1Æe»n _�hž9cÎùG÷Öù'>?trŽ oµ>rðÃ1oßãŸüc» ¸É‘ûãÏo�y‹›ÿõ`<æùñí{Øó~Àù˜#GŸãÃïqäcÎyÛßÿä“ýMÄZˆ.ßDŽ Ðaê÷‚�}>·9ò{¼ÉÆ¿}ç¡úÒ|ÞÜ¿ìQ²Å!DY)§âD×u}ÆÏñ%5Y•A½^Wcju.K +„ÒúÅ ÍÏM€€÷¦ `çîhg÷þv÷ζWô¶fÏ)г*Sø›žuç<¸{A`uéúõÕ)LÃYOeu¢îóš¦éiõGS¯'Â鯋� ç››ŒÇ¿ÞÜL&;gô2E®'ìQÍ--...V*•ó)À•¤�Ñ4m.;?'@FKÀ\&“™€ÅÌâ×S€Sm�¯0)apW­ï:à8N9—W¦¡e標<��§Ý}Ï÷=,‚LmØ3¦”{°ú¾ßòo@Ã÷=ÏCÏÿÐT냢ßú¡ï·}ßO:N�9̯©±ú<шÓpÀtc)0ÆÜ7àLªÏ€Ù<¬‰Èýú­k<éàœûŠªù^­Ìj5pÀh ¢ç@ËCVƒehsô}¿_}>ÇÅCÿZ+.ûzˆ¼í{à!p¦ZšµšS¦ ù½ÆmŸs%/ÚDä>¢ï«±ñú¼9~û%�®§tM×5]'qgJ¥ê––J麮}£ ÏB½ÎêëŠOÕ×a}ßyç^ò|æg “ÉÌÏoo÷GÛýÑöKÀNϪtGq©`ô³ÞRw4õº;?ÝýéO§{¾wïŽî¾{öt»ýëׯO + +éDÔ+­i$­eg·ûô´¦Rÿ”öua"àãñx|ð›9oòÖÉ}`m©#Àb ÙLÒ œ–NP€Ìœ¦]™Ÿ] +œ›ý„s‹‹sóóq`n>!Ù)Èf³ÙÅÅÅ+W^¾úêéS¿í#z ĪšÊsœZÙ«•Çy½\.« Yp€WǪ) Éã!ÞêUÆjñëj> í� <=Ï›-5?ìÁ�ƒÿôOÿå“}ß÷ Ððà ‡õ+—h.GtM¯�ã™Ap8YÁ¼àlÆGEoKÍi˜~ÅÈïÅ4­…Ø`q Êãžr¤%ËˆØæü„w‡ÿÑÃÉ5®½�´ñ<Ï÷}¥2ž×p€±2eØBŽþ˜·}Þò[S©ò¦zÝßG|ø’ñþ¤´\ŽÄƺ®i©TФôtj6Õ}IA ÕlB½^¯nüòã�ùàã�<8<|ðàÁÇ“s +æg £ G£mõ¼ÖÛÙíìþb[YúŒîïîÞï[ÝÑv¿ßŸÿ�;wN·wî•룑Rý¬¿Ô�îvWû£»?½{÷§SµŸ08yúwÞM^Ýѧƒ=ét:­ ÿô”3åû£Fþ´÷üðë~óáææœ#b«55}ׯd2•+W®\YÍ&ÍÀJŒÙÅÅJ¦R9AæâF@B¦½¿æ2mRÐ.Å-€¹lLæâ +ÀâŸÿù•¥@€¯¾úê)¶|±Ñ3ô”Fp­æ” !å¶ÒúU^`rppÀó<ð<Ïo˜˜¨…¨1Æ<ÏkxØn{"úèyc=¯Ñ€†žÏÀÿç¶útà€ScÔceJóù!zžÕÌX0ÔŒË +Ï÷ˆ&µ2î+)~¿Åù÷¸Ò ãÆx"×Ï=Vf5€0®–[~Û+Qæ-#ø¾ßÞlsäˆos¿ÕòùúX!|›�]ÎÑWò€jêÐ÷›  á8e-Þ÷ýv»ÝŽ%Ç|Ÿó—#úˆ¼�ÍþRG}=¥i¹Ié©”–ŠKɿ躮½< U“©)ÀzÝ5Ù_>xpøàÁ£ÃG�=~ôøèprNÀܼªN3€ Œº +v·Õ"¯bV÷îèœéŒF]#s}´½Ýï�Þë�vûVw4ÚíÝÄIôÄÿ=ï¼wçú»IÒ�$ø1µWUþ¤ô—¼’ÖRϬüŸ>>8øÍÃ7?ø€ó·[­·[*5äœsmi)€+×ãÀÏTÔ4ÀÒÒbv1ž>Ó¸¢ªñrÕÜÜÜüÜÌxõÜbFÍh“ +@v–,...^¹òçÏñ=ú¾ßjÀØäž55„S+åIž–™SSñï˜J <®Ý5Zh"Ô•~æ2PõÀÆD=Ãk5èy-Ïxh~衎çyž¯�à†ï8NÍ©9ŒBYe:¡eæ4À„iÍÙÀÓ#?Ï®pŽ\é{}pÐ\®7›ëpÿ’�ù:b³Ù䉥^D>æcl"°7˜èâX5/6°ÙDŽñ?@àÖ›ÿï�›Øl¢ ˆcÎù;ˆ."ç¼ ŒQŠˆ÷>Â& �œsäÍ&nàÁAó47ø ò¿X©ûJO%Bõ¹XÓHubP¾„š®iäå¶�”P½®Ëª”®|xxxøèÁáñ㣣'3’`S»š¹L±›Ef>s®÷v~6íîög ·ÔÝõÔv¯:g`k­’Y‹S€Ñh·¿t}4º»e\ŸýO?Uç½³g4õ¯_¹þî_ÿõ_ÿõ_ÿõ{$éI*þÉ›Ïðç2€þñ?+À[­·¹Ï7¸²x%[I »8; °´´˜]Tã@'(@VÓ´+W2só™ùÉvåÉý +-“™›Ï\ÉhÉ À¤0“üùŸ¿P &qüÛ‡ÿtà6Ð÷æÔ%„–ã,Þ@Ø›ÊÉuÞ| –]W‰÷MźÕL*Iðxæ†ÿÉÁÃߘȹÏ1Ù)fjµ•©òÀe@)%)B�Aƒ-W™é2—¹ªôô4©>ûÜ‹çˆ×68pÜÀæÆú½æÃ1¿÷Ëߎù‡|<æ÷–98L� q|øð ÊÇP«¹¸�ã ÷!"sþäüƒñoùï]à Þäü#>>àcÎ9bÇœs>ÆÖ~s0†7<  ðç÷6–6ð!çï4°Áùþßãÿ‹ ¼÷—�_êþOÅ×4-¥åH²Ÿ¢âþ$¤´—j²j½^w«2J ÍÇG�=>útF¨2=Z7nª.@&þ3ؽ�ŸíÜÝÝíM`wkiëî¨×ë�€%€íµ%#³6�¶ûï�ú£Ý¾µ6íöŒµ^ïN¯wg4ýtÇÿOß}÷ݳú¢£þZæJRL +üÓR öÍN®±ùÁ‡¿ùÏÿøÛ‡ã>ˆo9|s?iKKW®T\¯(PI’€Åìâbf1S™¥sª0%£)QUM›Ëdæ3™¹L,8?q˜€ù¸0I–þ|qñÏ—^¤¨fƒÝz€)%OZ(””˜ÍwÈÿ�º¿ûQäÊó}á@²’µ›`ƒYlɃ¨5¹#\Ñ>‚ +7O +i1„YÙtÅiZ‹Š5Ù<£¼�Ý�õÅpΜ1Bò�5Bªç/'ã®}hr̦æ4›‹šÍI»2ó.ïêO¨©KË7vùâ¹Xä{yfëT/ÓÕ®*’Êv{}âû{ûþ$UœT1Ž&T1ƺ®ëü¬¢ó­‹z.—Ó Á8‡IMÍa]'¹\«:gˆªâ\NWÕ¸®scÏO~ˆõQa<— $I’ % Äê‡âÁ†žSÕœþöÍûÜÈ£bTŒŠA ¥µ‡Ô ”šU“1ڽό‡N£A)5c�*­&0„ Ùækü¶jU‚¥w!&ô>5èÏI™2ºÕ¯¸Ã’ŒRƒÑš¾Ó |Läۄ5x“ßÏyöô#•`ÅÄ ”–X…’ +¡Ä¨{kɘIÙ5¶†��ÓÌ·ò †BT +�@ÀÍ)àí6ä�µ;ˆ1Vsæ`".=�'ÓÉl6�Íf~KÀZâÊÄ„€¿pÿà óéAÓ²ö<XòÞ¾Ýl^H¶Ö�¾4»m·]�Ñì�;¿•µV˶?þøcûãþÛû]«ÕúÝï~÷»ß·ZüÕ²ßÊ +¡¿ü¯Š¢(?S„ ë}Á/ªŸÿãÿü/Ïžõ��¢��îNw§Ë$˲Œx7@žçÿÒ— +o¼,ÂBˆËžôz-C®àÕÀ„•ˆ °‰6BwÀëå(Ý÷߯l0Æñ8ŸˆaP’¢1ˆ“¸Hqœb\€©".‹Ü¨ŸÕš+�þÆË>Æõ.~Ä%„ë*Bô�tõI¹ìæ +ER(’2‰;îb�XT’ ÂTŠÏrù¯Â-€îð–}ä?4)á•;j5Jt§Ñ`ŒÒÖ &eqÝìF™�r™m9*ÃÑX×þrèŽÿPsëˆRJy Oº÷)ÕYƒ=¢”1³Jé6Ý!Þ0U™�"ÁÃ_ FuÃàf&Ü3®Lef•RjÔÈ–ÓØù1ñ?‚�/üQ怛B ü¸*@—r˜ïЖ"¥Ñh<�N¦ÓÙt>?9Y)Ÿõ†`å� ðV ïö‡B äZ|[Zóà`¿óø`Ï€Ló }¡°·×^[&¢Ý“Ó»vËî´ÍîX²eó{ol_€Ç=Š Dà›>o€oÖ·e[²,[vËn·Z­6W�+½{à��½µ_kh-! BÈ{Šúöû½ +B@à üñºøGçŠxN²,Ër:QEÉfQq,ÓE@Ú'D1x;¥è:«…�—8yþÏçB¢(Š!Þ(ú€8ä;výàà{Bª„Z¼$¸ ¡ÄƒB)p7½B‘‹œúI‘l—)Äÿ„8ù!Ÿ’/’b¡€‰ºZä…q +cÊm¿ +GTl’B +{[¿ Ä‘2„±(ŒB“‚‚�Fa2™ÄÅ¢»{¯lÍo«º�yd°U Î0ŒZ·Qe̬2“5wh-ŽaÊÛkFe÷)uÞ— ‰0ƒB*„R“•æŽém1œÒ°ÄLÆ7�í8”�ß íº¨¼�1 aö°F BJ„Pjš‡CæþÛr Ç|óû/ƒï¸!@0 +RÔKÿ»÷]âþ»Ksâ7öÀ9׸PŒÆ“Ùd6Ÿ.æÇ'¾Õ`rÖ5áÎdÀå€À²,kooOkv:ŸtÛ>X™æA»Ý¼Ðp÷d¹i·ÚíV«Ý¶;­L¦õv>m-°Üü»¿ûÝï~×jýVñ%Ò|ƒ}.0ïü»À£/þÇÿø—g>°€°Œd$Ën?P>�Fé4H§#¥H¯°”¾Äü™�Òi€Òé%Xs^¿$d¤l"t7¼^õ.×…‘b±�‚±¨$H’„¡$o6Ž“&!.ùšÏTã")n—!Æ8‰?„É$äCþ¯OcœJ á‡ðCU…©".òµb!Å)Œq±Ê——#Bÿ³”ŒEWã,1˜*Buyÿ¿_N1ß U:¬˜¦ÉhÉ ¿�z×iTc&k4´ÊâÜË��")“ŸSS¥”ã¿4(¥¥!Ô¤¦14©énóef|YrÿßnTÞÆqÃ�& Å"&I˜ÄÿéF©AI‰PZ¥Uçó_›f½Râ}Γ£Êç?ªþx·Ÿç¼ÍÁ€ Ü2ಠ+ „À� @bžœ�q(IîOçãñd6ŸÏg‹Åñr;øIv €lZË/Müð.·¿u`ç9~»Þþ³Z +d·¸hº + ew~ŸÉ´·2÷–èØöÁ~§Óét:ï]èúo¿ûoÍß·,´Ê¥¿÷žðïî„wBàú1¿7Àÿ¼V„ò"ËhI€ˆ 7 Ë(â“‚è¥úA€H$"Š¢ŠD@¡´( +E!Àjõ‚òÝÿÍMYÙÜt ß5à.Õùî;ŒËîx 7 $I0‚’$AIŠÅp„@˜Ä)œ* œJ¥p*‰q¡H!NaŒ?„©N¥¼ç=Æq 1}È7 Œq±€q!B „8•JaœâGqc„1) �'a2U„b\øÎ€ÛÎ +ÕCâ +€ +užî<¡µ£¿» 󗌲x +¦ð‡Øõ:+3•RC>IH BH¹JÍÒr‡;d�ÆpȰÃ&«ò~gÊ'ˆÜù_ a’Ô<0”(­Ò!£<-aСsØø“^yöæ÷_�‚�w�  ß x,¸¯BðFGJ@•‡s9˜�$¡4šŒ¦³Ùl6Ÿ/Ž�OWe@íAÖ{¥µ<…B—€w­w›�΀—°µLë Ýj6×»ÿZÍ/ûٶݲ-Yδl·àï*€fFöÐñ�÷Þ{ï½÷Ö)ðÛ¦•GÞ?…÷Þ{ï½÷þ þ}Ú ÿz�xO‡Ã²,Ë2pƒ€¼ €t 4HYŽ I§¹X6üˆõ‡9H#„@X¸§è2œá¸)ˆ"×ÿHQ„î +�|µÖwß}û-6‹8•L¦RXJÆÞ•¤@ HR4*Ťä†0™J¥’É"Æ)˜Ä˜?òIü#œÂ)¾D<™ÄÅB*•‚)OÂ$„8…= Q.b\À8E"Bå{‡¹£6Þ€1ƒ0*IÉ  Qw%yK0‰ ùî;/¸{' sž>-5Žžî°£#æþß_þé‰Óu†Ã£vކC6úÜ9RSåmJ™ù„QJ™3Ô�jŒ@Œw˜ã0‡±#ÆçáÓçG‡‡Ï˜3|òåÿ:újëÃáðËáááSFÆ ã©óäKÇRFÊL Á˜Ýwž:GŽÓ:¬qäPvô%sž2çð˧_ÕjG‡‡_¾Ñ ’Û¬â¶ûø:_€? øQ„*ÆXÏåT5%� ¦“él6�/Žç'óùÉòhZÖ{¡Ùe~êJìu:�Îc{w€––iØ­æ…ößeƒO»ÝnÙ{ò=íVÛîØšÜìXÙÚßßï\8ï-ÏMV¿ýÞ_¼÷Þ{ï½÷_þâ¿,ö_~Ôë¶#Èáp!yd—Q×2B(Âsù…\I/ +b$BiQCi„@„"aA(â#@tËB EàÆÿk�oë|íY½þþûï¿ûöÛo¿)âr*ƒ©TJÒz 70„0 S–S) “)a +c\ˆè;. R˜Wá‡Âw„¸€Íb&“x£ÀðïBèZêà ƒÜˆ! Á(„ÉTKB˜üö»ï< p{ ôÐ;•ûµ‡ £[1 £R«Õj5c«V«Õ*Fí¨fÆCU’ Œè:)éz‰PÃÐkŽCÕ ´BkµŠa¥îCãáǵŠa¿ªÕh­bèü¿Œá}ÃÐuUÕu¬o†At�cuC�«µ:cüÏzøP¯Fé¡a0ÃýFhí?­Ñ7²) „@`%w·Q0 ׆�xo0Ïu o + s8—Ã*„PŠ£ñx4�ÍfóÅüØ_ð™ï¥3·(€–æõtZZ¦}\�{Z»ÍK ­Ž•‘­�;�ë°¤€ïý¿p9ó)}o,ˆ?þÓiÀWÉ2Š „ÂK=/†@H#€.ÒïM�4B@@Á*p↓x÷ÿ.X¹„ÿ½+¾ùJR0(A˜Ü€Ò²Ç„ÿ{�7RÞÇ8…!L&¹"Àá×8ÊëI÷âÇ—LˆJïJR4…£Ä8•ò I±„0�Æð”b0Ê×i¹Ü‰ASÉ (Áo¾ýöÛï¾[.7»�UUUQºóÁ#J)uÛ³wÇ94† F™é”ãÛt¿!N¢ÃFÃÑ»;~-¸�~‚%¯Æ ®’€�€7 z�€«×Nqa<—J£Ñx:ŸÍóÅñš°–÷ßÊd²‚°¯Ç/Óìt:�;M-oY–e}üxÿq3£ÙWåZ­–m·]§Ÿ¦|Ok¶š®°í|¦õWÀ¶ß{뎀9#Y–e�¢(J>¿¬òmò&âÑ¿(r;EÜÝŸ +Ãa€6B(}ñ¨Õâ_¢(òÀ× ðýwß÷Ý·ß¼zõò, R*–ü[ЂïÁ $D¥ŒFc1˜J%a Æb±˜£R4"ÁX4åFÑX ¦`T’pò¢»XÏ=Å2$>"$¢QIŠE(E¥@0ôÚÚ� k×|ùêÕ7ßò(àõ$3«¦iš¬Jwø‘ ‡5:¦É>£îfο’¢Æ)¡„0Ó4Ír¹l£,RJFc´Zã9ÀG�Xƒ1öäó6d¦Éï7£t釂 !tÇ4Íjµ/¦0e̬š¬Ê£UÇð#‡‡ æè¬j¾AÿO@É5ý �÷Hß8p@�‚^�À½þþU¥oâ +¬æÔ\Æñ¸TÌf³Ùd6›,‹ X^ðL¢è*p ÀÞ.—�ÇKÖöìvó·|Ï×j“x»½@+s/Ûj5[¶Ýj·mÛ¶dëö2²¶mïïïï¿�Ø”åp „d%"þ4@|aR\;p·} À/3R�(†ÁªÙ2-ˆ­~D‘'@Èm BŠ"+ +Z€|§A ï_»À«W/¿þï‚…EIˆþÄ-$ƒ’¥ •$•¤d*™,¸Á„°(IÉŒJ& †„°LR8*mHïB(}˜Jââ‡É$”$(IP*&‰$$Ễü3p1• “$J‚pì‚”¢„}þòÕ7ß|Ëó€wVUGïRJ+üÑK¬¡3j>Ùr‡&¥ÔÀB!EBhÙ,óÑÅLIÕ]BNÙ£:¿»uêªÆJÙPwØç ƒr Qn)Z(s†ÐxbêÎ3Fs*üCjŒ1F�Ï�Ã-fšwõtÿ�¤@Ðm +^Ð@ÀõXޝ)€7 @Â\NÍaœËÅã0.UF³Éx6›Ï§‹“ã“Ó›p) ¨íZym×Êg›�Nçñþž¥Y–¥í}òø ³'kö�ݾ¨šív»m/ÿ3é,WüçyÙêX² ÛÞß_­þ}  +2 +‡Ã²/ø³,J»Î`é@VøF Pˆ�OqlºÃË /§1�€×Õ¸É +¡ˆÛBŠ‚ùîX™¾vSß|óêåù3çn%��åo~3"î/z¿·qáK7î\lqŽ8¾]à–< £�j�j&£Œ+€ŠA)c¬Êœ†ãÈ·`¹7ÌmøîÛo^ýÛ«W/Ïž= À”»¢O" B I +že–„˜àÕžx_º÷Þ€ä>·‚Á€[‘v‹RÏf{Rù»×/JPÀÒW_???ÿ·e ðýí#�¾$à�(c�ÏêUïîné5ÍFã‰Ã(-BXÀ�/D$$Lšì‰iˆËUJ)Oà5J;Üa¬Ê¨Ó8<üÓÿÓq¨i²¿9ügJ°ÀÔ<¢R ¶)¥¤HH¢˜,T3ͪi2JÑ/tJ)sœVeÔaOÿôPWï¶XX¶û +’à5ú„õa /ÛôZ�/æîN€xªXÇ8!”¤H¤4OfÓù|6_Ìæ'³U#�oî–@¸€]MÓ4Í@[Ëk»–¥Y�Ûþ;Û’3–¦ýù@Vd$‡Ã"ïÀ� H»&Á¸£?E\¿¢äeU¡r»}Ðæ&E€ÒîÔàÇ ßR\Eß~óêåË—/ϾzúUÞl’àõh! 1!Æ/=L]Ýà¥0õ¨±úÕËÿj^×j%¤^ž=~î‹|¸Þ“ó°æl Ÿ±£#‡1ʆO¿Ï£'qЍ:¡Ôd”ˆÙ“gΰZ¦ìèépȆÎc¿dÎ3Ç9ü—«ÕœÃ§‡ÃÃn¿æPÊž ÙovHK˜™C&u¨I¶ 1Õí"=Ÿ>ûâ©ã �n­[ê5ÜùâÈé2ê>}rxèl=|Z»[ýÏÛMëûx¢4Àt‡�V!ÀZ'à…]Vw¬ärØ–"Æ`:žNæ¼pr¼€oA_^Î.7®)€¼–×4m7³Ç«€»»–ei{�ÇûJð ,v»eÛÛ’3²¦e,û’Xëm€"‡Ã¢ŒVÈg½J@¤�(„A(‰�N#R6ú¯(,†8 ¼2àZ ÂaQ EP$�B‚ +@ò2À§dY¾i,ØMzm€ß|óêå9€”¼éöûÿµ +\FEàJå ÜØv}ÍïHÂË—ÏŸ¿|ùü¹[ðàVC�~Å0ذ[c5‡1æt»løðéÎÑ�}öç3ÆX�9CÿH't8¤ºQ"„ƆŽþ9c]Êj”:5£Öíökìá�±zƒ1Ö«;_|ñlȘó÷�mBt¢ÿuŽØGºaTˆNaÎÐéy�C ʆŒuknÃègGµ§ÎÓûõÿ +<ÌwMy¡Ä½ïÑh0à .€#:xCÄ9œË©0§æ0ŒKBi0�NÇ“ùd~2?öŽ}×Ï’3!AÝ> àÀ®–׬L“Wwµ]k7»÷÷�;v>³×ñçüV€m÷G»™Ay®Z-ÛîØùL&sÞ½��Ѧ,‡Å°,#$ËÞ �Gn@X q/åe“/Ba!Œ”MÞßò+1”FÞýG +‰ápØm +ñBÀ/þnr^nÔ^¥Î_¾|þÕÓ?}½SzÎ} Ýá&¿á[–åǯŸ?þüåù×~ÜZ ¾i Z­²gŒQÚh˜|%_ƒ™�Ûi0fVÍj*‰ãËä%ŒùünîsÓ4MúÈ)¨2¶å0ÊÌd;ìŸY£Á?Ãd&¥U“RLË”ï@Ð1Æx;‹Œ5ªŒUM׸Z}ÄFOM“: j²CÆXƒ±ÛW€,þ�:(‚|æOÑè«Å ¾$à¥wkÀ�WT%¡4�§³Ù|ºX,æ‹Å*°€¬Oø íîîæµÝLó óØÞË[�Ž­eöVIÀ Á|Hk­æÞÀAKËfµ–Æ?-ûmBŠ,Ëb¸A@ZQåg2 +§Óžtw¯.âiâé<¤È@ /€Bi´¼â¼M(Ì¿‘—BîïòPÀ½ÿè]@n +àÕË—¯^žŸ=;ÞM!x9tÿ�;OŸþË×ÏÏ_žýüß–�K p;Œ*c V}V7™Ù`Œ5ÝÙÙ1)el§aš¦Ù¨¦R4Q.ŠÜ¸ƒ½DÈ6Í5(5—ËÞØ«RƒUcÌd;½!k4h•™�†iš¦ù›fòM‰žŸŠ +a´À¨IMfrâ*c öèÌq{G5§áT¾ö¼ ¬Ò*A!À\θMSÜÔS¼8 ­€p'‡¾cU…0.Eôþx4žÍgóùb~ì¯ø—sÊYn ,ø7ƒ…Bš¶›×´¼–mtÛ–få-K{à ¹T­ëpÏj7÷öìv«mÛßÒ2.Ö¶ +Úo³Px1P”¹HÚ[ä  +…1‚øÊ€6„ør<9ˆpã{ˆáB÷ ]R7xù¼|xùòüù³#Çqîü�vý@àŠáßyŽŽŽŽž}ýü^ßÜú‹>«ÑÓ4™¹ÓØúœqsÞFÛÙ)cXL‰o�(!Ä [NÕÜ1Ýüþ¯3ƨi2ÆØ�ñüÞÎ5k˜;&«8Ô]%È׃Ã8þ¬Ë–K*¼¢0t(«šUÆvœ‡l‡±êmóÿüŸkpé`¸!H`n æŸV!€p·ÏJÂ\.§c5—SR¤4�g³ùl~||²8™¯°¿:Íl&Äl/*€|~7Ÿ×²­O:�íÝÝ]-oñŒà +Íu4›Í¶Ýä?Ú­Ì=ËnîYv»Ý¶íNKËd4MËîíÛþ‡ëíU²ìñRÀ2 „@HĈ§Ü*€‚ÐUÒ>(JZ² ")HF²Äp8K ‰W*Y¾A¬r€^àóW¯ÎÏŽ'Î-ø}ÕÜÌ_à?\|ñÅpxô”ÀÍ~w—n`ïöW(eÕ*{äPÆ×ƒ³C}ȪŒRÓd¦¹Óh°r +¦âEo5 ­PJI…[;¼ÀûøJ©³å0nð»Óš|€i2Öh4v£Ý¡IË´LÈ_¹ ¦:ÔÝ?˜A©C«Ì©1FMZeŒ�;¬çÏð€[Í… €àwr-Á|¶à^P¸ÜI@!T1†*VãR„ô'£Ét1ŸŸœ,Ž}Ã>´²2Àºµ¼¶kå5-ÛÚï<¶w5ŸvZ×)¾ˆÿh·²÷¬vÓr@§¥e²Z^Ë6÷mÛv/¿‹û­Rd$‡EɲŒÜ …�D!Œ6^_@Š"#”¢¸LÊ€Ð&’‘¬¤Ã €¿ˆ B¢(z;‚]€ÜÆà[¦Vm¯^¾|þ/GC‡RJ˧§§§gg§§‹™côOgõJÝŒ�z¤Dz³ùÙÙÙ˳³³³³q½VŸžž�ž�½xqz2sêtxröâììüå˳³“yŸ’ÁÉÙ‹óó³ó³óÆÃúéWggç/NONG„�Þx0z=VÎǬ4�Ž³ã¯Ž¿âƒ3Ãùúëççÿv¡ø& °ºAŸ3V¥ô¨fš&_í³uèð¸œ1ÊŒm§’8Q.]ã.o³[î ~=¥ôh‡™”:[ŽY¥”™Œ9Nc§aš&3™É¸±_ƒ6Ìr¹L-SR$%Ì(c´ÊË ´ÁªUÊŽ¾ U“šÔdÙq»õùï¦û…€×ý +€ þÀ•­À¼w`-ÈýA‚·wª‰\ç`N…RÐ.à­.r(2E!äI€ôr¦ º£<éH¯ +@ÃîÎß´,È€4¿ÝJZ _…¸X)¯&xËv@¯ðÍ«W/¾>2 æ�;§gú.zƒñÄÀùÙ‹³³S'§§g§ç§çç§'³^�NÎ^œ�Ÿ¿xÁPœž�ŸŸŸ�ŸŸ�1®`X?99=;qrr:"%Ý^½2˜�ëýÉt6^ÌŽOŽOø¾B?ûçç|àÛµàZPw£”%Ã0ôŠ;ˆkü”Qj”–¨a0j�œ‡Ür°”ÓuC7Œ’QÒjè†Q3hÍ©3Z3 C§÷©A b†QëSj�­ƒÖ ƒ�‡Æ¡„„èzNW1†q)¡ºQ¢£FkÞ7R3*Ôý�‡µ5Œ[óÿ�À*�ïõy‡;~-«Áå›V­À«NÀõ¤­ Ýš „ ˆs8§B˜ˆ'$©4�§Óù|ÎÇ�–Ž@§>´5ëeÀ|~7¯i™L¦ew·µ]KÓ´lf¯óøÀÊhÍξÝn6÷n@æže7-‹·uZÙ¬–ÏkZóBÀÇl¿Í!€"£´(¦’@Šò3%ívï!ÞÒÃ…§kðy`RÄ*ëÓnÝqsjì�ÌéÖJÝJÍqè#Çé sú]6tœþµ/Þÿà-SK’Û ìîðLAy»ðz+ðå$`0 H·†ÂÆ9¬r?€Ò`:žÌf³Ùl²˜Ÿ\Y°-‚.øh––Õ#ÜÂg W)€ókP.pv2ïѼX€+VÌÇÌÀñÉñI¦`�²áŸž¿|å뺭 à%ô ƒRêlQƒRÃ0xUð³-fPJ©ÁÍÓ,ÂT‘ Û¿¦ej2Z5MÖ`C�›y¤bƒRJuÆ�ò­^£”V¨A™Sf&¥¬ñp‡º‰�2)—ËE s î^ñ¾÷Ï5*¼GxÇxdÜèÿXù.Ç#) ¬ö‚ ¼ +X-¹Ð +|U0(HB0¸9PÕ\IǸ„s0!m”z“Éx:�Ïg>CÐãããcß"ïv+D!$\jv€•ÏkZ6Óì<¶we­}%Zí¶÷jÙÍLfÏnYÖ +š–ßÕ¬ƒK�@¿Õ +)²K€%«¤=„ød?âëBÓé4B(Í¿0-ŠÀB›@ò&Bi$#EQ”´Â››ðŽ`rÅ„ _Wà ~à~¼zyöìÈ¡Üàçôôôôôìød1éåjÓqÍèFãI¯¤—z³ãÓ³óógçççãšaŒNÏÏOÏÎÎÏÎÎϦuB‹³³“Ó/^œ���{%Ü;9==}ñâŋӜZÑõÓ³Ó³gççÇ‚KÝÑx<îzõJwÒ¯tÇÓÉt<žÍf³Æ6|úõù%ܸdy(­|¶U!F…jP“R³±E)%dÈ™i2³˜Lš¸X,–ÍrÙ4©Ù0w V£”´B©� +¥”>ìÄ ¤bðÊ‚Á(5c ƨÙ0ÍÓß<\6ËeZ%ÅBJåÃ?êÞƒ\üÓ +5)¥O ºt¼â¸š—÷Ýh>àµP»�@n€?-»Ö +|„ÛÆ�Kº^Â:„q)BFãéx:™ÏóÙ±Ÿm¿o\1¿»›×¬¼•·íÎã–¦YKäe­Ý±Û—`Û-ÛnµmÛnµ9ÚÖ \†Wàí…{ Ä}�·êD| + �^†Š¼™Gn0íNÿ€•¤W¹ +@á@(x%!¯þw7|¿€¯Ž†ŒÏ¸/‹ÅÉ|>›ŽûX7Œ_ÕûƒñÑ´«ã’3;>;=;ñâìô|f”ŒþéÙù‰›˜ÖJ¤¿89??=;?;;9™ÖsjÿøÅÙÙù‹ççS¨:¬Ÿœ¼8ùâüìtbàJo2�&“q÷W´b”jƒñx<Œ§Óé”B¨sôìùK«àn{(e[Æ/ ” J‡ ó°aþš6åÄ*)Ëå_—MÖh4>7�jɤ”PJ ƒ_yúpH à Ëþ‡VMÆ Ó¤æNÃl4ô*_Äç�‹Åbº]Äû£k%b†—l¤O++£’+âÿબÊ€ž”_,Ç„Â>úÿ¬p§NÀŠ{(5¨Ñߢ!}Ä£”P�QÚp�FiÃ,§ V‹„“š¦yø7fƒQÆtï¢WøF©V1 Ã- ZùGJÍÆŽÓhPÊL³Á¸àuýÃr™b˜„ÿ%Z¡´B ǨB)¯/çWÞbákòÿ+»ß¥A‚Wp‹€�e#ÐòQ¿@àÊ2` H<³¼Ù—0ŠGŒÁx2ášl2÷¯óßÿW|“­ÏHÛµòš-¯Y–ö ³wÐik²ÖêØíÖͰîeÚíÖÞÿùÁoùý׬ƒÛ·ľÑìm€’Óòž©÷¦ $£4(�ҢȠ æ�BrXt ˲¬È@ ‡=° ÜF¾9,tG\jrp䘄BF£ÑhÐ�§c–€F½7Mgóù¸ÛíM'§çg§§g'g'óA0===}ñâüôüììôxÜï�§§g§gç/ÎNOçƒ~wrz~z~vzvz6Öõ«Œæ§/ÎNÏÏNÏgýn:›Í&“Ñh4èÖKq½?9>?;=?999¡”R6|ú¯ÏyðÍ·>gÐnozÄ(¥l‹¿4*”š¼(·õˆV ¶ãT)ýù¡™J0&„˜fÙ4ÿÚ4i™ÒƭЊávð€Ai¸%=Ji�™¬Ñ` F)i6ì¡Y­š¦Y­šf¹XÄI ãŒÒŸÿ’RB\n0ƒÔ0hÕ¬R“RÇ |uøUý¿Á•à ¾ ; Jž%HP +1i½ +p±øŠN@A +ºÃ×mJH UœËécœ�H2>OdzÙbvþ¶™ ¢.`WÓò»»ZÞÒ´™½ýN+“ÑÚ×ÀÞ·í}Û¶î=°Û­½f»mÛöÁ¾å`¯s`|ܱ;�Î'·x¾�eY"@.déM_€B(-Ši„C^À¦ Ä4d¤ÈÞ2Á¥àÖaÜH¼ÖwyŽ€/Ï¿zv4d„Bf³Ùl:õ{Ý +ĤÒí�F£ÑhÔõgóùbv<_œÌç‹éx4Ï�OæóÙÉ|>Ÿ/¦ƒþh:›/fÇ‹ããÅl>ôG³““Å|>›�LkÝ~¯;ž-N‹ÙÓÙ|2ŒÇÓÉd4ž ÝzÝ€z}rúâüÅ‹óóósÆÛ>ýš`i x[À{ŽV£”mÑ•_Õd[Ôù¼Á\ŸŽC§0)l—ËfÙüëOã±á–ÛÀ;¤nGðCgÕXX5uX£Ñ0Yä”4>?l°‡&3©išmVËÛãŒïPjÔ¨›5`^�Ò*_+äUço®»ÿ>Óú€Ûç–Ã@nPx}nÀË×&A�¼˜!xƒ€ÐÛ蔋ƒÁx<Œ¦óÙl:›O—ÇŸºoå� †BÂ…`WÛµ´|~7oÛ�mKÓ,MËdöìN+#k­»u-nôs°oðùÿv«éàÀÊhÚ®¦iÍÎ�Í·|òÉßýy!9-¤ð2 W| ,¸ý>éH:�d ˆiä¿ÄŠ D÷ïåM>b¸€,º !·€ß Ëiào¿yåÆçççç'§ªª®Zïu»½^0šNÆ£A< ú½Áx4�ǣѠ?ŒFƒÁh:��G£Éh4�GãÑh4�G£Ñ`4 F£Ét4žŒGãÁÀéõû£ñ`<šLÇN¯×uêõz¥„qÎ9=?qþâÅ‹¼Z÷ìùó—þFÀ[ƒÇ=CÇqØð¡ã0‡ý#;jü‹ÃŽ}è°g�CÇqØcÛ¤HÊe:4͘ã0ÇqÆXŽ1Ö­±!ûÒqž:;¬[:Œ9Ìqž}îìvŸ~Ù:ßÀØÑÐxâ ‡ì7æ¡I©I¶ ¦qÃa”1ÇùÓNãsgÇaÚãÔúÌqž:OXãé‘3tWúð~`9ví›�ü›>„e' ×¼Ð +¸0 è*�B€RNåûÁTX�£ñt0�Ígóùduþ¶éýÕl¶ò@B€¨iV^ËkŸxhÚŸúp¡¨µ¿pàuZ²f·ÛÍfÛ¶÷íŽme¸hv:ûüÙÿÉ'Ÿ¼ÍX„äÅõD°‰BžïG¥Óˆ÷)²,+ +Å%6o +J#E–‰> nA¼èMÞ>;€ï|èRJ)=????™9PJä1*õz¯ßï�ÆãÉt< FÓÑh4ަóÙt6�Æ£ñ¨?L&óÙ|6�ŽýÁx<žŽ'Óéx<÷“ñh0O¸àôûýþ`0žLÇî›û½~¯V«‘R®6žNççgggçŒ16œ<{þò…€ïîÐøCÏ=ÆCF ƒ” ÝÐ�’Ñ3*FÉpz”gåé5ŒŒÈ=ýt]/R*ý¢RÒ ÃÐõ’atÑ­5V1 £d]ã¡Q§FÍ ]‡Z¡F¥Ö5 Ã0«3J Áº®ç°�qI-†^2 ãƒ~×xÈh¥b” �ÞhT˜a” êÔ Z¹âHÁÕÞz¯ +°2‚KK°å4`Àõÿ^î^? (’Û3¸VÄùfœÓu\Êa£[«×jõJ­çôúƒ~}yÖl<ò@…K!€Æ @¬¼m<>°øó;cÙ�›Ykï·¯ÀêxhÙû¶Ý±µŒ¦iy®îl þV@Vd”’�¬( +¼®)  þ#W<àæ>ÿ•@‘B²‚@Ø „…DÂa·±´¹‰€Wà3®HóF¢[€_pÁ{vvv6§9ARKF­Ösz£ñx<�Îæóél:›ÌæÓÙd:›/ŽONæ³ñt6OÆ“Ùüd1ŸÍ§Óñx6ŸÌf³ùt>›Ï'Óéx>›M'‹ùñœÇ“ñd<Íf³ù|:žŒF£Á¨W¯WJ9£f�þéùùùy×qœáÓÿõüùù«%VU€k à¥ÒMê¸ËÀ™þ9¥Œ²e¥¬Z­²Vb¬Q†)“Ó¬ò`�2jü’”Ñ­Qʺ”QÇi2öˆRÇ©Ñj•RÊvÌcUÊæ|h²†;áǪnY�F¸±8OlÕ(Ÿûe¬æÚ›ŒÒƽÒX’Ö =®K*ïã‚A)°¬D%> ´´R–¾Và«BÞLä­�6®8RB5‡s:)c¬ã\<�'â 9}UªôyØy +— æ¹o¸eÙöÁ?tš®°ìŽ%Ëšm·Û-nröä]®öíæ¾ MÓZ�ƒ�ÿþï;�¿ït:�Îßÿ}§Óé¼ÕPe<€"®(@Äðé4B®#ˆ×à)pŸYA)ËNàôåØT6Q¡«¡ •P®nZ/òÀ˳¯fG³Ùl6®@IÂF…u�Áh<Oç³ùÉb>ŸÏf³ùl6�ÏçóÅéñl1›ÏgóÙd¾89^ÌæÇÓÙd>]xFr‹Ùb6[Ìæ<·¿˜ÏçóÅb:�ÏçóÙ|>›Î¦ÓÉx<õ{=V+Uj©OÆãñÄqgôô_Ÿ¿xùê›oÖýVóŒ×€QJ Ó¤Œé÷÷ÛaŒ™îL®Þ` š‚…b‘š&¥äç”P³f� +å³”¿Ä fš”95ÆjŒ±¶cš”χ;�ÿÐFƒ¹…ýrœÀdf�R�Œ: Ó¤ÌÙrsç®t‚žðª^wÁ@ ð<ƒþž`@ +ø[�/¸�xpc†`0(¯@„¯À¥’QÒ1.årP’"^�€ºZø¼ºÿû·6W—ªy˲¬]˲íƒN§©i»šö cÙ6€›°Ö<Á|µý}K¶öÛífËîXÖ~§åÀîøöÚ|MØ'o;ÚH‰xë|DQä €ÐÒù/��¢(²¼©¤Ã>!EI#YA"ú™–}@n (i€ $Š~�æÃÊB€o¾yõêÕË󯞺èõz½n�HWê½þh4OfÓÙüäd1ŸŸÌÇ‹Ål¾8žŸžœ/ާÓÅ|>›/Žç''óÙb1_/æÓÅÉÉÉâd1Ÿ/æ'óãÓÓ“ããùÉ|Æ[JsNƒéd:��'ãÁ W«TX·V«{�üèéWÏŸ¯àÖ`ÙP¡”šÌd”=üÜaŒ±†YeUÊ(3«LwvØv2…W“@”RZ#„V+UJ¥GŸQJ‰IÓÒ!ãƒ?£Ô¤Ìd¬êòM¶í/RŽä ,Ò*£ŒÑšN)#”2sÇd”m5¬Zýœ5LZõHä;<Å +Áàr XXÙ©¹‹<�ï� ËváõVà`àÒ4 ? JÁàu­€¸¤—J%‚K¥R.—HH„0!TW§½jÞóÀˆKßpÛ>ø´ÓÒ4Ë@þž€½5ìíí]À�Ýj¶l[³ö;Ílv7¯išfÿ¿ûûûŸ|ò‰»ø-€¼:dÑ#_˜v�Ž „Ò.ÜÀ¦,#„²¢ YQPee€Ï)ŠÂ׎ð>#À§’eåvðÃzð›W/_ž5{:dŒ1Æ}µ*ñ©uû£ñh<OÆóÙb~|rº˜ÏÇ‹ù|vr|r<Ÿs0ŸÏŽ'dzù|1›ÏNæ‹Å|¶89ž/ŽyÉñÉññÉìø„o™:9žÏù{g³Él<�G£z¥Öïõz½n—u=p¾€G€îäÀ3Ÿ2ÊèÃ!WéŒ=¢”·ü2ýIcg;™*�2!e¾ã—V‡ñ�)ýc�;ƒ6ŒÒÃÏØc;;Œ1WÞ3æ8 f2¶2¡åò6�|1¦´ÊX�Ò-JMÖ0Í'‡ ƒ±Ò¡÷�ð?ðòþ/®k�@Ë@0øÎr=¸›äUwnx=py@ +’›/ð¹p$)ÕF©DJ8¡$ÁL¨0‡qny|hÛy bè¢#ˆÿC§å–-ÛÖîÉšm·\ì¹woï"2Ö�ÝjµlͲ;ͬ–×vóšfw:�Îþ'�ƒýOö÷íÎÛ +€ÕVžªB@V€à(‹bQ#^¿X¾!Å ™+ pÇ?F + ¼ÌzB° +ÐJ\7ôƒ¿ˆK€ó¯Ÿ=í3Æë÷ûýÁ�FaéWÎh<Ïæ³É|6YÌO'§‹ÅÉÉb¾8^,NÇó““Ùñb~<ŸŸÌ�ç‹ãÅl¾XÌæ''‹Ù|>�Ïçó““Ù|~||<ŸÍÇÇ'óùñ|>;>9^Ìf³Ù|:�Ï&“Ùl<9•î`<8½^¿ç8Ž3ôð-º=øƒ·N“:” g8¤ûŒu?wzì3Æ;b5V£Æ?;CŠ ¥„V)¡‡_Ô¨Ãjìs†N·ë<|JcÃ'ÃÃ/ŽÚu˜Ã†ûŒ1‡9ŸÕœZ­{ÔØqœ†sÄ=r J Ƈݧ~DÙpØï3çƒn�:Ôyrè8GýãŸá,—úŽð@Ðwy½À@ °4îÁͺ®AËõà�•-¸pEÐc—@$!Tu½dÄ(éXÍ©ÞÃë%½´<—pyȯ:.2²e·4Ù€eYÖžÿøû{wµfÇn·ì¦•±ìN3£ñ4¢Ý9è|²ÿI§³ÿ‰ýç€,€ŒÂ(Ä¥�ªE1ímôœ²â­á˾dYAbZQ’QX‘‚€ë*žV”Mñ-ââ&7áî`ÀŸ¸"x½ÌðÀËœ?æ*€~¿ß�º‰\¥ÖMF£Él6›Îx¹ÿx>›ŸœÏçÇó“Ùl>�/æóÙ|z<]ÏçÇ‹Ål2›-æóù|>�-æ³éâx>ŸÏæ³ùb1›ÎçdzÙl1?^Ìç³Åb:›Íç“Ùx:›NF£^½7�£Á`0àøjM¼¾Ýh)¨�¾8üÒ©Õºë3æ85v8œŽã¥ÝtŒ9¸xŸÒ!F‰ô)c5ƒ9O6ü’1Öí)cãÃ#ÇyÈæÔæ +ÎѰ^ù¬[1Œ>c N�Wü1(­Ò÷É6#e62ÇaŸSÊØÑðÉ“¡^ûÌés†ÆðhxD‡U~åû«"·Ëǧ‚«8>(HÁ@p¹@Q^t'y§�g +ê[~9X*€˜½Ü +¬B¬—ˆaR˜BÕœŽÉ*p ¡KÃ@kø´­åw9Úš,k-»Õj6-Ëj®Àß`¨ñvAÛ’ïY¶[Üå8Ø·ömÛ¶;ö'�·q@@(â¾Ò¼û ‚à@Dæà75â:ü YAe7ÃbZQî(Fв‰dÃHAa°ª*HHF ”Žxày€4J#ùºÀ7ðݪàülá`6›ÍÆ“®š«t{ƒÁ`<�Ìgóéb2›.æ‹ÅŒ_ãél¾˜Í&³“ùt:™Ï³Ùl¾XÏfÓéܵ�?žÍxÖpÂk³Åt:åiÄÅt6_̧óù|:™L¦“ñ ßcƒñt<�F£‘ã8Îѳ¯žŸ¿ò–~·ìx}Ón@~Xãðÿýÿvö¨ê4vÊ·QBeÌl0Ó$)œps÷å†iîܯ°Fã°ÁÌÜi˜UFÙNãOþ¯'{DcŽó¬vH¼%?”™‡ fš¦é|F+„�1M“’œY.–©É3Œš&e�Ã'ÿןt‡=bl§qØx8,{vcþù?ÞÃ#ùú\ðïXͼØ]¨È—ƒü³�+ý–ŸÌ½äÂ]AK¥R 뺮ëÜ圊K¥‡7(€PH¼ ž!€lÙ­¬,kmëÀŸÌì¶ìvÛ¶dÙZ4»ÓY9|lüqë÷o¡'˜iä¾x÷@H‚ ‚�(ŠaQÜ$`zÓ�‘t¥ÚÜDeeY‘e%FŠ¢ð��(›vF?ó’€( Ü€—ÅUô�då†i ×¯×¦�ÎÏžM8&“Éd<íª*é ÇýÁt4šNù†¨Ùt:�MçóÙl>™M¦³éd2›M'ãùt6›º£ãÓéd6›Ìgó™[7ô~y6�Îæ“9_89�Oç³Éd:žL&ãñx2 êýQ¿ßïÕëu6üÇüüèÙ×ëøþV¬ ÿ¿O¿¤ìQ�×á¨S¡´JîÆÞŸ›”\HP¢B‰YelØåfŸÜ7Ф”RÖøÃáw*”=â¾¥´ºŒø¹Õ­u9E¨IÍá–Z%¤hrÏ V¥”šìð¿ÿáp‹W �F©AÝåcëû?‚A~»—<�@p= ï¼Ñ?à† ÁepÍ8¼ìÐÆC€ÀZà2âÂVõR©ä^ÿœ +ñDœ/¸“€nÐS–¦eeËneÿ�{+ðÛõû¿2ng-ûÀnÙí¼,ïuÚZfw©ìκ+øÛ€t¹/Ä€B! !Bb8 +‰"Ú‚«–@m*Ëî?Þ¤€�ì•CHK(Š¢Èa€¸Ó‚„¼©@ž¸r=Èë×?øc€e+àËó¯Ö0©C\éŽFãñ`4OFãÉx:�§³Éd2›Ž§“ñd:›Œ¦“ñh<žŒÇãñd2�NÆ“Ùd2�§ãÙl2�ާãÙl<�Žg“Ét:™Œ§ãñh<™L'ãÉd2›�ùrЫ%=‡1ÆÃápxôìùùËã�Ào8 Xeóä_ÖØ#Æ>w�†A+”z—’Ò“– &�é:!„üÚd õÈa¦i2Ӥ̤UJ)küÓ?ýái…²*s�Ë•+Ü׋R“Ò“Òj•Ö>£€ižªå"€irã_“~yèlñ¨Ÿ9 �õš) $¸ ¼yžÀ�¥ý¢ß|Už-ðpe+ðå*@Ð_ˆE¥`PX뀪9Œ±^Òu¬çTªÐECsQ ëº®û`ûàC€µ»»›·¬ùo>ܺè*à\«Š® ^P] êàèPÞ1)5éå`ûZ\Lw b0øŽ ¬ª«2ಠ…¥%h0è@à�B °æ +¸¼¯ÉMº_àWAþDâEâ�¯‚8‡s0®×ë½z½Ûëvû½þ ·:~ìÿN¸ +¶Ýâ™:»m{ + ›Ñìü½ XKì-†fööí–ÝÔäÌ^§™Õ4-oik¿Óé¬Õ³Ùlöm€¬È +¹x(‰ á0A:-Š¢Ùt¯?à¶`ˆ·Ê` €¬È +÷RX–³Š² D€YD«b¢à¼öà;¯^žýëì Öu çJF½[¯Õ «¹œNô1HIǺžÓK%R*ñˆaTô’þ�”*¤Dô’^ÒKX/•ô’^"¥RI/• £T*•tBÜ/Ñu£Tâ¿m”ôÆXÕ�Z­Þ¯WJ%>(çàÅË—ëv wÜ äËøP½:ð`^RøÃž^¥¨«®ÀÝBfòæ?A!&¸ |‰ûý­ôÏxoYVò¼�í]�ƒWVAO\È8z„`P’$‡PÅ9UBIïõœA¯7�Æ£ÉhÔ_ž;(»u\äå̵ðŸL“à�œÙëXYm×Ê[ZƲ;ßáõCKÓ´¼õ�ýpuºZSÜößÍ"EY)¼ +À^Ë€Øtrû�y%@i¤Ü¸$Üâ�@.¾z6d]ÆX"‘HÄ¡Š+µšA»u—6¤8„q˜H$$)žˆC^†BUÍ-ÿ>‡0ÁóFñ„ªªBsªšSs9˜ƒª9&xkyÂD<0.mH°Ôc%£VÉA˜SUUU‡ÃáðhöüùËWþÝ ¼x `²¿yòO_ÖvÖ«s 7À.åþéøòî +À½«^ÿNРĽ-~Âʵ?X>ÃAÞá5?‰¯üp÷­ñ‚€'ó¥€ ¼ã&òü³øûü«Á.lºÔ +|©Ðý!( ‚ D6܉`Æ!„’�ëõzÃ~0Œ£éd´<ë +` '€m»Û»ìvg¥,[“3^pϲ¬½k ešûvÛn>�4;V†¯z`Ù�Nç·y-“yð@ӟχG£áÓgϽ­ß~÷½7 à-6º n®|tCp©ž^Wð‡B�?Ãy_~p)þÝ«yB àïXkžA€Ûê zÕ~!Êõü;WÀºvàB@à +Þò@˜€qI’"A­÷zýA¯?ŒÇÞ£Í�û«àXZž×ñ³rF¶¸!XsÏZ%ýšÍf³ù@ÓhÙZFÓd®¬ŒlÙ�½¬¶›Ï¯)€ ?ÙL6“y €çË!Ë2W¢«Äwûz�ÝiàȪqèJ((,†P^v“€<@á0@JxH{í@¢ ˆ7‡¯_ÿÀ7ƒ|ÿ½Û +üêåÙWÏŽX·ÛýÍÉÉÉÉñqJ 5Wm¢_#¤ú@bM¨žÀê x×ýrzîW“ÉŒ� ‡ÃáÓÿõü…¾>€Û$À�€›,¯%ÿúB'à—7ô¸!@e™–¼…ÝKîíô¬À3ýâ½e€÷vÏìÀäUÿ¸-¸p©È}–_êôÀÕIàB@`¹<|C�âq‰;K’$¨õn¯×ë÷ýÁhíøçvý +`­ +àY|·íΧ�=MËkšfÙY%#[6¯äíYÍud²ÙL6›Éf´l¶ÙñpÐÙËòÕBšew:[™Ìòúg2Ь¼•!€"ËÜÑCFÀ€ai„Z@V¾ÐMfQØÝ+ÊË@L/«Y9H�Û rp{ðz­àì«ÙQ—1ÆNNNNfÇ(%T¬^€OàK +`=PW9€?çê£ùâd~rrr2 ‡Oÿõùó%üÛÁo¯úrŸ_›(&.䮪|y{ÀÍïw–y<~¹ÖsW  ¼ãv® ‚ JÁ€ä®å~Á‹ðF†=.Í\ +z1‹k* IŒÇïJ’$ýDÀõ^Ïé÷��3Œ§ãU`àfØV^Ó4«%g×мÙl¶ÝÙ·í¶öÈ{�NÓŸøØÊfVGV2òÛ×Ç!EF® X„6Aˆwó"Q ‰)®öws€�øvá5(ùõF „E¤,=×¹öƒóêå˳¯žŽY÷³Ï>;===],zp#�õ¥¸KàB°T7…ž'}.—«Of³ãÓããããÑ£áÓÿÇÀ7>?�×wšðUœk«]•¼Xxzk`Ã{b~"£Á@T’‚�@@ +Ä‚B Œ +1�JÁ˜$E% c|˜'(�¨ ’$HÉhL +BIŠÅ‚ +±  ‹X4 QIHBI’ $E¥`P’°• €Á¨$IïQ)”$)(y«Å‚« á�`0*a,*q;Ѐ¥d@ŠE£�X  ÿ!"E¤„0.I’Ôn·×Œú£Ñh<L®Töþô¯‚[—àÛ3ØÌd²®ªÏ<ðp¯Ùé4³œšõq§s`e3YEYª9óv&‘+P„û€ ÚDá�¤EÞŒÖî?â�¹ôça(Ye™�óJöÒn)0B·†?,sß}÷í7ÜèùW³£Ï>ëv»'''''ó!”0&º{½áV +ú@âjpSà¨b\Ÿ,‹ÓÓÓÓÓÑ£áÓ]ó}í.¸¹ À p§*@áª$àzàŸ®UË`ccã'?ÙØ�"?ÙØØØ‚$ý„?»ƒnŽO’$é'A~U%oçDzHè-í½÷!ðŽàvúƒ‚”–ÝzAI’‚”$)ø‰ûP„À;’$ñVŸ—OO.¿� ?‚’ÄË”?~¾#B$(IñD"ž�¤ˆ *íuëý~o4ŒÆ£Áê¬ ï ®ÀãÎ^VËkšö;Í€æºpÀÐìξ½ßÊÊZ~WËZ/P¼ÛÿvæÜô¿,ËŠì@!YAÜÔ“‰Þà^­‡¼øÇŸüK�ÞT|p@Z ƒ•n/€(ˆé›ðú‡^¿Zì|õì¨û™œ÷¡„K:¾«À U€»ä¼“À¸¤×§ó¾€~8üãðéÿz~þâ’)ð¯ï@€»ä +øB€ý˜*ÀM«6c0•¢R1c0‹FcQIŠEÝá_I’$)*E¥˜c©˜a*&B@ÂP’¤Àò3bÑX4&ÅbÂXTŠÅ`,%‹E¹4ã�‘Ä1‹¥°”¢Ñ蔂?YÁhL’$Æ ŒÅ`L’¤h,%¥˜ä}#’ %)ÞØíözÝþ ßŒãñ5 +À€x3,MÓ,+³®¬åÝ÷�å + «Ùûö~3›É´wšY�+ˆf§Ó9°d9«d²ÙŒ,+rF‘³om�‡K")pW_q€U��ÿÈHAaw(›2W¢˜^SŠ¢Èá°˜F"ð¶�£4B( @$$Þ¢®XøêåùWÏF;Ÿuyp2ïC ë%ÃÕ¹¢àßYX\*a6ž,NÜ$à“áÓ¯ž?á[ ʇ¸ |U€Ï¯­àÿ€*¼|$)úî»’c0™„1)*‘ØÚï Áh0è6àÇ`,Š#©d¡�JS±  HQ¸ù?B(Ea4–L„qSÉ$ŒÁd2 !„©„PŠJRL +HQ)*ádªXH E(I17`T’xëO !ŒEáF +&áê{!ï¦Rî£Bž¿ˆH?‘qIŠRP€´Þív{ƒAoÐŒG×W”üoé<îXÙÝ|ÞÒÖдÜ`€fS[kÿS€¬Ýé4³|¹¨Öìt:[r&“Í.³€™·|–G–e9âú€€<EÞ¸ò]�Ä€~¦(ŠœE”õ•7³Š‚Âa!( +ò‘ Šî¦Ð«[�_¿¾d ôÍ«—/Ï¿þÓQ÷3ÖírG¯” .•r¾³LúªðUx5>£YLt\ÏæÇ'''''ÃáxøôëeÐÝ âuÝJ€7QËÀ›WÌ‹—_uÿ‘Ä¡“0•‚P‚q +SIa +§R©T2%¸N0…1!–R©b1ULA“bâˆûÒ»B˜‚<ØJ&aÂT*…SÂN%½?4•JÂ8I‹…b1UHAcPÂF%IФ`@� ŒÁÔ†)“ãÆ8¹-R)!�¦R)Þ‚’$#‚$X©w�n¯×ë÷û|×Ó°ÿ[HÄËp·}{ÐvóÚ®¦e39³\ €½ƒÎ¾}ÐÌÈš KÛÕ´½N§c[r&“‘3Ùl&“Í(™ÌÛ× ,(ü.ó�¾@!$Šé4ÚÜTPØë½ßÈפÈn@Q”l6íÙŠ)ÞfÀ4JVQÒ"€ì|E@èÆa ×—ðêåùW:Úù¬ËvNNNNf3Â\‰êx�Ò`çr»/½¤—êãét~r|||<}q «Q€[ðÃ]rpYÜV —Æbü!„¦0NBSñ2Æ&S©.`Œ“‚‹Áh̽»³x±X,1N¥b„Gp*ùƒCˆS0•"*†I˜Âc\(` ‹\àïI→D¶ËÅbã"^~å»\I�(„b «)œÂp¡€1†…"Æ)˜Ââb±ÈóB$"IRpCÞ„x¥Vg½n·×ï][´íß¹† @ÛXšµ»kiZVÎd2ÍK9€¿åQ€¦íz¯½ƒOìƒ=Y¶ö;ͬfYV>¯5;�Ž­­Š€ÙL&ó²"#Äë€+�F› +aÅPØä÷u-À-›að¾@~ÒŸBÞ2 ”æ9€ÜÀà–V`¿'ØW:ê~Æ>ã�@“ÖI¥VÉ©pù‚ª_ܹ +p üd�¸TªtGÓÉ|1›ÍfÃ?~1|ú5Ïð*àww˜ò�Û«þÀ5�€·Tð¥SÐ 8‰90Nð÷%S +¸�¤(”`*™Âc\(â¤X,‹…TJ +HÂ�Æ8…ñ‡|*æ0Æ s)Œ1.àb±PT ÆŒq (¸X, ÅÆ'U qÒ H¤`P‚0…qÄuõ,p±ˆ c¼�ÂEŒqªà@ÜØD�Þ‚‚dÔjuîÐ0èúW–mûw@D!tá´Ûm›¿<`YWZëà +ào/*€Oìëžl4³ZÞÚuCÛ«¸ù‚·n@–ýH#´é]ápˆal®§8$#BÊ&€’å{€Á¦¢¸�@i�V²?S€DÑ€¼’|O Wa¸® è2žý§£�ϺŸíL&“ɤ_×õJ­VÒùóÝ{ý¨*@NÅê%äÖÆ¥J}ÐŒÆãñxüä�_¸}¾­ßßùúÿðÃo¤×øÜR¸|Ha�IŒUCU1Æ©ƸX,â ¦`,ųP$4Ap‘‹Œ¡qGŠîó ?ÄÕ䇺ח ¦…ƤX(¤ +\ÀÑH¹€‹¸@&¸€qQ%)#H’‚«¸×ùÇ‹LI‘âB¡ŒSÅb±€‹Œ=l¸%AAâ¥J½V«w{ý^¿?¼yàZ‚¯u´Zív«ÝnµV +ÀÚµ4-“‘³7`7レ{�WìjZë¸ÈzM€™L&›Íüù@QP8 Òiİ(®€Ö’HV€è*6EQ6ÝÅ�@L§H‡‘’U QÃ@VÐ +�®;ðõ +àõe?w;ègŒu¹·>)U*•R ¯_ÔÜ�¬ä.ªIÿQ11 ƒVJF½^¯×¿øãÜ� Ÿ%àw=ÿt‹#PáÊ$àÝ«äÊS&ER(`L·ù¥.•bŒ T·I™–I1µƒ)H +…bp±X¤‰"&¤ìÝzLn,�É6)qcÂTŒ1Iª˜”Ír™?*BÊåmR, +¸PÄ*%Eþ Š„‰Z$8•LÂw£0$Œq‘Ä?“.Ëå2)JÁ´XÞ.R,A„wÜ«ÿN0(B¢dÔjuÖí:ý~à\ w/À-ø»]-oåó––ÍdîeZW…Íf³™_À¾ykײ4­õ¸Ó±³™¬â@É(>H§ÝA_àZ÷ˆ« ͧ�ÒkØä9%«(2â!€œƒ4W?û™ lòq!N�H»‹BÓ×àõ^ðûï| +àì«§CÇqG×u½”ÓKF¥R)]xPçð�¨\ ¿®€•Ša”0&†aÃ?~1ä›ÁV–€¯¿¿[Ð;·Í\™¼k€æ®<”'ª”=9:¢”2¶sß „:CJ‡U¶M˜”LaB cf™Ð²É†9J)m1ujRª«d›B JˇOÌmJŽ®RBŽ©I?7Zv fVfî8UFˆC͆Á¶ eDgì ;d «´L +«ÂrBJg„0“1ÚøkÆe]f2Æè!sè6­šË¦�wxÃ;‚�(U*•Z½Îúýz¯×]�K½$€?𠸀eYyKËÊ9ëæöx ù·KørKÐ<Øï4³ÜbXk=îtÚ™¬+þþãŸ�ˆ $¯Zù€Ï¾Ó}úû7Wò +÷þ‘å°dE‘Ý À +¢ÈCEFm"„"éôš=øu]€¼ð»µqà§GŽã8N.—ËA¨–JÄ —Æo^È©¹Ü…q`÷k—Ðɯj†žs÷S�ŽFO¿>_Û öúûï_¿^ZÞáܽà:?€ªWƒÐ_ê:¦]B )�èX×õ!D'ŽAÖ1Æ8ùnBB!&q†„PJ‰N"a B(%¤Bt¬«„�èc]ÏaªëÑ1!¬Æ(½�±N ¢3²34 ¥””ˆNV ¡„` ab¥$%¢c«9¢Bj]§´ËØûºŽ)¡| YXÞ|/€ èÔêõ^·Ë[9] €Ðeð2@çÖ�ù­k³Úî2à)€LóÀ>hfòÖ«µ:�;­L&˯>”ÌŸ "„”DÒËf Eq}¿³ +ÜU@ä›@8Í€ü³üŠ«6ÝÑbÄCŸðV-ð¹ó¹ÓëõzõÁ:1ŒÒåTWîM«|¤Ð¨ª9õCUÍ-_P¯T*µZ�Ö¸ÀÑÑèrðÍÀ?Ü9ð×o\¸îTi™”©AÕr¹\^„”™^&„ ŒAHp±HŠ„�rÙ4Ír¹L‹…Èöv¹\&eZ¦”’2M”Ír¹¼Í?ÁÐi™�rSþ¡ÛeGw«Û¤lš&-oSJtRæ_S.Œ 8N0Œ!)B +D'”R>b”²½½½MTF(¥„T} +@<Û!I7Œ©ÕkÝn½^¿U„®R¶mw:›'ó-_Ào× -°@ûÀ>hfw-+ŸßÕš�Ç�V6“Íf™@–3&࣠+»#ý!ß4ઠˮ‘¨ 9 Œäë°2ýÞ¯þ'Àññññ|Òƒ l_qÞ´ +sêš!ÈPÁFŨ�F“Ù|6›Í\¼xé­¸ã À…s“#Ð¥ÀThùšCM“–)e´JMjR÷¶’mB¶I¹T&„`S60!L¶9(-— ‰ÿ’´LÊÛeJI¹\UIÙ¤´\.“mB¡„�m‚½mF„ê´LŠEB¶ )›&¥´ZÞ&„PZ&Û„” )p§bÑ`²\&„|äሲmB-—)Q¡îŠdÁ,€^*•*´Ö­³n¯V_žu„n +ì¶ý÷�޽ëÖñ²rFÎ4íVso¯ÙlZœ@}U€æÁÁ�½¯ÝÓì}û ™Ñ¬|^ÛÕö:�;-¯(›U²rFVä?R|ûÆ�QÚ­Ê<÷§¤Ã< ðŠ?ß +2psñÉ Ð:d„PDV +@F7 ­W–!Àññññü¸‹çJ%’»Ô릪ê›Urj.çWWÏjÉ0JÝñl¾8Y,‹Ñ߬¦_»­€opÞ¨ +P½kÀ¼á4œ2¥„‘2-›U³Z¦„�mJÊd›é„�2†01) Á¤\Þ¦fÕ¤e“–Iœ£¢J©i–)5ï“ퟗM“VË„’2¥Ûd›n«Œë‰�²iÐ2!¤HÊd›–]-S“Rƒq8”Ëe³¨ß–bR0U6))R.SR¦ôÈ ¤\&¤j•¯5'”–/O9ëĨTê´^¯wo€ \¬z¿ßjÛŸx°òš&gîešv‹‡ÿÖ/àuìÛûyYͲ,mW³Ü€×Ùíøs@DÚÜ”ÁZp“OFVyYQdEÉ"^Èn†Ý2 ("­�V²y%-òL‚¬(››²×z„^@¾+SÐï¾ó÷ÌFŽã8Îéééééq?!©ºŽ×«€®Ñ×›Urj¯)þ™k‰IIgÓÙüäøôôôÔUçKxž€oüðÃo�¸³#Pãúó§ÃCæ8Ìp=tŽØðËCæ8ì�6ØŽÉTF#Çt›RÊ(a_6�!kì8lë!Û¤Ú8j4ž8sÔGìhxØpž1æ8Ì:Œ1Õ ´ÁÌ“úSƳ±MËÃÏUƾh0Æ F(5wØ‘9¤UFU‚c)©X}ò¥ÃœGlÈʪ;ÌaÌi Õi4F­U¯@DÍa¬— Ã0Œz½^[žöÅ2 /¬WZíV«Õn·Û×ùÔUš¦É2ïähî­ ­®“‡ù{Ú¾mw–hvwZ-›Íd³Ùl6“‘ÿŒB›¼•/½¬ÈK/ .VŠ¢(Yä· öªy°éÍðJ §äëÀë®Xøõì‹%'#(å0ÖsðºóF³+À[ù½Oò¯WUU5J¸>ž/ÜVàñЫ¼Z®¸s'°ÿܽ +ÀîX¨Ýpt]×õ­-]×õ_ê¹ÖõÜCCßÂz©„ï«ê–ªÇ76p<_ +£Ê}JrêΩ9«z‰ê:Æ9}KÍéº^Êá\ëªÑÕœNJzNÍ©º¡«[:ÞÊéz.—Ëå>TuÝÀ¥Üƺ®æT½DÞ'üŸqB�Ç#‚�9Œs%oéî‡lÝ7Ô­¿4¶Ô­’ánû¹ä+BˆaT*•:­Q÷å@»�âÅÝàÞ±;Ÿ¶4-oñ>€{<°¬f³iývM÷ò7]ìk÷4Û¶yÀ²\(™xGàÿÖÛ @$ +ˆD"?€@¾�”Ñz/ ,+Š,+Y·8‹Ös› q�Ï# Q ‹iE–7‘âíF(²ª\£ø\íú4ÐËó¯Ÿ}æ8ã~}(©%RººÞ•ÃçV|Ž'ú¹óŸ'x´ bÌsßîº Uuo¼ºŒ'TUýP-á\ýh~rrÂÀpÙ ¸êºƒ!ЙÀ;äþú?€«ªÎMǤ”¡ýK/r¯é„Z¦”PB à ÞäC¶É6%„ª&%„òd&Ø1–ÔÈÕÑuJè}/•H)ai�’A¡d»L©Y&Dw(¡”–)ÝÖu¢µApcœÃ +0ØPþ¿µìn'.ÕˆqŸU·)%¦Iͪi +|Èx n¸VÒKF©â;>´Z.Ä‹}Ëów�OÛš¦q'ïŒ|/û[–ÕÜ»d +â�ÎÁ¾} ÝÛݷ탽LÞÊ[nÀÊhYN7Pþ÷‰¢{WQp 4B¡É?F¤×à•Ó }! (ËŠ²² %Ë—‹È +RÐJd9ì`SQÚ”‘ûBË$àu!¿ÿßs|ën}ùüÙ‘ã8;999Y ½T*]{ÿ±û£ €\çT¨zêÞT“8—Ó1GcU½FNè%\›ÌNNÎŽ���‡GÑçôíÅY€7Àw͘·8qøâ.Ý¡•_„÷™Î“uîÄÀv™Wîci£ˆ1Á˜lóü›ê�r™”I‘”ÿŠÂhœ Dßg%L¡Åm¢2‚ !åmJ ¡)‘ªÙ ¤P¦´¼MHnÊË„BTã#ZÀ'á» RcBxÕ€€Ðû†ßaŒRj2“QJ…È;Þ|ñª(Å¡ +a.‡IÉ Æò´m›·ú¶W] »ó˜+ËÒdd^سÜí Íë°oÛÚ=kß¶?if-KÛå +À¶²²ÙìÒPùwàëz¹o? @„B "(ÂÅBÊ&B››²|;ÐI@xeÀÈZ!qÈŠ,×Zœ¬rù, +ó±b È +RÖ‚–¸®ð‡µ€�¿8ãøl±X,N=Ç„_ïÉžËñ¼»$`€¡šä +`€Vyƒ»g5�ÃX…¹’Žk³ùâøÔU££?=þòß^­ �¾ÿqøáGû¬Wr´B«Oo>ì}J(¥ô}J +¼$G©QæÕ7BÖINÚ ¸€ …By›’mBURæU:Ì%ƒnnQB¶ ½O>²]$å­2!EþD§©ƒšt›�r¹LHy[?$¤\&åm²].B¿!*Áã#P + +vSƒ„R¦„üœà ÷Í�Jé¯ù¦ó�ÈFDr糸I0Ts8‡ýëÁ×âk¯Üi À_-ßþÐÎã–¶›çͼ™÷Xî¹\Àî=ëÀ¶š,˲vwµæ?<¶­¬æï ú�¼ý!€"—^£=@7ç.£+pølzÍü+¤Óke@$+|'hZ–eEI_Àª0›Eá0‹a)Š‚.7Š / +7å~X9‚¹eÀ—/_|ýŒ'çóùütÞ�IzÅ(©WåìÝg¿®¯B¸€º®.„¹\Î+¸Èår*&%\ŸÌçóÅÉÉÉÉGd„&ÜÊ~‘I±XÜÎ ¡!z�Œq‘”ËL5)¡»É¦3ƒB·É¶Y®R»(!”ð‘€DµX$ ¢c %)(H)LH™8&¡&!eB ¡ ò¤Ä5Mf2³ñå—_JRPJÄ!Ts9žÉ +¹z¯WI†$-{7!„®@ ‚è«p Ðj·y eÛ�N+kiVÞÒ4-{ïÞ=Ën5-¾Ìºè ºôìØö¾�Ïìqä­ü®µ«µ?¶w5-»rúT@„_DB€Ï8Š‚àB€P(@ôßU„t‘—€ +A››ˆkxàºvlÊ|3ðÒ”×òV �N§AZÉ+(…\È +ZúEÜÝ Ü˜ô–û¿6ül¸TNj޻‰!†îÛ ÏÏRð,à2ÀXU/&¡»o~9wWPNÍ©9UÍå š#¥Rm4›Î‹ÅbáàÕ7߬9½i?÷ïßWÕ>Èmmmm}°µõÁOº¥Þ¿ÿþû÷ãïß?q?þ~<�Gq)²±±±±Ú®9Œ±z¥Ô`N�ƒò^;^7.šEZ&’D1ÆïqÍîBʘù nÁQ1Æ:½OñG¥â_éR&åû”R,`L(!&¥L§d{› - «¤ˆ ^�$Ý'Œ1Ù†JR@ø Ąʖ�‰Œ2Ç1†¬jV™Ù0YµZ•$þ¨ÏA5 ˜�Üê%ŒKD¯äâ‰k�¾"ð÷´[-ÛnÛ×é43»< eeùže·~k5=peð·Í»}`ç3ÍŽmÚÊæ­|ÞÊk­OÛyM[N,ÿæßýC¡Pš¯î‰x›¶9ÖDAx€ DñŠö2O\@ÀU +ÀmDaÒé´ Én0âkà9¤¬R�˜^PòŠû)bDÙt åMÏ„ƒoÊH¾%àù‚¿zõòüëùx €Ù¬+%ˆQ¹ª8§ªn€ý!Àª/�»TÈ]T”©�Çc¾`4úã“§_Ÿ¿|é³s‡�Þ÷ß¿ÿ§ê*Àÿg €Äû÷ßÿþûñûñ÷ãñH<�Ç#¡��Ðu÷_ظ- ”Ѩ;T¢´LÃÍÎaj6h™B‰`ŒyH�é6»OˆY&„�N¥RI1Ƙ1Z$„>“2)'Ì"!EBþŠÐ+›C�Ðr™q±Œ!Ä©×6sC�ÃSòQ +B(IBʤLå25`�ÃFãÐ0cŒ±c•JÅÝ aNÅ9�ÃxDï÷Fý^oÐëúÞ _B!jÛv»ÕnÛí–ýwŸv¬ìnž‡Ê~{ëŽsìïç³ÍŽmwZšeYšeiÍOÿ¶¥inì¿À¿;à䉤ˆpomÏéˆã D– +@Ýǹ²ºÿtK­|ð §W@òJ¸ �N#6óY¯›ÀݲlŠ ep]`mØËœÅ“€Îh4�ú5WjãâõWq.§æ® Ô‹9€äU!À_äTþU˯Æ—*µ^¿7�Çãñè�O†¼Èç ø#pÿý÷/(€– +à +ll„®@h#òð†c<Üú`KßúE¥¤ommm} n©jN/©ªªê9UUsçâ’w§!yKD$UW¡‰Ç㉌Äãñ„JT^0MÜO@UÍET5¡ªü3t¬ëÜÏåT—$�Çñ�x<®&TUWÕD"¡æ"÷ùG©Rä'‚ ñû UÕ UUsú–ºµU2)?}hK%ÝÐuý¿ð@ÍåT˜ˆK¥Þh0 FãÑhЫT|U€‹ðKà¶Û¼˜oãЖ + yµh¯RvûÀÖ´VǶ;¿×òV^³,Íê<¶5MËpŸøwÜЄ@( @:ñ®ºÛÞä=¿=À½[róÝÿ• ¸:ào ƒ4'@(, +¡e+ðò?n'�«ä°«Ò.Ò¤Ó(ÒJ^Iƒ4�è:lÊ2â +E¼Ý@7†k­À¯ü¨×ëuª—J•ŠAJô¿ªær9ß5P¡zEð¼9Ø{øóO¬Ôêµ_‘J�1Ö‡Ã#ׄàõj9èë7Ôÿï¿ÿþ}¿¸‘x‚@¸^llDâ7*€§¿:ì�±£/Cæ0JÙРԠ”2W`ˆ7ŠcB̸;¶Gè/ãà/ -SR¥o—Í*¡ æPJÈ6¥*o)`”RV¥CVe:)—1Ž‘¸³½M Áüˆ2“’2¡”V•~„‹8YÄ0*D !Ôa¥”RƧÁœ!súäpÈ(sŽzO~ã4$I’ñ„ÝÁ\B*ñë?�Gãñh5 Ø[Ï\î!Ðn·ïNt:^ðÖ µ€};û Õ±íN+kYy˲´½ÎãÖ4|«ÍOúƒ�èmØã[6DW¡»@à=òßo¿Ïµ +Aˆ¯÷æû=âB2J£´¤Ýá< ¨È²‚®H‹HQ6]€"i7‡Ã®ØÜD²ì­ @ô¦å[îÿ÷«å ç_»0 ÃÐs9ò«:­\R¯­p¨úrW„‘Sÿ"aÂ$„ªš„ªz©V1JªnT*•_ ‡£áÿøê +ðÆUÀ-€Ÿú€zE�{¸Iü§x<~xíù§Ã':£ŒÒ2£Œ™”n²ÌÜ‘âG“b +Â�T2™J‘�mŒaª&qC) +!.Ëå",â"æÚ¿XÄãBœà?Ä¸È å2)³ˆ1ŒmŒ“ÞLÃÜK¬X.—©š‚I¥˜$IAˆ ¸HÝ‚aü’RzÄXã Ã4)¥l‹1J«ñx\‚b½T*•t½„UXê Fƒád<¦cÿb€kXJ€v»ýûß·Ûíß·íŽme4‹·òiYY–5ŸØ»­;«µÜ@sÐܵþ¼öO€¡�Èö‚BTs—C€\Ný Ì�BTUU±ªB\*ÕH Ã6 b ‡£¡—pý@~~úÁ}/X)õ²ˆD<Ü”mD"‘Ä ø¢ô9[ŽoSJÈòÁ:!¤€‹¸\LA!aª'Åæó)ÁÉ$Œ%a2U,a™`Œ …b‘¹组âB‘‹¼ˆ1.nÀ$Œrñ@‹ÛÛÅŸ—a!!ŒF%AJ¦ +«Fñ#½¤Z¦”Ò3YƒPjšŸ F)¥’$Å¡šÃ¥R “R‰”¦ýÑx<šŒ'“Ét<õ™‚¶ýÈú[��ü¾ýû6°;ö®  ÍnýÖíºí»}°ŸÕÚ,ù¼¦­@{ išöã®?Ÿ¨w ¸Ò…<p÷Žr¤—puÀúýG]£R� €4W"’Q:²L¦Óî~`(Š’æP$¢"%/§A‘ò3…' +VÁ¡Àë¥!ˆÏÝ€�}UˆZªT =·vÿáZ _¨ë}jîÊà/°ºî4¤—JF½^«×ëÝ.y+ð¿]p~ÓY ÕÀý+À•…6®'@è'ñx<¿~èPw˜Éh•ßÿò/· Ä`p�1.q 1‹!‚‹«• ˜›~'a*…!)rû^~RI ± +“0‰1&LHcÕµMI +J&“0�a +' Åb±PÄEˆ“Æ$) ùô5#„&„Ð2!�ßüºúT§fÕÑÙ¡ bµT"%b†A¡]æt»N·ßë;ÃQÿÊ ÝÒBâÊx…€–ݲ½FÀ}Oä—hZÍßÞThò*@öÁïl»Ó|�·ò–eå›�7µ¼¦e³2™ìƒø:qM{ð@{ó.ö=/qùí»'^Ú-À;‚"¼…'Àåû/_ Oøª€K\¤—­€HQn”æ£>nà¥Ñ2@È]¤øzAèFà&Ó.�y9€ét:�Nº X*=ô;Á%nÖû–¸¨þÖ’.ézm0žL§ËíÀWØ‚¿apKý©º .)€Ä• +`C¸¡ øŸ"‘x<’¸ŽÞ0)5«U×#´L¨Ž±ëð‹q0Æ‚$SÂŒBcpB“ÉB +ÂT–q&¹Å?N%SÇ=T`œJbR(`ˆ!ŒÃTª˜‚Q!L%aÜU…L¥ +0£|ýgbœÄ˜Œ cL!Ô4MóH§ôÉÖû›ßxPq©DJ%BŒJɨÔ+£T*a½¤Ã(]�ló€(¸ß @˶—�ÀyžHkv«iíYw€fØv§©YÖ®eYZóñã=Ͳ´¬–ÍjZVÓ²M{�Éfµ7¶^öõ„üX®8("   +EPEJs="Qä÷?‚"À»ÿ>{¯Ë³"Û&âv^ô.ºfÞ.¼i ¤(›a™{»!¤(2H£ô +b)y7 °®®^óqÀï—–@îrP‹Åb±Xt%)§ß^Õ€CP½*ðæïUU«¥’^Oç'‹Åb±øbøÇ/<|ësz3ðÁ–ê î¦66B× ´án2eלÃRûû¤L·I±@UŒ± +UŠ!Lâ$Ná” IŒÂTÂh4*Á¨$m@a &S0S�¤`”ƒrwï”$IŠB aÂb¡ˆa b‹%S|G„PŠ’X,ÆY“$•äKA€I¾>€›•7&„RÓl<Ý¢Î}“²ß6cqIŠÃ\©TÒI©fT*F­N+¤„uŒ±NŒ¹  \`Û|»¯eYykWËÊò=­ÕjîíqðÛ°ßÊX.v­]˲¬æãÇMn®=Ð4-Ã)àžqý¹1‡/ +p�ÒAˆ �¼0q"¥Ó ®ë„"—@„– +€ß\_À'd¤l"%‹8¢»!€P:�N+y9�Ò„@ÙŸ)Š¢ÈhóN +àõº%Ðr9à˳¯žòVà““““ãã^BÊ•J_ÿUñ­U€õ2à !^õb¢c:šÎùrУ ¶àßÿ˜i@õõ¾§îß9°±±±qS �Ç×hvXjðÀuå*`ÇI 1ÁÆb)XH¥  Q)“©ŽF% J1¸‹B¾þOŠB)£QIŠÅ¢Þ/mÀ¨$II‹Å q1•‚ŽGc±X*Ut—„A˜ŒÆb’�Å¢0™’b±(_$Ê1LBü!1¹õp¹a6þT«ÝgÔ4ÎŽŽŽâñx<—Ã¥R©R«TjµJ­[¯Õ*à †Q3ŒŠ±šôåêÚmm­ è +€à÷ß¶mûÀÀîî®–Ídîe[­æÞ² +àïôuØö~ÓÀƒ%:{»Ö®¦e<Èf5M{�ÍjY<øQ×ßÌõžý‚[H§„bpD89�°Öô?Š\¥x€ÜÍ>‘4ß â ÍU}:½rA@þ™i€)2Orij‰^áà®W¯/Ô]<ÿê®Àɼ—� ê>÷!„9xEpu#Ðzð†ç¼õÀê8WÏæÇÜè‹áú^€Uýàƒûž¸­ +à@hcãüeüýxâº<ÀQéIƒ±�Ï«´¼MMRÀ�Å‹˜–i'!”R0‹ÅA’¢R*KIQI’b¦„_Ü c„0£RÂXL’ø†/G£¦0„&‹©T±(mü$•bB F%‹©ıXL’b0 +a,%%£Ñ Ÿé H’ôî»zCê 0³ÑxrhÜšÕß8ÃÆcLŠÇ!ÄØ •J¥^«ÕkuV¯ÿŠrÔ+¿b>K0?Ö¯ˆkË÷?å†rFÖZ­f󮨷íý¥Ø{ܱ¬Ý]íÁWð¿ÓÞ,.À�DQyŠx�€ü·# ·;€�( ‰€(" +XÓÿp5Ü„�¸ë—û|V)ä€oå��¹kE@É£t„'PVQ6ùÈ�ŒB›·àb`©ž­,Áó”`ç W½0sê]B€ä…$`î¦ ÇíC$IŠçr¹Úxº˜ŸŸŒ†ÃáÓgëxýf‹>PÕrK ¾�®?‘¿ŒÇ#ñD<W·¶.¿¶>(•ô­­-U½�Ç#\PHñ ƒöÿ®³!‘óe‘ )�D"R<OäT}kKU?ÈéúÖÖÖÖV"‘€—H¥bTêµ:cÝz—ÑZ½^«w{½n—ù|Á[­¶÷jµWU_%øÐiiyMËf3÷´V«ù[oè +ÀæÓ€–•·wÜjÂų«i»Ú�»ÿ Ä£××@y£?aAñ4 Oz‰BD@(B $ +"@k÷?¹ €àÆÿ+Sàp( Äð*Ho;�Â[•« �ޤ9ät$aùgŠ‚�¬,·„{�oìøá"Î×rÇ=(A«ü~B¨Â\îNU€ÜZàÛC&Ý]T0ëÓùñü”/]€Û üÀ­îûÀ�«7d!´Á›ñx<~•)pÍafƒ±J¶ ñïU†1I’‚k·+‚|I¸ Á@0*HB0t·y…  H‚$ƒÜ¡#(Á@P$A�¤`PŠ +0Á` $w÷ ò]áÜØ7 „€÷�’…Q1NBL0&„)5ÍFƒí4˜É“$ ª¸dTj´VcÝn¯[ïÖ»õz·×íõû½ž¯Ð[W!¹à/·5·Ž·«e²Y³oW¶ €ý}Û¶÷2»üË­Çkï"ø&MÓòw!WQ ‰¢à:›x + ´@EÒ¹`ˆ„DÁk ‰‚io+J§¸2°r÷Z�Ãá+r) +’9½€¢(Šœö¤‘ 6ór!@ ¼¢ðâÁ +¢à®U~¸e?ø÷Ë*À‹³=Zåæ(Aµ7Þyç�w¤T¹±¯?Èá[C€›«8§ÂcÒ;‚ HPÅõñbÆýþøÇ?þq· +ðý<ÿ·¶TÕŸxƒ*ÀMøOñ÷ãﻈ𿵗A)¥Œ�ÿà$|JQ BI‚R0VŸðÿML +‚ú~Y‚�@põ%�õ/ ‚þ_ øø¾Õµ?M„`@♂O·Ê Nwvvc,‘H$rúC£R«Uêõn½_ï²n¿×ëõFÝÁ`0ð;¡\a5 È1às |l{дl–‡\ì]P.lÛæOþLóÀ^*­Õ²:¶µgYnæo×O€]-—(À�À/G $ +¢("o�H Oh„ŠD<B!QˆxSO‚�4ðúÓàªÀr8-‚e0,ŠiyéÈ@ZvAü�ùºp7I”åCˆnDð³<ïؼ¤(ŠòÃu¾à—ÀK?æ‹”T«0‘HD$®æáÅF Ûgn®ä üð?s��s¸;uí¸øŠ›‚.soФ~°õ�ª~°uÿÍ«!á&à&ãñx<©TèÅ—Q©ÐGŒ–Ë'yü.I’$À˜páBúYx!ð^—>á¶O %I’ �Fc¦Þæ;XƒUMÓL$ë¥R¥V©u»Ý~¯Ûïõzƒ¾Óï�Π?¬�.àòn°ud=d\ì¹ãÀ–µ€åØû¶Å°ßÌæw-Ë:°µÛU»ù|^ã{Ä´]MÓòw•ÿ‘túBDÑßÏà&ܾF‰O¬Ýw"^·`:rM�7m*i^Lƒp8 \�NG–Á¼ xAÈ + +¤lr;�rÞM8ö@¹Ð$_°ZxîÏŸŒ 1Æ%]Wƒ„*„C|U°–øðæF ŒUøa,’PÕœ +!¬M¦3_ðõóçÿæÏÜ=ð�ªn}À“€o^¸1ŽŽÄÿr€�+wƒF«´Œñ†QIòî}@øßxîüáÁ  9 +˜P—UsggGUU¨â1*•Z­Ûë÷ƒAÐë�ÃÑh<ŒÆWÀÖB­Øå7ØÒ´Œ–‘µV«µç)€uØ>Ø-­LÞ²,«Ó±x1¿ì»ù¼fiš•×ò»®¸% °÷ܡӯDïù¿ªe„Pˆ?÷#„€ ovÈ}#B‘td%àÓA‘]»$»!@¤9D·„á°A(‚"i€Òiàö¸I@?�½A—@y€4B |^Ù”Ý> M„P$ + Bˆ ýp‹%Ðj3ˆg Æ«‹~BÒKب%”+pK ^]¼¦H…&" �TH.‡»ãél~||||üdødøôëç/|›Á–5€×wÈÿ» +àÇU6n©¬p*F�2s›`ŒSÂr +Â(„P +ƒÁ€.z à‰€@0 ƒîO=`ƒ�`  ù›�  ø»É` èþª{Âò‹ƒüÃ×â�`0‹E£š0•L¥RS~ÿMVeÌl4Bã1j•Z�özÝ^¯?F£þ`<�Ç“ÉtyÖÀjàìúwVÖÊhÙÌ +Í; »ë@³šÍ=KÓòZ>¯åóÚ®–ßÕvww—;µ[‡~}øÿ³ö¿mdYº J ‘6O‘«z9I;¥$eWx3SC5£¸•LG' ‹´v+£;væŠØe¢�KDáĸã²3û�¬º�. ˜Á} “%v–§u¨JA9Ó>T_]õ9²ßüVBÝ~lÌË©ì‡û°#øC’�Y5gÙ–mZ’mí/¾õ­o}+“ÉM˜@<‹ÇcÉÙ™ædrRؤ’©Ü$$žœ >H&S©d*—J%åV®\2™Œ­„MÁ•••¹ ·šKFÓ€7’ɲU/%„Ì$teee5—Z]}ªändäþ¯d<“Ë$W6V2©ÜJ.'w„ll¬ÎîÞMÅ¿®Ü vz4É8(J…VjûÛíxK`dàÍ%@Ayïvú¶N÷·i¥Æ†£Ñx<�F/Gƒ¯ÿi2 øû�åó…½R!_¸WúïÜHü»Tê]Ù 5þ ±àc3 °€=bìÈê½,ø¨ÞÓP¯ÓÍMmyK¹¶pkii‹–•MZ^.×µeeYQXy¨¦h]ºµ´¬,Qí:]Ö–65­¾E­òæò’rKK×7µ­­ÍÍ*Õ´2,SØ,/•«å2�–·Ò[emsiyùÖ²¶¬iե孥ô­ôÂÂB,¶ Ñzµ +”Â@g,3ƒ@pÔ Ï¿bG_½^O‘Y•Æöv£±Ýétöúýáðp8ŸŒN®€ÖD|3ìý§)<(>Xyð`w£ØÚk·ÛŸ·›Í�Ýg{Íf¼¹±ÑÜàó�€·q)è%s [øÉD2�ÅâÉÉs=Ê )€ÌÙ +%€Xø^âò…‰\2•J&’©L&™ËL`%·’›ëÈa€dâFH’ÉñébÀd¸0Œ–‚"X‘»BWVVd ÈêÆªì„À rCðjî;À7—D @Žäw´Êövm»Ó¨hëëZEÎÓ +¥•J…V(¥­ÐŠaPZ¡†^©¹ÖZ×ÃÀpJ+”5h͈F⌊®­RÑ+Z©„Ô Ò`Û°ÝÙï÷†ÃãããャÁ×ÿ<3 ü»o¾ù®5@>_ˆJ€ÂÐxÛ8`âú»‹©¨ �J]¿~=1ÿøgÐh”ŒJÅ FÅ0*ºñШèº^(Öµ�n+…‚²˜N_O§•÷¥ hA¹­”Û‹J¡@? +#“ßS”¥Â+·ebº¢(ÊíÛ×SiE¡rtªð^J.þTEÛ,4­PH)EŽkÝV4M+hZ"�N§ÿ(‹Å”‚¶®iš® +%£ÑÑ+FÍèÔÒFÍ€ ¤ÓØ0j�šTþ÷ûÃÃþp8�‡ÇãÑô¼ âW—{{OÔ"�úwÔ­Öîî“)Lµÿæ<‹í=ÉŠ¼¹±ûìÙŠÍ� >¹óòöGo¿±üO$’Éxâär¹d<�ÇcQìWHö²�½¿Ô¤ˆhAT D‰�©\&@øü—±¼Éh-@*'s½Ãqà&ÿL.“É­äVW¢�«7"HF�¹‘Le2w7VCîp#“L®L`U6’ñD"þ6øæß.ª€Ò üÿ�É¨ÐÆöþ~‡m× £PÛÞnl�Æök�Fc»±]ÛfÛÒ0²½ÝÙî4jÛÛ¬³½]kHëØv­±ýÃFc{»1ùåíFg{¿±½ÍØvc»Ö¨m4lP3j�ÎÁA¿aÔŒF§Óé¼ ¾þ/ÿõ·ÿ2³ø;@^>ï/h¿O ñæNàõÔââ<Äæ¬À–ÅØÃÀ0¨•]£B%4j››eÙPE[Ò4�jÚòf™š››e¹»KÓÊåòf¹úmi²C± hšv]{oI{oIÓ65º¹Y^¤š¦-iÊ’”–ËÚV½š¶¹YÖÊeM£[eZÞLi7ÓéXìZ,­È(5 J fc¬!a뀢(Š®Õj�Æv‡í÷ûýƒýƒáðXòÿ“áÉè� Ëç·h{{aßäÅbñÁJ±õ4lJ!@Þýæ“'Ožüõä|Ñþ¼Y,>Ý“"`‘7‹»Ïžýe³Ùj=i‹œÏÝýâ \Íf¬ÿW€@"�OÖÌhÉðŸ¸âñÈò�%’ò ¾»ØÊ44xr$“™dòF&,äbÀLj&,€•d<ˬ®®æ$äVV’7’©Lfec%“ËD%ÀÊ ¸›Ë­¦âñD2ñVˆƒÈ�[² 0€Z­V«(Fcÿðà ßhl7�ýÎþ~{¿ÓÙïtÂvpg¿¿ßßß?èoïwö÷ƒýþÁ~§³½Ïö÷÷·;ûûÛòeA¿ßÙßïôû�~g¿¿¿ßßïìGëæ·Y§³¿Ý¨moï÷ö5]7jµZíè?F0³ø;@þÝwóRÈÿa]€·–×S©i0T g�€;lg‡@ J+TŽÞ1=äFšF©rssQQÞSº TÛÜ*kå2Ý¢eZ­V·ª”Òjµ\-3º¹LÃ�?ùð^¤Ëš¶¤iš¦mmRz›Ê_«Vi¹Z¥årU¡e­¼U.—«eZ¥[´LÓš¢¤Ó ±ëKá �!€R`ÐgP£ë1X\\T4ݨ�mÖé÷÷úûÃÃáñáðøødx2_]<}ZŒO2Ág)À<„‰ ¼X,>P‹­§³ àÉ“I2ðîÓ3E2€Vk·Y,6‹|îÎç0 ø6óOü*ˆÇ§€éÏ'fjÙLNŠùgMÊÞ }ÅØŠéåwo€ —ÉIZ¿º²1€d,\þ�Œ4€Ì�d2“YÙXÍä&ÀJ¤È�·š‹Ç¾…ÌL|3“ ôꟿ‚ *•JE[¯4ØÁááA_^þþÁàð ¸Ø?<<ôûÃÃÃÃÃýáðð ppp0<8îöûû‡ýþáAÿ ßïöûýþAÿ ß?8èôú‡ýýþáa°ßï÷ûýý~Ðïìoš¦†aýúÕ´ 8] ðÍ·Þÿwóù{…Â@þ¿›�š¯ÇsÀv,‹Öj(Õ)5(�–©®éTÓèæÒ-º¨(¥e t³L«å­*Z¦4Z0LåNððé¿.ÃB颦iëmsS/Ó2¥·aS£”nAu«\5«Õ*ܦ››-—·êÕjµ^¦Uz[SdºoZ«„»FdÖ+ƒ†lö‹Ú€•J­Ö€Æö>;è÷ûýƒÃÃãáhx|||"³Ãsbß +íbè,‹Å•bëéî“'€ä ½×n·Û­b±¹±±ûìÙ“fóéÓ]ÉŠE^,nLotšÍf³ùVó_æ"L 1­B3@� +iATÿÇ#š�Åc±¹wŸ‰ÍìèX™€»«©/p"2™ $9ÀÊJwWW“±d2·ººš‹‡ § s««�I®¼ÿ~TÜ C©·ÀŠ¿ `{{{»Ñ0*°¿xxpØïî�‡'ÇÇÃáñðX‡ÇÃþðdxxx<J¹èd8<<勇LJÇÃápx|0<‘’Òð |ýáðððð`xxxpxxpÐïïwÀ¶···�ŽŽŽþñ¿Fq ¿‹$€oÌçß�0€?¼ ð •Zœ‰Y°Ã˜Å20(†´F £¡SMÒJ7—ÒŠ¢(Z™ÒêV¹¼Yý ^¥$¨VMÓ¬­hò:ëšF5º©kt‘¾ÍòRZ¦¦ÑêÇUÓ¬RjVÍjnÓ2ݬ–å;©–)ÐÛÒŠ. €Ü†ƒ|Ìv,‹™pûömE§µFㇵmÖÙúýÃÃáááñèäx|zr,ÓšÃó�¸ž¶÷öÚÍÅÙ ½;Ó|ò¤ù¤ùäÉ“f³¹û×3çó 5€Å��bëÙ³ÝbÈÂ@±¸! Å�fsƒsÎùoò�æ…Ü�‹'3Ç + 1÷Œ�žý‘Ö/gœ’³õ±09 LëÉ%cs«~fàÎ]ÙHÉbá†4¥rÉT*—ˤ& ·ººrwuu%“a�k2«3 “¼»±±º"K€ÕÕ\n5w#öm"àœèw¿ —ýöÕדPÐãag]ï쇇Ãááápxr|||2<�œ G''Ç£“Ñh4<9>>�G£áÉñp4:�$�ONNއÇ''‡ÇÇ£ÑP>GF£“ÑÉáÉÉÉèdt||,ãfŽ‡Ã“ãƒmI)úý~ÿ«_ýêWÿ4#ün2 üÍ·ä¿ûîŒð‡uÞB&³Sp=‹M‚Áàc=Ø¢oša0yùªtù–²¨(ÚVµZ­ÒMú±iÖ«ÀªU ¦Y­›¦\2ÐiY£”þ@® §?�ËÃuZتÒ2ÍGCý@?¨š&€Y¨V)5«ÕjݬV©FË[·5MQÓéØË0` +```2€¦eY2èöíÛŠfÐZ­±ÝØÞï÷ûÃááñèøx|r2�Çß +³@|:0ÜÞÛÛkJð"DãO¢5!³¼á‹)‹ŧÏþß­b³õt·Y,676¤ð·!ßïF“ó&or.—6g 1¿ÙãHÄñé@àL’þÙ›€ã† @þbF>Ì3±ÜÊJN�Vr+³ ·š“3Da9‘ÿd2—‹Ü„«+«+wWÃ8€œ|#~#'s?37’ÉdnuãA&™™€ÜVîæâßß|sq ð_ÿõ_~ûêÿœvNö Zcÿðx8<<�O†ÃáÉñèääx<ŸŒ‡''ÃÑh<�NByx8:�NNF£“ÑñÉÉÉñÉÉh4�F'ã“““£cùâÑht|rr2IMéd4:99ùúäðx8<Üoì‡`3<üú믿þ/¯ÃÍÀ³KÁÞJR!È.@þî¼®ÿ»Ô»‹·gK€ð¥ÓÕ&”€š!ï�VßÕ²¢-.•«å-yÓå3ÿª¦ù±i~ ÕjäfA-DJé»í„êÖVµÀª`šUÓ„*ÕÌOL“ª°cšuÓ„*¥UZ]¤š¦¤Óé?R(˜J?2Lfݬ ¬žµÃ3CP«H'ðþþþþA )ÝÉÉh<�Nϯ€ÖÓbâ*˜2€Vû‹½½'¤È›Íf±È#x2 »W@qšüé³g-i¼¸Ql6›œ7‹Myå¹.Ã&0É+¾2Éd&žHDÛMã3¹ÆÉ™f@"‘H¤&šÀäþ'“QûP®FL&“Ò\tE �H¦2¹\îŽ\ïÀ�¤t&3ɤÜH8¯ä’ñÜÝÜêêj&>Ó��ËL4€»«‘°²ººr÷»0€ ã¿ U€×¿îÿ"x ‡ÃáÁ°£(°0ކ''ò™=:=�ÇãÑx,¿(Æç§ãñéñxt2>�G£ÓÑh|:>�ÎFãÑèôüìl<>�G£ñéè||v:�NGããñéød<:�ǧ?ŽGÃýZg0úý~ÿ׿þõè¿üæ_æ—‚|[ P>5Ë +` ñ6àú�ÅÅ9 Z‡#Zmšf‰…!À˜&cA€Õà#0ÁªPE«–ËÕjªU +Õªe²À4L¨~òg #û˜nJÒnT¡^Z E§Àê¦ ¦iÖó“`½n˜Õê'¦YJ·¶Xžjš¢¤Ó±% +¦É‚¾üÄLf2fÖÝ©‡ÂcŒM öÃN¿¿pÐïžœ‡£ÓÑh4Ÿ½ $¢Í WÀÓöçŸïíFÀÆ•ð$r´gû€Å• <(n[Ïþ×v“G%@±ÙäM.W†É¼ æF³¹±Î CˆÏ<ܯ�L2™§c±iko:Öþ(5%Óû‹ÅåÚ€d,�OÞu,Š˜–‰d&™KM@&l>dVg@˜(0+döwn5€÷¬ÌÀûPº±D"ñ­F 0B€ÿß?ƒÁ ßï÷¶•õÚþÁÁðxtr2:99ŸŽÇãñxtzz~zz:ŸŽÇ§§§çãóñéx<�ÆãÑx<���Nǧç£ñéøü||>Ÿžž�NÇ£óÓÓñ©|§ãñùÙh4�OÇ£ÑÉñèää`xЩ5ú‡rÚäÕ«W¯~ó/3MÀIàͰøî„þoÌ\¿~=vý->€y˜ E¡P( +kë¥R¾tï^á^á^I¯èz©T*è¥B¡P¸W(¬—J…ÅërÀâíÛ· …|>Ÿ_/ôõÒz¡�/ +…B>_(ôB!_Èçóùº¾^( +…wåÈÖ× …BáN©0=ù|A/åKë¥õè‡ù|>_øw·¯_�ÅbiM/ +¥uÝ(È¿�’®— +¥‡z©T*­—äQEÑujÔ�ýþA¿xxx||rr2:�GãS™ÓpE Ð~�œ2€ø• àóvÔx\ajïµÕø”›ÅÖ³ÿõ‹]¾+ Ùlòf³8sß‹!ð&o69—J`|zÞ ‰xLFLwÎЀäüÛSþý¦py@l + *ÉpïàªÜ3&ƒG¦ D€ä�•YXÉ­æB `c5—\‘‰$É»3 ô%¿\Üð¯¯ŽŽŽŽŽ:�Ng¿ßPÊúÃãÑñp4�ǧgãÓóóñËñùø||zz>Ÿ�Ÿž¿<=�Æ£ó³ñÙéùùøüüt4>=?;??=ŸËeŸ§ãÑøüìôt|~~&ßéùùx|)ËÇÇLJƱÝß?èlooo›¿ýío§€h)ÐŒ€yÕýO-NÀŒè˜¸þ]‡�®Ïä‡Ê®f@°�Ù#€Á‹k°GAéˆc]Ò´å*¥f +Û±˜ôØ‹ `&Ì*ý€2.l ø˜õz�Å@®èÁ#`ÀLÆspʵÃ=ëE˜–Ü�øQ�¥P¥šv3�NÀ 7x Ûþº6`Œ¿j˜Ì„�ŽÅXÀ^È@[¯ÐÚÃFc{¿³p8ž �OF'ÃñéÙéx|>=sÀd5Xü ðt¯½×æE¹$€æ \élïµÕ̃§{ív«ÝÚ(›ÅÖÿül¯@s£ÙÜhn4y³¹!wŽ4›¼(‰ÀäðÙû�ÇãÉ«A@ª€Óå7à¤/0UÂû‹Åg~C|v†èjP&ÉL�È�|#šàMfr¹IÀÊÝYú¯$“+9¹ ,–‘�™@¤dVW#pbˆ'±ÄÊÛ�€³óxýåÑÑÑvc{{{»SSÖ�Fÿp8<>ŸŒF§§çg§ggáÀÞÙùÙùéÙùùÙÙùéh4:�ÏOÇgò^�N_žŒ_ŽÇgç§£³Ñéùyø‹gçã³—gç§çã³ñøìüüt4>�G£““““ƒNÇ€Îö~g»ÑhÔûÛ¹DðIýÿÍ¿½‰\O/.^b`àm°8×LLѲ,Ë*PÀdŒ1С΂ºÙ³˜ õ ´&Ðåå(˜ l‡™¦i‚iY (…*˜Ô …z>¢Á ÜTl�Ö‹„¾|ÄÀÜaÌÜÙ1MË2ëUJÀÔu�Rª•5åfúZŠ˜`þ…e°ÁCŒ5€±Æ€1ƘÔj5E‘qµÆöþþ~ÿ`xx؇£““Ñxtzz~6s.@ìmÐj·÷>oÊ`C¶ç`6üéÓvø­ýEKͨ!I±YÜýÙ³g(Î_uÞäœó™57šÍfüòI^�h°wî_:1ëˆä€)ÿŸÁ‹X,1/!¾2©T*w7·š»q#™‹‚%Èä’™\.9£„Úß�äj.—[]IN vVsÒ +œÊdr«R\]‘ów“ñXü[À7—T€ý×yýŸk?¬ý°VÛÖ•J£?‡G‡''ãñøôìôììüìt|z~6ŸŸŸ¾<Ÿžž�OÏNOOÃ§Äø|<�ÎFggãó³Ó³óñÙéùùÙÙË—gggç/ÏÏÇçççg§gãÓ³ÑÙùÙéèx<އ‡‡‡ýý†Qc�µZmk–D5À¿½Å´xýz:•š×þ°Y€Dâ­Ã@J€ˆAä)�ÞR€‚i+Œ=‚ º¬,k›r3(+˜&3Yx¥M¨Ò(P”†=:“‚Ý”¯ª„¿%”ò3”ñL  +@?JšF©V–"@І¯Ô#`¬ÁXÀL€:c¦ †¡(ʺV1jÛÛl¿ß?è ‡Ãé8=ŸI)à +'à›Àß´ÿ¦ý7í¶Ìýü‰ì†>€ÖîÜý�Ý ÖnµÚ­V»ÝþbW]Y™2€�bëgÏž=mîîî6‹Í"çÑ•M†|ò3¼þ/~å¹1ÉdRÖ/—ÿµçw�„�ûøE¬ˆÅg ñFˆWs“D�d2)@&“IN½€rrÐJ.·²š»9Édé�É…©À««+««wå Q,žˆ%B7Ñwb¡èõ`0øòðððpxxظ½¨×:û‡ÃÃáÉp4�Fggg§§ã“ñÙùè||~þò|<�ž��ž�ž��Ççgçç‘Jx:ŸŸ¾�GÇÇ£áp8ìïw£Ö988è÷ûÏç`f-à7Q¤éLçom-Ÿ_üw×Ó‹©ù.À< ð¶qàÅKÀõYX /.3 ÄÀª›ÖB`u«ª)Ë››eJ·ªÀ +Ì4™¦Éêu¨›!nL—€-Êef>hŒ ˜YŸŽÖŽY¯›uÓœüTµ:Ði˜¾¬¤Ó)�Ê¿5€£ÆcŒlÇV—‹Ð’(­Ô¶·�Îà°?<<>>ŽFÃÑèôt<>?¿É +œ #A/ÀOž¶$hµÛÿÏ/v‹ávÐbq…·~r&KÁ[OÛòÛ<I‘[Ïž=k7ŸH��¿ÉU�žüÓqþ&ˆÇã7nÌŽýÈŸ›»Ó³ ­;L„÷ÿÂõŸ€_è%Îår±Ù&@.‹ÅQà×ÝÕÕd2î‰'¡d&“JF™RÈM�}«+Éx,9VïfÂ�™Üêƒ „@,–ˆ%¿¾¹8ô/¯¿ürpxvvvvöòÕ¡’ÖŒm‰ÇÃÑñÉÉx$5û¯Ç£Óñøì|$‹€ñéH*{çãÓ±D€Ó³ñùËó³“ñÙøt||<�ÏÏ^žŸŽOOGçç§§R <�Æ'LJGÃÃ~¿5­R9<{õòììììŸ~ûÛ‰õCóäóï¾[¸—Ï/^¿¾øî<¸÷wÞ ¶8oša½^o°áTÔ>*>�%œŒNF'ÇÇ'ãñééh4:>9� �GãÓñød4:9žœ�ÆãÑéh<<9> �OÆ£Ñèt4: ‚Û®UÖkûã—/_¿zõêÕ« `Òœ×/ÃÁŸwßÍç%H]Ðòxàí"`êª.@,–Ïçóù’¾^*éz¡P*Ý»WºWÒõJ¥’/ÉÜM]¿§R×åÇz7Ÿ/ä×ïÖ×õµR!¯PÈçK…BéÞ½Âz¡°¾^*”îî +…BI¯P½RÒK¥’^*•ŒR©�Ïç ùB!ŸÏî•J}½¤ëòÏ”Ïß+¬ËVBþöíÛ‹©ë±Øõ½RI§z%¯ë¥Ò‡¥’®¯éz©�/Ý+îåó…Ò½R)*Û¬³¿/IàÉèd4�Fã³Ó—ãó7Àƒ ˜k¶Z­V[B@»ÝÞ“À‹ÅbQm¶/”òò_ÐÚ¹²’  XÜhŸ>{¶·×jî>ÙxÀ/\÷y>ñt÷énëiûéÓøÛO2qãFR’ÿøÕÿà2'0¹€çpB^þh‚HZ‚©)D]€�„ûCr««™D&Œ'WVr¹L*“ÊdRQ`2N$@nuu%·Y�%d’É\*™[ÝX½;€÷W“ó°úí à¿EÀ—_Êûÿê7¯Ž ‹‹…ŠQ«Ac»Óï÷އ£Ñá¡ìÔ ��Ç£áptrx8<<ì�G£“áðððpxÐ?<�ãcÃáð`ŸŒG£“ñááðøð°ßŸŸÈ�“ýíÎöv£f¬+Ûç¯^¿–ð_{UØ7Q Ï ‚ €òÀºŒ ‚NÁQ?Ì`ŒAÐ;ê}݃à¹Þ‚^` ‚GŒ5X}SÓÊ”*iMÓÞÓÒÊ­ôÂÅ/‡4£±Àt]×@£š’^¼™¾™^XXXXËçó¿ +¬^ϲv‚ÀÚ1cÌúå?|õâÃÁ'Œ}i=ð5S”eMÓèVÝ +˜iÖÙ ]Öô,¶ÜcfY–i2Æv€1ƬދøjÐè10ëù_�ª¦iYŒ™Œuð4ÀbŒÑõ�iî˜[UZÞ,+i­Î,ë—ÿðüªôœ±�žõ¼÷¥Ñc9‘±^¯×{¯P(èㇰ½ßÙ?Ø?�‡ÇÒíuvzvvzu@n–�°¹Å ­§“È�§OÛá4@±¸Q|pž4[»»»»ÿÓÿ´»»»û´ýTê†íö“•læÉퟴÂ6àÓgÏööž6wŸleÉß”Ò_(Jüxú´ÕÚmíJ}2þ­çFèå�¿=JIÀôúG—¶Ÿ�Å" +0�âq™ß“ +C�2‘94eRÉLjš +œ‹@f†¯ärÉx<€ŒTÞÞ�@Öw“‰x"OÞ]]}ÿÁêû®D€o¾¹¸$X2€¨Ì;PJµ‚¢W*FÍh4¶÷Oûý~g»ÖØÞît†'Ããa{›u¶;lp8öÙv‡±íNg¿8žv�ýýÆöööÁñáññÁ~g_Ž›O†ýÎv¸{B×µÊþéx4 +¿Æþ˼xÀ¤6´tz‰ê t¼ ¿¼iÕ¹3°X¨�³ç¥G¬P•ö:ªý@.îÒmñ¶’þÞ÷Òék ×.Åøitº*uYÎã§Óé…ØBza!ö?–þÇÒÌ?ïY&c¦ÅêPfZ¿üåQ‰±:0˲¬J )Ц-k”Ò­­ª¬åY ƒV˜i²£0-ˬ˜¦ P7MëïùcìQÝ´,‹1�¶âš4 YfXÈPJ© ¦ä×ÍjÕ4i¹¼¹¬)iêì“Þ/¿zQb¬�eY½J‚1Ù·�@F£ÓÙîô¥™s4�OÏÎß䘀øÜ,ÀLfÐÓv{¯=Þ\báíßÝÝmµ[ZíæÊJ~¶÷³VswW@Hó7š— ?m=m=}ú� O&ã±x<~u0-"ÏïÌåŸÞþxÈâ‰+ —.ayÞÏÅåò)ä’©\*j¬¬®¬®ä¤«/¾{#OäVW¦°ñþû«¹L.s#™ËÌ0€»¡(™L¤ÉUY›ð«­KvSÖ–”›i…˜Ö?ôX lÀØÎ+¨| u*g +ZE§�ÆööþþþÁááÑPŽsŒeçå›J€Éø„$®€V«½×n‹EéὊÈó?íî¶ÚíV[þ×Ìf’òí�Å�âÓŸýlïÙÓæ |w7*3ž¶þpH&‰X<ÝãYßObV �Ë‚eBèd`$ÿM²BS©T*•Š­\€ÌdóWîÆ ¬È€\fZ¬ædõ/@&·²’‹ÀÊ\ �‘mÀdnõý!¸+K€d"‘J¤VWßÿýÕVW¬^]Ûq´?å‰�è¹�…˜†>ŸvÖ …J­Áö†ÃýŠÞ蟌NÏ_¾<ùòüô¤f4Æ/_žŸŸŸ¿zùòåh»f쟞¿<{yþòåË—¯N¶ZçT.û;?ê•Ze}[†þ¾<h¥qx2û ¨hz¥s8<>9™‰ž²_„+ÂMfõ,³À¤¬_1«Š¢,É$�jx‹Ù½ `P +`Ö+Â.¿Åäç&ûóìÑ×�3ŒQ:%9 j‚Y{Á¾ÔJi¹J5E  g%€:3cì!ƒf“ÌEY×éÛ�N¿xp0GÃãÑøôìôüôüìüÍ vq·æ•ð Xl7Þ +»»»­Ÿ´Z?iý¤ÕúI»™Y‰e= �€{?Û{Ön6›Åb³Yl>}Úz;´Z­o¿þ²´�ÇbQäŸñI&âqéõ ü‘O H梕á“ ‹Å©TNÀŠ”g \xw5w#�]€L ˜‹@N2€hÝ·€¸€\Vs™\&™Ì%“¹Õ÷çÀjÈŸ{ÿýVW=‘;ŽC8çü³n·+@pÎùxòãÑx<<ÞÖjûÛ�FgÿàxØÑ4œž¿|ùúåëßþæõ˱Q©œ¿üÍËßþö7¯_¿~5jT´ýÓׯ_ýæõùëW/_Ž·+ÚÁùË—/óúõË×úA•ýW/óú7/_¾1ŒÚ~ÿ`ØÑ4m|öòìå«ß¼zõú7'5�œ¿~ýêõ«×¯_¿|=nT*ûç/_¿~ùÛW¿yõúÕx›jû§¯_É + ªt^þæõëW¯_Ÿ¿jŠÞ¶ ½:Ú>8Ÿ�ÏÏgŦÓ7µÓs'€k±Xø3·nݼ%)6ÿÒôµ……k7c QLw,¶[¦”jÚ²¦É0ãt:}3­Ü¼öÆý×.ïæˆÅbjÆ Æ3Mö|‡1PgŒõê¬2f ªËв¤QZ…ê :ù’®÷cÁc&@ݲzŒ1u“1ëëúÀxÄäí˜eš2nÀf†" #X+•ô†ešìÃÖ¥´º¹¬Ü\`Œõ úDv˜õ°gš&PC2£É4 ñÃíëlŽ‡Ç¡0>}ùòì�mÀÄÕ ài+Z €Fø\êüeÍVsö9Þlíf‹ÒIÔT‹ÅÝg{{Ïöv›Íb‘óæç?ûÙ³¹³7w~öì­Zq“aMŸéæÅcrEXTñG°X,•ÊÌÚåjî\*•’óBñx<‘Ë„Û�§2`ÓÅ_7’€ìôË�Üd@Š€+ wcÀ�«@X}°ê á‹À ¸Î,xý8îèóÐ?½~3€þÙËׯ_þöuëÁéëW¯BXoРèWÀÙ<œ^bß|óoßü[úÖ­[·nÝJßJß¼™¾•ŽžÖ×Ò!%O§Óé›étz!½° ·á¤ÒéôµôÂÍ…ôµ%…é/,\»¶KSeYÓÂ]Ý‹é¹•ë «5®Éµ[—÷ù†aô,fÖ™XŒí0¶Ã«[Œ•‚)¾1}PÕ–5ÎÔM�~ Àø°Á Ë4ÁŽiÖ�ÖNt7M6€Ÿ7˜išÌ²X§¾ÃLÆ€@˜ Œ#¶Öد³^`™¦eX&T·ª´ZÖ–”´fšŒ™%Ƙɞ[Ö@±ÃLfÔ$®ÈPàZ£ÖØÞß?8<8<�NÆ£ÓÑéù¹tt_1 0ë|3<ÝûOOÔÅ ^,òjs^|2€'OZOZssA-U�`cx±Ø|òÅn~of“'ýdJ0–ˆ†Bª?Ù<ùcÉU;ÒÕ�0!Lêò…©d2•’"àE§}/•RˆX@.·²*=@á¦�Hxx#bw'Ó€©DêîêƒÕ««V…'„ðçøÙ§ðWÝ®í9^€ÇÞŽ:Zg|BÎÀù˳—¯^_£íJ¥öòÕ Ì1€~óû0€Óó‹À7ÿöÍ7‹·oߎöŠß¾­(JX¯_O‡{ ÓJ:�V‰‹‹‹Š¦ÜTþø–í"ž…ôÂÂBZQ–4å;mï�6}EÂÜÖŸµµµµÚÊ®ëÃÐõ’^ÑKúÊþ°òŽ®hÔ¨A�µJ!�^\Ì +ë…B©¤—Jz塞7>Ôu½RÙ®è´ò*zE/éÆC]/•t]/º®—t]×+¥?¨è%ªë2¤]ºŽJº®X2Jº®W*u]×õµŠ®¯ +ëeñz*¶X*ézE×�¼®W Ã0*óz%z¥’®¨ëŠ¢hºaÔ¶¬³px0<9�NÆ£ñéøôôììôåÙàA"ˆ{ ´ööž¬€i F‚Ékßl¶æûíŸ'PäÅ'4‹¼¸»÷Æ»ÿ6páò‡Ÿs\V1a£_6ô'€�ùÄb±\jâS&piHšø.0Y2¬\,äp&R s¡ (7Ó\¹�'®b¹Pxð`žܸ!Àû¬®âM`ž\ �}œ–ÀþÛÀv¥²v¹˜cçßRüó8=ÿo3kAd  \8‹š–ŽÅä]—“ +J!µ¸¨(‹¼¸¸¨,*…?Vo..*‹‹‹Êâ÷Ré´²´|]I§¿—^H§o*WVüWÀâÍ›i%½‹ÅÒ ó�BÆcÁ €Fƒ±4XÐéŒ=t X#Œ ss« +”V €GÁ€ z½_AïçÖ``3³:  Æ€€u¶�±Ÿ³€1Ì ‚àkãE0ÆÆ‚Aô¿b¡ÑXôô˜Å€êÕ +J:­1Æ‚`-�Æ‚clô¯z Æ:Á ‚BAQ*4dýƒƒãá0Ì=;?Ÿ½<{CàiQV¿‰ø…6à<ØkªÔb±ÈçŒ@Of4€'Àn«Ý.ªí§!hŸüloïg{»¼Ù|°Q|ú³ÿåg{o9W0€«/¿œì�ÅcÒÎ?ëý�9ÉÄt¿Oæ’K(Ÿß)¦_Q¬äVV33 `¹ät8Ú)0Ѿ�¬F ´…]€»«ïo<$€î,„€/„ë8@øè©¼ëù6 +ä.çÜ&œ#Ú¶¯:ˆ¶ÀW¿yõòj¸ªx=¿8=�™–%€vñ(Š’¾»¥,k𶬕µÍÍrYÓèbA£Q¶þÒ²¦-+KRº_^VE)—ÓÕô­›Š,ÒRÌ“»¹ßxn-/+KËKŠ¢ÅÒéôÂB,½0•LÆØÇð‘ ½:”è?�.  Ç L·ª›ݪR0Á¬›ìW¥ +�JÔß Ô †A)|D)˜¦e2fõXððEØ+€ºiBÝ Ø‘eÖMSÎ –dÿcSÓ4åÖÍtZ¡5À0fY�Õë™À{Ñcr戱ºi*Š¢U*F£±Ýé÷÷2 l4�dðå[¬À±°;þFhíí5w›jQ.¹ †%@óØmµžÎ0€fñɳ½½½½Ýb“?(Ÿ>Û{ûùâ‹/¾ø"ÿ-—?Jú�I¸PÅÌ­•±RöËÌû¢8äd” ¯pNZ�ç4€»ïç’S•™\¸èR �›/ro‰¹d"‘ìv]W8Žû#r‘ضÍÑ€p.3€)àexŒèÚ¶ª�œûÑEïm%À4í;i§§§ƒiËòDß//+Ц¤cÊ–¶¤iÚ&Õ6)Õ4�.Rí=EQd�_Êýïiš¶´¬hÚÒòRy+Š¢¤åߛ酅k±ïÅÒoÝå©hÊ’¶¬(ÊRLI§Óß»–^˜jr²7”çh ø€RZ{8�B»LßJËu:ãV¨³ ²c±ºiP +_ë3 ~ +”VhР“N¢Ì´Œÿ½Ju“5zŒÕ3(ÛÑP ´LËš¢(ék +¥”²,ƬÀ²v0öÕ/Íi¾S”ºV©Õ éÝ88Ÿœ�Ç£ÑéùùÙÙù«—oò$®ys[­öÓÖÓVëó/ší¦J¨W9w[?þñ�CY`º%h·ÕjÕvk»ÏööööZMþ`ãM0ßX[Ë¿íòOÖ‚ÄfÄþé#?~‰Ä9éôÉÍ@"‹�Éb�•¨8_¬äK\fá`ßL °2ãxsàÆ| p×qœOmD´ín×ý‘+„ø‘ÀcÁ9~&‡Û6爤۵=qÌ0gÐW$� xŽÇÑ&Ä÷]×sà;1€+àtvà›uíª£Äb·ÒŠ¢iÚ&­n–7µ2¥‹T{¯ ¼tS+onj›6eÛO£©¶¤(aàÚB,»™~P´²²¬(Š¢]WÒ©t:}saêž¶Õëak€VŒ‡c3fí0+èõz@«uZÖ§ùÜfϰ,¦i}õÜ4ø8‚JuF£v³,«°Ú‹ç–D +u0�Ao‡™&c½€™=�Q¦¨¶¬¤Ó +ý€VŒ‡ì³,Æ‚Þóç=Æþë/-34ÕS¥ éF£¶½¿½ß?�ë@Ç'ãñh|~þòåù˳© œÙoµÛ­§30¿ µÛj·Û²+ßjïµöZTõÁr©hî¶®LÚmí6‹O[»!lì>ûÙÞÞ^kccãA±Ù~ö–‹žü�ü;ïäßpùÓPÀÄTðŸyòÏBÔçO¤r)9Ù??)�ŒÅâ±ø ä¢NàR‘0ßÈdRÉd*—Ë„ ·¶W¿C ¢ãB"—`w»?r…®KˆãyBøÂæø™c;\2ÒíÚ¾p\DZßÈæÑW—Øѵm2eÂñÐ!ÄüØu}ß·mDDü¶.Àw,ÎÏOÏfÀ—S@zqiYÛÔ(Ý¢›t“Ò­Eiؑ際›››š®i¥ò5Z™.jš¦,--)Ê-åæÍtú{iåúÍôÛ`IÓ$fÐë5–ÓéôÂ%0™Ìï1 JA?b&³äP�eYfPÝÚ¢t‹†EÔÆL0ëŸôv{¡Kî_…0¨F¥—)Ìÿ0w³¬ Ò ˜´ñË&àŽñµi«³žµc™ëL:¢5J5åæ­´B)¥ðaNK2 ¾²fæ  (šœltúNNF£“ñ¹Ìw{5cj·CÃ^a=Ñ< €ö³ÖUUU2)ž4Ã`ÀY>°;š­šÍb+dͼùų·]}yÞ¹sçÎ�;ù+.ÿÔÆŸJÍ.›ó^x¹¼ê©\.•”zÞ„$C!Ü!šLÆr˜€ÌÕ]€\&™J¦r©h^pR¬|{ —L"v»ÂuÑq!ˆ¶í:\×q®䈄K€Ü¶‘#Ú‚#w‘ „;œDa#çrÂÚÜSyÈ> €2€ObO€£‹òø>Gü¿£œK +=ÿ MôNÄ–7i¹*ã¶)ÝÉSMÓèÖôwhÚ&¥´JËe TÓ`q"!Ü’}ƒt5¥¤Óé…k WÚ¦¦-kËK +\/¤•túÖ­›ét$6=z€Y�Œº5`†lçK€e+W«Õ­©È|Q², ˜ùü/,‹ÕטY}”R¶ruó“Æv˜eü²X¦ìà�ñcµ�¼Û=˲Ø: ‡œÊååeåVZ¡|%0kgDzXðeO†„1Æ ^—NÀmÈùïƒÃápt2>�žŽGã³³—ç/Ï/ÀÓ§íÈ9ég4€ÝV+ÑyÚjµ?ß{Ö*ªªº¢N@O®€'¡°ÛjµŸ<(N YÜP‹¾xë¹sç�;wÖÖîܹpùç"AgJý¹Í€óR@2,b‰D.ªr‘Ÿü®œÜ–тРÀå.@&“Éä’É ]€ÜÊÛ»®‹‘œ/„‹ˆ!@›‡ Àý‘+„ëâ~&l•Û6¢kþ#W$*Q³ˆ(� ­ª9çÜF[%„s‚‘Bˆzßæžç °?îgŸBªŽ/Ð÷Ïñ' e…!ïÿcŸ;Žã ¢#¾Sà²xz~z1zåÑ5M¹»¥,o–储V«4X¬h¬^ †ÒMJ·äþ=J)Ý4Ci@™ÔJLQ¤xíJ€¶¹¹©i›Ú2K)iEY^VnÝ àZ,L×-麾!ÿW3uý¡ñð¡^Ñ+…EE‘á½zéÞz©¤ë®†!;r•оVÊë…’.‡ÿïJ¥õBaÝ(QCöu]×+º¾fÔ¨®ëòCJº^z(g´¨^©èù’ .Ü^\\L]�¥ ¥’®‡¦bè+ºþP/5 V Œ¥Ri}}½ ÑZm{;�ÓÇ'ÇÇããÑèôìô||þòåËW“Ón?m·ÃÉýÖƒädFîÂ0�œê‹àg!¨’È}€²Ømy‘o4ùŸ(ÍÝÝ]™Þjµwl4ò¿Ýäj±¹÷ì[®ÿkïܹóÎ�µµ;wÞÙ~óퟹë±äÌ2° �� @”ð™‰2�Â)�\2@¸dÎ ˜ËåVB#PnÞ ˜LM£.ÀŒp± @ˆ�hÛ.Ú„?AþYWH + œ\´ín÷G?r…纜8Äã�ÛÙO]$Üý Iô]ÿq…À®°mb#·9wDV%D%„UÍb—{ÜáÑ#¶mÛä¾JÉ +¿ëùžã9]’ñæúQ >ÁÇ�}îÇù�ˆ玃¾ïÿ^Àùùùùéùéé7o¹ÿ”V4%S–4º.تnQÊnWt�U-¨ÖëU¨J&° ! LË,¿%-ÀKKKKR +TBfÿ&Ð&-Ë1 z]Q5eYQn¥Ó ±ØµX¬Ñh4ÀÆX‡± ~õ�°Æ¯Õ{Ñ{qôâhGƒŽöqµÊÀ0ë,x°/�/Žž³ì :õ ÷e‰A‡1ÖØf,°‚3MÆØÀú2ƒÞ€Y,8jü^ôž1Æv~Þ`Œ1Ö^ °/Ù¯cƒ^¥CÙ6PJumó½›0X/пôŽGGƒ£�õ|0è/zÖ°€, ëÚºV¡F­Æ¶ûû‡ÃããããñÉh4>;;;?ŸOïÿ«§ó0™‘›’y`!´?ß{ZTU5»²¢>i·vŸì6Ãu`ÍV«ÕÜØ(676øFqFœ€b‘[?ÛÛÛ{Önnw¿>_»�w¶ÙåÛ?Ù,Ã>cr;x"9M O*ÚfŸJûoJŽ$ãs�K¦RÉLT\èÌÎdfKy.•—»9ä¹CÈg6ڶ뺄säŸu»ÎØ.¢m“nWªˆ®‹HáY‡�P&pUÂÎá£ëvmÁÑóÜ¿õÿ¶û·Â÷]÷…ç!z¢Ë9'ˆ]Ä®C\!ºˆŽðy– ·ÛÜñ}g +@È„ã¢ë8œ;.ú¾ï Ïëv¿DoŸýîwo¾ÿ•–5J«[U€­*T)e‹”RMÓ¬Vª”Ò²N©YÝܤ”ÒÍ2…|ÖËK! xïúR:�N§¿÷†.€F©V.‡ ¤ÓÊ’¤×b±XŒ5�GP3 ঌò¦G3ëÃM€År¹\ÖÊað'ƒ�n™=Ö³¬0¢ƒ•Bõ€R +”Y2æ&ÃK&–ešŸt"9Ò€YG=Ëú‡@*ú‘Ì.P”tºl2(¡˜YŒÕëXÌ4C)Ò4MMÓ$lÿÞ�ˆ‡ëh/À̸N»ÝÞko„0Ÿ‘J™a ¥Ú’öÈ �€€í0º^ÿ]¼®(7ÿXI§S±……Ë� ›”ÝÔ4øã”¢½§PMYVnÞ”ÃAÒ 8I!�P¥7�À#™è½ÃLÓLi[åÍpéŸiš0Ðû¥õ–Åz&ÀGTÚxÂlð*˜”Rºô£Ð\T7¡ +úcæÈ­`¦YgF`YÖsëf… E$jï)Ê­›éM +U`%Ròç ˲Âôa`Œ±¨øƒ@ü +0³×nfWV$xºû$\¼À¬ `·ù—Íæ_î^€Ö³½/¾xÖn7ÔâÓo€;kwÖÖÖÞ¹óÎ�wîÜÙfAЯ$'˾&Ž�yˆ%“ÉÔ•�§„bq©õÉ iæ§|òç2áÂ�¨˜€PX 7ƒÌŽgr2)øb`E ú(@ØÙìg6rιCˆmGÀþÙ¤ " +»‹ÈÑVw‘snÛ*qT9QW¹Oq|‡sÇ&ȹ‹ˆ¶ë>ö]t]9è£ÀÇøXD!9>îz‘£�Ž‹œ£@tl.P¨~}!8¢Àl×'®ÿ#î:"#f€ ç?ºŽÃ¹p]¿ûÿè>ö¼nWE´IQ•‡s®ªêU0ó¶þ–³¾~;K+M×5m]Ó5]×t]_kè:ÕuªW*º¡ÿ€†V0 +T‰¥ …uM×u +úúzA)h…BA¹½¨,¦ÓétJ&}^єҚ¢(Ê픾¸(_½®1³¸#dÖ€=<’D˜i2fÂõåry³\•€iÖY©×³>aána +A5Y$PJi•Q0ª[4Ú•#,ؘfÝdúQÏ2MË +ßè�¶¶(ý�öž¢(é´F)… Ä&MJ“1“&cÔ€iš¦ù‡3€xd~ø›vs%»’]ÉFÐl>yÀ샿ù—ùd·ÙÜ}ÒÜ}Ò”5@»Í‹Åݽ¾�ä×ÖÖÖÖÖîÜÉßÉßy·Á‚ ¯ÿjî�€|xÇ#=?•L¦æ€‘%J±?—Kɔﻹ\2–L%É”Üñ—Lf2“à +€ õ¹0œKf2™Ô\ à"„x‚>: +`Ûˆœã¤@$ûˆè +PØ<뺂 Q‰ª’¬@N÷„ê9¼H¹Cˆ@ŽÂU]ávÑu‘£@‘ DÑõˆ×õdmñ£.á6ž@„sDW çè¯ø]!|— +\ˆ²ö÷2B +ôc–s�²®ëw»ÞcÏëª�) ¢m_Õ8===%äÍô¿¢SªÄÒËeZ�8쌭-`ú׬nÉ«E{ €iŠR/+ŠFéÔdÖ–®i´¬iÕ4 š¢(K¡-èÚ­˜²p… i[R\¬kЦ,+·n¦®][¸»Öxô¨1˜x>�w—‚>ˆ‚÷L`�ÉRKËeM«V%H˜Œ•˜Ñý€ $û‡†A)­RªQ˜NkU +Õ*˜uƒP˜a`îTv¦ûÉô�l|¾§)7ÓiE§´6(Ódl`€i0Ó€z½8ˆ½�LT€v»ýŸÚÍ•lveE�a!ìÎìj6wwÿò/eK0h·›Å�ⓊßwÖÖÖÖò!¼À'lrùÃ۟ɤR™\hŒÅòQ>€d<™šü§®Ÿ\*ŒJåîÞÍåâñd.•”û@“™LXH+ÀÊE àîêe'`2¦…ãÀ¾ïG!„@×Ct¢`²@$Ó>¢|`;H\Á‘b»Hl•u…Á ኢ#8± ÏÚœDŽ®Ëñ±ÿ#n»�vðÜÇB…‹È=—#NuJi_· efT-€ªò=(Õ”eÊ(¥[4J÷*Sº)…À›ét:ýGé´»"p“ÒÍÍMmIÓ‚E*=A7Óé´L'‰T>0 6É3à”ìX‹™[饥M-L0M¦›æÇ‘wpú¤¦BK tJõŠNL+0¡¨CÕ2Yä2¾‚:Ôë“…!:TetiYF‚Õ ^’¶b€�ç_YÌü93ë LÆL³.üÁ@ì’К€§’dWV2“@"@ëÇ­Vk÷É”+4›ù—»»¡'à àÉ ÿéY{CÀÞ[ ½6wîHøÊbì“?3[ÄñX,™IÍèÉØ¤ˆF‰0û[¶s¹\2�'#HÈår²ÁÞ˜0; �Le2!DB—`!¢˜P€°ÀI €HÂ>€ïŽèy.GäÜþw�s•تªª÷É}Õöº?ý;âpÎ9·?%¶“áŽè " +‘ ¢pÐQ=DŽžp]¡""º\ ð8ñ<‚áÈŽh#"º.f9¢@›¹Iÿ(2ŽýXpD÷±›E.¸ë8œWJa@l¢N ºÿ6±m›„WžbÛ6�~ðúƒ+¿éºVÑ•…t¹yk$ ¨²ÉM¨Jý¼ª( +¥T[Ò4�Ò?¡T£”njÚf¹B¥p+}3 ¸b `�ViYº‡hjsyyI¾^ŽÅ Ã0‚�P0{¦¬´Yiðˆf½èYŒm-.-keV­×MÀ3ëò.3€ÌbÁ#ó…iJø2t#Œî°ˬ³˜uätê0“ÉÌC`Œ1¤î©itSIk,0~ ‹ ‹± 0¬žµ³óÜŠˆÁÇ0¸Ô¸ í¿i®4‹Ú»»»OšOvwŸ´þÃ,´Ûí)xÒÜÝ ÀçOŠÍ⓽½/Ú{í�b±Xüü¹&ë?Ï߉îþ�µµµw' €±ðÁŸ™í’©d<Üð5«$ñˆI –HDÕ¿D€T*™ˆÇS©L¨ ¬ärð +ÀÝ‹>€É8°Í¹m“ïÿûÄ÷}áA„è ‡è†à³Ïæj€��«øW>GÏF!<[ Šö_q›;KˆªäÇžO¤G9A®rŽ6ç]nÛœ´9ç]T…ÀÐÌ« +DDnûÒÄ rŽ(‡sä„#çYŽ !¶�E$ò‡Nڈ袯¢@�(<"\Ï÷¦¹ª�ƒ¬:¹þ6�ÐÀ¶ß¤PJuc!�Ö¾”!{UJ©FXž…yw´ +`ÖÁªn)”–+a¨•bü榦Ñ2¥š¦Üšr€´r%l•µÍÍ‚¶Y¦)mi)b ×®]»¦øá‡¥B¾�ϯéúzÉøP×õ‡¥ÒÚ½|^X¹W0>|ø°¤¯_O/.¦ +…Âíüz¡ —t=_* +…|éž®¯—J…Rþ^¾PÈçõüz¡"§õ×Kù|¾ ë…‚~¯¢—J¥¼®—ô’®Ö×K÷ +ëº~¯TºW(äóú‡%½TW„¼»˜_\L_OÇÒºþP/å×òùR¥r¯d+%ýá=]/åu¹Ä$:÷þP à[@ëi«Ýn7WZÍl&«6Ÿ¶www›<•Ðn?}Ún·§ BØ(6÷ö¾hÿÏí�âƒbó‹9ïý_|ñE»Ýn·å½_“�€;kïLÀ ’²í–œ»ÿÑn¯x,–L…:€ û›Œ Æ' ©ˆ¤¤õ7•LÄ“rÃo8*Ýþ+|Q@fv1H’ÂѶm›|ÿû„ ï G8 +€hÛ3}€I @PäŽ*Ü.¢ËQ @mBáœ�¬ªÕó„Ol…'�ÛœûÜ&Ü–¦aÎmQ%žðQïsŽœ¨¹œ@޹csÂBˆÄÎmNð>Q‘ÛY‚mâÛ®«fI6K8çÈ1ãØÜFÛFUŽDꇢëùž/¢ +€ÌWö„ÜŸÛ¶É„ØÄžÌÚÌÿŸJ,–.׫� U¨RJ)ƒº•g cïhÕÓ4Yuk�R­LiE+(ÚŸ„nYM¶7•%EI+Êÿ ³„n]‘ù³@)-—©Fi¹šÒ–åÖ­‰páZ˜úµÙí£a £AÀvFÀl--/k…­z=Ïíõ˜¹SV€1Ë ßMð‹Ò@nÔ`,Sÿ2ÒÿIc°Ã˜eõäÖ£.«›u€úV�jÚrZÆu`õ `ìˆ1ÖØ“•:Œ ,ÆØÎÎŽüÄÿ;i­ 1�ÔÖ“ ­�ìFÐ~:¡ДBán«ýù.)›_ì}ÞÞk7‹ŠÍ/¢ ºùív»ý×ý×Ýn·Ûíwî¼s'ªÿïÜÉß™€ç¥äÅ“J&ãáŽß˜ –ª^"6C&‰á‰�¤R¹T*O$S©T2|ð›]Ö6.&ÉG!hËïÉ÷¹?Už¸S +p± è´µ‹.rôtÐá\–ÌDUmô‡£#�Ø}Ï#ˆüSÎmB'hbÛv×÷¹�‘sN²„ÂUns®Ê¿Ml›ØÄ&„‰ÍUU%œ£JÑrá ‡ Ïá6·9b–ËëÍmr߿ܱܿ‘;ˆž3í\QbÛ¶:_LÀ.JׯÅÒJAƒê ¨Ê}Pä³.Wnƒe2Ó²LK‡­%�~@5EÑèŸè”Ò2­–éV™j›Úò{ŠróVúf:}3½�Ž)—úË”–Ëeªi¥)º¹¬(7oÉT¡k ¦iš¦ÅL6‚ÀÜa¦Y†\BfüÒå%MÓZ¯ÒêÀÇuóÏÓ¬›õGùGá&“™0VªZ¦Võt¢ÿ„cÁtI¸iîfÝdfÝ0 nF~!ºE5ZÖnÝ\–â€ÀL¨³^À¤àÀêë³L�£Æò°ÿ>]€‹Ðj=m·›jkWÍdÕæÓ§³ÐjíîÎÀtcÐn³ÙÜmî¶ÚŸï›½÷y{O2€½g{_|þy»Ýþâ yóÛív;ù࿳¶–çÎ;wî¼»6Æž—Ž.!@B¦$ÂéÞd&•L¦R‰¹ + 1ƒÉДËÉÀT"ž í�™T.“ +ƒÌ—Ѷй.—¬×&á�m")Àœ +ð$¢ó}Ùõw¸'<Áå@ÚÜ&÷ 'w8Ꭳ:NWpEW8YŽHléíÏd³*]»ë{(ÜÇž?õî«j6›¹ŸÍª÷‰ms 6Ú~·ë‰¿Å®§Ú�ý®ïùŽïuÇ÷�Û(ÿT6ˆms'KˆšÉd³Y5«r›«„Ør_ ƒÂ>v³˜TSðýìL0Gì7!€Y£ÊµEå=ÍdÔ¢ÕöásfR +P…ºe2Vý`kÇ`´¬QJõ‚&Ãù7)¥Ô¤åD¡ 7EI§c±tlùÚ%°N·ÂTpº¸%UÛéô­……k×®-˜¦i2f1`f�QÓ²,s'\ý&€)gzé²VÖtF«Õª¼ÕæŽÅLÆL–gF( îX`šl�Öë2)¤ZÝ2 º @¡Z˜Ì„-*÷ì0Ód¦9‘ùë¦I·ª´ð‘²¤Ü*›;æÌ¬òסTÉ(1ˆºáaoÿ¡"à hµ.#@»Ý\iµ|wh6C-°õt¯UT‹Íö^»½×Þx GþÓí/Úí¿þkyóg@Täß¹“¿óÎ�;ùí)|Ò+}Å®xþÇ'+±X*™LåRÉD,žœŠOD€d2žŠ�cñd.™ŒG…™à++Wi‘à¾~ÑG ßú>!|VpÑC|l_è í… +ž ÜAD.¥¹,'D%H� ÍQ8¹ërŽˆÜSÎmŽ${Ÿ;ˆ¢ëæ ßs }î;œp‡s›ØÜA• DÂCÏF]G¨Ý®/<áØžÜ÷}âØz‚9ºH<â!zAÇá\U‰�ÉÎ! +´¹@ÕFb_QÈ;ÿF`ÛæÕg@KÇÒŠ¦kÀ¨šPƒRVX˜›]·~uª”M#¨n•5íO¨¦­k~@i™Ò2˜e]nSn)Šróf:�¾K_JICµZ¥•²¦½GStsYî»yëÖµ…˲¬(Ê7‹™R£3#ëMPb`šti™n¾@µ +@¡^g–eY̲Óë@ÀbVÀ«³{ LË´ÂÞ¾äì²$¨[&3,V—#Ãæ³c3Ù¡)íƒæŸ±j•V TÑ”t™Yc�LÆcûÓ¬›V0( ,æ4˜±zþ;h­+Nûiqå©€ÖÓÖîî“'O¢…^»»­‰€w%|ñô +ø|úÌ—o…?ú|-A€,ÞÙž)z¥°0{ÿ£øßX,–ˆÅcñÈ�˜H� ‘ +gñX2—L%ãqÙÌ¥’É\lºä*@"™Ìq?›½?{ªòýP6gT€È „¹+¤äÆUDÁ‰Í ·‰�(l• rnsÛ¶9 +ô‘mns$ª't8ñÐE}×ue=D¹ ]a{Žð…‡èqÑë +T}Wê‚¶�Üï"rô¹ê#GôlÕq<îu=ÒEÛæQØžðlD�‡ Aü¿í +µ8[„À³mò`«W3 -,,*š®ë”| Õ¥´¡3“Á“Jzªå*Ó�Ve&¯¦h”j”–i¨Vf MoÉäÏËV`Ù˜ÛÔ´umQN+·nÝ +ã…¥$ùÐxøPÿáC9µW1*ºþ¡þ¡Ì ½W*é´�J-*ï®kÑÈ`åa ¨ñP×õµh P¯†¡Wò½ ëšN+º®ëà™/•J½¤—Ö�’aº^*é%ý¡a†A+ú‡†®ë:5t}]×× …‚²˜JÇõ +­èº^z¨W*•J8R¸^Òõ¼nT*º^zžJE×õÊ·€i2öö.@ëJøIñÁeˆ0à[ -àóö^»øàÁ D�ÿ)˜wÖÞ¹3mÞ¹sgm†„Àfõ¿èù?™iHÄ¥@0-Rɹè‰Kä’!ÈŸ‘»/Of¢i@DGGd³Y{z±ù<ˆT€9 +ðÙgḯÓurmmU6ÕTÛž>Ǭ�ÜáÈmN¸�¶MÔ¨Î𼿠µ:Žˆ>Ê9!�h£-Ptª‡Âãè"AÏ—nD¯k;ª‡œs$Ü“m€°=`#¢´rä6r[ r¼ïÎ޶¼ü."GäÈÕÇ]×ó=®’ì„@½ÿ&`«jpÅa,íæ÷´÷t�RjcÀÀ0˜ñcl S¯0“=*iŒ @dÔ¡”~ õÃÁsºI)UEùÒéôµtìŠl0- ÚШ¶¨iÚæryYîŠ¥Ó V§ÓùÚ‚€±€5�ÒccýF¥±{~ô(`i‹´J ™Í°€U޽ À¬Æ‹ëA£“gü|› ØNÀ0Jlc?ÿEl‡±çúó Ã‚ÀblŒ ½wÀ`‹QÍTÒŠÖ64ŒG,ô·;A‰±à^tXÀ¿Ø…¿R ìyÀ’Èe';l‡í0V7冂‹Vàø·@«X|ú´˜É®ðÖSºÛzÚú½à‹ö^{cŸGÏþÉon×ͺ¹¶ÝÿwÞyçλwB+ðØcæÇŸÿáç/Ž©d.•ŒKSPÑvÐX"™Š‡�J%£¶A|ºêsbº"P’bÇ"›½?¼üs*€MÈ÷ùŒ +€ˆ�Ƕ-l;[ü̶ÑFîÛˆhBP wü®‡âqW :"á6›Û„Û<Ëm[%È´»ž”GD.l(ˆ/$=·çB؈6Ú]âq�GÁ=ázèÚGGõ¹Ê9G�Ìz?ö9çȳžm«„sDŽÄF�‘ íø>:ˆÄ–Æ`Dô\tìбäC°íˆÜŸõ\"ªzÕ,@¥¢W +±ëŠ’/Tî4 ]§Ô¨Tô0%ÛÐ+õŠ¡ëëëúúíÛ…Bi½°^X_/¤ó…u½¤ +…u�Òn/*‹‹‹étêúõëß»:X×Ö5]Ó +…ÅEùêÅtêz*ÄŠ|>ŸH4Jð­V�3"þ^7M`yª¤hÊ´R•Æ=Vê…½:ÐŽ:`R±3îÒÑF‰E"ujè@ °‚0%Œ€ÎXh&£ +záE•êTÓ4íº–Ž)ôÊ=ˆ–‰™&°‡`äƒ  &c»òô&P7ecc‡±)Èd!ëò,À…›ÿ&"xÀÓvëÇ¿/˜€èæGoÕë¦išÛïÜY˯­å'ãÀï6.3êføü�î\¶þÃ@y¥SS?`´*0žH$’©x<—Jf’©T2O$g9@2“‹"Á.vP¦m ¢Bˆìýì온ž�³9!øÔvˆjÛˆHlÛ'ˆ¶ŠžÀÇ®àØu9º]!�£@NTÙV'öý,ñÐG�ªïw‘{G ={’"x’ + r޾ìÝ9¡(L∈6¢ƒYasäÂ%¢ÚÅÿˆÄ."çªÇ Aù‘U�BØHÐQ¹ƒÈ=©p.Y@Öã„{œsŽè9§À³mõí@U¯üBݱèÍ[48‚ «gÏ+,c,,«Áª([²d`tK)è˜NY•JO€F«rEà¦róf:}óŠMŒí0Ó4ëuM×´2Õ–—”eE¹KÇb±…þçþçp/aã• +ø Rê™l@ƒ*)J«2̪0=´*˜@X­“•¼TtJa« +¦Î  +A½@iã­³`̬€þu¨uƒ*¬½þˆRJË?¸®¥¯Å +vhP ?£Qjyù>d˜é|QõÉ'Ÿ˜&ë¬7 @–eYñÙ.À¥g¿¼ã?i‹OÛÅLV�€Öïí9h‡E€yûMÓdÑóÿÎ;wÞY[{çÎ;W@ê�L˜Ñÿ¢dßdÉé¶�x´úGæ$©Dè–¢9n¾XÈ´É™Q8ŽÀûÙ¬-¯©D�) }_8³@—pOå‘û3Bzª|>£ë>Vw]ô\äˆDµmN8É.<Ï'Pdá"r…çeepˆŒúT‰°mÛ—YÈmª‡ˆÜAQt]Ž.þT *‡ƒl›s÷>Ú9±?uœ¬à<œL´ rmDŽÄA´Ñáˆ^—m› ¢*»�( +‰OÈ}2!ßÏÎÀ%@®‹1V¾yk³ +”å ¹š‹1 ¢=³Ш…º–VÊPÖ4-­h: =³eiÜ,ËÌßhýÇ% tU«eM[Ò4myY¹•N§c ×®-, ƒ5Û¬Ò�\€``šP•¶ƒ²‚²X¥rÀ4ëÒú¦ ¥Ì–ï@£dÐJ¥B«UV …@ +Öh ˜e10™¼¼t0�K”  ”¦4e1S(˜�ž¶j c�Y�€‹ Àü3ÆÌ«ÀÕ`YS­oa—à'˜­üYtýÍ:kÈÀ�µ0ì"°ÆÔ™u+ø$~áþKHå’òæ'ÉÄ$óKZ�¤.ös¹D"OÎp€\.s©@Ž8ƒ’;BÍfïÛŸÙÓVà„|_ªs¹se©¬fÝ®À,rW¸®ý#×µñ±¾;kÛ*±1ë W p»ˆ˜ sƒÐ"ËÑ–->ß÷=Ï#nmb£M"'ˆYD$]!Ÿý\ räŽêvѵ ¢­¢ª¶� í€Ä&DEû¾ÍïÛaB)ú»h;*GÛÉ +¹Ã9ÈÑã¹,�<Û&Yõû“ +àPUU%*¹š¬–Ó·Ê”j¬0`LÝKn\—Ýwös£J)hiåOê@5JµEE×)è‘(\ø«Mc‚c×®Íg¦·àƒä�¦iÚÒ’¢¤oÞŠ][ˆÅ®AùÆ`­z˜Á€M°¬C�RJ«[&0öœ[—¿0 ?æ@ÿ�FC¦�PÓZ7ë!PÚè| 2#Üd–eè3�Ô ¤(KQMQÒ±[Xý×&‹Öj°öõCËduÓd¦eõæŽ.!»;o˲â‰x"!ßÿ•"ÀÕðû—ÅK"`}òô7Mó{$å¿wîܹóÎ�µü• ˲vfïèúK¤RR÷O$‰)ÄC›Pbº4—K%±xbÊÂõà“À¶å£�„À'E€ƒ÷³ÙY°9Ÿ£Žã ›DéÙçhÛ÷Iö¾šµ¹�¢ë¢ÊÑé +D}´}W ëpÛ&Y‚Žã9œøˆˆ]�hÎ]ŽÜá¶@‚ÈU}·+|W �¢‹]DßVï«hsŽ*·ågk#— +!2&жe¤ «r¢ª]‡w…ðmû3Â}_ø�º$«"r›d9'¡Üè`÷~×sÑ· q]ž¬?ÕCÇAÇñÙ#ö ªúجš…žiÖác³¦) Ö°åmý€n¦• +”jT[Tôpjˆ–Ã@[–`I¹uóætç茠º5ÉÝ\Ö–nÝL§oIÇPX0=?À0Ñ‚ ò+˜ ¨š“˜¹Áú$?t²ê›±¾±¥Õu +l�AUæƒR‹U^@¸800-ÀxývyÁ×`ï>Ò4EIÇÒòƒ÷¤ÌÀjÁàW{!…2ƒ9þð‰eýÙÎ'ìꀽ¬àùóÞä½ü> `Úß½ˆþsMáºÉê ™t'ìÞy€eYÖclzÿÉ”L÷I%B#PrvUP<ž¹f8@*5-l]Î/PGq_ê€d"LkO6rÏ÷Wø]ò}ìúÜÉBG�>ÿÌžï¢@¯‹žgÛ(8GŽŸÊv¦46ØÄ—-€ûo'„\YдR®ÖÙ ÄL¨K- ¿Jë`² +PjhiE£´Buª)ŠN©®”Ò²FË岦i›Ú²ôߺy3½�^¸ +”.ommU·dÍP.kš¶¤ÜL§oÉ_•%€ÁX#|‡ €E!ÁÌ:ê±�R`[ÑúoZ‡ ~ÃóB¾´Ï€!�`&K€À ,³g1�¬Ýê™À Ì+ùJ (e�€RmY¹y]ÑÀ„ç“¿gYÖ‘ñÃXµé©š‘¥é»‰€Óóç½ 7‹$ß…ü‡‹%@û»3€Ï?o·MVŸw…åB�,™T €|þ_ –eUo*´jZ/ôŸGº c¦µ#9 d @�0ŽŸ*¥ë•ãC´º%7‡,+в¬(·–b—œé*À@(-k›åÍMMS”›iE¦‡4:Œ J_ÿ‚5‚£Á~À€  6°_öÙNðâ諞¦ ‚ô�˜Þ‚`;G ~=аt‚£;êtìèÞ`g|=ø@ðâÅWGƒ’1 Ž‚`ð‚ c: ‚ €�AÀ Ã¿.5€ô G@5JÿXg¬×`l0þ÷cAðâ«_ƒÁ‹Aðâˆuf{€¦õg&1àù%ÀÛÀê=ïYójÄ[@³ye 0 êõ�MÆØÎó£G Œè7°vØN¯Òÿ8{ n²:@^€;kùüÚ%»Q ¿\ÂûŸK¥r©œd‰x<™’}Ád*—I&b‰hùÇd è*�Š­¬áÏó¼l‘_¥ªjö³�ÿÛ¶™�&@t…P…+8·m"8"w›DÑÆÇ�»6GÛý‘m£íúžç zÜq§ë¨Žï¢pÑ·9_ˆœ¸þO}_zrÉcÄÇîcD!²‚û.º.:D8Ò dg¹@Ïè Ç·»Â'Þ$ñ}�s!¸ê#v]™øécäØåÂvÆó„�ÂñÌŠ°Õ |t¤s³DNstðLjOä䡃ŸzdžØ³€D qá@£Ðtº@ëìE©Ð` hŒ±G lÐÙÖuc=¥èzEªSª-*Ô£TÐõŠNu]×´hMQÓi%�þ^:»Ø¸®¥Ô ô´@75MƇh×'ËAƒR‡5GG/‚€A£Ñ€~§�FÀ¶Y§øAá6@ÀuŽJ¬Ñh5hƽéÑ€Á#ƃ~a&{4©Æ%f@¿óõ_°àçƒÁ`ð&�§YgŒYÏ�êæ$õt˲.@ =bu€mIÂ"à�]€Ø ‰}ô•Læd0 �Az�¤áO®ù¸M_à1׎!ÈG<çü²(PU¥ˆ–þhÛŸI@ß÷„‹ÈQxhbó.Úœâ�OÑæÈQ ÞG!Ó~Ñï +B ç ÃmÄ®CDögDEbîù¾èzˆŽÇ³®‹®ð‘#ªDx. +D‡Ç(:*÷�s�Øõ|ây>ñ8¢ã"GŸ#·mt}ÕwD]DÝ¢k# +ôñ±“(½¶—EÛFîÝèyaZ€‹¾/Ç�§6w\´_„Nà‹`RB.~�5A7ÊzVÀ Q�AÀ Ö9bðˆ5‚~Ãè0Ú…²c º®ÓKºž¯Pªý€RZ–±@ÿ>�N/¤/M¦*` ¨N�N8R¬¤Ó·d*h¯×ë J;Ìd;̲vØ#ÙÔ‡Fƒ=zÄ ,³Êò&T· N’æÔXIÞt0{½=ÆØ£0¨Ï„:ÀGR䓃~ÀXoÇ +~XÌ“•¨QcçÑ#&ë½è}mÔ€ê°UÖm ä_Á$�}mYÁ¯ kÇÆò/æÚ€¦ÉBkÀóïÜŒàùe`¦0“™Œ™Ð˜€AƒÁáe`æÇ&3Íz/ê r�‚?» ’°w&&€µo/vä‰dfò\O&s9YÑÇÉx"™Jå’ÉD2žˆ2Ás©ÜJˆ—8@Ìu1á¡ÕOR€yШހÌ7ˆð¸p…ÿ8tò«=�Âæ„žuç¹ërmâ �ø¶'„@D„# +.D‡«ø±¹ý™šU Ç, +»‚NƳÑE +ÇFîº�Q ê¡�r (<ôÐGOÅ®oËҹѨÄFôT_*xˆèß%ˆèâc’èsäòn–Û6¢OmŽ6Gôï{èw…j‡6Â"áÒLlÛ?uø}B¹Lî«áý'ÞÅ' ³¬­ô­2X¿´,•£Ðô>én?’û¯(Ð[Ú#}`1³jšt“l”-hUJ�°¹,k%}ýæeÀB9´nÑr´$LIËÕâ ±^¯÷¢Â`ìHû=ìTÀ€h / ³ +y¨V·€åÙÔä_ª³:³÷Ë^ïÑ ø$ì Èi@S �أП#÷@P˜&•ûˆ ã(|dZ½^¯#PmS[Ö(@}§5€F]"Ñ?–õ˜i‚É*lFƒËbÌ4M“}‚ߧ ð‰e½ gÍËŒÁ®fƒÁáá àã&ÆL˜€£ú´`�e]ÍBÀØ�wîÜ Wƒ¬½½ cÉT.•›€Ü�x<™Ë%’©x<™J¥’©\.‘̤’ú÷  溮páxžçyö„\¡J +ðÙ”`4(º¾íúBxB¨ÈUÇSQHÝßæ™Ð‘�¶J„ðºèéø÷ +…‡ˆÈ QÑóBP¸ÜqºN—£è¢ç;œ#f} À„È:6º®í"‘b"p²%èS‚÷9º2L‘x}´¹‹¸â£ã ápD¡r_2{—g<Ç%Èzݼo[å®kÛh;ˆÂ!(„°½®@Bäˆ1窃6qmÎ?儳DJ!òþU%!ð/|Ì,š¾¹Y·z¦ A‰Mó¦ßSH+TïY&T«@µ2ÀÝ¢] (-Óò¦¦iTÛÔ´%eI¹•^X¸œ ¸E�M�R)Fy 7Ó ±Øµk×Þòò6"p%<Š ×ë5ŽB5oÉÍ^=K@]ÀGTÁ0Ž`Ñ‹’‘4msY£æÏ/@ð˜ÉÀdçà+´Ó|rIøvðù`šûWÀ 8l´Ûív{fð™±�ß Ö@.%Dð6€YØa,•š@.•LÆã©T.™LÆc‰œ¬ ’ÉL2 JåV'p�Ä\×u…‹€ÈìÏñ’(�+Ù,~&éÿ„|Fl»ëû]D‰Šžïr‡{ÈU›pm[µ yìv…ïzBåÈOÔ/àÜæä>÷~ücD�xȇ{÷ºÂ÷9Aôl9‘Ž@‘AÇuÑADÁ‘!PxÜ."ô»(¸�ˆÜ&‚xÈ w1+D´QüTEŸÛ]ßåYÇA +ìfEWü­§ªœ›#r×Ue„ zŽç{j—«ÄæªÃ‰mûHlÎÑÉÚ6O΀ÙÀó=§6wÀ”mÀ^]:ëäÚìIwÍ0à#¨ƒ–V´3{ÕòÐ%-ìæÑÛ[t+J *o.////É�k€9=$—iš¢,É@ ôµ…صk ½Þ/çàÑêðˆ1fYßÂþü—½EùâA©QvÔYÓ�€­ äW°<·‚3‚ ´ +†qÔ˜€(üÛúsk‡± Ò³L“�þ•ÔM°žG `ÂÅÞP¼]¼’0K{ h4BC¤Í=†óÍÓ@j³%@pD €…;î|×€±–›­â‰x÷]!\7ì¨IÇ­ì9rîñOÑáž§:ÜA�sÏ÷<âw…p=Ž‰ŠœÈO„ßçĶ]¢“ëá§a$¡ms}©¾Ì¢G÷j쨳öá/:[l‡±ÁtŒY°¬¶Ts粘јÉÌc&cÖ'ì÷p†Ç%0Íçó|;€z¸é|²Qáí%ÀU T|"kQ6à·u"0¡Éd2•KÆã¹\êF2›vý“Q(øŒ +p™ÄÐ ‹Ç™C~QŒ(F Éf¹#ú¤ëÊŒ_¸]ÏnÖánÖ—æGx]â ßF×E!¢�œÛ6·‰JUDî9ȧXäˆ(?WåçÅ¢JQUt8'ž£ªÄ&mô‘Ûæ¢­ªÄ¶¹ð|Ïsdl¯ð9GûÓO̹=à· !]á;‚;Gî9¶ð<·ë{=_øžïزö—ÏaOåŽïØŽ°»ÂqœOA‰g;¾ð~ÚEÇóîø\ ?åB.(¾oÛ‚s¹#¡áoïûªT9¤!@õ»¾ï»]ß•A\j6çœ�ûYõ>±‰L›B|:h±t€cÑb�H¨Ñq +TQh!¨×·Ê¨¶離TnT´ª¢”«tùÖ-EÎø\ж +‰kJ¨^�-\»­ÿN ê™YVÀ€µ|ѳ¯_ËbŒYV0¬Á Ï}`ä;�Gƒ€™½AmÐ z�õ‚õ䃳`Ö¡J¡!ÓÆŒ� mP; +ŽžŒYVï¨×ûÊЃ/Á—=küúh°z0`?ïÈkÃÛ ô¯™|œ23„Ÿ¡5øõàEïùs™\Ðë}5x|ù¼7èÉ€ÉÏbÌb–õÉT`¿Ð{QX=Æ‚Aƒ `ƒíƽ{ýÆ`§V0D$Àˆà#:;˜Ü ‚^Ã8 +^ ,¶cõzGÁ€•à׫}¤è}†ô¬~?‚ç}VgAPú:°«÷kýÅó`0öˆY,üã׃ޯŸ?þüyðüùóçϧàF<ÏåâÉT2 o}*—J&SÉÜ´[p÷*�ŒaˆÎ!pƨF UI8±‰j{¡óßEDÂ}Çv#'°@Ìr.}HœÈ",u¢ª¾p|aûB zØu8"w9w%ˆ¶L*W?ÍdUõ~F�"€|þ‹OçÐbé2Ø ÷jÔ¹ú²&wì¥P½µ¼S˜P¥¨¶IéÀ…ÐÍ2Ý”·ÊÚ²¹¼´|ëfzáâ’ðÐB0ÕÊš¦,)¼(@,îý ÀÚ™ +fÀÿùËžµ#9?„Qç%]×uýÃ×Jƽ?|¨ë•‡�«èƒk yÇ¡`šP¥ÕèG¥pïÞ½{÷îý©®ë†aÔ Ã ºaä� +•†'ùÞÃpVÓ”°3&5 ƒRªh<¬è†®ëÝ0ŒJI/•JºÌ ¢ºŒÒD ÔLö ýïÿ!Jm/•J%½½¡WtýŽQ*zI¯†!½\¥)Ð)á{xXyøP¨–>ÔuÝ0 f”êÆ�‡ZÑõJ¥R©Tf2'ðÜbò£WŒ‡•ZÞÐõ +­ÔÞi<|øP×õ’þP7Œ‡Ñç�HHÅãñD.OæbñXR¦ý¤r¹„R¹+`Âb8A€y!pÞˆ"¢Ù¬,Òm5Ôòä<ñzˆ.J—¿‹ˆ+“×ÈÁ´ º2!Üë +=ŽB Gô=bÛ6·ÑF›g´m”QÕFçS§XäÈm¹í8„ çØràÐsGBS×ó|áøŽã9÷mäH®:2~”p›dmÂÑ%Â!A…Ç]á �>w}=Ÿ#'ÜA�ÜFŽ˜õºž‡ª�œ£ ¾‹Žç +ä(¼ìc×v!mn&­@Ÿªj6›™˜€'wœ�éa½€Ñ´F!8 +ûÊ0àhÐ`òÁðå× ¬4àçÁ€QE£ëÁ€1lÒ`À‚c�`«Ê¤¶·©mšZUI/kZäòŸX�C‡€2ÀƒÓEI+éôBúÖ­[7oÞºuK™e»;sŠù„üÓ H£N‡cAÿ!cá32øjÐ`Œ±ÁQ£fcÆ`°M«@«”6$<ÈH‘Fìcµ4¥m)Ä5¶¬Q«ÕjÀM`Êz`÷îÝ»wÏ0 ÃXg V‰:0j5è³Îp8ëL2€©æ/ô¿ÿ‡ž¼ÛƒØ³  �Á€É?×Ñ t%] >úè£�>ª l°vÄ j4 Ø`ÁÏÆ ¨uXÃhM­L3 à¹E�GÁ#Æ;0˜a4:vÀ Ñh†Aa._f‰x<@rZø'“ó"À• †˜ Ÿê€³³YޱíûÄ‘j±9ñe#0+9>çÈmNúNØç³m$ÄvºŸÙÂ÷}!|ÿ1®#DŸûŽÊî :„•›ØÙ,Qm›{œsá¨Bضã|jÂù�äŽ'=�Ž +!?å!ÂãÜ÷³¶@b䪣:ÈÑF¢Ú÷í¬Ì þñSRÄ0®å*`â DŸ#‘ýáq‚Ñh •Øè¨�].\]á‘Ljˆ'a@:±mÕANîߟUGþ©ãˆn~zÖòùÅXl1ŸÏß»·VÊ—J÷ +…R©p¯P(ò÷Öä‹óùÅë©B¾¤—ò‹‹ë©TjQ®ÏÈ¿»˜Z\L-...¦®_¿~ýúõT"võÉ¿+nÜ^L-¦R©ëׯ'.½ôÍ àBˬgY«³ ö�¿ìY,€š,s­Àúå?õŒ E6%«a{Ð�Ü�ÎZûÈ €GÀä8Do' %aGXc"…$dÖ…À ¬{÷Å5¥55g“æÆYÈ>™h¦+¬Ìë�¢}–Õûß¾2¹�`'ªÚëì«« 6™¡–ÛŒ=`ÁWL®Ec½Æ¯d,Ü€5Õê¬Î,½þÀG5 9³EgÉd-ì$ãñøÝ\"‘Ë„­Ÿ�\¹šÌ€;/†­@"€�j¢“E›Û»"+›y6Áÿ—oû¢À¬@´CÆNÏሜ¨Äv}Û÷<ßs»(\]týlX8Ü·ïÛhÛÄ!\náȪ¶�ŸzÜqPp.V„͉msÛFÇ&‚èp�£cãÛñmGvmîy*¢lA~ŸBlNTU½Ÿ!„ØÈ¹Óµ ·QîE�sŽÜv„@߯b‘Û2€PåªæŽÚ(|Um9ȹ·â»6w\.“¬‰ÿœp›s;"a€Ÿ +ÑíM΂¤Ó›Œ ‚£„…æQÀ?c�Fçh`  ŒR«×{ñÕ@­P—M)¬Î(ª3(4EÓ%­hвpILëu³Ã˜P tsyYQªÝ¼•^Hß¼yó¦Ü)ô'àŽuzÂ}Œ¾pÑ#¾\#ê +W�Œ{œ8�*i¬H¸çpιãØ6· ±íO?³?%êgä>‘6bÑáBpz|½¬ ùqlbg ’ÿ?kÔÜÆ•e‰Â`D]*W1ù1É×F î��"‘¥@dDÇAe +N3GèØéj>å<òI¤õ2ýtñá>“=~Ðo8LYÙ*öè +%]±>+ô .…jZò›Þôæg|'’eWÏLÊa;,š)€8+×Þ{íµ|_w|ß×-¿Ó±â¥2ÛÃ×…šÖé¡…žþ“Δª•R÷ìKV¹nY +d'˜þÌv3¿�¨ÌnH«Ë·òÌÏü,ÏüÝŽßñgup«Èÿù¿“³B ä« !Ž)!LÓ…hžD*Èž(Ä(`£)S’„ƒ9oÄCQÏ:[q/ƒÍugÃY]yo ˜ÀÀæu†½ð&g®Ã؆³º²º²Zǃ¬4”#ËÀù`˜àþ¾=_›D’´áeì'F$GDˆÉ‡ÀˆˆfL²®Í¥}7ªä‡ß—¥= +ûï1€ñ¹à+’íö|¿¶UÇ 5% 1�‡�$ˆUºdgz5T„(,× ”DŠDdÊÏçãâ 4ôs ’ÛOG#$9–u¥$D"3*ÿõXÒO0qê +�h¢QJHû$«ƒaœ¼ÓQúøã�?ùä}ô‹¿ûä£�×–°Vw—ߟÔû@ïq€†>ƒï4­JÇ.ÃØ.€mëûÙl¦‹©žîj­UG³Éäpr»ÐS]´2­uÖi]VZO ¥}](¿øvr[Ť˜vŠ"¯í~lBÀD©Y¡}_)¿Óét²ŽoËÿVGM•Vê–ÊUGëÅ¢’ßʲ֮¶ŠZé\©,WyæëofY–éV–©,+òÌ÷?õ}¿ã+?ËrÝñw;~–)ßW¥2�M,w©_‘ÖÓÙïgYmOÜQ¹.²ZªÔ™å¹öU-*švr�e™ÖºÐ*»l5Av?R)ßÏ +­ýÙì´øçÃÉäl2Ð�;㘦¦oDš.#sPõÁ~bàpÀT„˜¼&‡à3Ô}ým»lõý‹ñÞ»ô¾Ø÷ÂgÍ&o:cëÎÊêÊêÊÊÊŠí®4.˜Hùa8_$¸/¦Dci†rAÌ©D�7$•&²i?„)"¢ñXJ3–F’¤”ªä_�K2 ÂwÀ;%Éãà{k¸ÜêC¨I$qÔ­NÀWïödy^`ˆ(ˆäQð|,ë(” ++ó“ `hÝ›)8Áý}B9&’R~ý•”%‘D1™?þ‹ü  ‘eŠ) �%u€*Ú÷L ~ˆCqñ+~üñÇŸ|òÑG}òwŸ|ü‹�­ÀòÄÿâŒÈš¿ÏpQ#°6RZëN]dY–e‡µ §.ZY¶«[jv[OÏËËZg~kêÛ…Z­§SÕº}8ùv6+tQøjZè‰Êõ¤˜Ö F_)¥ü,ëèiÞÒEa÷�µÿ©¯|ÿ7YæûþB}ägYVÜÎnå…ÖJeZgZå…R¹Ê´žj�©¼¥”RJgj×ou:»-?ËT¦óŽÍT~¦}ÿVm®uGMk `¥oÏ´ošJwþQk=™ù C1]LkÕ�žvô7YIz«•û~Ç÷/+k‹�©ŽR�BéÃYž…¾•‡ÿm2Ñù™óŸ4§ÉãTbPRе D)úÑÂI a}â8Æx¸Å¶âx‘õÃc‹`gcùˆ ˆa!�o3¶Í›îZ� ºº²ba`uuuµñ¼sø‰¤,¿.˲D2øoÇ¥<ëË9² +z2 }E$„ * RUÑu‚Ýyøb±è€p#I£zºgU.²,�ʲ¼/Äýäß_"ÄQ²xZ.2‡£)ÇV(�©”ã±4íãÐBÍ©²ÂzßHL÷ØÎ%I)Iþ®,˲¬«èø¸´)i§@H‚äQð\Ji…ÒÈÒŒ‰æ¦8´?¶°þùY$øl˜@ª ²¥Ðxlß>S–eYÒèëãߟ"M‰ˆÊ=#I "ñUYš’ˆž'£˜Ùœ¹ÓY +`[kk6| kËaýïkŸ|òÉ~—¬�À�@ßRUïí²NKç·—Bþ¬åç³âòíÙä›Ia‡|~«sÙÏUÑQ‡S­´žÅåbVhýÍÄf~(­”VÅíI+ׇµ/ ïg3¥²ì—­]­|¥3uËò€Ìïø¾ÚͳÚpVä3­U–å¾V:˧™ÖêV~+óóBë"+¬˜¥�VëovýŽò³¼“)ý�¶{ú�¬£üLÙ¦ƒšÚ.€VJå¹Êt¦|¿£,ÿϬ)‘Ö·'E>›u:¾Ö¾Rߨèa­ò–Îu–µZY-V™Ò¾Ö~®À?Z«ü³E �0gƒ‡â¸ýŠPÔ§i'((I0©Ïs…AüY<€p‹³>[ø{1~ÜzàÝK` ñ èqÎk6™³ùÎÖ�ý¿Þ)Þ÷1&iJcä×eõÿ­,ešžy0�ˆI–’¤=+²<–RV’"sÆÙÏ©ûHpAiJ4þª–Í}-¥4¦ü1ù÷ÒHÂtÙ˜Ž d¬›ªüý±”4—28¿%<&±<+ &ɰ{"ì‚"I²3#¥4åIÿÑï¿–ã/p´_ÃGŠH˜ +’ÇÁ‰×ÄÜK)�åq0:w')ÎÞ ¡T‚hߪuÆ$¥4æë¯¥)�ñ÷¿/¥L‘�p4DÄQŠ)¥Dãù^iäB³X–¥”²<ŽöÏ�t)Ä⽬™O>ùÅG}´¶öÑÇ—OÀúòñ/Îh�>ùäÓ¿ûäÓÿüœ€¾ ¨•®‹€NG«‰ö;y+Wõã^kíOóY1Ó�ÉÄnÏ+¥UëS»ÿßÉí�ŸÌ:ÅDk�MЉÎ[Ö^CëÉd×Û™Ÿy‘*óù7­Ú‡Û×�Vk¡«íd»öÐ)=ñ'íû¾¶f#ÓL+ß÷³<ËŠ<ËüüÓNǪ;­V§uù—­ŽŸùÖ‘d’uv;~§“ù¾ïãû™ë–ò•o��µRþtVø~¦fµÅ  îh�M&JMóéÌŸù-�é¬ÈôdRø�LùÚ×S¥w;¿£t–©Næ+•åºP·Š¼8<̵R¹:Ê� "LJ¬{<ˆ€C48!"çl•…Ö0—1ÎmBί1ÎÛnòæ6cÌÙXwgå]%Я1†õùo²»î8޳âœç ++�•Æ9ð~š�eY³�çø¨üzL"MóÂ:÷˜$%•ÝÌ%$Y–68:8³ídÏÿ¢5—$ &‘Y<ÙEjÝ=í�nž<*­�@}‡´ÞŸ#i¢yÍ4–w’f‡êÜq,,_¶*‡d8DoNDH‹NåòNGýãRJ)R!jûˆ‚þ¸sD$HúB|UÚ7áØ[`ŒToI L’`ˆ˜”öë; A‹F€4XÚ;á‘R뇩 ùÕ‹ÍBÐq)åï¾–U”,‹ ‚}ûÎD#Ö~òÑGýâïÖ>Z2€µµZ °f-�N瀟¾ß8z2™L¬èt:íØö–V¾¯•ÖºSdÚWE®[‡j¢´Êt–e3=�LfE++&Ö¤[«ì²oýyóL:S3=Sþ¤n©éâr=%Tz’iߪ •=ÛÊ÷/ÿ²å+uËv~Ùju:­VKÍü¼(²YGg™ÒBß~ˆ˜¦S±O²Ü1D"�’Èk{~Öñ/ç�Në—ýÍ®5ïÎôä›ÝË—/·²–ïßÊóC­µïw²L©ì;üÍ4×Ói¾[Lg…o3…•Ò~®•žL”žú¿ù§Ýé4÷³o2�i­•ji¥üÌÏ”Êk¥±Î}¥´º¥µÊó¼øç.&Z©\�jÀ�¯n„qF$Äòw#A$"Ä`×wxØãÿ-"RtD´¿O˜".}HÊñxž<*K))µ=qÚ'ª¿ U�±ÍòTS–eùµ”¸ƒË]ÊQˆc\@Íq¼cÆ4BB”„ º¸¡¯dT–e)ÇöOgÅÃu¾ó••Þ +a� J)ɳÌ|¸xQˆŸ!P‹VM´�Dû¸/„õ�ÆD£ú[¤Óý¥&XPÕ_ŒPÊß—_ËòkYF{„˜$P-ï_7÷ÉG}ô‰Ýþhyàí ðã�q^ üÉß½Û8 K(° ™VÊ×�Ú³7×3k™7›M �鉾\ØÁ¿¯|?ŸMt®•.:ÖÐ{:U-­­HO;‹ À,Ë:Ê÷;YžY¦í^@룖¯§µ,ðr«µ{9_Ø�vÛKGi€E­·OÓ6Ëez$3&$ˆºîÚåË~‘ù¹ï·:�LeßÏv;Jç-¿ÈóYGù¾¿ÛÉ|¥c— +r­”{6™þfêû*Ël˜¡�5ÌgY®µV³Â6Hµ_ï)•ùYËϬ˜)WZݲf$·ü¾=ÑJ©¼(Ngä½U§ ¢ˆìÄ|I‰‘l±ÛÆ14›½0³Å›¼gà·½Åv_s›1æ:ÌYwœÕ…À÷, z×í:ÛÞæ[n×a¶°ÒX–Çï]fnæ•1GóGÇÏÿ?®þ@ÇÕ£•å£ãJ¢ŽhN'f~\•%QYVdNNæ4¢‘©NªÑèù��ÌIeªjnªò¸*¥©~˜Ÿü¹JÊãG�þt,͉1Ue¨2æ;šï“¬LTU?›Sß?yTšŽ°wª*¢“ùü¸*KI•©Œ99™›}ƒssòÈ$Çzdª¹1åܘ²ª*iÌŸæó?ý92Ç|ôÃqeN ™Ê�©ÌwTSEt<Ÿ›#çå¿=*Í£ù%ÉïúîóùqU•T™êØœœÜ?¦ûX™ùI•пž”Ç'æèèĘã£ãÊùãùóú×GÿýÑI5þ¡"slŒ91æÀ™£ãÑþIõÜT%=2?üÿÊòþüQEQ2B"CÕÉóùqUÓW¦š›òý˪.«:Ã>ùÏïÍ“w@å§àgJ«ÌW™ÖªãO³ÙLgÚ×JOµß™Íg3íS]èN¡³NK羚S=± ú²íëéâò´Ö*å·”ö;�N–ù~gZd:¯�"ó³Nërc7Óv­8›tZ—}„¨ë%HDÁ@’1B�Ó<0ˆé>.—VSΛé¼2‚°è³žuvwýÝËÙÌ÷ýÛ*?Ü=Ì‹¢ö2´NäZû¾><<<,gÚv —YD*Ÿu¦:×*/ +íg:¿ÕÒ¾5#VªsYû~æ«Ü×*·³„<ïÌf“‰VJ…Ößÿý÷ßóÜçHhŒÍËÊŒÍ�™GHÕ*2DÈÙ6Ñ±ØØhr<¾nZœ€nö8gÛÐsœ&Û`ë瑩Œ¥ ^ç|€×8cΆÓp+V4°²ÒX]i¬®®45Þ¿>?'?½šDý~;ÁÎNìì;;;žAðùÕ¥†ÖêiûA\ý<¸ºÓnï\ ¢À v¼ vÚm/‚`ggÇ~ý½äsûÿìV¾DA]Múý~^`¿0v¼��`'ö®îÕ"á ¢Àj…í�®îìØ/ìîìÁÕúN�·³쵓~?©E¾ŸÛ;Ù¿_öûý(êÖwÚ ‚�û§ûüê^Eýåk +¢ Ú{µíy;;Wƒ ðo'ðïªçÙ×äíÑÕ½½½þÞçÁßÿ}ð÷õ³¾_Ô�úQìÔ¯Þ«ÿ� ¨ÓV,û¢ÚíoñµÞŽ·ì´wÞ¿¼�>úä“�±h|¼¶4Xûø¼øïÞŸœc5Èó|YdJ×rw]Ì‹é$SºeËÿbZÌf3•Mì8 •ëBå�YQhe•8~>UjÖRº5[ljÕju>½¬Z_ëC­2_é\)eiZ­F'Ï”Îô7Û kGílH&bb矌_J!Æ÷IŒåXõkù™M¦BÄÀ—‡±”%2èÚ®ŸµZßdS?+¦j¶›ç¹ÊoM³iÇW¾úÿ*¥3՚ݞæS=+TË_ø*¥”ŸÛ½b=Õù¬Ð~æûùboªhÝÒJ+¿Þ,TZ³:yÿzôü¤4†Ì=cn“ãÿqò?~˜ßǃÿ÷€ˆF4'¿#š#cÌ|>^ÝÄŠæ'•1ÕÁNò`>¢ÑhD8Ädt"ú£© !�ÐÓS=úó£2Õ|~r27æÀTæaD>ùž?¢Ñ‰!¢›Õw8Ñü戌©æ�žÏ‰ˆF£2ÏçÆ|$Õœì�“á&Ɉ‘ùŽçTý—;æäÏ'DTÍ��OæÆ�)©¢Ñçôçç~>Ÿ¬îÂdDTÝ= cîÏ8ynì‹5æùÜ|gL’TóƒÑMí㇠�’©2ß›ƒV†¢‘™ÿù¹!*ç8996†Æ†ÐèóÑ~þoóy‰ß׺âŠpˆ42怌™??±oCÏçÆ˜»£=37x“F£›8%4:Õ^�»~ñwkýâ£÷ÀO̓ìCÿx,(ŠBééTw2?Ë´í©³¢( ][u:³Ùlv8ÓZù~–µò©�×ËòI +ܱV3ßïd~§Óie™Ê:—[Ê÷s_ù…â*¥r[>tZ­Ëµ¾É4 +J‘hÔÝÚB‘.:N(L�9Ÿ^ÔG*ËÊ")ðĶÓIbš"¥µ–;Dq$Ç‚3Æ]~à›Ì÷ý‰òõn®U–i?Ë;¾ï«ßøJeY69œh=Ñíç_뉞L¬KjÞÉ´Îs­´Îuîû—Õ2/yÖ*´Êó¢öJö3¥ò¼“+}kšçVA­«ªªæ¥1±³ÑH‘„¬î›ãê(1¥©*YUÕ|.…Œ8±�êÊàœR–Æ%‘Ay<Ž0¨}­ßÿúyO€U4†ŒLââ˜3æ8«ÎÊÊÊêÊÊjc¥¾VWWVûÍÿ¥”¦Þ=%CôŽKyDdl×{ùIÕŽ9’÷%I$’÷�Ù2šˆhǤg²††˜$ˆdŽ$QJ)RT‘”r,¥‘’l>ÊXUÑ£ßI)„\†ª/Æ&:*�¬H¦(eyüƒ UDGÁˆNõ¸‰íªYJ"¤)8!)%™±¬Õ½bLDô}pߺu½³¼O42ÇR–$V²<>‘‹;�ì%Gg^"&„B–†Lj´cì�ê>C½Ã;6h¤”$Æ”œ¹SJ„d’¹”ÇD„G²<~t´PS ÷Nç(˜Ü’‹Sç?ùdíã_,*€3=€O>þøã�ÏL>ùä“Oþî<hLêm¾3 õ|¥t–©¬•ë‰.nß>œ:Ë:Úß- +ÿ°˜Í +=SÊ÷‹Â/T�Ph?ÓJuÔT-‚‚üÃ"Wy¾Ûñý,/´¾•ûS�çY¦µ¯´¯3?óýÝVëòG i>Ä @·ö8µ_[`2DCdˆÌÕ$ÚA?©¾Ÿ??1µ±>aŒ1pÎ<Û8!Î6yb@ø™šê]uKÝÊoeÙ­Žßéd*SY¶[ËnOü|澯&“‰R¾Ê2¿£2e#�‹ÂŸå�…8IëVG©<×y>S»¾Ê²L«[ÓV¡~£þQëY¡ÿ«Özá:ˆë¤ÛyBR +!HQŠqȸKað°× L �qà1‚ðǷ™ÃØ[wœÇi¼#XµÙ€’CC¯rÞܶñà+뎳î8õß–Ž/ºN#ø0¥ƒ~)¿J…�KIz‚‚(E|¾s$I–Çe%¥|ô{)l«�èŽW�ìÞÀaˆ1cDý�ÌÙycŽŽ‚") …gï$ˆ«ÈH’åsy,¥üïe)Q¤H£t1‹ƒ$ÁdˆˆR”"âÁÎ|±K?&Abl]?Ò*�ÖZ“zk@¢iD¥$ùHÞ7R–¿´&§¦¿èÜ&p#IB$YJA)¢ �S/uêSŠ©IÆR~E‚ÆÉpxêjL)õKC²”¥‘òèø¸î ¥)�’j„ˆÉ0�†Iv¬ùÞ/üäãÓÀÇŸÔ Î Xk·p?åŸ4&çÏ¿E•…ÒS¥;Ê&eæ�|2Ñ“ÉDÏô7Y§¥¦³™Ò‡‡“ÙL+ߟNun�x•nÚoívüEº¶>œNõL)¥‹,ÏõTk�);$Ô‹ê?ó}¿Ãù¦ã4‰À ’9Uc3–î"$ÚH!¤ô€Í%�…â$(K# Ñà0êv½ ŸŒªGUE €ooóÚŠ—C›`=¨ÓpvU¦TîgÙ-åïZ¯Înm4Ѿž¨él¦ýN'Ó¾ïg»*³V£Z:ÓyQø¾ŸeZ©YKç~®n©<Ÿæy«°Šßh­òßä Í„BPŠ"\ulE/(ô•<îY»ÊÕšƒðºËÖ×�ÕÕÕUÇqk†ŸAL1t9çc¸ˆl2ÆÖ�ÕÕFãW°UˆãQpŒ!ä!o6›ÛÍ� guÕ>óWWÞÖ#hU|à’Ö�Žу¨”¥ ”¬4] &õÐìdR–Çå×e}Xö‰]À·ïR€dJOU¶«uæ«ÿ–û¾µúPýMÖÉõt¦‹Öt2›(­¦3=Ñj:Q*+”ÎüL«âòTë¢.™µ.¦Å­¼Ð¹ÖVD¨²Ö´PÊÏU–+?S�Æ1„!°µ5žŒ*#Q ®ˆcŒSF +))J0é;ÁèË1 DaúRÊ£1�D¦4'剡~Òm··ºgÌÁ"IBJ3.°ÐSA#Œ1÷Užç™Ÿ«Ž¿ë·rë‚àûÚ™j­g‡zÖjíú�¬•ÙÑLçyVäy®§µ‰ö³[*×:Ïó¼ÈU1UÓ¬ÓÒßj=És­íâ!ÑXë§$PÖ�[S"$Ü&c뎳î¬3¶Í!Ž ð¨Ç9ï…¡U÷l°ím¶±^çŸð‡Ç¢ qòo6›ÛëÿŸ gÕRþ;\]m¬Ö²À‹?X(jo˜Rdd)…CDDHt9Mç;FʯÊòk)�”_Ù�0"â¨m–À!~au:6_£ +qñ©– =‘R–ãq}§%P*¾�Œ¤ñQ=ÿ—FÚ¢‘v–lúQ‚€ˆ_“@Ä)˜ŸJ…éôNó€¤$i'òh–nƒ‚èF%IY–_×:’v)ËDÃe±ý$�´–BØ;™€R{~EÍòä˜H¤ÔGkꃘœÞÉê¢r,eYÉòwõ>D¹@Ö ñ‚_)~t>Y8,º€kç—‚­&¨ÖL&“w(@�y¦¬/žŸçùáô²šL&º˜è,+f6.Kù…mãù…žøú°°y`þìÛü–os•RJOü\¾Ò~žéL©Lg™òý\©,óµ&L©[J|ËaÜÀú5¢ˆ›ž‰ã8¶>�ã?DA;!B¼!$¢À²/„�Q�$¥4¦dˆ�9óv/JåÑH°&7€€@)Âjue~«uKOoe­N«ã[[ÏŽ¯2_«|¦•Ò¹nù-åûJYð4Ó…Ry®T®ülÖÊu–åZå:Ÿæ­iq˜³i®üoêÂTeÙ2(,tœmˆ1Åâ @�A)k�€¨(µSònö¬÷'çœÀg1ò…Ń8´*  ¶Íغ³²²ýž%ààa !çÍ&c¡­êîÿ‚4j4¸øü§Dõ¹$00òˆ¤ePg +s¤ç;RJùû¯KYJ9›åƒŠ¬B'AÄ!$HH(ˆjq+õÍ¢™pj1&D: +HJ!Å;-!è(2u®—”DãÅó÷«`y§ÅÞ¬ZÆ€ˆHíDÜ?ÓM°~ÛU@’N% +´øm!î�FRRY~]–RŽI¥ªÆ}J—.Î�@bɼ¬›&¨R˦$ÆB…(“TJ¢®i "¦Öó·4}»pQ–RJ’åòí%ËÞ„UN}øº±¬jSÐ3¦ çÏ~= زWc2™¼sþk°v~GçSuøO…nM­íV>- +�Å¡¶ÖØ:Ïýì°ÈìáÈ|ÿðöa¡UËNÏ­[ˆÒ~ö•éÝ<³ö>*ëhåwPàXQ;ò¢6a�9ÛƒˆHiššâAŒˆôHb%8¯¢Ñ��$()âKúJÖ<Ÿ¾2$Œ‡hUðŒ9×è;s2ª1é{îÚZÄ A"‚¡Ÿ¤ˆXA¦•R·üÝÝÎî®uöV­Y¦'“ÙañM–ù»*Ëí2‚ÖZgy‘ç*³úa_ïª,WZÛ�a•y>Õv9ÒvAf¹òýñx<4–¶`õÿˆ£S!Rc;ØD„n +ö „°v ®C]çœ_c<æÛv¨É˜ã¬¬4ß-–à…6°ÙÜpÎį,½ÁjH/ºP�Ûþ„  $)l®0"XKsÕ”æXʯ-_Xœïœé® —š„Ï £E…€(p,ü|ä LjQ¨3€ý1"+§‘RŽÅ™;UÁ¹;ÆÖ«‘Èî ÚSþŲ& 1-©AJˆV�/èGU}§±µ ^œÊ½3rþa’Ø•JŒ1AåUsºU€õ[GD&A"cqºq„‹ÎGt\þ®\ì^|%—<ÿ &ÉA~N`Qò¯­�®|ò‰ëºîÖ–{åŠëºî÷Ê•+®{åŠÛøö[K&Å»`…ñ¹_h¥fÿ-÷;™?�u¬‹�ÒJOtÞò3m]þ +�}ªTæ«éìP;ÓJ]Öµz×Ï|_é[™Î²]­}Û$ÏZY’ŠTЦߎÀ�÷Ø:_GSDhC¤#1êzIMšFˆŒo&(„�‚bD)$I‰ˆè!@ræ: êé!ï!REAÐn·Û]€ ¢±! �óÄó;~–ëÝÝN§å·üLå¹V‡­³L™ßÉób!÷Q»vQ+¥ó<÷;Öè8óuV´¦¹Ö3+Ê; “´\ùõY!pÖ¹-1A@Ñq‘RÛi Èq‘ì ƒ­1D`YA“óíæ¶­6Ö�Õ•�w`…ðç=Î9›ÛÛŒ­Û`[ù[XŽ>ô¹$PÔôÈ�&F”B‘&V8<=ûáÓX’6#$"V;gÏ +!b:ÂpHIôÝù;¡ BAäýQØÎ¼¤4MEm»9&�~]ï( )jý$ˆÏw(=í˜@b‚Hè�œá5B|Q{…š …@$R$Ä´ö¥$©j'O;0¨µ†h¢ÑRu6Ä$I ~¨ÇC$:ö» +‚H&$„H ÇõêQ�(@•õ�Æò\ó–°“`’$à× YT/ý¬9ø/œF£yÌu¯¸õuÅþuåŠëº�Û“I ÅY¸m÷eu®g– Ìt§“ç¹îLµm’i­ý¬“k�O&¾ŸëÌ×JO‹BOŠI1™d·::˵βüŸô2EHguÆp…URa²à�µÈFiÈ_z·$Û± Ð�è;¼?­W.º67ûiBH�(„]¦D¬‚a Nƒ"ö½Þäip)êWˆ˜D^»Ý"�€XE^rëVžu +µÛÙíd­Y®tQ;„·nùZûþ­ÂÆ�ùY6UEžç*Wùt¶ˆUÔZfª¨mõ¬5=œd¶ÂÊUÝx¢¸f‰¥uH}³�ŸÚQ8¨“?³õsp;ûã|šÛMÆ6ìÀYa�wÄÀ+ô�FïYéàÆº³úW àj�«6+hõƒO�ÂŽ«ÈJ1)F¤ÚÚÚfÜ“Á6}%„ ‹ñ©!ÀÓjçd‘ˆ8D¼1@ÄÅVbX·0$Ä…h•ú¦},R¬†ˆfq'ë@¡!aç'cqæ¬< ŒXì$ˆ£$©7‚ëwñê]ÄáÒ\E:&A©8*D”€X-ê0aEθ—Ø; YO ìk �NOø�!â0†Áé�L{´¬[쫪_SS´ÌUXt6ï€Æ•§ÆÅg^á�YŸBÄ$ÀÅ¿/¹Œ�-¶X—³-æÔ°¹¹é^q777Ý+ö²8Ðз'ßNl#p�‡¶-¨¬[–šæÅ¬.Ô4÷ÕT«:&Ó÷õ4Wup‡VÊÿÇéDéé̦nu2¥“ùÓi^øê–ö3_e¾ïï¶2BI4ú[/: c)%B< ø278â1„Dà\ò€Ž’ø—ß ˆÈ=Ç0ˆDŒñB Z3 +ƒˆ٣ÛÌi0HnÐ 1Î8¿nHi4¶ �”Œ¬êÍñdÔÝ+M®´ÊòV§ãçJÝÊýÜÿ&Ó…ïgZûªÈ¦y‘«Nžå™.Tv«Èý<ϧÓéŸù~–»z6©+ŸBgº˜ÖæzÑ~¬¯sªÛ‘H&²Ó?D:]-‹ê!,À ‚˜×ÀclcÃqgeýÝ1`8`Ì#€�ó&oòm¶á¬4�ÆêêêB¸²²ÒXi¬¬¬®ÂÅW­Ý?&"Â(EDÇH5¤©e‘H±n矙¨Ï=s†Á.šgP¿|1 +n&IIrÃ]B´sA¯J–ƒ}F. ­¢ a �Õ/K€Ó¨ÏhÊq�5CLé*A‚ÖYkÑJ“$ÄQð‘"BIBˆ4ÅT @“IÐÐBk~îEõOK€äØ?yü@bÀK’“äÆb—W –$ˆ’zqÌØ’$Q·FÇbq'û(HëkR�¾}pêr—1ÏqcÌcìcŒ_[÷<×uÝö×Ýt]÷Ê÷Êææææ¦ë6”¾=Y4ë$,}¨u1™L2_«\…Ö:S¾žj¥õtÚQu¤�ïwü©Ö¹VJûe+àYæûZOf=Q-�Y[À<÷ýL©\ÏŠ™"4óÄ»ŠT}÷‘�D_’Ðû:æŒõQEWûÉ ‚8–BÊR’8@ð€7Ù6oö8瞈cˆQP*¥$&€ˆ}DK˜³Â ªѰ½Í9À0AìüÂ>XÄxl«ÓÏ0á?b1óó[ëNÖÉ:?kåYæûõm¦ói6ó‹LYpîßÊnå…ÊgÚïØµC•)­þ«ÖE«(t1õ§:›h]Û_ + ××·°öÈÈN¤ÿ^ +a?Ö!Ëͳ@Œ#à „çÛ|›m3¶Î6gÃqœ÷£Á bbCÎy676guµ±záuacé¢!2¥±[ñ‘Àô B<׋?)¡ "< *‘.K\¼4ÄjIÔV;˜ 1MÏ™ð›`”$‹8$’eI$„¨¼±8ÆAíÖ—¦(0Dx72u¥`1Ȳ»ñn€´üöI‚”ž [DšïÌ“aI$ËJJÂ'B @�òK!Ç$D]p �p,,íXFyPJˆ´7:­Ä!A˜¢ˆë]�t~Õ$7è ISY1VEŠŸ )ÕwJ‘QTÕ?÷~¦"%É¢H0¹1DñSçßÙ\À6;+�mî±Í+®ënnº›– +¸WÜM÷Šë6´E=ÑZÏjÈnûÅd¢²étZh»ÅÓQ³ižk�kåOµÖ:ëøù´ŽøÊ”Ò­Ü?œM[E¡•Îôd¢¿ÉÔ®¯gZe:ϳ\k�ieˆ íÐAÛ î[Vl·%E +r67ÖcEAB´OvåRÈ/Å—BHaÝ0®q¶î,$­��æÂHc¬ò ‡8Jl—€3öë† €äY¼Žó–[ž±E‡_ +°6ï`Ò'IÇe6Í;¾ï·:�ޝ¦�ßÔyÈJÍü¼ãç™Ê2=¹•ç»¶ÚÏ +�û….2?S‹ýFíëBO3•E6Ѷô¬79U¦�ï2’ª>U¦:92Tÿû?¾\ÊûUDD£$c$U$¥1xPI‘"ðkœ‡&ãMÎØúÆÊùM€FÃSJ8@Qðp0›M¶¾ê\|áè¢ å˜d)åX4w£”å‘]©§”ÒT� Q•%ï :0<¥ÑN´1á D<6„äDI2D¤;€†ˆÊÚÌxõ�J9–’äØv"íU‹Î£-Ý­©Ø¯‚‘u]¤úTR²=Õ”ÌÈ3I2DD¬HÐÒ},º/„½‘íØ LEJD#ºFH)Ú…¾KÈ-xÀ‰m‰¤‚Iš«‹ßª:“ˆHÍSDB!å—’ÆÒZƒ� ¢*2µ„Rû}S[$‰e‡TÏ7þ$?ëŽã¬3æ­mÖNQÞY°Í=¶énnnÖÅ¿»¹Yw݆R”>ƒßN2Û,²™Êr¥:¹ÊµžåZæJ:Ë|]ÌüœÎr¥ÕoÔoüÎlV…îÜžd™õÏÊ|?³Ù¾º(Z3­ ƒv`uyœXyßX +"IR ÊXÄ|£q ÈR/"¬€òK!„À0f¡]–í!w#îu=/úý„FûUûdFˆàÌq ’Ä” çŒy<²=õ8@‰X’�¥´kÖ˜" &ÉXVIDÿ*ÉÙ´“·:~Ç÷/g¾Ÿù�Žòµšey®v}_åVÄœg~®‹"Ï‹<ËõÔ*ùJiý©Ö¹VŠöÕ«W¯^½ºsµ½ÖhüÚõ<Ïóvv‚v»ÝþÛňõÏóºA7hïìx;ÞÎŽ·°öÚíö•öß^qÛ[[îÚÚ¥µK—Ö«^®×¾rÅu×Úm×®¬­}ø‹�ÆÀÐñq)•Dôo£„$™ù±1²zôh~\ÑýÊÜ?~tTÆZZ#b5?ùãóùË꘰THD£}!CTýùÏ<dÆò‡““ƒ¾göGóù ™±yTʲ”D'�‘dÍÍœŽæ�æÇÇDT�Èj>ÿsbî�Éœ ¢©ª?<ôÇûG•Á$0HDûû#Bª ‘ü÷??Ndäxþè¤êï$„#¬NNæt"Í*iî›ýýê~b÷ªc2óGóã?Œ‰Ì‰©ªû®*C†äœ0¡ÊÌŸŸÌç¦<%{#;*�Fx×�¡?ýéùs#HRõèdž´÷F8Âêùü„Œ?:6r^™“ƒ9I*çU)ÍüÑ|þHѼ*ïWšÿCEc"ª &#SÍŸÿp|rTÍ÷qo1h�ð;cˆNþíù…׆ãØ`m³>ü×ÞÏ>÷mðŠmÖ%€Òêö·õ,pV÷&Ygvh}ZåÚWÓ"Ózj½7;JéŽXØà¯©þ�ïw²Ã[E¡‹Â¿¥µMÛÒ3Û ÈT®råSäE}JÐF%ÀÈÔ1ôBkQ%mÆØvrªÈ&b±|¬ ɳîrñ –(R$˹1CLúA;FÖ?�lp8´ €;c^Tî�Jù•‹¡·�›�7ËÒ”IDå#I·ò¼ÕéÜZäû¾ !³¡@~¦s_e:×*S¹Ê¦�|:�é|ÚÉüLiígZ“©E€ºÃsðùÑÀÙ ªh|$åó¹¬mçOªÊ”æù|D÷¥|nÌøÈ•?üpœ$¦¢;dÝƘVˆ&õ8¿Á™û+ްµ±ÁÖdï†:xR-êmƒ1@ˆ°¹ÞÜXoÚ�`ç]1pûâËó‚«Aày„¼ [c’×öÚ;ÁÎŽAEWƒ`Çë^»Ýnívûªg·ƒ«;í¶·€±�oÇó<‹gÒêßð<¯íí ¼v»íyWƒ ëy;ÿiyßÀnÍEÑNx^×þ‰‚ÿäµÛvYðêN{g§ÝÞY¸¯{žçu½Sð<R‹½í`ñ»A°xÝv°¸“çyÝ ˆ¢(ØÙ Ó*ó3k(x8³°�žxÆÃ¦B}Y‡[ +Ke‚Ò6žH–BÊRpˆ8„ oûMÎÙ6s9ãëŽcÝýÎ]±qÇñBÃ^³É𮳱¾ÚX­×€Wêf m¬V_'?œôñÄ!= 2%ÑÉ0Í­C&™“Šªç'?œÉÏ€øòKù¥ À™U ¯.퀬\`!Xùâ‹‹@ˆ½çbiå…iHHR¤‹Ñ½µ½:×ÛL)zµÈM _‘sD"Šeic}ë. o$§Z_<¨!âgË0 à~=µwBÐïdU[ +AíSe¯Ý»„_¤”b‚¦”¢þï) +B+Ù­íþÒç‰Vb!Pˆ)¨� +f‘ +‚¤<–T «�$]DÛ)J1$ª®!#Årþ�„8¼a¥(„H«ÈæÙ;šÈ¤)ÕzÀz¢iëC¿‹·¯^ƲÁè4¿z‚ÒNÏ_�ÕÆi °vÁp¥Áê& »énº››®Û¾ânZIP£ö½Uêv=̊Ÿ拈OåûS]̦ڦi(�ùþ7³ižçZ)_k_eþ´“+;?T~¦t«c×€”Ö~!HVQ´°3‹?‹k"`�L’ܤG•}©ÚŠ{Mæüu¼ðÊ4à +c¢vðù� +ãbhòÐd2‚ @‘"�Ç‹ôuŠãdTZ—Ø?ô6X¬O$íÀko¹çÀ¹•Ù"¤+Fž.i +q4ŠlÈ˸ÿËË—ùË�v3]äYÇßõýLéi~¸»ë+_ë,W³– AÔZeyæk­‹Ù?eÙDëÿ{v8[@åÉpÕirˆc<>þ—þý÷_Û™KBRi;é4¶ë¤”Ô«`<ê÷k[pà!çœ;aØk²� gcÝYm¬œùõñå—"¶F‚À9ÛÞ´‹ƒ+‹e :PtÕîà\(Dú¹€¸>†4² ÎÀý` ãÆ 5Ô?)´~7SúÂÀw•U /á'8®}w—Ïj::€”®\˜ÒþD­ó'BüÌ@zR�"M‘‚j?=€Ô¾¨c9$ÆìÄóh_ý<ÄŸñ�Ò^rÆ xÜ~”^�†Ó8-Ö>X¸W\×ÝtÝMwÓ�ÍÍMË”ö•VJÝžh¢²Ã©Îý¢°‹o™?±<`–wìó¿“µ'ùÔŠ�2Ýñ‹"ïhe_ÖL<ÓÚšç‰Gí‹A#ŽD@¤$ø|Ïœ”²$Y°÷šÌiÕRR‘Ò ¹5Þî&TcÄă0ŒEIˆÐ6Ø‹EŒ©õ#8D‘ÁBÎ68’w\·QÃu뫉q*æ^-#Î×.Ø:I‚Õ3f"*½j?ˆzœ³ÖGýòo¾Ùͳ­½ôÄ®ÈÛSÞ9œîÞž(­£¦:Ó™ø¾Ît–e™ïg»y¦”ΔRQ„ƒ¥˜Éòü#ìŽJòŽê�¬ÅŠöšM‡Y'ö4MÓ£9sŽí{ÕF@!Æ8¡l­%œsB¢ÒH)I¢±Ô5C�77zHIiV‘³m[I# +Ú""wV‡ñÄ�HÉŒcÕïRÊ ½¨.(œ_~¼›eÖÁ8WÊWJ. €2›žæ«\ë‰ïûÖYOõ?eY¦õlñÓJçÑ|à¬7Cˆ1�Ûg)ïÓR:´kw‹ |:è�jè[¹Ìo99†aöb‡õ>ðúúêÊù€pöÆ@(c€0ä=Ιµ­%€�Õ•ÕÕÕ¿ZYý+ë +и ¸|R�4J éèwï3º˜Èe á0¹QoÙ¿ËRDÄ`~–ˆ¿”¤ï€ ¿~‚ˆ @zŽˆˆŸSÀ{ `|ÆïÀ|g~X$g +p‘�Õ2€+õ?mp¥n*‰£;j6Ñ“ÃbR'ê™.&Öão¢|_ù�Ù4×Ù¬°ÿÇ7:Ó³B+­Zúkì±ëgY¦T¦ ôlc5<±JND" ÚÁhþˆƒª^°¨Õ�1$œs¶ÎŒ$Ñ(ŠÀ�ã8Žû„! ”|kK šŠ ‡( +‚½`oHD湩è�]‰qö¶�&š~J$ÇiŠ|›ñ…@¤"[Po; ytãTQy&‰J)PH:ŠJ+ÌõºÛŒ¹ŒÏtÇÏ|_ÝR¹jåê0»åkߟiíkÝñ³:g,S-UoV,`Ñ®½ÿãžI�‘Œ@)%cމduߘùüþøû9}?^UÇs¢´"’f/A:°îö)ưWMhr·±õÕÕ³ áN*�HD Â"p>pšŒ¯;ëöëVMìüE @¤¾å)Œ>T,{t +8¼€,K:_ü… àl @K}ÿ_ÀÞ€¯— @ÜöÏÀWâ˯ÞeøÓ ~šŒß€öã÷J€:¢ñsSË®lºWÜZpe±T€òµö3=›éÙíYQÅ®ÖþlêO´.&Z+5ÕZw2­•Ε%ù¹ÖÙ7¹Ÿkß÷³¬UL~ãg~kן¶”ïG€'T(( Dq?ê÷ÛŽP~e-�+‚ìÛ£òí�°ücE‘—ÐÜŒãíæ@`l[üIŠH‘%ƒñÂ&láðñHžT4Âdt7I¢«xbÆB2#²êMθÕû �úœóˆ3ÇabŒœ8F¤ÄTTEÑWRȱ!Y[�Ö×cã1 +Yø­|×WÊïX[ƒ<ËU>õ3?ókæãûZië‡f ¿¸¢~´�Kn{�w£ ðv¼ êGQ/ê�Úÿ% +v<Ï‹¢(ÚÛëGQ¿EQt½E‘çµ=¯mgØÜc[îÖ–wÉuÝ5çCj ¯kGÄžç±­-ïWÌù)ÙP㢀H\ pZÐ×?],€9Ó\ÀO0€ã÷J€Ÿgâ”ÈE ð1€wJ€¯Ë%øâ‚`ÿ|ðËw@½+õ”â/,Þe_,Àþ/)Øf­°Ý¿¶ë¶kPÏ3­¿9œª(t¡u¡TG“otaýlT¦”ÎôTO§ºÈ[ya—ûfS�û™¯TÖÉ&Ze»Y«Õé´"¼B z]ca.A Ú£dDV…#œ‰b³Ÿ.�1xÀ›ÀÜvdŒHQ¤Ðãaœ"JArDm̸‚:õÑða-ë9¶“$%t2—¥î\j¸þÄïÿ@•Áµf8@@ÄÓmÄžë0þ¥àá6Å¢ä}cªh´‘”ÑܦYÀšÃa*¤ŒZÓ¼ãû-»Ô˜«[ªÐZÅí¢ã[u-\§p–V`Œ]�¶ªÒŽü�Ò±¡²œ›à9Õ"³òÈ ’UYšd„ˆÉ!„` t!›vA8˜ƒ’b€ÁÂÍ�ãN�xÆÔŽWVVV.¨(ýI€2€–1€aÍ8çÝ.çï1€ùÏ1úI@â?Òøßa4~�àO2€ôgJ€Ÿïœ‰w:3ؼh +дMÀåBàææææyÈ2?»=™‡3e×}5›éÉLÕÖ}*SÚŸzRL´Îs¿¸=ÉüN1ÓºÓéø™•úSÿòåËÎaÐí&íÈn/¥&ˆÚhv†�pˆcàXõö& #R•ЖËXj©µhuTbÔŽ�€sãÁ%Ä.ð…¶ÀU!b•$.¥Hœo38~>ÿÎT7GmÏ‹˜E€D$$R +0H�3‡ñP4›öþl<2BˆŠ®þÃÕàæ?$‰<–ë ®mÎì‘@!)x+Ïþæ—»¾Í×·ríçZ)eÃE3_Y¿ÃS 3ÏT"pœíkÑÄrña'"Åyp‚ ÚãjýåÑX’44ª%}ëÇ!ï9Ày“Õ¾wƒ�œx1>Œ!ìñ�³ufÏÿÅË@˜Ò…%€8exýô@ +_-€ó­-Öõ<Îy·Ûí2Æ\×õºOþã=€3Çÿ­ÀÕÎÏ1ù2€öèç{gK€³1p?S¬Ú m7€6-õß\øØ + ÛÍŠÙÌ/ŠÛ6ä/›Ί¢¸]t¬Pe™?�ꢘ(­”Î2íÓÝ<Ÿª¬ÕêdZé¬åëÜoí®3Îàoa‹ôȶ�ô¹Y 9çÔ6�@†ÆÇ櫾×N x3lp”KÓT�»íÈ®xp@ìV¹€îukør,mÌÖAûXJ1Äœ3‡“‘TVÁcC0€¢®çu!©dU#c]àNz[ ¯„Q2Jpôü`�¤DŒ�ó&gëç_ýQJ0ˆ‚²V«Õétü,»•«<×¹RZ©â°ð}š[aÅ)ˆ4µQ%‰`ÃÙæ×]Ž•u‡"%ˆó ZºpIÛV0B„Ī� †8„0ä×]ÞdÛÍ�ú©~^Ðpê õ|Ày膌mXPë€Ïœ}ÇqœÕ ÏÿO÷ð'ÀøB`§$„ý€vy·»µÕõ¶»œón—1Æ\×ëv»]Ïó8§ ú¹)ÀègÆ€ÿ‘À‡§â¾÷s @’Œsˆ"Î!â¼ÉX�òÿÅ)À…=€SpìÏ”K8Wpî±ÍZl§W®lº››î•²–ÊÕ¬˜f³™ ý,‹B“ÉDut=ß/t¡§Ó‰õõle‡YžeZùªóËZ*?Íu|�q�mŽ CgÓM战Àl íº³Í9ç€}L�ªª" qò&Û^0$J†Ýµ3ÅÂxŒÐ  Ëy-íC¤R +¡ñJi}«9sšÇCD4W Á~5"S™ +ñ`'Ør]8ð5ç‡fcþ'Td"¨0„�o3¶Þh–Ç}’#B$Šy«³Ûêt|•–dY–+=-”?�Í´¶ñáŠdqJ!ac£É¯»Ô§cDAsÛn7‹…vyd¨•‘ 1I.T”q# Âxϱ¾ Ž³ê4«+çABÄa�÷ÀålsÃqœuçL pø“=€ô§z˜pÎëv»Ì³ÿä|k‹sK8ójøkîy]Î=Ƙ³É؇€Çó¸ÇŽã¸[ìŒs]ÆYý;lÓu]‡m¹Žã4.cîÖÖ–Ç\Ç±Ž +®ëºî¥kŒ1«¯à×¼kŒy[Œ¹ŽÓh4x÷ãœyž»êpàŒ¹klñˆõ¼K—~õ«µ5Æ÷¸k3Ûá:�8D¼×d,âˆÖ–m ®_¿¾¶æýjm­þ.ŽërÎc�²”´øé¹œ÷®u=�ñ-Æ\—yÞ%—1×uÇqÖ� XoœOx=3ؼh +Àëuà+Wl V^¹R@Öº•ùZÅDMtÖɲ‰>,&ÖÈ·fw¾ŸY¿l­¦Zûjšgªh)�e�_^ÞõýÜŸª 0Ö ½î ؃iú}ƒušóõ­kŒ3Æûœs@Jñ.%^ŸŽ“±ýŒ÷B¾á’0f?ñ‚„П>ºv ñˆÄ€Þ +�""É£Ò3DH�Bˆ8ΆØ$x°C<Äq q�RI•1ò:&À9w™Ë±ÆlB÷ADˆ†¼ÇÜ:ð‡²œc�TD‡Í°—éËß×·tžåy'óu®´Îý|6)f³³p¶×a 6çØ¦…'©)!bZÏ¿Àte9¶¶ ¢�Öfد)ØÁwkOǹ¨¹wÆTŒs.lo°uÇi¬:(Vßs¤Ÿ™,{4þK¦Œ-Rͽïr¾µÕåÛ¶ðc®Ûívÿš{×<λl‹¹ŽýRvžó<ÏcŒy=osñøã€À˜»Æ8c[Ì»v\§Ñp·˜»ån1最ÍK×¼-Æ9ç!ç×¼k󶶘ëüºÑh\»v�qîy[]=žÇ<ïW¿ªàš€ Îá:¿n`ƒq ×¼kÖ´®_¿î®µµ¶æ:ç þ쳿Zê3ÎáÚµkÞµlyÞ%w‹9®ÝÞj46ÂóðëŸqîyuãßRÿÍz°é6ìù÷}•k­‹l’eÿ¤'3�é¢ÐÅl2™´”Ê”¯fS•Ú¶ü¼Ð:WZ]Ö¾¿ûËËšû·q0p^Ço %Ö&†�sƶë5-ˆÉÎÈkGT +Ÿ“-YÃAÈV w"$Cˆ7\èAŒ‹¨W*�bÚÂ…gMŠBʶ[àB~EÀ·™ÃkëÖï"lnsˆkº€1Æ(ˆôBœcÜâ1@ ŒÚfgT/$v9ôxs{Ýa’¿ûãÞóƒMÜl6Cà�ïîúY–eyÞÉT®t¦”¿;9œØÄ´%œÖ–’â� þ[jè×Εµ›ìwi­T3 Z•¸;DûæÅ1@�óž ŒÕ~ —j›Ï³ž€ ï{¼ î5ÎØÆÆúJƒ]LVßµµ³ÛŸìœÀÏOêÏ¥e� °%ÀVwÛërÞõ<Ƙ˺Ýn—{ž×u½Å3÷ ¨×àcŒ{̹´€¾�¹Ìó(b›WÜ+‹5w³6ßtöü«\i•e‡z6›E¡ü"×…•ôg¾Rº˜äZjªµÊ¦³"ÏUægÊÏü¿¹|y÷ò/ ÑDpD"n6{1–Q�´©^Œ¡Ç{±D‡qæ\r8 u»N–;§•E^É Î·ë§: ‚žv÷gqš+¹žD„„ aìì]!šçÏOJ¤RU|{cµ¹�š0ÖƒÁÀî³ D$™ ÞIÈŇ"%Ý‘I)!DÀâÚ‰÷’Ã8–¿'Cd³h˜‡U½"§t¶»Ûiù¾¯TÞQÅÄ"Àl6›Yx×f“;M°Eµ^ý.�„µ¤O¥”Öâ`i @8@€ëuUϯ¯Õ^¿Žãüú�\ F£Á£(²¡"=ÎyèÛfŒÕÞžÿ·oßœm +J…øË”€ôSSÞçg€óú,[þÎ#Þå<‚~ý(â¼ëyœu=æ-Z‹ +Àóº]Öµ¨àY°<œ{›Î¯ÇaìZÝp¼e àmºÎ{ ÀcίÏ0¶daÄ·=�1ÏÝb›Î¯W o›Îª€µ3%€wéÒ9pk¨ÀuŽÈ?ã×¼kËÀ][ó.9Ný¢—59@ü™³úWgÀè½€-À¯W>ž4S€Ú d!v]·aÏ¿²çÿöd2+t¡¦¾¯µö•ò}¿£g¹VJ«\M²©öýÝÿ[ë<Ϭ÷UËßm9Î6"b˜RJ³fh¸‡Ñ¢pç@è^øh†q<ˆãÅ”�ÌÉ ^”˜ º¾M°‘BCÀ×GûI×KhßÈ8 RbÈàø{ó§Ê3îW£$A”8sš‹Ð‰`Œ".Íå¼{bĤݎcX̪¤�fÑŽ‡8Žm÷ÂI¼¤2Ç{G¥‘C‘g½±É˵VÖ:0Ë[j2Ó5fZ×n Ë9wX éD5 ,L³�gRA_JÍ}#I¤KEƒ°˜´lëñ¼… ˆ½'jpèsÎá:ô Çyo�šÛÛκãl¬^ØüñÍ›7oßüϳa (è/ì|p +ÐïsΣ³°("Ïc¬ËyEQÔï‡ ô‡CÎ#Þõ˜Ç¹×ÝÚrÝ®·8ÿܳ ùúù¿ =�Õ%À– €yç§N›¹[.clóÒæ¦5¹‡\»Æœº xú„õ<ïW—~µ¶¶véâ™À€_;3Xs]ïW—…º€8§nàÝÀ;[ð‹{1[Ø +À­-kÀÙó?»=)&³Bk�_žZûY«•:«—}u‘iߟJ™ÒÙ®¿ÛQ»ÎÖ�¡�Ï�1Çí5Œ‘¼cÛ¾ê`!…KÛ`< æ;„ ":‘!í&Q´–ò0%De…À¬–ÆìÉ>‘�¿+KSWÿ‘!LÁzBŒ¿’¦ ÚUe EÞ%wÍC�öè ÂmΡŽGD¢òÇèXı‰Ö"MÖð ƒáhŒÂ>þcùvsÝaóQ@X!I)â0 Á` K�"(Õñ[¾ïû_i]#@~xx8Ël$ài•¡q6¹ ¢¡ƒÅh’ÈóùÜœ�¡£ã²|dÆG†Ì\�${D)¥e5—Æ`*D…œsX㜄Œ±æÆ;R  RÝ%%p1V4¸ê¬¿óËqÞüøæíÛ·oþç›7o#ÀÚ¾ó'zøÓS‚ßöûÑ{À˜=úÝ.�úIÿ0„ÑðæoŽF£áÍa²0=ðøÖ–»n™‚çu¹×åœy?íx̳ `Åq\æyï@{Q¼ÓøõæE=€�ómïcÌÛZ6=�sÏ»¶é8ïc–üê|Îõ_Lb¸¾¶æ®µå¸ç`±Õrœ–ï€-Ûä÷~ÆôÊwÓÝt¯Ôæ€WÜM÷Ê·a ,íùŸM&ßN&“Bk­>-”ßi¾M·TJëB+íÏfjÚÑy‘)ß÷;­]Ÿ£Ã؆s LJ÷�¡ögœƒõ�OK¯m죋â8_)–ÕAÿj�PYÛùààòmÆ‘ˆŒ£Æ]øŽ°»3"3&D¤ò÷åQù ŽƒÍ©SÊý ’&ãŽ~¨îÒ(I‚ ðvm ÌQU"¥Ô—_%BÎÚ7€Cí)DÕèsS!bÇçÖ[�¤ †2" `€hªˆÊ."Ä©ïïúY¶{Ùït–PÎf3ýžËžÛh\ZóÚQ;p¯\‰Ú^Ûóv¼ÏÛ ’ÏÛív»ýù^E]ogggg'øüjÔnEŸGAEQÁN7r·Ü5÷Wk—.]ºô‹K—�Æûƒ@×½´·\·íºîšë­yî/~ñ‹.¼yóã›7oß¾yûæíÛ7oÞZò~1 ÷•€1€q¿ß߃þûÀ=æ1Þå¼0‡É̓›7oÜ<¸ypppçÎÍ›7‡Ã~ŸG¼Ë[̽.ïvyw›{üÚâä×e@Ïc¶¸¶èœ)Ø¢x¯À/ž0ví}àyÞ’¬�alÓÀ¥Kkžë^ºÔøÅšÛ¶¾›—�†»æº—~µ¶¶¶åmyö?×  þ0Ûpç\¯{–ÎOö~¦X8¹õb°í4ìó_Ÿ9ÿ6$¨ãû-?ÏòV®ó‰ÖZMtæg‡¹ÒÓéîl¦•òwý¬rð8»´bÝ£ƒ´Æ‡bÍ©ôˆ‚L …¬�·£d‘ç&¡ÐŽ"Û¾#²ilü’çADÑâKÇeY–Òö©k�J#k¥”Êè…ÀPòEÆÊèß*¼v-‚(êz^�Èà>Qtÿk!8ï@L¸ÕO±N½#š�‚J¦(DøÛÐîÚq@!Œ‰¢û$DÆÖ K<2Wçck_öeþ-?ëø�NGÏôd¢m'pv^]pbŒqXŒž7JÉXU’Iæssp0%DÆÈ£ç�æß›s2ÿ>��›!Òü®!YÍ�!Üð<BÎ}ÀsÛ€G†Ì>Ðw×9s]V;�®Ÿ¿œ7–½ýñí�oé/íŒßë@¿�ú ü6zºœsÎû¼Ÿ G£›£›7ïÜ9¸sçÎÁÝ;wîܹ{÷Î�;wnà0àœw½Z7À»]Î÷¸ñs@HÙÆ6J rôÜ€„Ä9÷8Ç÷�5~q-Œ8ˆ3ƶ·Aˆk<Ï#‘Á®Ó ç1`M§Á ¦pƒä€3Æ8 g!^çÀ# Ä8¥Ñ㌱hßìpÆ‘AÂùZ%$2¥„1«çÀXÀÖ߈<Bàˆàz×9pÆ9pæ4œfÈÎF@0‡ñmÆ6{=Î`ˆû€# "ô6NoüÚÒDôZý¯×¼k^ã”ÿÏ&“ER¨ÒJ_nùS�¹o-ýµVþ´Èó"·Ñ᾿«oAüWßà–`'ÉÞh'tÆC1íìã`€ˆ1çÂC$ä¬q@Dïî2} +“0!øG¢±,‰¢ ˆÜ1(Qþ®”’ä׈$�LPŽÈ¦ +Ad‚y›,7® ˜#49çü: 1tRí!FžëE‘1 +!ÇÚD$Çu÷ÑP—J)Â8gë …�U$2„q=º&8ر yh=ƒ— µž³Ù콬�„;ëuÁz£-3_ ’!& "Ò±¤1aŠˆt7aJ)¦õf¢õF‡^/´ìd‹1ÆÜZÛ{V°8!„ð[l›mo:뎳ÊV�wfÎ�oÞ¼ùÑ>ûíßßþøæÇ7¯ž=¸W=xøðɃ{ï={ñæÇ7¯-P¼yóúí«7oüñÇ×?¾zñ¢½þú7ï>8xøâõÛ·oÞ¾}Û�ú}ˆ¢>¼.@?ö‡Ã›wnÒ�;æÎ�;÷î=¼ûàÎÝwîݹSÝ»sçàæh8L’>D¶gÈ»Ý.g]�sÎy†½°¾ ÎVænóE â Ϻ?pÎ9¿Æ9çœwÙº³îôìh¤^ fœó<î¹ÐëÙþJÈy¯× #�ósVïqÛra«Î:ãœï3ÁãÐã½èzÝaåœst9[w·�WێûÆùpDZ]Í¡îˆõ8çÛlÝqÖÙ:[_·†. +‡ú[FPÿ �‹œóm¶¹Égµáp~ެÖÏŒsî„aØ ­æ˜ÇØÆjÃá!T_\õ’GQÄ·–üÿÛo¿]$gJ«V§Èu¡§?×v˵(ЉVJçÓN¦ýÎ &p�7·›À‘ ]ݧ„8cŒ…ðö‰¢„à œ£H¼`äYinŒQýhù¢Vú!Â�'8ylL\%S!pþ[HŒÍ¤•_KñI�$0yH´éT© .»I‚8!!¨ +J«CäÜ@¤6š$ÁÑ0hwÅ—+ðèØ,{`ó¤+eöšŒ9MÀ¿"’f8'¯s(û�$ÅqêgÙ-Õñ;�O;VP=)ÞÄÞºÃÀãö +Épay�$£ý¥�&â(¥ãÀ ÄT âxŸl𬪆1¶n‹Ã•³É@u–ÎyØ«¿rù äõ�‹ƒ}Êj¸·€§À›×?¾zQA”ô‡ý¼yûæí›7o�¼ƒ]Îa8öaxpóîÝ»÷î>¸wïÎÝ{÷î=~xïÞÇ�>xðàÁƒ{wîÐÁh8çŒw»Ýn—os�{œó¨†  é8l³É9ïñ^^çœózýågž3æ\â<‚�C MÞƒç=Çø@ÏzÄÁ5œ­¯4œž}·{Àg}›÷82â¼É9Ào£®ð8àkÀ˜Ãøuà< +94‡1¾Í�;†8F„ÅO.Eõç‘­o8ζÃÎÿðV-ô8‡ÀZ®çöGhÂæê©­£euÛ<ìmõ0ìY¥(ïñ�ñ&cNÃáæpÊÿ¿�ØÌO•e¾ò;y1Õ*WEqY)¿Óéä‡y®õÔ¶Z�]Œc€Û!gÛlƒ§Uß!¶ñ:ç쯷9àA;¨M@x/Mñ`äÙ±Ô‹–NB”ˆÐ�zD'$¬ˆxÑ*O‘¤””¢H…ÀÏŒ‰ìöŒm�”'$ô-Ã8B˜¨qØä<ª¿ÍÿÓ6˜‘�RÄqŒ‚ĸ¤¨*e½—)Ê€ÚXVl¼4ý#·"Œí¸ +0 ŘÔði§3SppîBDŒ‡ÁV´ü׎$£Q„UûËÑ<2²­M ovĽÅùߪÛCg)ï÷ë™!„¡Ubº.c++�FcÕ9ýµòêõ_À> –œÀ›7oÞ¾}ËûýþÞûÀy”$£›7G7ïÜ9¸{÷î½{>xpïÁƒ>yüðᓇ�?|òðáƒ;wîܹyp0JúQ—u»Ý.ó<ÞåœGý~|æBî8œ{¶œðùu�×oAÈ›Œ9—~Ë£ßBÄ=‡±BîqlcŒŸ+,BÎÙÆzƒ €à9ŽíØoçh§«aÙ‡:¸îòmæ°¥þ’;cÛŒ�Ö¬þ bˆ!F¤(†°× yÈ[_çÛÌÙXwœ…¡ãœC¯Çùo{§�kx"Þ½Æ[_mlÀ ÜXä¼7VV×�õ ÆX³^¼ÆÀÃ@Ïî±8€Ñ…WC�}þ[¥OGéN'ϧµ/xÞòõ4oýfš¹ÖJëLëNŽˆ1V]À›M¶Á£äN‚˜D}Îã<'í{þÁ +q{\´‘ñÏì:I¤ <Â>`‚rn¾’�pÇe0=¸J)!‚}t�"ªµñD Íñ‘Ü3ˆ6¨+)©Ô>€>ð&Ô¯óHð‡ˆ÷ÄöÁß"Æ +!HÄiœ +!ŽH�¹•�嘄À�;6ã ä|D)†!T^b’>ÙažIÚ@�$5|ÚùôSûæM>;7L°Ž(áí I’ái/&€ Zwp²{Dfoþ•XæÉbЧR@~�sÞäK +°âœÑ8|ù€ ìð•5·×í2À¸³€w{çÀÏ•ýþÍ»n.K€·ïGï#çýG7F7ïÜ»s÷îƒ>|ðøÁ½‡OžýôÓŽÒZm‡Îó¼ëõÓb×QØ}¿�MíqNI Lþ mjœ5ÒÅ¥ Ç½¨Ç9cÛÛµ'ÈÙ6ÀJˆ0¨5Äœ3Ï®b;+5a\·¿Ö“wà‡Ü<-,$ï @?ŽnÞ<°Ïþ{?xøðÁã‡�?yúäéãÇOŸ=~üôé“gOŸ °� +A¦¬ÈŒ’d/ùû$IptnÔó„°ŽH’>à¢>4[óðQ4¢ ƒˆHÔ5˜II‘‡Æ3ˆa�o³�(鎌G2¶[@1’7§`G.B¼cÄýýÑw:þ§Ÿvv;ê=H¶Ù5îÙæ?%ˆûiƒˆ’æ H­–îxÏ�‘RŠZZ+ ÄHðÛÞõëÐã]Î9ãÍ3­À•¢ý¼"!ä€^ý•Ëë`”Üyy® ø¿8x·xËßC€n?ÒÍ;wïÜ{pïÁÃ'?yøøñçϞ>}òâÅ«/Ÿ>{úòå³gÏž>{úøéãÇ�Þ{òðÞƒ»wîÜõûQ—ÛúŸG÷º§’e9ñ6k"@,*HnŒºˆ`� pÑ +Þs,/äŒ-ƒ¢‘a-¾A ’¹‘†qØÜXmÚŠS"Æ!„‘‡ŸY›ZÄ C + ö�íåö‰ 4tÖ›¼ܱi´øùË + KŒ0Ãæ6k†ÛÎzse¥Ñh8 Ûõ�K†�íïì]jà ¼°û. +ÄJ�qlïŸÅÀ9o®lÀªä«qáùWZe»:ów;™¯gÚFüîf…úÆÏvJ”ÔMJDôÌ ð&s¶qçIpz×k?«Ø�é"QÚã¼gUª1¢˜GÕÞΞ™ÏkG´J +�ð& }%ÌјmÅ…d ¢ýT�9²Ð–Òyˆcë6™$G6‘ØðhÁIn0"z°0ŽKñdG +YŽ£À ÍØÞñ»½¨2Æ ¥Œ›ÍúÈ'ˆOÐC‚Äú’ň1ŽF£ñA�»�Nç½§ÿhD ¿Æ9DÝU„û´?4ˆCc†ûû#ÂÑ(™ŸT怌UF4Ú7RÒ‘Íâ{^Í pE]Ï~=æŒq¶Íc›Ìq.Õ�>HFû˜ ]èEàáøÙó÷,¼ý©À¸àï#@ró€îÞ½ûàÁÃÇOž<}üäé“O_¼xúâé³W/Ÿ½xöìÕËW/ž½xöòÅÓgOŸ=}úøÉã»Ü;07‡Ðç‹ú¿Ï=��Z,¢¸ÉG†n £¨U‚#À1Á‘8`̉è{B¤&Œqˆn$xÑ«žWßï��öM Òýx2‡‘œÿéäOÙ6óø(Š<“ b„#DL� DHHmÀ<¬›7#`.çp£mNªj4B"ƒV>!Æœo‡’p›-òîaëþ1Á!¢À¬ÚJîqg…%d»I�ÆÊêj£ÑpœzÓ’oYŒûB¢8:©ŽšnÉL²÷�àp6ûö|ýŸO´VY§“}“ùùå\é™VJ+•Ýnå…öñæ�‰À†yD„iä·Rî4.]iï· Ñ$ !ŽDDÏ£¤¬{Ý B—GDˆÑÕþhD8Âýúç9—”"FЫ<BÊñ-‚Þ´�î 2wÏÀÏÀ \lò!¦4Â$9"DŠ"Œþv„Hdì~€1 &ˆh(¸Q‘ D Ùäø1ò¤àÛ½iD&I%Ï¥a7<Â#Â}ÓŽxƒ(’�ˆ’Ì*‚>½�{ü:D]|Fû£}�þ‹ Ò<8øÎŒ~Ežç]çpƒ3ÆÙ5ÆØæ&s.5êÏÇG ˆàz/å9xpþõ%À;A‚£ƒ;wï=xøðÉÓgÏž>}ùâé‹gOž½|öìÕ‹g/^<{ùòåË—/^¾zýòå˧¯^<{úìÅÓÇO?¼wpps8ì÷£ÅóÿšÇºõ•ôäó Š Š¢hïo£ èGQ¿ŸDýZ;ɱÛ]æ°¨Ÿ 1IŒ‹Ö¢(ê×_Ó ¨m˜“$â<âÀ9k8&0Ž0‰×ó¢µ Ûµ·9=AEW(I¢ks¼>&8ÄQ²¹ó¢îâ›'ýh/‰úQ!Š BÀ(bÌs�Í…÷P£Ñh\ZÛbžÝ⪿9FQÛ`õûI’\�"¾ÍœÆZ´%{IEî)¸ä8Œ3�ñnèYOi€(âœ9 'ö‚À{ý¿\×ç?Ó“Âïø:×·”Êr­uÖÑ$pÞŽŒõFCDžáÀyÄ8[ïÍGUUEß=’DØ€ŠQ@˜>ÇhD‹i@ˆuƒdTÕÏìÚé7J)‰ŽƒŒ[Äpt†˜£Ÿb×@D˜Ü=ÚG¤( +¢¿ÝézAxAˆx3I’!î#Ž(0$R$”‚¤”1@Œ)ßh2n¥AÆìí=*„v½qž •"E$h'à3ˆñ‹šÐA�õ.Ò; À㽚Œ, ‡Æ$KðCeˆÈü$pñ‹à×—ß8×ẀÞéùx| ð.ÞE€~tóν{>|üäÙ³ÇO_>{öòå«—¯^¼zõâÅ«WÏ^¼zýúÕëW¯^¼|õúÙËW/ž={úôÙÓ§Ož<¼wïÞÁÍÑ`ùü÷7q`½ó,|DˆQÑÎN7 �LUÑ“I2¬=ƒª."úJH!¾@ ׯ8 +"’$Éìñ�‡ÐDòªñ¿H)0†˜·nƈBœB€ßéŒpôîEIÍF3€dþÇæà€¾3£Ñà:ÿøõ0�-®_‡{ýìñÓÇO>yòàÁ�»7‡Ã8÷<Öí2Î<ûvî“€m�[i•iè`QÔ�"è÷�ÚÄ�í…LS‚ífì’%Ù)âMëÀŠ $$,úpÀÜU¶Xh¾¹é]C­A„=üý>  ö| !g=V°€ã°.?�9%ÄÄÀ)ÆqœïñmÆìLv¥±Úp¸‡µ¯(@ßxH@¯*¡VÉ!g뎓ô¡�„°®¬X“1+°E«À6zøA8?ÿÓÊžÿÎäðððöd2Q¾¯µÒ™ïk"ŠC‚HJ9'{&­ÿÂ�{Œ9Û± mZp}‘A$ÂÊ3)ƈQkw„ “휄�’¤‰\WØzç}˜ â Œ1>7Ì"FQ·Ûow cd9&ch!Ã(DEíd.E,Êì9„|›±hNBØÀvŒùZפHž<þú÷c zl›÷ÒÈ#"Û~�ö2üP ðÓ  2ô³ ú¹o¼Ó8[ܳڻ9ø�—V·Ë#Þ�úýáðæÝ‡ï=~øôÅ‹gOŸ¾zùâå«W/_½zýúÕ«W¯_¼zõòõ«—¯_½zõâūׯ_ýøúõëgÏž={úâÉ“§Oß{ðÀŒF£á°Ï=Ïóg;ó®³S}€È›# ëGÿ"®äsš�" +!1Îq+±ª‘ +a¥è4@$ÂEšÆ!ð͆�;.ãØž/ƒ‘•!˜6@/l²PŒmÇ+âŽÃ<Ä4M—r¢:¤âÄãÛÛlÝqغã4V‡²}<õùo9@ßúàˆÇVÔ=¾½á¸µø„ÒA= t ‡±mÆ C&„ÀCΘÓp!0€÷æÿËó?›ÙßiM•ÒÙn.a@+IÎGÄÚ¤€“ì[LAE†@}ohË $D�"cß +k:‘|g…H„ûDBˆ±<d_ÊypôA@ĸ.ìþÝì´½ÑùÞ�1ÒÀAËAó!X +QG‘‰BÞ㽓 2õbŽíÑ�þôû¯K�v­#è…œYˆ­“ Æ8í¿wþ/îŒÎNê& 3‘yóæÍ›×?¾x8„›wîÝûýäÎÓg¯^ýøêõë×?¾yûæÍë7oß¼ùñõÛ×?¾z|póà΃‡î=¸wçÎÁÃ×oÞ¼}õã[»åûã�o~üŸoßþÏ·oß¼zø €ê/ïüÇK€-¾D€þî>|øàñÓgOŸ` ÖN<pŽ[79 !R;4K‘ÄRÄÐî6Øâó|Óaüº7èÛ¦ôBã6Äa�o‡B¦%ŽË8ˆ¸Nº·ß\ˆ‘D ðtys¹Æ¹²ê°>Fs[\‡¨–4ƒáBñ�Æ!c '�$A 47VW¬ Њ�CèqàYé1X�§á@ŽÐœþ/ÏÿíÃC{þ'Z·rßWyI¢@ãÊD•I ±pêà® �uFÿÖþ®·�,MEe` L·O;4Tjñ¦‰lU�T k�e�,#¹èHG; +/½Â|‹»öÁôœ‘“Àaªp°±á:±Á¹Ë þ†%²;G{8d%A7*¹›`±â.îâ'Ðÿâ\¬J²åú˜ÓáL[–¨ÅÍõ¬÷ãyŸ‡C'§­¶)°êsÛÉ+0¶ÇŽÚN8âЃ<GTà÷|ßoà÷rY‹;€¸ºúP +ð<ï¡p5¹°¬ºeéOªž§¤ùü^Oˆï‡N!7}kì®Á}›sŸÛM»Yj¶Áúý²P 2B™ +«ü÷ÿöþ/¥M¼Ó®Th£‘CcE"€À‡#€›.€çÞ‰þ0ˆˆß /U—Lsí@&)e’¦Y*³,MÒˆ[�Ü@v–³{#€Ý.@vDr s»C1[­æË0ŠÂ0Ülâ�”±LâT&I"ãu*7©L¤”RƱúSnd­7Q´YÍ—‹ÉtˆžÛjÕ‰Úÿ„¨€##D§Œ1j1&ªˆŒ�óÔqY«ÕBÆÀmý’¡´Dó“‡w By•}i!sÞá9ªjP!ÇÌšŒQòoH¾w]F5B(T;X� Y«å¹Ê°Á«N˜ v“VÀ‘cв4�6Ѷ8rð<œP%*¦Ó›9î=�ZÌ3XSQY‹1й +t×ÀœËÁn3FÉÞ!c‡1ç›Všå¢P"¤L›”6˜£3Ûfm›5i+ Ü{íÝÓÿ»}þÿ¿þþïÿþ?|öþ÷1è°ÈÑLøÆ÷×�‚½Æ0ö4`:0JöÙÎX8À!eŒ9Ný˰êË�Ýv ãq´<ç¹ëPᛵ›åƒ +xâ³go°I¨Œ1DŸÁÿo>جAóA›Jƒ6w;ó�?V¸Õ¸ËøÃ‡C‘þÙ�GóÑ.˜ŒðÃð� ûלÈңꭖç�FÓùj†a­£x#eKËD¦R&Iš$2‰“D&i’ÆR¦‰”ëXnäzoâp.góùt8ìv‹æŠâ¤ð/DÎrf?³ƒª÷Ôeð í0×aŒ=e–ÅžrJ(W¾„Èí +…ªÅëpT>?v^] Ô6%û¤ÐlgìðB�*ó[cŒ=U$¨.Àf”4;J-ªiDˆ:¨cÁÎghƒÒ²òjÚ+€�2½5à0g(}Ƽ¨ík–ã0ä>ç6m0Zz Ê€%BÊå +¥´Ù¦mÖnç@%ö�àÿý~ýï³ÏþëýßÿK±ÿÿÓßÿ‡Ïþs`XÈ;`CÀ1hù…ŒØ ld:ú¶Ý†=õ@‡#¾±hªŸÏ,ÀÉ€cÇó€£õ²ãät�—/Uà]°o@üîÃ5°Û·àw“x–eu]o¢Q ¿ÏY�k#V€ükDô£”P¢°Å‚µe:Ú ˜ÿ›ñ•?q»­Ü9KåJ…Vè{pßþÿ` À¹©,q8Lwp_ +°¹?@ñN +�Þ“,gÓÉìCEÀµ.)€A·;™Ìgóy®×ëu¤ød#e’ÊM’J™&IšÈT&Y’¦'±LÖr#ãM…Q­fóår2ê]DZŠÈ]'‹QB[ùÆÁ*¸9 0o…Qư +”PÀ"òØ•Š:œ,ÛÇ\ÆÀa€>ïtÔ%û0ŸRÏÛ€À˜â—;ì9S8àUlÖ Mž[:Ÿk„ª(Ü/ò»QO£ÞÌ-½A+åò@ÛßßÛ;`L€Ò`-%©f•ƒ6rÞ�6kRmï±.kÁï‘+š|yoooï�vP"eBH…RÐÛ̶Ÿ²†Õö4Ç€\{ïðÿ>ûì³Ïþýù¯ÿõÖþÿ_ÿóÿ×a†È; ,:ž…ì–±/«2ÎÛíJå“|w÷Zˆ¬¡~ äFÀyŒ1à�ŽâÞ ey8Ï€Þ.‚1vø UÀœy7îKŠ‘ ¸ü®`YÔ¢UÝ{à9"‡ªŒr°Oð™2臇šŒ©Ã]@�� mUT/W*•Jã=ï�ðnº*¸‰bˆˆiúgFj'æ@wWèª ½?˜|°ø¯5 �BŽ¥õ–û«áp2�¯VË(ŠâxÅ2N’$N’D¦išÈD&2‡�$Meœ¦iÇé&Žå:Ú¬£M¸\Í—óɤÛõ\Ç¡„rttôòåË—/‘÷”æsž÷‹³%ÜʺóJt %´ƒØó‘CÇ.Sü…ÃƬ@É—©ºè©Î"kÛ”hež»xªB#è€À(5÷0æ²a;ÐnVrgT#eJqç±æC®Æû¼I•’¶§iûšF™ã¾lù9A¹]ˆÄä.¹U;rÖ¤ÚCK‘–ýžÝl²¶Ý(ï?ØÛ×H‰BË´áè ­cŒV´}òÜ€wãÿÏnÇÿÿéïÿ×ÿ¼0®;ù{Y¸U@†²þf>Öl3ûkÎífE£ÍÇÞ DD»R¡ [øŽå98ÌaŽÊ8G�#àWÖKœ›"€ +Š"À=Àäêþ`‡I· ø]Àª×�ꓪ•à­ à¹ÃÇbÑCß÷}Î{CõK¦m�ê ààŒz¨S–;ùpŽPeÀmÖ ”R®Tô`žNÀ»Ëüõ"&7Wš%óV«;š�Z-×i £8Ž™$I’¥2IÓ$I³8MezÝÑt:]ÎfÓѨ;“2M³,K²4ͶY–¨¿¥©Œ†£Ét>Ÿ-§³ Ô'©í4MÓ,ɲ­ÚåIÎFÓÙ|¾Z.§bgI’ïþ4‘i,3™ÅqÇÓzÝñ\·Õ�M»³8É2µ–®+°\G“ÙtF›0\G2V™~"“$•iš¤I’J™d‰”qšÊ4M2™$‰”™¬åf³‰¢õ*\†«Éd2òºžçPrttt¤"€±BP5îî9¸gø?„""x{ Gœ9MãŸdœCë{!†¿ï! +ô<�øÞô� h{t¢Q!ãqÈ(%A‡à{�/!žã8®ƒ3Ã×B,°B!Lª:%^Â9úÏA½=�ʦ˜Ãç”±&¥%¢ík¬­ö½#0—9à À÷_Áp(‚Y €@ ”–Ö…çMü'M¦&mö÷öö*¤\&eBèçü"JèáEË î¿öî‹ÿÿëùû;û±t8~_QHU¨?øŸM€1fÿšÛÍf£±×DìF xѦ�&k³èÂкsæä€À»–j8àõ¼|Ÿ1VÚïEW“ɇ@�lÛ¶_ŠÉï:`Y´nTõêß©à7>öÄðû¢Àâx¡@)âRFÈ—ª€!eféõ6ç¾o36÷gް›Mڤ܅ðçuÜ;]€?\‹!Æ››+K“Ít4šÎFÌjÑz7’I"ÓD!@*“$ËÒ4I¹tœ!Nf³Ét6òœYœ$Ûôm–¦é6M䶈îev»ÓÙ|:›L'CGŸHµ³³,Ûfi²ûKšn†£ét9ŸÎ¦Ãî,ŽS™IUsLR™&‰”q,ãõ”è-‡µêÞ|âÍâ4M³$I’„êD×õ:m¹nw4™NWa´Y¯×qœÈDÊ8ITÔ¯¢)ÓTfišdY*e’I)e«ÎàfGë(Z/gÓÉdäu]ÖR:Á­V«Õr\Ë8|øð�èÏ~a�Õë†õ•eFÝ0 ×xf†eº®ë–~ôׇõ–eÔ-Ë0ª‡‡zÕzV·nø±¬Õj9Þ£eõº®ë:9|¼G £^7,Ëprx¨ëºeÔ�zÝ0¬_Y†Z¼®ë†eYuÃÐ�´CÝ0 Ã0Z†~øø¨Z×-˰ ËjY–Õr~V§–®ëz5÷üÔ?ØÛÛÛ{¬ÿÌ1ê–aèÚá!Ñu½îÜ,~fäºé–¡ëº®W5mï¡õ•e-Ëj采zݲ¬�DàÇ�µC�éL'GGD×uúÿ8Ôöë [ÖÞ{çÿ¿÷üW# ÂAËñ9WžiпfŽ90ÍmÖl6¿Z8]D:¼Ç�5›öØp° Œ��sö\…ˆžܳ,ÀUT€›"@“±_ü¬ön àjò»?’ä’þˆˆ\L~×yiYÔ¢gÕª#&B_€£†ãñb�¾ïûy,hƒÝ¡ÉC%‡* ”!è-ß÷�CÏ‚CjÛ¬¡ €¼ ,Þ3 àÜŽ0¾}É$IÖálºY„ê¤nd,eš¤2‘2?oÓ,IÒe‹:]œÌ&Sáq"3©t™©+ÉR™¦‘렘̦£É°Ûª׉”iš¾MdšfÛ­Ê(Ò4•ÑÐMf³ÉTxîT&©Lò a›Æ2K“DƱŒ&GšN[–îͦÝiœ¤YÇq×uBõºN[ž7œN§óe´Žâ(Žc'2‰ó!•y¾‘¦iš¤R¦©ÌSUÜÄq¼‘Ñ&ŠVóét*F]—µ(Ñ Õ}ß÷}ŽËH…RÖX¨SÀ@G%ç2`6«4 ‹ÀÛ”Z`8ÀÔÛ;×¹�FÎ'e¬Íì²F˜ãtX›±bnÛƒ¡ƒ¾ã@¬£�Üf„PÆ=è~~H(c¢w…ˆ„�€¾®Èð¬Ñü%µ›m¢iÚƒ½=ÂÞœ‰+@ ´Áo 7‹ á«'fŒj{Äj½€`<Ú„6ú>UÂÊF‰R`=VTQg�0ü¾sï{ïžÿÿþNýOIt8B`8†P²°œ€ç ŒÅ3køs}hÛn6š´yÖ? ¡ u’²«Òbhþ™Wgò(º–…/Áuœ<ø:Ošìðgy07ź\]}8°o #&�NDzêuCò«_)ðEßÉ®ˆ»ýϹm³­PÃëÿämJ¨Å˜C}à aë0×è¬PRy'ø`ð�òþp-æw®0œGëÕl6Õ�9‚Õ&Žb™ª :Meq,Ë­;ÝÑh6™Ž;Š|—`|…•vè×=Á;üYžì«ÛLÀ€mç¬Ç@«^¯Õ³¿ó®ò"à=æ%¬Ii…å• ýœ¶ÏA0Ô¨}à£sÃÚ¤´|7 +ð¼?‹ x‡ðw‹?ü0½{¹Žë�¦Ë0ÕÉÑ‘nâM"e"“,‰åMÕM.[õVw2M¦Ãn‹Nd^ŽÏT„°{˜ [-·;šˆÉhè²£‘”‰”Y’&Yö6˲m&Ó4‘Iš.¡å�†ÓÑh赦qš¥iš¤ÛLÊ$�“8MSǛ͌hÚ9<„ér>éºÌeÃáp8$:ÑõzÝñ†£Ùl®Â(Š7q,cod’H™©¨?ÍÒ$Qq@–$i*“Lõ5ËX&q,ãx]¨Lg£Q×mÑz½^ϵ”U�î— �\ÁqÚc@t`–eQËj1n7HSÉ*Ù ZÊXë6O—#ŒQy[ºŒ1öKJIi_cðltJ)eO•=¾tœŽ£Ø€-&8rvƒP°m5ƒdEÊemèðö˜s8²Y‹QJ 1Gm_{pÀ˜=>Cp€B)CpZè0ÊZ-Öbc%V•#%ûÄqòÁ:Ö¦Ìðy§±··÷`ÿ¡’)SFJ2õy QàÞ{íÝ�ÿ?{'ÿïÀ îûz:`ÛÌf¶­€öÌòcìqyp{༟Ø;xy5ét€YÔÒ«UW€/Åðûçê”pë"ÈÝ.ì6kRJ›|g 8°/)Ñ©ÅVÄzK0Ðk4cBJÝw à—ÿðÍgðçtà&àìaw2™/Ãh¤‘C –Q´‰T³<ÉÒ,“iªHóu¼ád4™ ¡E‡Y°û·I–fª_˜¦i¶tZŽ7ͦÃ_¹­£î&ÍÁ!˲$ͲT¦*4_¹N·;‰áÐe�”©LS™¤Å3&2N’M¼‘½Çšv¤9³0œ�†Ýîh2™L&Êá×jyÃétºŠVQÅRFª(e*“L÷YºÍk‹yÓ#N¤LÔò©”2ÞÈu´^GaEËéd2ìº-µ� +W“Êl40ïÑ»*ÈÄ–Š7)k@óo é÷8G°Ð2eÌ*šÿ |ä¾ïƒ�®µØîSfwz:S,}7gá¢ãt +­D` Žvƒ4m`À¾KÏsfså°Ä¡Êe_ÒÏi.Ьíka ü3Œ1 ŠN‹çê¯jqŒÜfMFIùaNþ^gåf³Ã;Ü÷í‡û{{ +q��mÒ&¥M[gdÿ�À�øÿ³»ù?t:ðâ…ï׫úÑG°™ÍšíF“ZÂ9S(æNz`C»]ÕŸS¢éÌ'°®}¯Úõ#ÔR¬†§à¹NìÊ€ðÌB¼Éx>Ôl²<è�›.ÀäJü‘ÚwÀ²h½®?©:“«ÉÕ•ÿoeÏâÕ� ¸Ýf”6( z"p X0B>W0æ8ð°G½Yn(|q”BµëÀÓ¼Y×¢ pŸÚÛfo� +Í©Â6pþ×ÔÈ@®å®„œÉçLp<à¸À(ùš'Ë-¦­Z–ˆüÚçÐV™É^`åJ:À}ŽÕöN(—¢”2hÛ:+=ÐcÌy~Ï/gïîù'þèpà¾Q=«ö„à=ÞF+ ›1fUsUàñ—ŠÛGuP†K”1,Og]ÇqZT·Ô+ñÔϹ xt-Ä"È‹*øENêÝ€—Ä‹Á`ðÛÁ`0èÓ¿xÕï÷;iÖj§§§Ç�>¶áV +�@½^?Ó«îï®&Wªè³Ëž·oe7ûŸQJk�ÑÑB(³(Ã*²\4FwBÔïEƒÁë×ÿðÍégµ“óË׬ܧ¾wÅëuoÂ0œè„h��y´Þl6qg2M³$-Ê{Yh‘–7�FCÑuè$–2S-6µ½ešJ¹MÓ$ro8�Œ†.¸T2˲T¦2ͲìíÛ<üOÓT†®×Î&Óá¨ëLã$/9ÊLÆI–¤2I’8^¯GdO;"Gš;_‡›8ŽbU¤­¥–ëyÃé|¾ +0–›$ßÓYš(Ò`šd*UQåŠD¦©b'‰Œeš¥2^o6qEQ´šÏfîç2Bêõ:cŒ¹%´É9Œ9Š{ªðP©÷µ,J‰F£ÆT”2`¨Ä^rÞóÿðß·rf+£ôsªí—\x~õB£7÷náèänI®š:¢ì)V(S¦—ìócŒ� 6çœókŸ£Jì³prÑ©0[ôð‰Š¢)!ô—ʤ–VL¬Å,Ö²í&¥ŸìŸ0´Y¥içcß/ï?Ø{°Ÿ©PÚ`ŒÛLgd�´Ø‡®½Ûçÿ¿¿³ÿ;îŸ=1ªuDœ¥ååt +àæŒ+Ôœ÷¼ªÅ¥´¬<”„a,”ÓŠkϹ(òžgYX4ó�À¯}Ÿ1ö3þàâUß<®õû¯µOûƒAÿ úƒ~¿ÿêÕ«~ßü�¦yzúŧÇ�?þø£¢'òñé«AÐéXuƒÖõªçMT + JªðܾÕØ@³A)eà �ˆ€‚*^¦c©"¢8”Ðk3Æoh·x«e¹Wþ"Œ’½2x~NçŒú¼‡ ¡²··÷àÁ_kšF+ê¶Á¶uFöû0ÜÔÿ>ûìvþ�¼ýìÉãûA€À F+ÍëÖÛm»(¹²ÿ> +4Ô¸QnWÁ¬gÆBJ�¿tàðž!€ÊàÅW"8*PU@ÞŒ]\ôƒAíƝúæñy¿aöµO_]\ ýË;Ð7kµÚµÓãGw ßôOÌ~ðMÿõÀ›\)`ïV`ßôr:˜ÝfÍm´9z‘s°¹U­; «+Œ˜`àTu�6߉(5¿¹ç—¯/ÿñ»üº?¸Å�¸âhm¦!äЙGÑz-c™f2˲L¦‰Ld–&éʱ¼át> fÓa—Ž’,GÅÍÏòV[*WèMF“Ù|:u™>Jd–¦êNr L³,M#¯;™.§ÓÉhèNã4“ª’˜ÊT&jƒJG¢½NŽºëM$¥Tý„Ô²Z–E=èvGÓÙr>�âX1¥LS™J)w¼cU¨ÈÿšÈ,IS™%i&ÓDÆi¢8Q¼^¯Âp¹œM‡]�Õë”*Ñi‡1V!Œsa@Á(Qèä™&€ÃZшÅ|90J)¸B±Ö:þ9‚ÏE r!Zÿ¼RÒH‹ðý ˆÔâ®™àÈž;̲¥6iªÙÆ€Ñ&Ë7÷ù‹p@ÝVJ LmP +¾ÿ¦¸”P%8…hpµ¸ã°–Ř%ì¼¢qø€ ç«„צMÎ;œ ×±Ó&ÚÞÞÞþž¦F>/Óf“Ù6êHöüÃpëü¿•ÿpþB¢?yRýþû^ÀmVn÷�j�ÌÇÉ_ á.„ÑõsÊ®Ò`ߣ?¶D!ÐGië©:øÝ;UΡƒ/îæ——ƒËËÁ7ýþà²vr1¸0ûæIí6ôûƒôûßö¿5ÍZͼNÏ_½|3¸¼ÔÌ×—————·2Û¾•Ø* �mó—¢—“DÛ¶-~¡3ÇVpÌ-ª[®€zý=0 øÿÜŠn®÷k7<€äÞÝŸH)e$7SJh½Þ].×±\Ë$Mâ<|NÓDÆqzÐ�ÌçÓùl>íºs™¦Û8»±ýM³t+ã4MÂaw2›ÍçËÙdt(eªüYª¨8Û¼7NFóy.g³Ép%e+ITRÊd¯7Ñ�h„RB¼p'2U�FRoµZ-Ëñº£Ùl6—Q´Žb¹Id’¦Én„1Ë2™¾ÍT 0¿K©¶¾"-%iKo6›8^Ga¸œ/§Ïsi½^·òž²Íh³ la)n*s‹±p/×Ñ@€Q¢ÆZ"à¹]¦xˆ8æ‚ëÀQø"¯ ¨·qiOc¶ý_ ÆNt¬Êit€Y-Æ(i"¼@®æÝ(ÍÇÊ•ó%ïq8‚ÜgPÓ4íÊ¥ ÄY7ß'”1xCëæÎ]Õ|´pÀ¡IÉ‚€cìøÈ�²6à¾/ªW/À¦ûû{û{Z‰R©Ðf“±¦]gd�0—Á#€âü¿ÿïœéºñäûÞ÷AppnsÞdtÆØcÞd*W`zÒBÜ­ßd_Bù‚œ­Ìý€ã­F€ÂOÄ—hµÀ¹\ú———ƒÌ‹~ÿrP;1}óoïDߪ`PÀ+³öEÍ<}^ ú'æ+ Ló{ùÛË×—µ“ã½½B‰ä&¸  ʱ#zˆ¼Ðf6€XX?s•f:¹å„½æÅ¾ùì¤vrþ.|÷Ýw�{Æ�_¾ô°8­ï^ùȬ”³–N)u§Ál>_ΖóùjEaEa…«U4§³¥2Ø›ŒfJS/ +£0R‰¢p.£h>™Lg3åÀÕu…šÑ]…a¸ £0Œ¢h®Ã0ZG“Ùr¹Z.—ËÙhEaÑŒ ÃUø&\…«Ùl6�tëu‹Ñ:éFr“(ŒH’¤NiËjyÝ‘˜.çóe¸‰£0Žc)Uñ@µ‹°?˲,Ù¦Û,Í’,ÝUR™&©LãXÆqËXq‚§“n×iQjY‚‡:ŒQ +>¢@-½m#ûècOø€œƒUÇ 'ó0FæP¶ðª¼A ö9eÌqà™7€B ¼ô<ìÁq%eŽ@�cÑÃ6øÈ]C¼‚h¡ÍÏ Ñ)ÚôÊA«ˆœȂ߻ÿ;üèOžèúö¾‚€çœ�Ñ?¢B¨æ8€âŸ ÀŠ™�vUÇf¥É‘ƒûÔ¹0ǽSàœ¿ô<ä—ƒšùÝëËÁå ?¸€‹.¯úæßÖ[)À·ý¾iÖjæééÉ£�?Þ»ßæ@ÿòrpn¾þß.{y©`oooo›  �iÒmÚ€BéÙmÆìž.Çæ0·•Ïž€ã¾zççæÅÅ |V;1o§Åõß½Gò^zé¯$•2ŽçL¯[­–븎ã8®ç1Çq\Àu¼®7Šùd:[ÍVËÕr5›Žº]ÏÅ®ãxž×õ<ð<×ó¼Ñ0˜Í—«ùr¾\Îg“ɰÛv»àª³ëy® Cìbw6ŸÍæóù|­f³éd„žãv=ϧ ž ®çº®ã0—9®Ó¢d´–qœÊ,I¤”’ÔëuËq‡“I.ºŽ"ÅÿOåF&INPÚý‘¥[£(ÌKÓTÊL¦R¦2–k'2Ž£h­ÂùlÒu[-Ë²êº®ëÆ³jõðH×-Ë0êFÁ¡5 ãìÌpª†ñ¬U¯u˲ô‡�uÃj†õ̱ôº®Æ3K=Ô°ªFÝ0 Ý0 ]¯z]¯ëúáýÇÖ¿«†eX­:9ªêu½X\¯NÕ2ž=3 ÃhµžµôªnýB×ëÆ3ç™Õ:3ôC½®ÖÖ­Ÿº®ëÕjµztxxxx¨ýõÇ{{õg?«V Ãj‹éU½®ëºáT-£ÕR‹Õ2ªgϪŽa–eé‡{uð,Ë2 ýPÿ™¡ëê©êº±S ~øøèãÃÃC½ªëÕ#mï±®ë†~ïµ×¤Íf³Ù|gÿsýÉÙýÌÿƒ‚€p>¾³i¥R¡J5lh¡Á`6cH«Œµ›�&çh伫]À˜ à9vp^ûôؼ¼¼ÔÌï.óà··`0¸¬�˜ƒ‹WýóOÏûý‹‹.oG¯úýþ+³V«ÕT +púEp9˜æëËÁ.Èàã�=z|œ€½ À{¹ l»×c8ôŒ!8J†±6Çyîtv‰€yn^ÜŽ>»?øî»ï¾û?Þ‹’<ØïJ¥ÌR)å¬UWÛŸ1‡µ˜ã´X‹µÇu\×q»£Ñr6ŸÏ—a´ +ç«Ù »žçy.s”RµëºŽë¸îp8›‡óy¸\…+å¼áy®ëüÊÇq]p\çW®çu½ÑtºœGáj…Ëår6u»®ë¹®ë2×i¹-—9¬Å,æt]×e–>ÚÈLÆ©TóD':mu»ÝÑtºZ®ÂuÎPõ¿<óW'ý6Û%)I’d‰ +R™¤YšÈ4‰“X&›�\GQF«ét‚¿rZuÕÏz¹9ãŠü‰B D_ˆžßû�õZ-_ˆëßãñØñWWjžhl¢'„ð{®ž£DcÐ +T—›Y ÄØGñƒ¯ÆÉ†?8ˆþXøÂ®Æãk¶,@,~?€‡ }�ºPt2ÎX»Mí%ä@#_ +0~‡í¼•†ã@`{_ !z «‡~!Æ"¿AáZBˆà‡@û€öp!D1èVqˆB|-ÄKDÁš¥ªؤZ^}£””¨@ø¾wïU@³AY¾ÿ�sþDןèú÷=\ÿÀ9_�'–ÅlÖl²ªÿÂï5í1Ä3 üÀºò9­*ë°6k3ö”w, €åÌËcm¨W´yy9¸·R€A^x/ø¶?|[Dß~köM³vzú~ ÿª_D¯/çæë׃w#€�?þøÑããããÓÓÓ\á�6hƒÜ�)î¢ãFp–9Œ=w ^×iÿâ0?ß}÷ÝÝÀ‡ê2MâX&‰ŒW­zËí‚×uÕ™îzt]·ëu½Ñh4™Í‚Õ2T¾Zár>›ŽFÃѰÛzÃá°ÛÅîp4 ‡ÃÉ,\G«U8�Â0ZÍg“‘‡8ôºÝnwØ»]ŽºÓÙ|†«0Œ¢Õ|¾œÍæÃ¡Z¯Ûõ¼.¸à�ëz¿êv]×q¨>Z'Rñz¥”²^'„2o8™M§Ë0\¯ã8Žã$•±šÚfÛTM'gÙÛLÑ�³L}2•YºM·q–È4Ióá¡Íz…a¸šÍ¦Ó‘ç¶tBH«Õbà9¨³ �/sBH§è¨ø{=ä6¥À,Î9"b9¸ê«Á™è(vpfµ€R¢¼Ñƒcmîß(ÏC­Ï |Ä+°�ŸQSïJ&¨þ`3›±_枎DÓ´=b1uÁvæ�è#0ÀQrYFP,ÕC ¼–ßS)V¡Œµ•D0ЯòNGÞ^~°·¯=Ô4Â4,\ÿF«pÞþ¸€&e”²¿ÿûÿÀõ'Otý‰PÙ?ðñÕøÊ², €1ƃýkÞám€:üÞ÷}QUЃ:  mÛöÓ&¥°Š®YÞÈC×4/úýþ`p^_ƒþàõàNp“Ü×È#Ó웵/j_|qO àÛ<\¦ù�——ïG˜¦iš&k6(mx¢§¸ÊmÛî!S.~cÄ?Av%�v»�ûþ^\|sa¾Ÿœß—µJè—T#LW~¤Œ“TÊdî´ÀóºÃ!v»Ý!»^w؇£ÑD̦ÓÙrn¢(Zo¢õ*\-g³ùd6›N†“Éd:Mp2�L&Óér†›(Z‡a®—«p:™NG£éh4'“‘˜Œ¦³Éd2›¯VÊÁ#\…Ñ*œ/§“Éh4šL„èGÃѨ‹‡Ãî¨Ûu¬úp­=2˲¬^¯×ë–‹ÝÑl¾\.£8Š×›��Y’%Y¦ÈÇiú¶èR¨(@æ|D5˜$i,c™FÑFÆ›p-Ãù|4éº-¢¢ÞTäêÞ¹q,‚’¿âŸ!`n÷Î92€ ðx¡,|�sèþ¤Øls ¥¬t)¡¢Ž :¹nè@‡£¡ ‡ˆØ †pàœc‡s†…šÐXǼúG›ŒRò‰¦išÎú�ª"0›©î¢�€=ô{ˆ{oÐz‰j�5¡¸s`Š­Z쀌E$ð”2c´L˜Ý¾÷zšÍæ ýë(zÁõ5Ï·ÿز,@°mÔ›6÷}_X:"÷}߬1çÜ·¼1ç¿VfÖFiÇR£¾´¥ì½˜ã˜¦yaš¯úýþå`Я}zlîD¯/ïó� Hú|kš»àþ`ðúrp®àòžàøç§_|qjšýo¾yeöé{€ò¡ì€ �À1Ô Ë™'ÎÅ7ßü…Àw�J™6+±›�f"erï%“$•qšÈ$ô¯;ŽF“ád4Í&ÃÑp4M&Óùl6Ÿ¯ÂeGë0ŠâXYj,§óùt>�Χ³Éh2›Í¦«ÙlFŠV¯£(\‡Ë™Jö§£Ñd6šN¦óù|>›/Wa­£uFrFa8ŸÏæóÉt6ŸÌ&ÓÉt:SÀ1 'Ý¡kéÝ(NwCºN)muq4™NVËÕzoâM’HÙgi–l³,M“m–n ¡mšm·i²M³mªÆ‘ÒLÊT¦RÆRÆ›(ZGë0œÏ糑çPEh�cØŠï§+»G çȇ-§4‡øë+Cµ+íˆ"ç~z/oÿ=ž³‰,ƾtœºªòÏ×ð\µø÷†ÒŠVsoÁÐë Wç9WãÀv@T…�º7(%švDc0Ô1'1SØ îÕ7z€ˆ½^¯×Cî¿t8"ìLQ9bçØŒ]Ÿ‰�tçÀ#û{ûÿF#úC •2-ŠS:h6(k6›Mö䉮ßà ¸8À­í¯&mÑi0›¿�*¼Dß÷�/‚ñ‚YByØö|ŸsÞ®!Zì—Œ]\\|sa^˜¦i¾ê÷ƒÁ¥€AƒAÿõë»)@ÑP5€DÿÑ웵Úi­vO°'xýúCÀéé©YûÂ4Ío.Ì óâÜ<?à*ÌäDÇB‡åÒpí6»¸¸èßçÚ¨Ú¬<&v£Ñh¦¬˜ÈT¦!8Þp8œN¦Óét:›Ï§ÓÉ|2�ÎfóÕ2\Eëu¯×ëµÜÈõz®Vóy¸\­æóùjµœÍWËÕjµZF«u´‰ãx½‰6ÑzGKõ ³él¶Z-ç«UEá&ZÇ›MÇ›( WËÕ|>›Îçó¼<8�Íf“Éh4™tÝ–> +™¥ù\aùs½N�nw:™Í–Ë0ŒÖ)ã|~Aª¹¿mN>J³­*ým³·i–m‹úÀŽt eªD‚£p³\.çÓéÈkQjYÊG¯P»âùþï0è!rüÞAD¿×ëù~ý7jsþN½Ä™\×aT3‹1f¡žSòÔ÷ zˆˆB©ÝûØó}¿ÇýŸÐá»YYè!W>Ðö« ÆXË¢”RÚ D#ŠßæRb6(‹l€0ÛGä¸(Gìù=ôÿ­bG�âC�c¯¸óz¸.c :h8”h{{�5ö1­T*”ZÌf¬ 4s ô¬×ë©âÿxœ‡ÿùã{ÀYÓFËSº^È{> + t•ûpà¿VºmJÁ²,à<zqqqa*¸0‹@ÀM +pyÞIj·Š€ƒAÿò¦ÐiÖNk_ÜSüön àò�ÔÌSÓ4ÍoL3‡ó¢ÿ~¥ˆ‚–Á³\ìàÏë|÷Ýwß}G� +¡�ŠFìF£Ñh$ɇB™¤q"ã¥×rq4�LfóÙ|®Ú}óùr¹\-WQ¸ ×›8^G›xÉÍznÂ0 Ã(œ/W«å*\Fa­–Q­7qoÖë8Ž6q†Õ0 çË0\.WKÕ>ŒÖá:^od$c­ÃHùö®æª¸ZÎgóùr6�ÎF“ÑÐkQ©ñ~™eYvtDtæzÃÉt6›…á:Üä,À8‘IšÉ4˶H‰�ei¶ÝfiºU¤À$ÉrÑ¥”«�DQ8_Í&£¡ë´Zº +¿êCì GŽ~�§üÀØïá×ðìZ¥è¾ð}ýߌ=D޽bxÏW�\JëËÉ]ªòf/8ž b‡÷|�¹Z€¾ïƒõ¢š!õ}ÿ×þx>vò”£Øóóêâ)Û1dÊD+ƒãºž-TÊ‚ì\ÃÔâž Gô{¾ïû>úã7Ž@þ²€,Ž>ö8€°Bp +ÔüÎ+ûš¦U>þ’Òf“5Û6ûK€ö‚ 8_]�ÇW–õ¥bÍÁ÷‚9 #£‡ÌG¥yê#âxb]urRÅ×}Ÿwx»N© +.n®o.Ì‹‹<ø6¯¼“¼æ=5€oûƒËÛ]€¾YûâC)Àí.À?¾þ@àøø´fž~±€sóÜ4/úýÁ ÑÃ�`,tŠª †Ã€cšÿ3¡´Bh#� ú�ó_ÆRfYÇ+·åáp:™Ìç«Y¸ +Wár…á*ŒÂH‰mÄ›Í:‘2‘Q¼‰âM´^/Uë…Ñz³Þ¬W›Íf³‰ã8Š×›µ´‰ÖjØn½U¯?ZEëp½‰¥Ü¬ãµÜÄro6Q¸Ž¢yEá<ŒVa¸Z.gËù|:M‡]VÅ2IS©ø=GGGõs‡³Ét6�Â(’Š%§q§2IÓmÁ>Tû>Ûfê3ªA(³L%I*ã4M’TÆr³‰×ár9W#ÁuBÀÇhyèyj”ÑCô¼+@üÊC/7’ Æ×‹áKáyè!" +Oøˆx…èa`ð¬å8žë8Žƒè9Žcµ<ôÃBôÑØ-cì ¡ò…Z<øñ% +ôÔ&¢˜Ñâ“à¹U·,‹êôè°L)m9óÿî‰å!*ùxüÞó<ô”¢ €g¾TîÇ>ðñøú�‡ÑC"¢7 +Ð +ôZî÷ÏÆˆJ±çûœw¸ªX»Ío`^ä)À`ðÙ�àòNÐ|?¸ËÜðLÓ<===ýÓ]€ûj» fšýüü7M³€W¯ƒ[>_"cçæ€ÖÊï@ƒ~(PCsqè9Þh4›-çËp†óPç«p½Ž£HÆëµŒc™Ä‰ÜÈM,ãMÇQ®W‘²à\G›�2呹ÞD2ÙHoÖñf½Ùl¢0 +£8ŒÖ›u†ëµÒŠ7I²‘±Œ¥ÜÄŠPEa†ë(ŠæËå|6›Í¦ÃnËš$2Q€4Mëõ:m90šÎfóe¸×Ñ:–©Ld"óJažéçâéVuÓ,ݦÛmRŒ É$Md^�r½ŽÖ«p5Ÿ‰¡ÇèÑq]@Çj¹ ‡žãzØõ¼¡çüêÌqϺJBŒzÎÂõ<ðð†žã"»®ã¸^Àq<ððL¨ÍºVËó~åyCÏ=µ8zžóä™Ã<\èâ÷JP|ï¹KG- ¢ç8ÌqÀae–ÅtF Ñ•Ì�ç!X–ƒçy=OíÎÝâÕgγ®®‹(òÅ…çÎ ÏÏ@pC\  à8žøÕPäRHTÛ{@4í1Ñuj³¾d ½û¯@“�ÇWWWEôÿüùóï™Ãœjõï†uàm›s›÷V+>"ç@é £ïsÞJ)Üìÿ óÂÌkæ«{»—îœzÞE¾¼}³V«�þé.Àë?Òx'Èà²o¾ ýÁà27hyÉTîƒØA4R|8øP€” ¥•òmh| P\Ý8 =·;šÎV«Ù\MÇGëÍ:Þ¬×q$72Ùlâx­ØöR&‰âÏÅÑ:^Ç›(–›M+óÝ\•G&É&‰“Íf#ãX®£8Þl6Ñ:^‡›xÇR¦±Le¼‰ãµ\Ëu¼YËx½‰Öñz®×*%X†óå|6uÝÖ(IÕŒo"e¢ë:uÜád4�-£UÅÑF ™¦±ÎÒmš½Ýª šfÊÒ¢�+%©¢§R&RÆ2ÚÄÑ2 çóÉhè2ëè¨ð{éô}#Bàc¯×ó}ô_ZAnöáûþ×¾ïÿæ¿ý·±�è €·S~©þM9xÐW†¸¾J¾ýºZ ï£@äW=ìùèûèçCð@ß÷Ñ÷}üß®bkX”è9ÜŒ§3ÆX“²6¡Íf³],ÞðÐ÷ýž@äW¨L÷Ðg×êÎEž`Œÿ/á#ZÊu•!t¼¢‰xå PwÞkÓ’¦i%òùç m°™�…>ñ{ׇ Y)ÝÞÿß3‡9¬Zý» (Ìóç(<:€¸°ÀÁç¿þú×=ß÷yÚuzqû2ïû—ƒÁû)Àý`Þø, ¯"€Z­vzoðvàõëuŽ~jÖÌÛEÀ.Ìoƒþ`ðÛA¿Ñá�޲=@Žˆªsø?Bhãnð¡2@œ*ÝÐs»“ùr>_Í£0 +Wa­×ëMÅ›¼Y®”öŠ)z™Ä›uá¸Ëu¬@AÊ4V¤£$')¡žXFkå̵ŽTò-ã8ÍUüâu’¨oŽ×Q¸Ž7›x*vþl>™ŽÆón2Ì€¡qí£Ï±˜Tëìʾœw•‘# +Cädˆè#÷ýÿÓG„¡•ôoÉSªéÂ&kvØ®4zÐÉÇà€9Øãœw`Œª&Ñg×XÖ¡�¼ç�}@ãž;ï¨ÿ‘‰–ï÷zªîMí�¦•Èi]ô?dþGà€�|ûäÛ¿@ƒ)ÏdÞYX8æàˆ¨TÏat^Àß\ü1ØÕþœ.€ªÜ.æ!À«W¯úŠT»·Ø‡0øó"SÀ`pÙuñm0øvp9è÷_]\˜fpÄ Ó4ÏUróÖÈ h7иH�¤ÑÈÍ–ájFë(\Çëu´Þld¼–±ÚˉÜNd"3™Ê$‘2RœMœlÖ…Oª›Æ2‘IRèïJoä&–RnâM"ãd×�SÊ|‰ŒåFn¤”Q,ãMÇÑf­ŠŒÓÉhèÎâ4‰S™&i뺮SÇŽ&³Ù|mâ�r”jB1Ieš¨*€ê¨D`›�$çÜà¼'Yš$2ÙÈx³ŽÂ0 §Ó‘×u[¤Õ²mh·ÁZ¨@?¯œù–@Ììõ8rs(F�Û(w¦C`ž ÕúØé€ ŽàÀ8ïç‹_YvÀfÏ8ö8rßG€—ŽuSJ,kÛŒÒ2ÕšMÞy±[¼à8#P:xàÅ�ÿ`Œ€1€÷zÊžžxÆ»‹».€ǵ‚ ÀŽ¢"´+š¦h””i“5cmðñ/ŒÍÊ!% +ÏŸ;Ž +ÿ«A´Û Ê€QÊxO‡z9÷Ñ7"pxÁ9ÿú×¾ïó/.Þ»î‹î¤—´ ð€êÜ_üöÏgªÀ7æ7*PãˆýWýÁàÛoÜÕ�¯U9óO¥÷wˆ’o}7h„÷\2ÙÈ$N“t%&ÓY…Q´^ÇñFªr~n¦›&©êÈ8ÙÈTÑîã$Þ$‰”q.¯“‡þY¢TÅÓD&I'±ÜÈ8IŽ$2‘Q"•"g’ÊDª¡œ8Ž“XÆI¼ÙÄ2ÙÈu)©®õr>� ݹjò'I"e�’:u¼Ñd2_Í–Ñz“ùs¦J  SRäY&³·Yúv›fY’lÓ,{«ŒLÒL&i§iK)ãx³ŽÂ( +—³éh„N‹X.c À°¼£Î±ï_ùè#¶Äî¬Däx…>ÀбoŠâLy{0p:ÀÏðV@ \fœ §¨vÀ±ï�}ôQX�²ùqr5‘žZܺ…. nQF¡eò˜hÔ¾!Øà æ[€cßÿ��_£0®ðö�û¨ìIê…ì}ZL¹„r`Œ9–2į̂ͭ¶w ‘Ïi…6)m2fûœýë{þû@©B€9»í´Û”R¬Á® ñZ ’ø=t1W?ã}ßwÿEÀ‚4¸¯ 0ø@à@N."€oû¦ùEÁøè�Î\~° pz7P5€KýÁ·*Ḹ0MóÜT[=þò.) ¼ãä×üýk¶Z…óù_mb5(7JWLÉ�$y0M¶oóv@¶Ý#B2I³4»�Rq�¢0šÏ&“®q~Řrc¶òh8ðqž8‹V1ÞØQús˜“6Y¾GŸƒ[ìQGuþ††ÈÛ=: ÌZ;ö/ð±ïûØóýq+È{òùû9‚ã€Ulÿ<Çm3Æ,JI›´¬ú�TX´¸ï†ÅðƒJ0ü±qÍsŒà\E›¾ë8`À»Ñ…Ãcð°<¸18b RÒ4B*JŒµmßÿ5¿ç¿?•”þ†jsŠð¿ÝnÓ†R"eUx ØCà\5TTa…ó_ÿú×¾ïóÀEQìÞIþÂ.ÀMðí··xÿuÌ@Qxõª?èûíà·ßæpQ@Žq €æ ˆ@o@sôþÕuž±–ë 'Ói°ŠæQF)ãx#“8·Ø‘q§Š-$ã4ÉTå MR™ÄIÇI"ã4•U§“In(”f2)>o¤”©2í’Iîý‘f‰”2N“TmÆx�¬7qœlb™&rʼn £p®æËùdÔõ\`Žë‡„�zÝ�Ñh2_-Ãpo6i^–H¥LcUá˶éV gÛt›n³ÝtðVy•%Y*ÕpAÇRnÖa†Ëår:×µôVë—Œ±6tÐÚUÜø�þµïû=ßÖXlt@õ¨%#/òs×a¬eµ˜Ë€9®3<ÃbÿçÞbhíðÿZÁ‹°®ùî˜ïð޲ÍÛ-ÀÕ$›O'£®cÕëuŠ,D{|±ÐCDÑÿË’kxsâÊ �=�œo¯‚!âB�®x  =\\ _þ „¸Æ^…X,„è ËÁBø¿ÍOˆŸ~J~tþùú‡@"_yð_ŽÎB »jqÇŸ€è°/B“24ðá‹…bø 1ì‰Vë*øAøoô{8ÂÅOÉOÖ¿\AD�Øo¯î"ˆ q�€B ¾ DOü |ñ#öòÅ�Ò‡´Í˜Œ=¿Ýšü³ ï�Ð&emƘÂëó}_°ÕPpP¡MB3�LóÂ4kf0è¿ê_š�>zTëúýÏÎÕ‰þÍåëÁ`0¸¼º0Í‹‹W}óÓGæÀüfpqr®º§�...úýWý�‘W¦™�œžžþüÑÇ}tS¨½ê÷û¯N.^]¼ºx5è_šæëË~0è×>»€Û‚æÅ×ÌZMåæ« ³ß¿¼ì›¦yµóÚùÅ…iž›ç*)ÈqÎ4Í óäÔ|Õ¼¾89=99¿|ý°t+øs`2�Œ&£Ñ|µ +Ã0Œ¢M¼‘›8–ű:ÃÓ$7ýHÒ8ßì*ØÞ +å¶¾¹½·²úM +9`™¨M'3™Óo3¹•jp'ÍÝ@Uö ¾)I¥LË8Ž”xØjµœÍ¦ÓÑdØ�Œ&“ 9:ª·Üád:›«;Žc)‹C"óš_–J¹Í¶Ù6ɲì­:ñ³TU²T¦±Š¤L’ÍFª¾ãr5›NFC�Y”þ⿨V«gú“ª^­V «Z­žU«gUÝpÎïɳgÕjµzf=Ó«ÕªqV­V«Õê“jõÉõaõìIµø>㬪ë†~Vµ ÃÐõꓳjµZÕŸœUuõЯÔ÷=9;3œ'Ž÷Äqªº^­ZÏΞT«†®­nD-¯W«ÕêÏtýðððððáÇ�«z¾¸ž¯ùDÉU«úWù“œ=9sž8¿zâ<«êÕjõ«gFµZÍ儞œýììÉî¦ÕOlT«UݨêU]?{’ßyõ¬øòceztxx¨^©û®?”T*ÍJ³Â˜-„ïe>¤HP¾/Š2@G#”Òf™’]¾|±Û#*€®ÕúƒA¿ßýêÑG�Núý~ÿ¤v9èæàR ~æÄA³öè¯Ì�Ùœÿ­ªÐõO™¯Ì~¿ŸŸýùŽ==>>=}üèãÛ`ö_õ_}vñê¢Ñô¦ùÛ~¿ßïÿÖ| +¨©Ó¿fÖjµZŽ*¸4k5Ó¼0ÍóÚù¹išµÚù…išæùù f\\\œ›æEíøØ4ûýKóäôäļ|}ï€v“w®i0M¦“ér*À:Žâ¼\§išdI±ûÓ,)È3¹ìÎ6M²Ý_R™fÊ€+“I–e27ûÌãÿ4Ëòð ðåȽ»²4ÿ0MÓ$Ùíã$Ž×r­7Ñ*ŒVóùl:šN†ÃÉd29:Òë-èN§³ù*\oâu¬<�e¦º 2-l”eñ¶p0“Ù¶(fùO”®a1Ž7›(š/ç³Épè´,ZWb ñõ›EàÁ=!zO¾_(á¿y€ ‡À¢¾1pÏ ? +|¹§ãgˆ�X XÅ#ä¢Êp!Z`÷¸?þ)øñDZ�]b \c|³ +<ØEuç�xcx ñ;€á1XŠ!þËÃÀϾ@\®øi ‚7B\ýKðã�cñ-g)(‚2zD(k0øð8П™T*ÍJ³LØXˆBmrdÀîõ~#]BˆF +Jª:¦~+Zfçfíô¤Öÿ¶ÿí`ðÚ|´÷щÙ7Í“Ï.—ƒ¾iý~ÿÛ~ßT3ƒ +úý�ù·5u(Ÿ|jšæÅ+³ÿêÕ+uö«Ý§àø]è÷_Õú¯...^õ¿í×Îûý¾’¹ úèøøçÇ9ÔÌÚy­V;?¯™fíçµWƒÁo//ÍÓZÍ4ÏÍójçæù¹Y;?W?ÖE­–£ÜEíÑqÍ4ûóääDun®%"xFS1œN¦Óù|¹\¯Ãu$e,)e²Ù(�ÍBA7•Y’eq–ÉT¦Ê(÷óQsºY–¥Y¬RðDáÒœw——âÜžSy�Ê$Kd–C‡2K™¦I,ÓT¦›TÊ8Šã0 £p5_΂Ñ(¿çz�RæGÓÙ,Œ¢M¬¸Å‰Lb™Ê4͵~Òl›m³4}›nw’Y–%I–å6F2g&r³YÇ›8Z-WÓÑh躔~®·Û¶]h�¸æ(á^ä?>C@DÈëx¬Í˜ �¶z®f9çBïqôs«JßçÊ#z¬¤úT#A)`2T–�!‹–œŒÙèpߥ2¤ˆbð¡m7i…4�÷|îû¿ñ‘ûõÀ¶omJÇÁbñb} /o3 ™ý”€DT¿u:XýÑGäˆ=Ÿ£?öEë'(,xÕ4íˆJ¡¡$ùÞÿïO€JXâž%ztjšfíÄì÷û¦*»õûÅÑ^;þø¯Îýþ öéÉéi­¦àÜ4;R3kµZî +v|üóãwŠ€*6x•#ÆnÝÿhÖ~¾·w;xôèøññññÉ©Z®V;ùìäDõNM³ßï_öÍ“ãSE8<¯ÕÌóóÏjf-‡%Hzrjšç5Ó4k�ý¼fš¦yrròi­?¸¼üÇË×—¯/__V*%úN +p—pL&£Ñh8œÎWQ¸^‡ŠX/ó™Ÿ4IÒ8SûJÍÓ©: RÝP{]fq¢"ê<äߦYšÈLu ¶ÙÍX¾,Z…Ÿ" lÓ4Í}HUƒ!Ie²‘q*e¬ÉË(\Íç#1uEw8Ö)¥õ–7Íf«U´£�Œ“$Š$I²4ɶÙV…üÛm’Ê,ݾU‘ʶÏÒ4“q’("¹ÙlÂp>ŸMD×uÝz½^·mpí¢¨î0Æœ§¹c‡0ƨAò¯ðktnÑÁ@|SÝq}ìqäâÙ.@PNPJwŒ@PX€@.·csÁÈoqõ9‡ŒQZ©4íb�w:ˆ¹†Ð¾9Gsé@�@`ˆßᎣÜžF¯~�·Eµ`qÄ^no€ãg˜“ URÓ>!„²Üjô/€Ê;@‰ªz&ÎÇã_û½žïBH¥L´2¹‰Hƒ”Ê¢¢~µOòÝrzüèØ|Õï¿êÿÖ|”ÀɉڥçÊé/î1ÍÓã�>ªõÍþÅgŸžŸÖNkæ§'7ù¹¹kÿÕNO�=>>~|kÿï=:­™¦Y«í…WùG_ÔîÀG}üèÑcÕ +<=­©©¢““Ó“Zíôø‘€~ß<>>̓ƒÓZ­V;¹Ùý§µÚééÉñéùy­fšç§?:>=5ÍÚɧǟÖúýo////{ùÛKz/¼¼Û ÄawØõºB©tF¡\'qçÆtlöT1†�s`ÂAØQoÀÀEÝò¯âÜp_á�¼Ù¹½8Öôá<…§ùâÈ[â™Ó†S‹þ¾¤JÙ�Åý3Å`,ÖdŒA.<ˆÖ¿a*«¼@´FÀw·îpŽUÏÉG�g˜#p·^ª'·•P…B›,ÿþ|¸Ó`å] +Àe´©�|<öý­”Ë +H4MBI©R)“ÚícòôôäääøøÑqMíÇÚG{=:1óÌÞ¬Õj·‚ôZ­vzüxï£Z¿ß7OåUºO�Õ,v¿Ú}§§Ç�?>>>>¾ê<¯ÕLÓ<¿µZíô´v|;øèãG�=~üøøø´vZ«�ÖNNŽONNOOO~üññií¢ß7ÍÚññ±B‡ÚÉIíD-~zR«�œœœžžœ?>­Õjµs³vüñ£ã“ÓšiæÐWôÃKúgÀ;οR2Ýél6›‡Q¼YÇÉZæsò*ÛÏ#ú¤¨©r[ŠV#³$Éd–ïýd+ÕØ½Tl¼B™;UóCÛíÛ,M²mše¹~ßM«^&ª—�%Yî &7qÅ«h>ŸÍG]Ïñ”ô¸ëBê–Û³él¶ 7ëõFn¤\çCˆ¹�ªD¼U�@5¬ì‰بÞc’¤I²‘qm¢(œ-§“Ѱ«T�­»!Õ쌻8Cã +¡hÓçzüºÅw[Tù‚¿ÑEnÄ«ø;È9püñî|ÀŠ3úfq]ì?!'#ókÆÞ8>`�..²a¬2¡¹ÙÎyy qcÌ~ê:Œ1ÇU-†*¼èìV>f,°®sJ¸ðܡߒúÁ òˆã–縌�� ñ3];"„2û²X¾Ê9@£T¢R.߀]P!¤v+J>­�œ?ÎÀ4ÍG{ýÕ±ùÅ-0 ZÏI­vzzüø£�NLÓ¬?:QðѱyZ«ÕNk¦:Þ¿PprüèѧÇÇ�nh@{Ç'§§·2ú[í½Úéñ£½÷ ‡˜ZíôääDÀññ£c•Ï›µŸÿüøTý§'µ“““šYË?:9==>9>>­ÕÎkf­vüèÑññé¦ùÙ±€Á·——ß^¾÷Ì4�Æ;ÿDN«eQJ�îhºX.ó"`œꩳ<É’4U[(ÍKëÛ,ͶRù‚ªH_*|P÷,É2Õ{Û¦o g¾$Ëäöív›—¤T©D¢JtYÎ/J’¼â(eÇñz½Wál.<§Õ²,ÚjµZ­V½^'uÇM§³p®ãÍf³ÞÈX‹ËÜ Ùæ•‡|2!ËR5�ʼ´™•*h¸ŽVóùt‚C—µ(%D¥ÎìæügEÔŽºÏ‘w8‘Óf8rŸ3KÀ€Ÿ tSI7÷‘sÑó|O�w‚ O ¶ªÅAi‡çÜçÌEëê&DwWT‘êŸ3•Ñû¹8é×�jsªÄ"ÿ#_\T‘#çÈ�ó0ÐQ‹ëcÀÎŽ ��À +Åâ«|qܧ}ÛŒjZnú¯Ñ¨”Ú +èç{„5XwS€"(W)‘Ûpzrr|üé£ãSÓ4_™fíÑ.øÂüB€y䀀Úééií´f~a{[íÔG�ï–Ž�s0Ïk5³¶;ÿ¿ø¢vzüø=PÀéií´vä� nE§Ÿ�ÔÎk§''µÓ“Ïî€Ó/ÌÓãOw@´² ðnP'GGäˆÐº3™®Váz½YÇJ÷#IT`®H´išfÙ[¥³»sûÜù‹e[U)ÈäVµØŠöÛVfÊ’'/ä–�oßfÙ�jW²ÝJ¥Ù�ªº¼LS)7Rʵš +^M†-¢‘C¢Ôºë„êx£Étº +£hobÇù|aAGPòÀÛ,K·J#4ÝfY’n•€2 +IÓ8‰äf“Ír6�<ÇÊÍA mà©Sl# t¥PËaÐiƒ€”´SÜç C€ã@žˆ±ïûþØ÷ýÀA¸]+`Œ±SFdè¢Ã‘£@`€À³œßÊÞT¡Lt”õ‡ðýÞØ÷ ¸µCU�¡¥zoª=α˜/Rnœxú�¹&tœçÆ÷ðü9 <€`¬÷ýg˜Çÿy@4í�PÆØý\à¿´ PÊ#ZÞ#Í(¿*¨TʤDù%£Æê›¬¡gv£DÊ„þòðJír¥B›åJ³LÚ„¶›¬Ò¬ìiŒ4I‰VùR!DûœBˆ¦ýM¥BKåƒ["š¶ÿ`ÿ�¦=xðàÁn/k©”ö5í€PM£¤]®4*ŒüM³L Üh7F5Íf´TªTJ¥’V&D£ª¢Ú¤”PR"äÖ¥d¯ÂÊ”ü[í`ïÁÞ»—¶¯M£!¤B¨®i¬Â€–Jô—eJH¥R!MJ -k‡ïÀý<€÷ª€(F“á¨;šŽ&³ù2Œ6›8QŠ>*ŠN2¹ÍvF;JROQþ³Û™@.½™©ê[¢Fqe–$ùDþ6Ë‚,y+3¹MÒ,Ýn³¼“�­†T™Ü¤‰Ü¬åf†ÑR ‡ÃÉpØÕ=«io8šNça­7¹QÂ#‰Ì!Ë’T1�¨ +DšÏ(IU$H™$ñF®åzEa¸œ�D·ëPJ)BDD|)ޏ¾Dñ&ñF8Ö5ú×ã1^‹E�è‹Å›!‹ X àCô‚…!Äâ|ù;�Šÿð‡ëÇâú'oáy�ZçŽø�˜"âèÍ¢ƒo��‹`, ó{ñ&„@î‹Åáüp,Þ àß ®A(À— c´íÿø‡ñõØþ™=Ž6€`¨'z³@\Ï„Z‚|qüZ,ÞÆu¼Q‹ÿ„Á� Kà"@Eã?ütýãµü‹'{œ3`È ðe ‚Å¿V +PD4µGïÖ(m4Iƒ”H¥LJ%BŒV+?l²f[4J„JÉa…Ú• +¥Í +aebj7Y¥Y~¨±† Í<¼(WÊD#BHIÓh¥BK•í€hû{û4mÿÖ¶ÔH…h¤L5�V.W*ŒTš”@¹Ñ¦Í +£�5›ux³DhƒrP!D£• +!ä�Ðm�Ê-hV¥ä!aeZ:ÐJïÀmŸhT#¤\!´¬ýuÍ +%„”ˤ¡àJ+ò>¼¼£�ÈD ãÏGÃÙ|¥¨ÀRµã2ÅÎ-’$U†;oÕ_LפÅ睊——Øs?Þ­²è(êoªŸ("nšnwUC¦«¿Çi>oTe½i,å&‰72Y¯×kJ)¥-·;šÎæËU…Ѧh^¨.EšäŽåêÖÞnÓ·ùˆPªØr§D eo¢M­ÃÕr9z^«eÕëõª®ëzý¬zfT• ŸQ/LøYį̂UC×uÝ0 ½ªW«gO Ã0Π㉮ëgÕjµj�gŠ%ø³jµZ­uC7ô³3ÃÐuÃ8;;3ªgÊåï¬ZÕϪúŽéW¯Õ³³º®†aT«úÍâUýìL-^­>¼y«<Ôëu]?Óõª¡ëU]¯V«�«Õºa–±£ø½·¸eèzUÏ?3ªggºQ­V«ÏÎÔM©;×ëÊÞ°~fgÕêÑÑaµú3½Z5t�V«Õ£{¯?³ ð^ €VîDy +P¾U(R€Úìó‡ô=øäJíJ¹F(k²J³òPk*¨ì œ@¥R¡¤r MÛßÛßÓ´ý½ý»Ù¿•J…•+MJ€P»Ñ¬0ªý[›o–Ë´AÑî@“6J;(“F³R.€h¥û÷@é6h¬Â R*)*D¹\ù¤A)¡DEän +po ¾{%y¸œEØ�ΗQÅñ&Ie*e–¥‰Lâ\V³àÖ¥ÅÑ�Sìò½Ÿ*Ñ�´è¼Büjë§Ùv»M³<ðßÊâ¼ÏÞ¦9Y_ÔÞUqËx†óùÔc³8O R)¥¤–Eë” q2™Ï—«Õf³YÇ2Ú¬U/ ˲¼³˜eYºM·‰jümw&Ai’¤q’¤jàQnÖ«Í: +—óù»ž[§õ:_]]ý¸®ÿéëMà/~>.„ï#ƒ…ÄLÿiq}}%èÿ �= 1¾àÙ›ñâMpý&øé§…@ ~'DðÍB×c!âê þé÷?þðãĸüñ?]ùx-¾VŒB "�õfq½Äý @±wõÃBŒ×ðìM°xó»àÍ?½Œ”Jûûû{{{”r°md šmÎlö�ˆ7ã^‹^±x „¾ +‹ëk±ðý À"Šë7âê÷×]ãÇëÅ,?ýáŸî‹Þïijç¸x#Æ×Áµo¼Œ7áËÇ °ù¸Ólæh÷F•÷®’vP*•4�”JÚ¾¦=Ô´R©DH©DJ¤TªhZ‰�²§iZ™TJ¥R‰hšFJÚÁ�¶¯=ÔJ%R:(hå’úVR&¤ÜÜ£„h%BJ©”4MÓ4­T*•ʤtP*”K%RÎ/‘ +Ñ4�hÚ�v •´mÿឦ•ö5M{ =Øß°÷Þ™¼¿¯•´}MÓöµ=í T*—J¥Ò�V*•H¥T*—K5M+BJ¥ƒ’¦i%B4íP+RÒ4¥©H4R.—Jôq©D4íÁþûûoïÁƒý½}MÛ×öµRIÓ>ÔöµR‰h¥R‰hÚA©DJ%í@ÓöÈ�¦i¥ƒü“„� +)‘RS#å»ÿfY–É$K“¨ëát¾Š¢�LU«.K2™Åi®­�¥YòVµ÷³,ÙfoÕx}¦Ê…ÙVJù¶h&7är›ïÊl›eo³TfyUNë·…—w.Õ™Ê,QÚâ«u¸šOF›¤…Iš¦©eYVËjyÞp:š†s¥a¢‰ÒLJåû!“t'šÏþåuÌ\Ú¬0Šãõ:Z‡ál>ŸOºà´êzY×UÁoÌŒ_ó?ðN�s xG™hˆj€œóï* ô{èã�ÐBßçÊÁš+áQE%s¯ŠÐŽ×Ø::âGþ#ïøÈQ-α t�J �Gì(á=�–ð/lÛ¦e¢i¥½½ýýýƒ’¦iÚþþþƒÚÞƒâÍÔôù5‡r8Ïí?êÈ9ò‡Î uç>öP`½Xœ¿à>çÔawçÀÁfvI�…{öö5­R¦6þ!"}ï*—ËåJ™R©” )R.W*R&„TÊZ.W*„°‡„jWšå2!@©T*BÊ„Z¡å"ˆ.—Ë•J…RÚÄǬR)W*•J¹BIEƒ´’#Që“r¥I}H¡¬ÂÊ„¦2ŒJ¥R&D;,“2!¤T*ì^Îû7;s_;8(•vA|¥R)— )—I¹R.Wh™ÐCµx§R!¤QR¹{¹BÊ„|RÜy)¿Z.—+•æCZ.“’¦hïíþûö÷5í@Ó´=ÐJÊ›µÒ(—I¹’ß@¥\.¢UÊ»W…”+¤Bi¥Ri´5Ö¬ÐÛ¿²»WÞË’¨‹Ãér­cÇIKÅ©K“,IÒ<ÅÏ5ö³m¶ÍÞfEL°M“|à'ͶÛmVt ³D¦Û,“2Ë’í6Ûn·ÙÛ·Å&Ì·ãÛDÅé¶(Ýå`q"“hEá|:�3Kr’‘jZ–EiËÃÑh4]®Âh­ãÍ&ŽÕ,€"%¥r·õS™ç éV±’,Q*£I*c)7QÍ—³Ùl:òÜ%D¯ë;¦žg0ßÞá|p��#Ç*"ç/:�N'/«!çèûâ¥#z8"ú¹Ï9Ï ×Û¹?å·‰gà2¬¬>¯àÆT Ï9v”dðÝâ>¶ÆÈ9rì@³M+„�=MÓöTºz§fµ·w`÷lÎ;®ìÜÚ„¿49t:ª"¨¸Å¾ïVà+ ÄçÕ´4:œsìå5BÆè­·©F´J“Ùv` Øx÷¢�m4MÞlÚMJG”RÚh¶›”V(¥´ÁšŒúåãÏ)¥”õš¥;Ôh2ÖhRÊ>§6k7(mÒ +¥´Ñ �¦â$ÚMÚh6h£Éxƒ¶›”PÊ´Ñh6› > Öl6)¥‡JʨÓlä_`6k²F£I)k4•ÇŠº4íàv`ÿ D(!�üf)mä§´BͦMië�RJ+Ìn7ó/5Ú¬ÙlÐÕ�±&¥…�U·KéaS‘HéÝ`_ÛWñÄA©D(!äB>'¤ÑØÝy“5*³Rî0Íü¶Xƒ6š´ÉØc¬}ë—ý®,xšÊL¦I²z£É|¶ZG›$ÎåwÕ¸ŽRÐÛÊ"ÝWî:2{››n)Z�*óoÓ,•Û,Ë +æÝÛ·Yòv›[tzÜù‰¿MÓ4}+o„º¥Â$™&©\Ç›õ&ŽÂÕr*ïä…ÿ\¨Ã™ã÷8pPÕ|îs¬¢²ÜíÄ�@{ +½qÑœïôrKá'ˆ=äÀ9@G-ŽÀ;=t,Ñã úxh³vƒò1Q�¨¶¯=x°¿ÿ`„R>¾aøõÀ7^ú˜/€�N:à#XW>ç8r>Î.�Ü-”1Ö å›÷烊ÍfÛ.zŽï�Þ»c¬Ù´›MÆÚŒ1�Ýðˆ›4ï-Rúü�QJéçÌfÍf£É(c`·›Ê‰Ä¶™Ýf¹=1û’1ÖdU¿­ÞêMf7³Y£IÛŒ±&c6c¬‘KSJÙ‘rR³;í&k4cŒÛmõÜv~':©”i™”4íÁ¿ÙÛÛWûQÓ%”²fƒYŒ5‹›§”6k²&e¬ªv&p»Ùl6X“1°Y“1¬cÛmÛ¾¹sÚ`”²Æ!4�­”߀ûÚA^3(7H¹¬ë”RJ:Ðf¬Il·8§¶m3ÛfŒRõÊ2Æhƒ±*‡» üŽ*xšW÷³M×Mçó0ŒÖRÆj X¦Iö6• K²m–dÙv»Uãµ¹ô®Ì>ls.oV¨ñgY–Èâ ²,K·ÛìmºÍ“ƒt›½ÍërIZìü­ÒKeÇ‘Œ¢h5ŸŽ\w²É Fê®u�Bw4œÌ–óùr¥ ‰d«úžêð«œb«î+VH³,SÃé̵Σ( +Ã(œÏÅt8ô€é„�O>ᜠcާsŽ�BE‘sèý'_Qüod;Àî3G ( K?�#°ðN”´&8À;àŽã`õ¥â~ÝáŠ`›ó��Å�Å_æß'œÖ;œ+½Îf“VèCJT ë@Û{°¯i7ûï�Ö)ëÜìUXo%ä Ï=)מ (`ÀÜÒ€‚w3±­Þë*P2M«Øí¶ÍÚöýpÏçÔû‘1Æl›Ù³³¡ØyŒ1›!³Ø¡ �/)¥m`6kçÍŒ1ÛA¶R[Í­3cÔfâqΚÛfŒÙ`3f±‚Jus{À« +‹Z”Ò]Õ^lf"‡6S{´BË„”ˆ¦i·j€¥ƒJ…6ò vÓmmçwŒ9º×h¶”´i~qc¶P/4gjû·Aa@iƒ6YƒRRz¿ x BËD)0ZÕ\ÊÞ%]¶ÍÚí€q°ÕëÒ¶muG Ú`L§ï¼þï@¶M¶2I’låºÃél®ÂH&2”I³4Mò1€·[UÈÏ[ýŠæ¯Fn¤âÊLn3%¿›¥Û,Ùݶ™T£CI^Ìûˆjl •2I³·J¿#W�r-ãÍfÍçóI׳FŠB\Œb¹CœÎf«yFq.*eœ- Yˆ~%I–&2Í2åTð†s%óx½ÃpµœO§]t[-Z¯×ÿ憦Ó:s]÷i‹±qîü©œù:�ÀzÈ}¦ôwP±úœœÖ‡œsV*aá;ʰ*8ŽÓjµÄ­Åñ��±—O xàC%PØáœ³™Íš´ùPeÕš–×¾<Ø…­¤B(í€ Ï¡ƒ~¡Ó鵯>rìõÔ&Y ¹Â€�÷ˆ�ß¹±“DÌ@ËKc¥=•‘Úm`÷K‚½ÿ©6Ø6·í6›1ú  6¨/¨ýʘå<(cÔb lEk®V 9Ø�NÜ�´Y§@Ûà`s›©Å-f³¶Íì¶ +j€±_à—¥Œ�°™ ¶Ívc/òó²É š¿¨š¶¯:ôÑJ͆‚.æ8`·ó­VÐ*0§Š*ì`h3v[-nÛð|ÞáuC»¸th6k2Z¹§  i„PJ¡”Ò†ÎT*ø­™íüT–[j·:Î;…Ù÷¼�e’¤Û,‹ºîh2›/£pË¢äž&™L·Ùv›eI’fÛ­T�õ,I¤rÙI·»Z[&ó¾`’¼UD@µû¥”J‰³¨#õÀm¡Û‘%iîá‘ëI™Ä‰”ëU´šÏ&CÇåd¾¼õxøÉáá¡^§]Åt6›…Ñz³^oÖëXõ0dœæƒ¾²à+©TGõ7“D&q’$qœÈx#Ãõjµ\Îf£‰×u[”ÒpÀq —1‡1÷éÍ”òq&|ä}èt +Pà[ÈÙsŠ�³¨æêÜpó:ÏçI.¿ Å0ö9a\ùXLaAÿs„ñ²H88ØO™Ý¤íÇ´¬b€R©t hÚ¾¦åõkB)e óÙ DŸw8pëÊGÎùnvÑq� . È‘ó^:€À:îÞTm›1Föìí=x°Gö´�”¶?¬pß'ó'lÆÀr˜ÝnßÌ]°\í¬º¸9²Û`³§�˜;ßçòàÅ´#cŒ9 P :2` 61c¶å¨¡ˆÝü0€±*îgÆÀ¶™Jãlå‹dc¬¡*Ÿ�!{•ý{„U´’ÍÕ�«dÔÏÞÎg+3D±û°Ílf¦ñÐä¼ÃïR@êÈlÆš JÞ€ý}­DHƒª¡KJuÆ¨Š |ÆÀf¶"šÛ v8ðbPËeŒ±–Í-ñÎËÿN0Ùª ’†]OÍFëx�l”rošnS™�ð¤Ù6“yçïm>Ú“÷ýÞf‰ÌR)³·Y¦ZùYÁÜfÛ4ÛÊ,M²íöm–½Í�ú²,“ŠŸ—eJ=<ÍÒd›&‰Ì”¹”›õz9_ÎFC—ÎdÑ5Ȳ,ËÈÑÑÑÑ)óºÃÉt>_®Â(Š¢8ŽÕ<³Ì¤L’$ɲ]}Q ŽÀñFndFárµœÏ§ÃQ×u¨NˆNÈóçÏŸ+=LÇì©:%;y€s€àLpDä>ÏËà‚ :ã\1í:ˆ¹)Pu§Ð}k¦�–ó�ó Ÿjqa(¢��ÐÉ�hpö”/,Ìi|À�٬٤ð˜VÔqEJ%­TÒTýúÁÞÞƒ=¢òMP€Èy§ƒùâ=„º€9Ìá •ú!€ºs›a=g,>ÏÏJ¨S=vG¹5P, ÝÿDîÆù·i¦ºùRµþd–Jµ“wŒàb¾n[d71ÿÛ|"'Í’4ScE̶Ùv›äCÁI*e–dR¦iœ×–³ÉÐmÍR¥(Xp�tBt¢×[ŽÛŽ&³él…Qn6ñ&Þlr-“D*éq5ü“H)³$M¥²(‹7›8Ž¢hEëp>ŸÍ§Ã¡ç1ªÝ8ƒ2€ÀP$èù)Í�#rßÌà€ü⽈Àk¡�ˆä¿ñ¹zìØ`®Ëœ¼´V\Á™x×H°‘‹³…òåá¨<½‹7:~^Àó}m6㇔–)-«æ2!D+hý`¯´·¿Ow5vûfñž%r9s?Ï/€c§ƒú8¿ó+Ÿs޼g9ss˜mÛ k”ö÷öö4ºW&eÕ‚gŒAû¾_ì‚#ÿ×Æ×¿ò¯Ô¶¥t&Р;¸@C „@@~%N E}?ÈÙÚ¾@�¸¨þ¤ˆËþõõ®¯ÇÁØP-=…@Š—z«³ð}DôÀ@)µŒý…cÊÈœc´L¥eö°q°¯5¹ïÿ÷ë^\�ƒ±/|§x¤"h {ˆ +¬·0 ˆNô�_ùc;" @D�"ð±×CÑAä#ÀNO`üæþ;]ÀÒ)W�Fƒ1ÆíèÆcŸ#vàB‡�Eà` "¼D�ãß+ÓWŽˆß·„ø£ç^9ièyÝÉ|†ëh½K)ÕTÝ6½e®—úc~i¶M‡?ËdZ )"`áÏu3(¸MÓ·Û4MÒ·éÛ,—Üæäá4Kãtç t:çbÔk'éN\$MS�BH�¶èG³ù\¹„űê$i¡,’‹„%IšÈ8ÏÿóIÃX*½�Mͧó`Ôíz-FŽÿíááÑ‘ +‘!¦Cp-|_ @QèàØ �ϼ@½§,Æ…/° €sí÷Ñÿó�â÷c_Œß(1Qô^ !‚@,ĵð}ö„@!ÆW=a@¾x ®ƒñ +!z ÷œ{Œqü‡ýÀçÈÇU‡1F)£´ÑhÐ2­”I¹|@öööH>òÓÆŽ=€ž/Æc_´•ˆ«`1¾£ï Daý„\!âøÇ?Œ¯ÇâÊ_´Ô–@%9Àiiÿ@«h{ŸÐN“µ{ +#ßûµg¼wYÖW†Ñ²Z–¥-ËzbYùª†®×g†aœýÌ0,ËÒu½Z=3 ð ò,˰ξ2 ]?;«WuÃhY–eX–eg_U­–e–eX-fÕëêŠç<;3ê9¡Û0ôŸuË2ôª®ëú™¡–¡–aÆ™q¦Wõjõ¨ú‹ê‘~ttøøñÞÃÇýðáÇ{{{� ðZ-«^·,Ë2ŒâÎÏÎôºâІa¨;7ô³êÙ™^¯†¡–euK7Œ3ÃÐõªqf0õs[gú™ñ³¯Ô_ê:¹½ýÿúððˆè�kšvxxxtTýÙY½nXŠ�®uÃ0ê†eXFݪÆYýL¯ê†aµ,uuè>³Zw®»M™J™n³m–ª`†ëõ¦0ÍJ‹ñžÝÞn³4ËT0S3BÛíÛ,KU»-{›©^aRp²LfoS©*ÉN(˲·JW }›¥òmA0PÏ›%‰Lä:Þ„Q8ŸŠ¡ÓšÊ4•ŠDœ$I" !D¯ë:m¹®;œLç³Ù2ŒÂhí\O•OX–((HÓ´–$–Jø4Žâ( +Wa¸šÍ&ìzÌ¢D;üäèèè°^¯×ëzݪgUð,«^Õõê™qfÖ™zÏYÿî™q¦Ÿ��†z+Z†e†qf=ùJ½þV‹µ £nY–UýÊ0Î/ÿ¬˜-°vot£ªŸ)Ú¿UWïãgÏÎŒ³bñÖnqãYµøPÍ,Ô©®?®W�ªzõððð±öX{øøáÇ{ù˜À‘š +¨Võ3Ã0Îê–egÖ¿S‹Æ™aY-ë+u†ñìߪÅZ–U·,ËúwÅû¼^U[¦ =Ö�Ô @UÿÀµ÷¾Yе!ÂèŽ}Œˆñëñâ'4O‡ \€ðÅb�À\ÏyæŒÂC~èy^0 p<PèÿßQt¡ôΟaà÷~‡>Š¢¸N|ÃéŠ@ X § tÏ—CeÎÂ,g@Cáõ>úŒ1Zfª¨išÖBˆÄ3 „¨ÐÅu",¦ÔTBxá/~Ài9€à¹b1Ä.¢ð^�ß +Ä7‘#r!„@ö÷”´ƒŠêú1ÿ„uËÖ  U�1X ÁrØK·Õrð:±ˆ]~%ÀÃÅøŸÇ_ãBô8¢x7{— ˜³öÒÜ®˜ÏW¡âÕ&‰R÷¿iâ¿M‹áŸ$Í”×–ÊÖwœB™¥ª°¿}ûv«Òƒ‚’ŸdJ�?ËÞ¦Yú6-¤�’$Ûn“|‚(ËÕG”coÇ›uÎ'£‘gMbÕ:,² µÿ !õ–ëy8 fóùl†a´‘Ê-¥‰J â8ZÇ›8ÚDñ&ŠÂå|6™LGîӢúÑ‘ö‰¦ !„ ÝápñFcŽpÎp±à›ÅñÙDðS€�ÀñO=D!¢¸"�Àg(üñØï �/ÇÁ?ÿˆ†‹A P,<�ƒeà:Žƒ:†wýÆCñðÍbâ⯄@Á›ƒ1ÿR¸p‹…BˆÖÁGì g øØg� eŒ–)#�ìï= BXežó ĺÁûñÄ¡~ðc€ãï,âjñý3 |ø(r!~ÿ«-ö<ø’< Úç„P†hQj9´¬Àûeô}DäB£´S9÷¯¹ï�ÇU`-ÆZªXÌH3ÆÀõZù¨4px®xŽŸÓÑ÷­Xÿ”ýÍrãH¶&Š‚fi´»½j±M6'eeVDp–FƒY›³€äb å'¸m!Ò*¤ïzc gpA%ì(Þ­3t¥ê¤qÝ4æÙf˜á¨·¸ƒå ¤È¬ÝçxÊ2~¤XrRðåëç[ßGD˜i�EŸ´BTZ‘þLZ/ŠaËZ&©5.ŽN$Òùse6AŒÆIC†}Ë;â»n·¯H©„"£ •ÒHúÿ›iýoÅ'˜Ì�¸#CMàýLâäìÀâ"yç�ap¨RZ+m±á̽˜ è2øïøÔë‡z+­Gr⻿s½o…Ͷ"1WED¤9®´Í©aFÊ´oK;±þ(îmy}=Ë˻»‡õvÇHyËåËzeÃýv¤¶.›Š»‚e³ß—Ü)Ø?YDOSqذ¯÷MUr³ïP Ü·5yîðüpÓT$Ü’U›õvµÞ®noæ3qs€"Ûåù£‘çùž7šLfóùõíÝÍíÃÃf³^o¬¢‘…ùVUY³öÏn»ÝX¤PU•åv·Ý¬V«ûû»ÛÛ››Ëù|6¾ç�ô¼žûß^W@Â@¢D2ŠQ"*¢€ i«YËïw‹®§D›É¢�¿¿ú…tž« }Ð[ãÀÆghüók{Ï¢ˆ(1”1 +ø€n�g�þRa ˆqŒyÇ1¼Þï~wÂm·ã8®ÕïHGÈyþáY”DJgãš¹B(!­‰™ès¦0¡ŒHVZçÙ…‘ð:N·ëY|ÚHýð뀢Œ”Âeð™;œ¤�ÎþòM‡Þ063f/…‰´&ÄŒ”B"2Hµ:Á¤µÖ:ã÷ýÇŒT¢'‹L!RF™aß?[ÇÃ[ÏÚÄD”)ÛT¨(Â$‰BÃþ©×CÑ÷ŽºÝNŸñØ2× +Åß×h­G3˜X4Úž À¬5®‰�x\„ŠHÛ± +­µRZ›ŒT’¨D)¥Pt÷¨ëºÇýþ8NP)¥üÄï\ÏÄ@L�¥Äˆ�'17Eë �ÖDú/¹Ö*ù?8¦ÉhêušÎonîÖëͶ¬ª]Ýìʲ.˦®žö{;í·ßWUcEvÊýþÉJl´uÀv*�ñ÷¬ÎWÖ\(d.°§—â íkmºçæ!K3#ðÃÝ5¥“[&ó®ËvÄÈùžç ÏE“4�_ÞšÛ»‡‡ÕÃÃÏØ+ûUîÖU¹Û–å¶,w›Ý®\oVÛõæaµ¾¿¿»»¹¹¼™_¤2ùþ‰wrrÒ³oò{s¸.p€€4XiRIÁ œ”Gd;þZk¥uþ¯Zgª}ϵœ|âaæYdi`øøÏòçÝWéŒHó¬�2ÒçaæÉeÛ?’Bõ%X(ŒãX©„Tœ¨ÞNm°ïvÝN×q…ˆàOé$ëE”"EJ§”P{вLçÿªµ¶ƒDJ-ÎþN +“3ÊrMZ+5 ø“˜¯Ûu÷Øõ<¦ +ü?v”iRI¢£/¤T‚ÿU®h`Oä{ÉüH–ˆ ä$ÕZƒÆu6#R +•"\h­ó\k­T¢e™B$ù ©„ ¤uN4ä‚îû÷&€g€$j‰™ÖÚ��wJEñ4Ž!„Pà¸ÚŸ†aßs»]Ž�fŸ3¥”Ò”i6>jµÚfLòˆˆh¤4™6¹F£•"¥ôÒª,*¥Zë¿ä,ÓÆ  »¯ÛíºÇ}†±J~DA,Ü#ïÔBL¾#€ 2ÒZëÜ(­Ù5-"¥¤L-´Öùßò\«¯‹ÌåëU2.ÓËë»ÛÕýŠ‘²U]>‹ì5Ìþʼnýž‘þûæp!3�Ñ@Mi«Šö/öM]ï›æ©�Í­m*ÐXÉÞf_2Ư)[5‘²ªY¯³Ü=<ÜßÜÌÓ躥³®¢�<Ïù£Ñh$f)ίoooîîïîïWëÕz·ÛmYÝ´´ªå›í®Ünv»j³ÝmÖëÍÃj½Z¯×w÷ww××f>O¥ð½‘ç�x'''Ï÷¿ËÙÃ?3Xj­M†Æðel&¤(IP)RZk�ç¹&¥~ྡྷG©ÛP,ÓZ/é`y6.ß#¹o´Ö†ÐR‘�–dÄÖø•ÎT‚D¤)QT…BÄX!"Ɖ¡L á¹Žë:Žëp¾É´6æ†!:M±5~¥µþ[®5s kM*¡B~>БÖ9Ï-ˆ¼.Æ{Âóˆï‚Ño®ßÀØ8éKðØrýh ƒ%Ú‘‚ˆ)ù)D)só¯ BEÚ\ñ;3³‘s‚”ÿ-ÿ÷Ÿÿ-çàKkMJ-Ï>³qE”ý¨5¾Ág "n9r÷Ž¥¤½ÊuBŠ´Q ¢¢cëÆaØŸª8ì{Gn硈Hrñ¼s­óÄ„3@ÆvN +1Ms�kJˆLÞžQÕN�äy¾øŸù_xú"càu]÷øô´/Â8V*V£8G®'¾¾ˆ¸§2´r“EDyN¤ú4Òúˆ*‰x‚mÉê�ó†#~ÔgÒ7Z/Ie:#EŠ¿ê`üóç\k{gjRô(?vž‘6±cÏi€è Á}ó(øÍõ[€¦Œ‘Ï göéÔ –ˆRN˜Á q&g¨ˆ�Hù‚ç"ô�iE4#R‰J¥(Ï.ò¿±_á@ü¢&Ès�ô£!Ÿgrb¹×p6CëþðÇü߉ˆ0áäM„Ã4„p<Ããã0ŒÇžçv»}~/¢ÏÏ;×D9†ˆÑr I&„”ÿ{FD‰&M¤Teœj(EùâÔúßÿ¢5'F¤D×9îºGžw:qŒ„‚p]�Ç€Úi%…‰BB™Ö &ÄyÅ£o¬€²R?å +Iÿ=?¤Žÿ0°™ë™¥×w÷«ûͶ\o˦)­¶×üž,ø©²‘@Yï›}½*KÛê=G;n𧦩žš½ öMµ²`áýËæ ¥mjîV K„°Œøzõðpww}IpSÕûê03l‹¾ßß +1Mä,½`�“»‡ÕzµÛîÖ›õ¶ÜnvÛªä®ÿn·µ†ëõ†çînnn.Óùü_ÀÂ÷G#Ï;ñÚó?�‰´GT2é.?çŸâL9S”PÄ1ºR +¹B\ü’kû¦gD„cÛø7™,3|0Ž3žÔGú1øœ/~ "äÔ6!ùl\B\ü¯¿ñéÔœø„Oe‡`z(„'<ïÄu]×é:žL‹¿,�ˆXr‡°Í.”"Ô9)\üÏöñ^¿ç#j…ˆâ€b¯Ûq\÷Øó„Ç1bôÛë·€=7þÙ{4#"Mf`8Ñ9“Ðx‰H+�þ’+EšˆT–i­T!µÎ8oÖŸ‰�HÑÒ<¾Ø‚†5^ø�ËÖ™Ï*DDóÇœ¬q†XB%C8 C þ©çŸ9Nç(„ic`”¢ƒëʨˆŒÕu�Ùì`\Û&n®‘x¬Kk­Ô—Èd¡RJe?3“ûUnxÚ[©°ã¸]×ó<1C€XÅ&@Þ³³|þßgq†¶Áà1*H“J”Rô¨HªSÑãr±Ì^jÒ™‚«cs”‡YŒ«ÇG6^¤†²¢øø¹(H/?åD�ht^,ŠbˆãqØvOE ‚@þ´,~2ËeF´ ÌÜž}|6>C$4��D?c4�-óB›Ï�…Ñ¿H“/–_¾äŸ®(/ÌÕÕãc‘‘)Š¢(~.Àë:BŒ�@cBW"ˆSáE€HËG¢¥Ö†È* +Z…Î>ÿ\ýËD_-–_¾‹œ®æ*|\êLÿôj}Õ,wMÙÔeÍ@ {+^V�Mû¹JÈ·ö¾a:¿C‹¿Þï÷-5x]Wûý3û§åÞjöeµß3؇©�÷Á†<[²¾gÝ0f$«Êr»^¯V7×ò¶¬Ìó¼|¿/|!„?šˆh"Ó‹ù¥¹¼½¹¿_Ý?¬6ëÍz·Ùí6Û²Ú•Ûív·[o¶»Íf»~xxX­ïïV÷7w·w×7sJQNFž`à� ‚ï'Á$ò-òi�‚`Äè�(ˆ‚`4ùý„!oÞ¸n¯×ë�ø¾ïûÁÈ{óÆ}ûö-ÿÕÀ¾ªèL¾ ¢ üÁ0Q4 &gC†'E¿�FAþ`ü*9û:¨ê¦¬«²^§éÍÝÝj³ÞívÕ¶,ùoí½^ïŸêúɶâšj_s ��Õ<훚þúéY5äÀÈsu]W––¯Þ7L#¶ß³6Hý²sÐ0WOUnw»ÕÃêþîf.owuYÕeS?Göþ÷E�D4™È‹‹ùÝÜÞÜòHÓz½Ûm×ï¿ÞîÖ«Íf³~xxXßsñÿöîîæöò2½˜Í¢Ñ‰ï ÏÂóG£úÖÃÁÀgøZA ì”Ñiö�Ž¢ þ0 ‚ FL‚ ƒÁ Fϰ±h“?×ÆÏ¢€�GAøÃ ²ñ³À¢‚ø9|k(b2ÏQ0 ü‘ïû#ßø¾?ðO|ßÛ{ûÆbל7þ(†#»s?úÁ󷼫aÀŒŸüKÐÑ€�¨? +FÁ0F£À‚à÷> ƒ;oÞöÞžôø Þý£.@ñë3ž=’1„抌Yš(#óiQüÛ"""š§†Rc�–Ë+Sý)Å£,ÈÂKC&[\óSûi‘›O>áwÇ®ëyÞx,€ &Q!ñÊ\ÿúÃ8?üj)…Q«œ’vŠ‚4e¦®y2™ ŒÎ4QBxNDúÅ(1]â,À<#;“Y +³ƒqÅÆ‘¦Lü]%ʈÈ�r"¢”ˆLúb#á±Ç1ô„¢ïy®Ûít:ŽÓ9¿!Æ\XÕ™âyÏŒ´ÎeÚêµ b¢3®Õ’$¢,i‡<ð™?5 Òº=椱xgD×qœãcÏ ! ˆU¢H�úÂBDBÄÌᨤè5«""Æy¤TšTküõÚ¾^%#äšf}yy{¿Þl7ëÝ®¬ª]SVMSÙ¡Þ²±¼–Ù«*›r_WÍS³çs„ïŸö­FÐÞR~p_€ç�öMU?Ùyž}³¯ëÃ<°mE0YY•MY•uYnÊÍz½º¿¹¾¸k¥_ø.Îÿ'ÑHDÿì�F£‘œÍèr~}s{{www¿Z¯ÖëÍvµ^¯Ö›Íú~½zxX=ÜÝßÞÞÜÞÞÝ\_ÞÌ/..ÓL"ïÄyžõ/'×Y¤IëLS’˜ PDjöúM'Dį>gt C¥ÒäPÌ2¤EšHçùÈ>¤RÚgQS¢Š¨ •½ø‰&íP! neJ&Šä¬cCÔÄ“î*‰ã„NHæ²é:Þ”˜ ”"z–F…I¼Fˆ8‰ÔçÌ~#•*• <ì\åšÉ�2RJ›�pߺ®ëzߊ0±4€Æ\ýÆÇo´1AÙL\eZÛë–ˆ´þX5$@$<§ŒõŽÒy‚ ÑóLŸý{~c +R¼QE*A,–c$î¥$ȾNëOQÚÖs‘PQÆ•J¤„$"¦ˆø�i{b=Ñ÷¼ct¼é[BD€ˆJ[B5n‚5ή‡2+?K��Xº SD2ü€ˆ0Wê½�þTˆ¸Ñíp pÊìiˆJ)�ž'„ð=ÂêPr·?"$Ô’§ÔÏó¬}@KR1ÿÏÀ®n˜Ckww{÷°^¯Ö»5ÏÕOVH×€¸§·¯­†Oɸÿæ‰E¸ë}Ý쟞šªjš}U1ƒpYWåþ©fdàSÕV,à©>ø†ÒvêV$¤ªʳÛnïïîoÌýÎ*þT/ö.ÄhÔžáùÞ$ú—¹¸¸6··7··7·÷÷··�«Õjý°~X­Ö«‡ÕÝÝííÝõÍÝÍííõåååÅl6›DÞhtò¼ÔM„ªÔ–“• ®žY=Zn"¥ð<(˜—›uH!âEj©¶éŒç_)ËHëÂñ ÿ@¶Cd£¤—Ó¯™=õÚiwe�Ï?È„‘‰‰-nc¢ »žë:Ž7åI?Ì&&Azaœ2­ØÁfÖ8ãQÐÈöˆ’¶Ì¬VôÓ€@¸Žãº®'Æ0µ£îgÿ Úÿ›@Ñ„ +àüì3úÀ,ƒg8û€˜&¤2Ž’R{?Ïä Ï$jM:ÓJaIÐWI{&hË€¡sMLÓ�i­ÑGœá åL"ž[¹v¢”_ê¹”3+õ¬PáS€ïzÂOÀ�nÇéxÐCç ¶õÒZç`XWQ2>4#J%4á½Ùv�”¨)ûQ“B èOn+£BtÇ=ê�ñ•\GT¤±ç !FBŒ"l‰"<,¯ ÿPg0£,ÓDxî0/Ú>R»î_¯Õê~ÅåýÝÝjµ-Ëj[Uå®Þílf¾¯÷m}¾Þ—{žØï›º.˽|z†ýÛ°€öuõôT7u½ß7O\G|zjó~ý×UU33yS±¨hS—Õ®.Ër³-Wëõúîáöön½^­V÷«»{£Qt8ÿž7òG“Yš^\^^Ïo®oïîîîîïïîV÷w«»‡û‡»»ûÕýÝÍíÍ�¹¹¹¾¼¾œ_ L¢‘ç�ž=€çÉgÝ4À™D$Ê2J�¶ˆ<“6Dȹß�i@PÊFLå9³×j®s{] ã�–áLÊ´!*¢è…òJ PhÒ¤âÁäöÔX~n¦˜¢±ÆcàIcµìM™|Úu»oj¥ƒibÃPÉÖaVhÒ”)D)� +Ý'…ˆdËåúyç‰R¤õ£OØw;®ëºžâxÊxÚÿŒ@Hg"%ˆ¤óL%ªí“ÚàY£ÜâgÓC� AJ‰šO„J93–¢�xß�Î3e•P‰H/"zm´ÔÎJµ.1A¼)gHÈüçp}ÏïøÈuÝnÇqº"îј�Um`�çò•q‹+ tÒÎåÈ‚D£l›u˜Ífh, ‚bš‚bÜuºî‘7nÙS§€‰¢Ä6EdÙT¢�ƒ–eŠàƒD9k�+òÍìÅÛòëõºÀYzq1¿¾»»¿_3 +p»­ZaÐö‚nšòi_µ„ܨ÷u]?=±d`ÓÔO<%ØpUOûÊ’ƒ·Ì ‹2WX]Wûº3HóTïY´®9Úßm7ëÕêîæözNi:KÓªf/ϿߎÏ.æ—óëë›››[>ô÷÷wwww7÷ww7··×77×—ó‹9a*!мïµxI^ÕÞ«Ê’ð-ƒ¹‹”’opMš”¢_lõP¦di¾—g¤‹:&|‹ËáÀ&A¢œ“¢ÈbË­q¾Oˆ·˜i–ˆ-ßE΄ºÞï\×íx€” *lyG?`K¿Á�"N$ÊXŽ!6~>£öY€¬ýÖ�’Âu™ ˆÛÒSDšü¿ridÔ9)"ÔšˆQø„DY\ŸÓ«s” €á—ÊlE’Ž©µ~ĺ‰uÂu×ã5F¦âãüw»Ž3ûÕBDš%”ý»ÖÛ(�LP.´Jû¾$3B)g6-€‚ ªâ‘ˆH2í×á Qd~H8ê]êL³æyBD&zl�KDÙVDÓ‘k<–i”�X/0Žq +ßóz®ëv]·Óq\�óbŒZÑ‹`bZïúQ¢ý\*Ÿ: † +Dó™HQ`PJ€‰<<1&0¢Ûq]Ïóâ0œ†c¦aS +{‚©¼‡öD§Î$ ´Æ‰ +Dý˜)2Ö8Àì×ÉÙWà’ÈÌoæ×7w÷«íf³Þ2gFUÖUÙ”¬§a�zÕ +mr#¯Ú³X€ ß›}Å„áLöÑ$:›²¥«­ÁC°oö{;XïKËb©¼ëj[VÛ²\3c×Íür~1¿|ÐëûÿÄuOü‘BL¢Yš¦é|>§ùüÒÌç×——××él–¦r6‘!F#áŸô˜jåE ðÚ`üaжX=XÎÚrQ4"õy¡EçØ²´4p3N•"e²ÌFìJ‘¢ás¶ÏGñ<¸æcÈ�ôˆp¹PDì&È´ƒ,i‚˜ ÂµíĈ1ö@ˆÓÓÓÖ ! ``@‚”ˆ&MÀIµ\(R˜"‚„ÉäÅ)’tÎÍ6,þüÜ;PHƒ‚<ï[Â4Œ~CÐqþQ`"+®ÌRk­0±ùÇ_}Ãߦåòåf‰D®ÜI�ØRqÎ ûœMPZWÜF&ÊxVé…ÑZYÚcB|ä �Ö¸º°Œƒæ� ‘˜@¤£'ÄÈ÷<×uÿÉu»ÇtBqc‚ˆF³n +"&„Ädí/ŒóÈ×åLÎa&g-#�¤ÏYF6.9{,‚bÜqÜcÏóÂiØê¥ÄˆàþÎë‹g)D%›À€<ŸÍh™éŒ¯’ sA~µæ¯×õõõõííõýÝýz»Ùl×å®b•ݺ©ƒ¾uóôTÕMÕÔû¦Þsø_–uù þ·µþ§rß2Œ´ŠM«þ<`}@½¯[�q]?Yí.몺¥íÚnÖ«ûõÃÍÝõõåååå+0ÿêþwON¿¹½{¸[­×ëín»ÛUeYòíß”ÏöÕÍ“­û1¬÷©±½¿½·ã>e]si¿abÀƒ’`Û¨ìqjꊣf/Û9¿Êj…•5 w—åv½Z­îïîo®///æ¯Ïÿõ«ûß=99ñ=á{ž7Š�ö)'39™L¢ €˜®ô�F¾çyžï�œ¸¯b€_qØ.‰ð'$¢+…H4�ÅœÒ šRF)¥)¡ATŸL„ Hå8š�PJù’(Óšr£¯ åZåD” +» MŸ‘H焨¤?)S¢ùÉ¢s6ŽÅbÂbc²EÉ IÍ’¡…ÖWš2""� =ˆc!ˆ¾{ê!QNˆ(‡‘!šÑâ|N”Y"< KÞ9 TH‰2©ù‰Œ!C�…)L–iæÔU�¤Ðu=Ñ bR0ñ£W‘“<€çcDxèƒ`8øCŒtÁ÷9ô‡¾ÏLˆ¸õ»á»á`ðnøn8ø¾? Ãỡ?ŒÞ ‚!sŽZÐà] ˜¿‘1ö­õh ‡–ôÀEÁðÝ;0¾ÿÎ÷_ Àý?¾íõÞ¾}†U;NÏÿýÈ2,Ž,#çá»Ê`è3±ã‹„àÝ`ÈÆ‡þphwîý x7‡ƒÁÀ÷ŸqØÃàß÷eýOLz2øÃÀ÷½7=·×cVPÈóAƒwÃ�?ðþphß–Áp8ôƒáð÷Á�ç†~ÃWë«`~qqyi® «­±)Ë]É|ZUÅÐÜjokö,ôÛ¶ù›§'ûÙáÀªÞ×û’ù‚š}KÜ4uýT—MÕsÁj0áHeýE³·x ²ªšŠE»Êífµ^¯çó‹¯S€ù«ûÿkàyþ(šÀ$BˆÑh$"!F¾7y£S¦¶à8¯¡ìØ-â=üßàƒ?òtÉ`0üÃÀoÿxøçÎ÷Gþ °üÐ�~ üÁÉÀ÷}û‰a0ò‡¿÷ÿ8øckÿå/þà�ƒ?özÌÀéûƒÁàäd0ðücï�Â4¸='cò«_~)rCæ‹Y©xœ›G4Dæqùåñññª5~†s* ¥|û§dŠ�©”ÅùÀ�„øNDzÇn×Â¥œÌ1¥ŒÌ—/¹y6~iV)¥D�Ÿþ÷Kã3S,‰ìÎçæÞÌÓôÑ¥ééáÑ,MNT,s¢ á:î‘'ÆrC*Áó%™á Q-$æq¹\óXÐüºHå̘byÙ'óhLš>š ˜§t�tÿh–ækVÐ¯æµæiš¦óëûû‡Õj½ÛmÊŠ9A«ºiê’srÛÎã‚ݾižšºÞWUc«ú{[)x*YNxß¶ë'‹nʺ©jž)jš}SÚÚW ÷ûº®÷uUÕû¦ª›²¬Ë¦ªë]U–ånµÞ<Ü?ÜÝÝÍ/çó‹9}UÄô_ŸÏÂ÷DRÌõbσ±‡E‘™Â ‘†*¢ôJü>PAEŠdpqŠnÍ)Ä‚ +`-yNTèÇeF„æ1ÅÑya’ÜcÏõS"šâGD’Ñ·Ñá£Ûév;ÿI @J‰88G$2šˆð<ÁìÜ6ð­²ÃíO¡€ÔÖÙU«Ï°xW ¦(gòƒ°_.g˜RD¢¼5Nd†ÊlÙÞQ]d˪3Ëìe»NŒeî¹n×é8�‰Ë‘”P[@"3¸B²D‘-Þ:ADL‘­x¦mãŽäG Éò3ˆ(g‚;¬"äр ßï÷¹8ŶؑØÊÑë*cËåÜbIàL“Wkö//'Çÿ’^ÞÝÝs°+Y3¸®k&èª÷{Vñlš'¾®ŸÉ}êªbTïÞÂ�š}Óªµc�ûúi_í›ú©¶à}óTîëýÓžÛûú‰ÅGJÁ,Z2o÷n³Z­îo¯çó‹tö/R~ÕUê:ß8í1¶ÀóÄC;£E Ò9Òc�%ÈÆÕK�æs�8ÄÙ¡(0êEöÙ9r]×év/F˜ +òÑF¶@¿†H%¨2BäH`v€%ÍY5%>ŸE‰f$AJ˜®pJ½ŽãºÞi_! ü¦€�þ2>õú§@Àb9ú ŒRÛ¶‘-6Ý~S)¤„ðí¯ªh×——××—77÷«»»»Õýf»Ûíʪ.ë]ÓT—Ëʾ,Ø4åSÍõÀšËUÍ:!U; Ì:BO–”ÿbßÔõþ©Þ?5u½çê¡…üÔm-À +‡”MmþwÕv»Ý®V«ÛË›››ëë››ksýª„iº­v×qN¸Ð:áYõk „7úçÑhäû63`†îQ·{Äblýç%<ÏóN&<Ï;í Ï{ñç¾UãòÞx¯×éé©çyâ�苾ðNûÌÖ鉱/Ä©çy§âÔ;Ï<ÏózàzÞï_žçyÇî‘ç½aÁ¿àøØu]a¿é©8õŽÝ#÷È;uºvtÄê ®wðKß½ÅW†ëÍØó~çyöžÇñÃïà­¢ß?õú§§žwzꉰ'Ä©çuºÇq»®ëº®Ç�áy¿cçÿà±@~‘²Vf’ *ú�È´$Å”(ú¬¸‘Šˆ˜³·ê3xŽR¾ Tlà ÿ#â9Ù†âß#C”$J1Uk¡‘Îíq!kY‚Ýc?ðöà��=×ítb�CT +?$6PD�Áï\¡"£^ Œøþp÷¿Ü¨/%JøªE'½ŽÓR-�mÈoF‹¸ïñäULjuôÂäô…�@Ê<Ÿñðz­×ëÍn³[o···ÅÃz»ÙîÖ»ªªËƒnh½oGx9Ø×5«4MóT?1p¯Ù7{KýÅU�½mîë};dQûæ@ñ`hš}ÅMf +)˲ޕ»r·Y¯în®ïÖ,ç±^­_®îáq{qïxž'"µšê‡ÓêŽlðÏ#ÏßZ&¶Ð± Óé|ÓuÝ#ûÁJ»ÞËÃçXhèóÿù·ŽûrÙOw:žãwíµíºn×=u-º”•¼½ÿêŸÏévÛ?^Û‘ø/'¿ûÝKÓGî±ç¹®ÿæÔ&žÇ~ÌsÜn·Óév;]Çé8�o\ÏóNO=Ï;òÞ0ªý…+ét]×õFº¼^ÿôF8ž¶ë8|s|ÄûâéxÇ麮ãv;�o�Óq:�ÿ, ‰h‚Ç,³ĉBEê1²¤ßë¢ÓáºD3xÙ3}>64HŸG'ùoÞ#€<ŸäŒ.FBLZF‹ƒq"ÒêYû1õé+írVþ½HÑ?§Þññ‘Ûé8ž€É02¬ h9()‚Ï9Ña¾8SÏ;Oý”^!öÛBÅhö¡½µí”7JßuŽ�ûž'ÆœÛÅSÐÑ£ê÷EBO§˜zÒ(e�¾Úúá7‘…ÑZiMéƒqŽ8¼§×:ÜÐÄJÇ3Dî7Þ±çyB|Ǭ#ql¢,‹pZâ ‘Œ¡à#)s¥MnŒÉ?ÿÇÏ�Ÿ ¥äå0E$C2Å4EJS2(éÖÐð¬X.É�㜮ç­qúž>?. ¢9‘±Æ‰ÒüJk“k“®~^. ál"‹Tþw™"çÏ•…9L¤I?ø>áõ<Ïs]Çk3ïOË¥±áKBÆP`ˆòÜè«\ó¹úyù¹ A$™"Äâ†ç˜’A™&ý>šK"š§ø‘ ™9¦iJÂuÞsÇoŠD蟃€"D*þ÷²XÂÈk’¤Hÿ#•˜¶ÆS™&=‹¨X2§�™úh²ö¿Œh»û­UV«‹ sw¿Z­7»v ®+õ—‡`_=íë¦j*– µÕ»ýA-t@´Žao‘Á–=ضž¢²¼á0PeeÉë²Ü”»Õzuws9“—ë²Üî6ëÝúå®Çév;mÏÙy™ØË³Óáóðü‰#çÈÞû¯.,ŽìWw»§säu�Ž^D]÷›nç9è´àŸºÇu·Óé:|>mÀqG8G6ˆ¶eùç€Ïý‘Ûíj œËt9Vè:Ïñ‰ûZ8þ¥çzõÏév‡«Çq\÷èè˜@ÏñlpdóÞÀÁtÙû¸Ý#·ãtž#€§®;}Ž߳ˠ×yãv9'xU�¿ZQEßÑ$ˆ")ÏάŽòDFQ$£t–¾›œ�M&Qt6‘¬¸| A�ž nGA)Èèl2‘òLž½2|E‘”ò̪G2Š"ˆR™ÎÎ&¬–-Yq9`jàÖøp8 ß÷ý Š„?òý‘ï{½^Ïí¹®ã¼õ£(EAHyvY½r9‰¢³(•黳³ÉdM&99‹¢( +dðÒøa�E¢‰œH)Ï&ggRž¥ÁYEß=Çq·×;XJàHŒ‚È÷zþõ}ßùQ$¢(Š¢I¤ÃÖø ëQp6”M&‘”Rž±ñ×HÀõëµÝíúw—ÎLq¿Z¯wå®Ü•u]UU³¯KVõ9Ìô4ûŠÁ›¦Üï+®ØP ~¡Äì!LT[îЛøs¼`ë–\¼)«º±ªdÕ¦\o6«û»ëK’×Ûݮڕë×)€Óqºv_ ¾ÿ�ÿ×ù:è<~ë€ÓétºΡ_>ê]û©çÑí8Çαýc·Óu:Xtœ®Ûé:ÝN§ãtº§Óá°ãðé;í¾¸L�CØÿUxòÊt^ø³¯-¾ü]×é:G¿á2ºÝn÷¸ëtl õ«ßí¼Ê§ÿ¦sìóÛzxcmÕq;ݡ֫�ÿÚ ¥çd }¤”´…©}üx~^£µÎÏ,[iÊ\™)R ç!JcˆÛ؄ҥÉYþÛ\™<7Y1—HiJdÈQfLfˆè£>§¥1”™Å™1ÏjЍ(¡)bãÈPÊô�@F&1„0Cáy¿s1E":ÇV=%Õ†ðdZk³ø…… è™û3=‹x‰ ¥Ï;—K£¯2£‰Lž“çdÌÒyJ8u]×õú‚G�®Î‰¦ã©ú–l»° TR™Ö8Í0MS")A.S“kcH™Â“¤/_ÿ¾ºú×ÛÝz[îÊruqanîî7›²´@ü²©mœ¾ß·Õú¦nžÊz_–OuSíy<�gù¸VP3W˜­Vu]®j;?`C Øï÷ûªÞs<ÀD„MÕ”Sî¶ëífuww3ŸÁ|Sm7ëÍfóÚt»�NÇ^B/’Óép üUQ ÛqŽœîsøoýċǎ¡_=œºöw\P8¶ép·Û±‡¢ã8�N·Û.ŵÇõõáo7xø‹#_?¿žN{϶ŽíëÔåž.~t:6Ýùõ×v»ÇÖ v:�N×é¼v�¯�Rëí¬8¼?Ï_ãZ,FÇùâPÎ5!�&ç @dIâÇ(9çÛ¡�}&ñ€Ô 3@)Q>æ?åŠ+þƒHÒΠ榔«€ç爆”"ý%2¶ýwè>Ç—à/2ÚÀB!„è{GG®ãx€†ÙÑ(9Ç$E"ÄsCD”ÿ˜ÑÁø”@À$$HÝÇ[³X,H£ÊˆHg˜P¥ˆPwŽŽ<¯/D8 ”¡¢oB˜>¤<ˬ€*Ïv±8.qY¤"M”QB EÑäÅÇW`³ÝíÖÕnW­..æ7·÷ëínSÖeY²^ÈaŒ§ÞW|‹34¸<„õ­âGÕì­ðAü«nžêf¿oª¦~j*Æì맪yª¹Ø4M½¯šºzªlüÀp r[nw»Ín³y¸¿¹¹ÀÉͺ*7»ÍjõÊt;Ý6Q~q3;¯#€çGÒ^ÚÝ×7˜ýT›t:N·cӀׇ§½*;Ï.áàÚ,¤-¿uÜU‰—wvçëþÕåÝÆ×�Îë/9D�_�çöù…¸¯À ?Øu�œNÇO/@Çév^x»ƒ³ë¼Œ:�—/ˆ#€Žóu¨õÛÀN´›$AéX2<×D”]1¥ß9O(3D9š%`g cš qbŒý#M !"É Ï"�')³ ¦Dˆ†i³ ®UŠø¡5>‹@ÓlH€hEv.�†aŽû}Ï;r]Çé‰ÉrL09#f%ÒW‹á’Ç«d+>>‹€b€Éìyç’gË ˆQaB™N1%ŒR)�š+" @P‰ª“ÖDY©ê("«J>ƒI` +"²ÈkÂl­¯¯R€Íz»Y¯ËÍî!Mç×7÷«Õf»Û–»ªÚUU]ïx€—¥yë—Í¿ªäÚ  lªºÜ×MÃbvh`ß´ºÀUK ÀÀ¶°È¢u]•uSYe@‹.wån»Y=ÜÝ\Ïg“ëõn»Ý®6›Í Và_:mðßm;fç뫽óòo9è¼8‘í%Ü=¤N·Ûí¾8‡3Ðé¼*2t:Žã9Ç¯Ž‰Ó†ÔÛÃë¼8‘ί•¯bv¼Þ¿�/^8€¯}ÈÁ5½vί"€ç‚M;N\¦íÞ�gŸð3tŸ#€CêÑi«¦]öC][|}®L~µøÒÊH)>üsæÔB4YFhè/(À >LÈ*oL&ÀDâ ¤<³° ¥(³�ô #å3¢„ZFL2BÔ”exE-c0ÓˆÌ>HTÏÆ¿‹¢g`¶ ¾ƒp<žu®‰™ÂDŒcF,q®r3xa\ÊRʃq˜D˜"À´<¾–Oà\!E ¥D<êYì™ N!Q*âe„2™Nè`&̈€r;«@8�¾�¾v_áÖëõzµÛmv÷(ç×wëõz[n¶,ÍSÖ; î­ëý“Mð÷Oõ¾)ë¦nêªl�›ý¾®÷eµß?=í÷/òý¦©÷<Ø´Háf_Y¶°j¿çP lÊ}U×u½¯ªºnê²,Ëj½Û¬W«ÛÛë4�\ow»íf½Y¯wÛÝáã%L¥ïtùìvºN§kŸñn§ãœz|¥ó1êuO;üÐv»ÝÎÁ÷�=‡{ +¿wùbç¾{ÔíòñækµÓép ýÔé¾XöPuºÝããã®×ív�¸†Æ÷m÷�•´YA—K”œst½®ëÚós¨§9N·Ó=»ï¹Óív��®Óq:~…�N‡_H·s|j�|·Ûé:^×�ö%Y÷ä8�®{||4vºÝn×åOw»�N·Ã5þÚn§Óé:®­±t»Ý~ÇÛ×Úv^øÛvÝc×íö»ÝîQ»¹gXЯS�`©�Ãþ%ç̨5)$Š,éKº2}´1®e[œ!F-úWe”)B¤tÂã3Vü‚¡ñ–Ú�dÒ@²ñ¦xŽý'dV”&DaB†âÔms~$J¢œÙdŸ4)LÈowx·ryp]& ŸN8ˆJ(Â$ùk„  ÜîѱçõOYw9FŒ‘1˜ÿ� ÔeÕ<5<ÇS·½¾Š�,l�Ù9!x²Ó�ejž,HÝ4ÕÓA a=²ºªÊj³Ú­Www7—ót2ß–Ûíf³y…üòоì{ÇÇÇ®wäºÞ[ï�ëºîé±wì@¿ïŠÓã#÷øÈ=>>=>::r]÷øè¸?ŸzoŽ�<ïèØ;õŽ]aµG®ë»®{äzžãv]×;>GôÇo„wì¹GÇž'N��Ž�\÷èøÈ;í{®îѱw|t|||úö¸ï»®{|tt|캮w|tt꺮çxî›ãN§Ûu�=ïØó\ïèèèÈu�¼þ1· +ŽŽ�Žûáéé[Ï=¶¯U0,èÈÂzŽÜ#÷è¿yÇÇGÇ=ï�ëº]ïèØsBïÔe‚pÏ=>õŽÝ£#÷È;>öúýþqßõŽŽŽ�Ž�=ïø0fplaÆGÇî±ëy®ç9ŒY<ž¾ñ<ñ¶ìyÞñÑñ©8>>öŽ�ŽŽ��ŽOûÞÑ‘çºGÇGGÇÇ^ÿ­ç�ZÐño:⌜²'”)e4!ÏA6Ü—h˜®—)´¤œÍ$HœH,hŽHR Ò >HšJ6ŽÊÅ´«–ÜÑ¢ð%ÎдU…Édò|£Fa†cÑ6ˆ›`FŠKD8Ô%àü{å·pŸ™œq¸ŸÂL@¾ŸÎ$@ÄØ¡«â�(E¤L$åµ·ëz}qÚžÀ|T„¡çMß¾šO‹&Ó¨à¨ŸÉ f ¥œ´dàÄÆñ+°z½ÖëÍz½[¯7·³ÙÅüænµ^o·U¹ÛU<|Pýjé¹ X–å¾äA`KãÁÄ¥% +jžÇØo´âÁ-)@óT75sVÍ~Wq>PÕM]ÖeU•»rWî6w·77óËtbÖ›íz½^?l^â˜_LÍ¡·gäÔ¢Ï(¹Óo½S¿×!ú}o,Æ¡÷û§Þ©çõûýþ҆ɩp=¯ïy^_œžz4Âã?{ýgDñé‰çyÿ¥‡Ð÷à ŒCrÃ~ÿÔó¼þXŒÙ*D? Áó�·rzzzÚýqßm±øý¾Çè\!ø/žç÷ÝÓ~ÿy6 �ð¼Ó¾ñpÇžwzêõû§zÂv§½#ÏóNûÏ~Ð÷]—…Á„è O÷ûýÓþ©×âôô´ß÷Nû}†SOx|Lûýþ©§ÆáØ;zþv‚÷)N<Ïû/†ý~øú"öÆ¢ê�žöÇcÑ?å—ÝaŸ¶ã§§}è…ãp<Çãñø·×§4{€ed…ÈSÊ£Œ=Ãñ&,ÌÐà&‘á0—ˆEJ¡’)ÁPžñ”áAˆu7Ô~ +ŒÊˆã÷ ü¿$JÀ™œ=gÒQɦ1p €G+džr²ßQ"‘Έe +ŒÊ^î|&S@ŒíØÀû–¦KµââJi¥PÑH´à ß§ž1Ž!F =O}å"Œ0~ÿ>ŽgžD~{&ÄÊ­ñä¯ÿ©X­6ëMYî¶·³ÙüæúîáaµÙ1/ ˵ÊSíë†çxŸêÝ}Îèm(PÕMSïËf¿?Œ·8‚ºªXA iª¦Þ?5uU?+ƒ1 I]UUY•ån³Z¯îïno./&×ëÝn»Z¯î_…/¯è»FqŽ…=­Æa8¶PNñ­?y+ F/C& C!„‡Ó8‡Bˆ¾‡@!Ó/÷EŠq”„ãñXx§õ<áyß‚�¦(<ßj‹O<”ÓÀÎE¼€¿ @¡R6J(A4¯™¾>ÿëÕj³Ýnv÷r~}s·Ú¬7۲ܖ»ª*Y§³i¸¾W7 Ôoe>ªê0%°?ðú4î­›¨÷MiË5ëÿp¬¿ß³Ã°äàmtQ•u¹««jW—»r½^?<ÜÝ\S:¹\¯·ëízýðRè>~±PÄSûBŒ¿³Cò0B ýÑO´’:ž†1L§vÂ�ÄBˆ0Œs�>@† b°cáÿÜ_ˆp >òß +2x¢B(C€8ާüÐÀ”` +!Ä1@Ü‹Ã0 CáÙ#cvOðö;À“·â㱈X¿5 ÃqŽÇ„ïc=˜†Ç0EChé±CÇÂè Äž�—©0 §‚B€P„ÇÓððüLãB¤¶¦Ç"žB<…PŒY‘j +Œæƒ ¿'Ð\øq†±‡ÀsÁö¥ŽÃ¦ +Æ­µé”NÔá‡òòà<¨®µ¢ì U¨5%tŽHfR= $Ì0�ºßòÃsnÉ$QH™¢ŒÉÍé`œ¬\“e Rç*E¤"XÅ/fs^ŒÓ̸ËÎ@Oc€¦ „çyGGß8Ž€¹@”‰&£‰0¡�ÁÏíÎÁêÒ¯&uìá%¥�2¢Œù• ØK¨ã®ë�žžòH8(ŒãQx§Ðû‘V‡qE|ƒ@«%<Àï)ÁDeŠ2bNtzíî^¯ûõjµÞ¬w뇋‹ë›ÛÕjµ]¯7»²¬weÝT×ï-dz·È?¾Ä÷¶´ÏbÀUS×ûêªÚŽ@ÙL´ßۙ⪳uK'ÔÔuYUUYí¶»õúááîz>ŸMæ«Ýzó°Z­î_îý%Â4™¥6˜“" ,&Ffv$¤PÊ]i2„HŠ2ƒ˜`†SÄX�á¯)CSÊsµð!'Š16…AB "D,’4ê�KúH†N®Íg_#%4eÍ%eˆ ¡&cxPŒT¬5!Þ›i#*cPDDC¾ð$ÄeÅ@@„JabPç "æ„ä"Šc½TEf‘iDmCN +±@DC½ï˜” +ˆ‰Ð¨D&šGT”*‰(G,¢Œ +Sž«¥WÊ$ˆ_¿VBñ–$ÊÉ×q¬—‘„)‹b¢eTBd4¢4„” ÖZá å¹És“çW¿Á xMdñ—…ÖËå9¦h +Jñïya ͯÿžž“çEQ†¤¤9™ûhV˜Â¦ Â<_ Q¦Æ˜/Ÿ?çD?-‹�WÅ2 ¥æ‘ª¥¦å#¥iú± 4}, +£é£yü{™«ÖøI†èñLæ¯åoðø‘`–ò¼¢$Â"/@!!„ã8šÇùÏ ¢åOç˜"”¦Ë¢0DsóøwŠìÎ?B6.Ï +Süµ0…1æÑ�ÄqÎ;Ïþ² b:¨eàyj Ów�úpê}+€ÀhM¬šò]0QZ›%š”Ï&ÅuQ˜¿þõÚÌï¯HJD4˜Êô£É–_¾,‰–Ë⣹z<{�üÊ<Ü߯֫Ín÷�¦ó›»‡Íz³YovÕvWÕeYïš²´â]V$œYÛû~ߎûðeÿbñ°­ ÖMÍ ÿà`ÉBõÔ4U]Y2p®îv»jWîÊõz³Z­n¯¯ç³ ­·›ÕjµZ?¼Üü+¿ߟø#ä�F0j[Ÿ2Š"? +üÀù¾?D~D‘?ð}0èµëÄ÷ý^¯7ð£ÁHß÷ƒÁhù¾ï�¢È÷ÛV* ‚HøÃÑhä�|ßÞúƒQ0þÀ÷Gþ`ÐcV>?~ ˜�9ÿz'=ÿ­ô¼�/üß÷…/„ˆä` |ß÷ü“““““¿×ø¾rr2àýôN''ß |ÿÄ÷Gþhä�ü‘?ðG3õ�"ß÷}_ß÷}á�Fž÷L Fv£Á ÷Ç–Íp4ŒþÀ÷#$Fþh4øüZG£(òýÑ(ˆDE0ð£‘?1"Ö÷ßú=ß÷|¯×;ñ'½^ïÄšû}À쉾ùþè™Ñ÷�ïµÃÑ�Ù:ýàû(Š&gòAŒ˜°ó, +¤ôGþ`0 üè‘?ðýa }߇A4úƒ ðýÁ`8dÊÏ/§ïûÁ ðý– +4Š¢èlrö.ð£`èûà 8‹‚‰ŽüÁÀüh ¾ï³ñwÃQðýß [Gß÷½ÞI¯Ç‹Žã8oþ(‚ш�OÎÎÞ£(úCDÑðLŽì΃A4ôý¡? †L*DÚ�ü z¦+ ‚À÷ƒà÷ÑpD=Çqœ7®Ûë�x¾å›ôý“7n¯çù'-q£}¦ø5?ˆþ ü§_ÿ©¸»»_­VëÍöþbF×·÷«Íz»Ù•eUV»]Å·r]6 ׳ƒ¾Muhê©KËÿÉ¿<5–ø§±ÅA¾ýK;Ô쫺n*Ë5øÔØôŸq@Õ®©ÊºÜÔe¹ÛnW›õêîþæòb6™¯V›õúaõ°ºQ|=a§¦È~@D9ÅrÜ šc¢¥’€¤XÁ%A€�Y±"!Ä·L@!!FÍü]}!šZ¶2 +•ÒK`Ö +ø€JÑ1N°%Õ�"ÀRJ@5(@2›j€äQ†BØFsI˜\`‚8`Ý7)Çœ˜D‘�ï>ÀG1æ+&BDø�PAº-Œ% + Žã I%€€cŠÌã8j«Û‡vÚùA¾Ds(l&_ˆ€EÆ‘(A¥ô""æ¾a¸YÜcRØbAÛ—ÃÃÆâXå¯Ù9~kÀ$d>¹ÎÉ`‘2‹C)Qaþ7¡$<7HE@Æ}4çÏÓ i-h†ç‘L^�A4DˆdRB’Q�d~*LvE&1…!óxvNte�/ÌÏ%¥©IÈœ¥Æ‘¡�笰i†K”¶†‡¤5*€@x,ÐuÉ, +�2Š +Cz¤DÆ0ha3”tŽF)-Ñ00Ø0Їî†Ë4e°"’)ìÎçÉ !¥þ—s2ŸÔ�o'q8Í'à‰ÔT`9“óÎ 1�#Ù"!?�) +Òü¶H}…ô5cûÍëuÿp·Z=¬V›Ûٿ̯oïÖëõv³Ý•»ÝŽ!¹œª—Vµ»nöûýaä·nšŠÙ>›V¸©kæ 9�…ÖO\2¬ªf¿ß×U]?=ÕÕ¾²DeÍ�Cv%µ¯v»m¹Ù¬×·7׳Éåýz½zXß?¼<ÿúÅB@E¤Z2:DTŠõTÙM,m9É‚=lÆÀwÑx ¨P)M€j’kâIÑvžSåÑR'V� i€CŒø¦É–$ñb‚J)ESqå* ÇBÀãU!bÅ”{"¤•ƒ #ì"i%i 3¥5±(©VÈ¥Ši¬B–%¶[™FæÃÔnbÆ·µHWøVTk€ýM¼–áŒóHëÃKÀÞxÀì;!„#!!`d§J*S*»Bxf¡ü�q``1@¥•JsRôe á1–)Ę“´ÓìE`Ú*Á >HÄó" ˆ&Ñ �ûI›ZKVå\O«$A4¤ô§ïñƒJf€¹Ã�ÑL¾2NÅ�@DQ$ÆS` °çýÎu»î±#úÇ´DŠrŸ8% `Ž g1F’† N%âl(éËð"ˆ&˜êvç1JÄÂ_D„#÷èøØóDøÂVVDßõD,„€ïX‚”ârȘâÅr@Ö8¾GMÏo QÎ_­¯äÁïoî׫õê~{—Îæóë»ûÕz³Þl7eYU»ª®wM]Uu]UO6Ÿ?ˆù¶dÿûvV¸í<5õÓ¾©˜€ˆºjªªª÷û¦®ê}óT7û²®[pn¶Z$eµ.˪,ËÍf»¾¿¿»¹¼˜EóÕz½º¿¸½}¼¼r +‘ô¿iÄ)0R‚1¢ÊL¢ª1T8OÚbÌ4Ë—�~ˆcŒ•R?(Dij…•äÆÀ*ÎÊ…"…?XåàŸÄ-*x�¿? ¾&èH-•Šã)šèß5"ŒÅx ÇS€)ŠÑÔ@L�øVýS$ÂÐFád2™€ñùN~P™R?²bG®ùß"LÃqH…"Çq ( œ2‚¾¥!m¥hЂEþÌ•8Ÿs•jUjŠJéQn§ØB˜š^Ât +ÓPˆq(„“ï¾#%˧RÖöÙÛ ýÕš´•1£’„ðJgš!tÈWÃŒ?qÌj©ï%ZÞ/"B4™D0RšKéüƒ–ïo"óÒxbtf"cÁ8¤8¨$ÇzBV„pÆ…2>!ˆ( QÅqÌbK§à9ÂŽãDEJk}å“ÕZÅÙ éCû3BüÒQ‘’‚Éd2äf"©D!J@|b‚¢ëxî‘×á”À,¯Â;ò<Áϼ‡ȪGÛ©µ I†I¾2ÃoƒýÊÜ­V÷«û»ÙÅÅåíýÃÃj½æëWÕ» ©ëªä€¦~Ú[-Ï=—÷k®ßÙ±‹Ø×Ö]Ô6ì™ü¯®ËºÚÛÆ¡d>N PUåv³Þ¬Öw××ótrq¿¾_ÝÞ>ÜÝÜ>¯Wà_�ÂBçZ%ქâUHdÔŸ•RJåÇfˆÒø@„!D‚Å­¦ˆ?$¨”ÖÚ ÊŸóLYá(æªV:ZÒ� +*£®H=,«ŒñÙçL�y¦(a¼i=Eñ­¨³8†8F‰Â¦€9b'‚á' ¦S°èO!"ã#ƈJ)¥´ÖZ+$�k…/:CÓi‚W±Â16˜!jË Æ8Fë "ÀV:^g™þË_®®PM~ɳà¢Ò£¥"…J)ƒ±ØÆIq !‹×M Špd,­oΘ6@Çüj�eüƒ™!eJi� ÚFÀ ߣÄøhê€AÎäìkð„“É"ÄÞ/tž)¥œ"š kùu I+¥µþ±•àbù/…ˆŠ&¬Á̲½3THCƒ|B WJǡ蟲è;}xaœPk3BDKKŠ8û0C…ø>Ê$! D)ßãT4Ã&!ÆEžgÜNd ú‚IÏÀuœc×ë‹q ±…0ÇÇžwàæÆJ‰ÓXΓÂ�&B…yq¥ÙÄ¿án_¯››Ûûû‡Õju{‘Î/¯ïîVëÕn]–eUÕ,îmU<š¦dÆ.f¥ïºÞ[˜ú0áGS×uie[žàº~jªæi_ÖuU5ÕÞ~’µA+¯ªº®kF!—»ízsÿðp{sy‰“ùjõpw{}wýróú«µÌsK%÷áyXƒZªÉüG•“•Lx*F°ú¶!¾‹¸º�ıR¤3­µüü¯Ù3™-r° B¥ÔŸóœ´./d¹¹¯Ä©úËD1 +c¥´&E¾JTÜF0EÔB!BDZR±BüD(Æ1Æ ¦C8QÅ äŒ4Ýæ:Sˆ¬öLj +„€ +Už+¥UD€(f1(Äl'}”*¾²ßdZkø_ùJ«Låþ‚˜°Ok…˜ \Âx�Àt{þ»»šÓWQ ôPŠ”Ò¤…-Ÿ€œqc~ÓDQ@3bïý‡Ô q&#!RBZh¥Œ¡Px´L‚ðž(SJ“ùžq:˜X《&„fò ‡ˆ…o¸¡ F>  F…8õæû®Ð–ä/ªêfÏ`€–ÀÊ[ +¢Šq@»ÝnµZ?<ÜóTÎïîoooo._2«—‹èÇ/¹Ñ/^0@‹Q +Užg¹¦ óÈJŒQņs—GÀøßþ@™"M$?k­Å|Q ª$ ´Â$!TyN¹Î{(1ž! ’Šcâû{ò�btJ ±RJá<• N Æ)ÄqæÿÀA¼RJ)&BüiÌB0�B á´-¯ñÁU ýg�a‚€8‰ˆ§†c¬ò+¥T‚‰îßÛÆÄ`{Y�bÂà»6:ùüN£ðœMé¡Q &«ü/êGEˆˆ6¡ˆ§,WšŒ  ÌÑôã�­DàüW„@`g’QiEú/ÿªó�Á¸-žÈVþ âÁ O¹IDÄeÐrkIˆ&0‰”Éõ6‘'4Q®e‚ø>ÑšÈ�Ÿ-‘'‰'Òï™FM4±ÏÈœ¡B|ô X•eÖ’Š)ŽC!úÞ±ëº�c'lC<ÔêÏ:ÿ‹^Ü}mA„ï ’¢Izèú· æÆªAD“É$¢O”[ŠP@\úW„âÈé¸ý~_Äñ{ô ƒâ{îï±R _Ô=0QhKÌí4™L`‚FåŠË7³ÿ-øÝÍÃÍÝÝju;›ÑåÍíÝjµÞlwÛ]¹ÛUuU—uUWeS5ei[ö|ÄyÚ§®ª¦©øØ7UÕ†ø-xßTuýÔTOUÃK º««ºzª8P(˪nšºªªºa·SU»r»^oÖ«ÕÃíå%Íàâ~uwsýŠüÕõ¿ÈÿN´X|Îii¨ÐT$3Çü1_Ò"ÌÍbI‰d¨(rc4Z„1*`ˆŒ1K]è\›Årñó$_,¾|ÒK2ÆMTQ‘/ŠÂŸ¦X|NˆÆÐ²(®Œ!MT<³ÏEôÓ/Ÿò�ÆRZ“^¢YúWùóƒ…ÂBá9"QTäšP«…V¹Æ(BÀœ4 ‹SaÌ‘rËÜ,‰–I®�&]˜G¤|ñùJJ2¤ Ô‚4ùgMùBöµ¹1ÊЕùlÈ É—˜þ¼, +c–¦( +m‹å—Iþï‹¿çú‘Œ1¹¦sCY-óE~¥Íç…Îõ'¥ˆ C +ˆ.òO ÒÒL>É Ê +cLn2ý÷bñ©àõ5i(±\ÝÌÎG? Lb52`Ä¢<Óvx䌹îÐŒì#�rÂÏ:)LÚŸä<º¢cBD•+­IÓã™QœQÀdsÆ1”“±Ss0“ˆ â ��ˆ1&h!V#?ö…`e× …€£ÊiÒT:Qˆ³ÀÀ ÐÐâÏÖðÎp9°iÎ`2™D¨P¡²€†E¦Æ®ãõOÇa‡j¤ †„ëº µ„µRp�W±Æ kœP‚M�52> +P©—Ê@_k^ß·7w«‡ÛÙÅüúöfu¿Zo¶›]¹Û”eY–\—/«ºªËªáûÜ’|¶ÌÞ5ƒ|›}]1°i꺩ªÆÒ´àž¦®˜f˜Ñ?e½«-ßPÕ”õ®ª[ìñnWnËív»Y¯V÷w——é$]>ÜßÜÝÜ\¿ÒŒ¾�ž?ξ?ÊÉd2�üa0ôm3ô,šL¤‡<‹¢(8´Z”ÜN�F''ôýÈ�ü(Š&0ÍÒYE0‘“høÃö_Dï¢(šÈb0áŽkQô½efšDADÑ;)¥<‹¢(£høÞ Eb䟜øÏò�Q0�„í³�"ߌÞ/éƒÑhäû¾ Î&Ò²[M¢ Š¢³AM¢`´†Ã�ßóG£häùAÄö;j˜ °d—PVLXîv»Õúaµº»»¼œIº}¸½¹¹¹6ó—º@™Ö‡ÊÌóÜ�¶< h(S”f‹\J(7!Ñ<"$JÓ¶¿MpŠ„HFkRIBDš +ó¨ufÅ¥ÒG"úëYQ˜L£¡B/ð22M‘0EKb•™eFD|Étf �z�¦ñG±$ÇãH”ŸB@"£"�ʹ.‰¦‡|°s¯9ý&L£vvD1]§ZkE€ˆ€�#4€r½@nèGŒ$;·U:�kB"*´1¹1Úhm2m¨˜ÉŸ…´˜O§ˆŠ\¡¡¿Q�H&ú"€xŽJüZ—Zkc,£¯)¨h×o9þ)�R¤´B"m…=€VßN"Å 9DÄ9;€l¤>9|TH|±RDDØÖ6”"ÊÌ`‰ÄÂl`7ÁÆÕÙ#¾¶N‹u+�VòÍ÷„ !¼c×qºNÆyû¹o8#±ÆfÖ¸|ü:òØ^©Í_`6,TÂPNyîRxÔq�½Ó~Æx‚6×úÖu½Ó>B@¬â±øjç-€j�äã¯7"^/˜¥óËô‚.ooîîV«Õj½ÙmÊr[V»]U—MY–uY7U½;ÌìÖM]×eÍ<^UÝìK¾à÷çòµ­”,&X5<^\WU]•MÍÔŸûÚª–UÍ9DU—ÌF´+·»Ízópw{}9OgóË‹4ʼnœŒ^¬×l³‰9ÓZ)Õ¾dR„(sM¹^hýïÜÒSH@ÙD¬T›|NcL¸0ÃÒŽúÇ?+¥?XÕ9EˆEd”^š+­ u�™D|1éþM +U,RÜ牕Bà+5�¡ÏÍœïâ ªXåZÅ?êþöTÈ·¢Šc€˜õèy„1‹”z~Çà“R3¥y2ˆÑ +ìI€`A÷-�>±¢8*SÒ¤±ðœDEˆfdÔ� £µÎó bÄ8…ï„'”íù �"EJs�þs ÐYA…¹*t^EA™Î úÆ,�)ŠÇår¹$D4Ñã’¨0† bb_D”Q±DÒW i^\�D)±ÐŒÆ™ÏZã¦( +C¤³¿R@fyeŠüqy»|dã}^âçüµñYd–ˆ¤ "‰!D(„çºG`A¦ÐºÈ‹<Ë å Yæ¦È‹å’P¢1† }1†–EΣˆ3š%!™|NHTÍ0•X°êúlž† +cÔñÑiŽE + B“1K@ „@Rh L‹/ÆÐÕ¢@$CSLϨ $c !�ß2ÍBZhÒ†ÒÙW!ÿ›×Ëyóæí·ç� ¥Ë›Û뇇՚¡»ªªv»j[ÚƒÞ”UÓ4MYÖu+b'|ʶ4ÐTüɲfÙ¯ª®*; \ÚêU6eÉ�߯Øp]UUYVeUíªr·Ýî6ëÍúááîööö2M¥ðNÞ¾u¿"œúêrÉ'úŠÚ¼ )#TòJëû›ÖyÞ>ûµµ€ÓX©B(!„ÛIí$AnöPKßNDê:2ôã¿åZk�“Âsþô92)‘”"­0F\œÆq¬Æ0hÇŒ:@æzˆÍTÅ ©X+¥¦ãq!ô¦ì4Lãic†€>Æ\ÓQì£p)”>ÔâÇbª0_¡ÊµR:Ó +ßCÌú±ÖÌ�H×HS""T‰R:£Œ!’ÖYB¶Ý‰D„f¤)˯þÌ(«?"mcÒ€ ÆêG…Œ’HÚ0åÙüz`8<üvøÃ¡?‚|Ë‚åÁ_Q }?‡ƒÁp0 †¿†6EÁ`0x÷ûg˃àÝׯ}ÿ]à¬Ìû`0 ƒ?þ0YãÁpØÊªïþ0ò­Žû ÷¶×{;èõz=×b�ßø/Œû~0^ÇXdÞùÐüáp0ƒÁ`ðn`SÉa ƒÁ`0ø}d®áp¼{AÐcåõ·oßöz½Þ 78 ƒ·oÞ¼ù¯oÞöÞ2Wp0 ‚¡ ‡C茇l90üþ{ÔÿGÚí/)âN„¤ËëëÛ»Õêa½Z¯V&å*Kž®84gÁຬ™(¤ªš¦¶ýÂÊ~Q{§7 ‡Œ÷á.]×|Ë7鱪lš²äœ¢ÜUeY—å®ÚívëÕj½~¸¿»»»¹¼¸˜0ÓqÇù¦ýp^5”2­ºLLÐH³œtžë\g­”™ÐmŒ¯Ã0 ÷ß% b¬{Ï’~~˜)ËH‘ùQÿkÎÒI’ ⌟ü]UŒ€ü„ˆSà.žÄìB nÛMcƒ¨TòƒÂ8þaòÜ0´@ˆ0 c¡Aùñ Žmµi¤"‰`Æ*†x¤b¥þY)¥,RQ>�£¶Q רMAVOϘOÆEa–Ædýÿ¢Â,–…1ÅrQ俘¿Ò�ŠOËÅ2_.)5æËò‘É ]HmÈc Q^˜¥6dSS˜`^|láBzaL‘ßšÏÆh“,£‚Š…ÉÈW† Ó×ÖCÏ9r¡Xdd® +S¤ÆóWc>Rb +³4…1 ¥¦¸ +΋É|2¦¸ZšGc>\žú´È�Η‹ÅÕO™-‹å§e±\S,FO½c¯ßg$"BJTƒÂë ¨|Ð4…ˆ€† +cŠü§«GóãG“.fDEQè�f±XæË‚Šáùc¾,ÅbyõUÖoy¨ÚÇùÆq\O@z977÷÷ëÕýjµ^¯w»Ý®,˺lJžÎ«Ë’ÙúªºiveÝ”uÝB-›G+ì]—œ*T•% ¨jüªøî/«]YÖì,8úçÞ_YÕÖël6ëÍz½Z­înoæót6yî+¢Íß’�ˆˆT#"@E”)-užk…ʸb²œX!EðœDa̰1´Q%¨ˆB$LŒ<Ÿôßþ¬5=k×ÍÒgÍk©Æ1¢­_ñ©ýá‡c˜b[´?Lãx*A)ÇÓ÷!L­qB1œ„qã1�Z|Ä1cŽFˆ˜@Œ0Å�ý úJiÆ1¨øÒ7Ð""@&R‘Z]L´ýS¢”z�PiûZ-òœ´Î”R1˜Â‡è»1ëV)ÎPghZéN•�R¤^ü@~[”2E¤ð™¡/!De'€K‰ˆøÃ�.ÈŽó£R&xLÈJ‡Q¶4Xøüš´i�+Rmœg]šÒ ™ìÓ¬Ç:0‡(T&X¢Ê¬ÿBM"ëñœµè{§ÝŽãñf&/¤ËQ)jAhleÑʆêVò‡� ”Ì‚®³,Ïp9H3M”é,ËÙ”VáQ×u]– +ÄLjếó<1q™ÜÏÆ1A:3LNB¤3­ é�&�õî}û;N×=ñ'3šÏ¯oîîïÖÛÝn·+×»rW–UU•»¦ªvuU–õ®*ëªÚ–U[(˺.K[ à ¾Þ³âßçUÅ=�’Û|•ÿ)ëzWÚV@ëveU•»Óÿm¶ë‡ÕêþîîúòbžÊh䟸î7Î7N·ýxå”"17 ë6%J‘2’4i•eºÅG£‰l¡ & „͸D@ SDL”B•… +�H%JÚÚO�k¢,£¬ Îe;QÞRK€D +–((ú¦ƒ Âi_Äñ4†B€„PqNã)„–n{Èd%vW,ìkA!ÜkާöUÄq"bLã}Äã0V Æ!ðk�g¯7g�À­V7S`¡� % ×H‘¯ÔJý¨ø +ŒþB( }q L€ 懣¦P½œ>q’_-D$•`‚¶s˜œ�“ H|lé5™Õ’(!;Z¯è,Ce´Îˆ”Êr’…o~$ëw 5 +D²]wÛAd@@óμ€vY Qd:2DCD‰Â$Q± ÂxÜï÷=ïø´ëxH +Q!þ�>â“–• f&xY!®À¦Lÿ‘Jr>¥*#Å`©‰Q*d R㣎붪ւ¹$& \÷Èóø/…ЉR+}ˆH4!ÂO­ 3¸"K D_i¶ü±-Çt÷­{â�@¦óùåÍííÝýzµzXm·e¹)weÉ·uYVUS×uÛ,Ëü¹²®,f â‘¡ºdT@Y–uU•UÕTwÊzǧ¿lʺ¬«]]×u¹«w宪ve¹ÞívëÝf·Ûîv›õêáöþîúúržÎ&1ò<«¸g#�—)@Nd"†…“nG":ãÒù ˆúR"N`B€ ¸¹ì íÝŒ¤4‰"„+RJa‚¨2m‚œ³ R¶™�Ìl<9³í ¶æ-B7‚1 B8õÂ8Ž!ãpO!Š-ï¤åàÐK˜à‡)yBKÒƒ!¢¨EƒÆ„ˆ"æò ÆS!Æ!Ä1ú¿�߇íü ™ ¾èµ8Ù"îZnJ4IBë—¯ÕÏÙü`‡#°|%ž`ÿůuø‘)mQ%? –ñS)¥~KŒZÒ?ÍŸÛÙŠ,M§”Üֶ蜗ô¶DÊœe¤3¥ˆôÏh‚¶êðƒe±Æ'-Ho†¨p{L"¦ï¬qÖöÄÆó€Ð0Sªø‡°a(ú}ïØ;v»Î)Úú†’/ŒÉÙÉ@Ã4 Ä÷,\H6 E$Õî\QF¬}üsß�Rê¥P%–Âg|Ôí¸½–›iSŒ'Â>g`±l3/%¤’L’"bã´D + )R*Az�HÇùÆqºÝo¾qX@¶ãžx>Ìf——777w÷«Õf½Û­·%kíÊ]Uïêgø|Âùüsp¿Û5VÈcWVuY–; TUUÕ»º®«²¬vUÕ†MÉÒeÓ”Uµ+ÙK0ú¯,ËÍv½Ýnw›Ýj½ZÝßßÝÝÎ///d�F'=×qœ.û€o爈&‰Rˆ¹Ê2RŠ0!B™+K¿dC±¤ˆˆÇÃÚÅÔ<©žˆ¢HŒQiCJ!-•"$­tFI’$ŠÐDF±5f‡%<Ÿ"€ Ç-%ƒdES­„„c�)‚ÂP@‡�ÃÂч·6f5³CÁÅ@ˆH_ˆ8F� Æ(bDŠcŒa !Ä |WN…M‚1³Îâ H1EC cy®üOkDšY€ÑD‚D”ܶaÅ[‰(M`Pqlœ"�+u�H:ÓdÎ )~ʵ֤óÿÏ�`$¥‰ˆ~HЀ5>;x’™”3”sŸ�5‰•!T”ð%­3M& {[X'ö¹—!ú§Þ±ë8žÒÌc¨‘r&åžô$Ú°žI§ÔÁø2"B"ý£ÖZëLçÿ!MöB15É(#p�Î1ë= �ã±çzß~+ÀÂ~Íáí¹BTZkZJ$$Òö}Ñúó„2²å˜¯ÞÇq޲棭°Hçsº¼¾¹¾½]Ý߯VÛ5§â»]¹+«²j«Û²ªêŠƒªÜíʺªÚ+W—uUV»²®ù3;®éí8(«ª*7eU—eÅ”£ìVÊŠÿ ¯7›ín·ÛmÖëõÃýêáööæúz>¿˜I1žëZ×ÕýÆq¾yÝdòƒïAàƒ`Œ‚ úAECæC ‚!cögÜ·üq0èõz¾ïz=—y_Þ|ÿ¤ç�¢ üÀF#ÿ€Œó‡£ ŠÞù¾?ô‡þÐöz|?˜Cf8ôý(j»TÜr +ü“ÞÉÉÈôÞöÞôzî›7®Ûëõz½·½Þɉ?èõÞ¾íõz.ÿrÒs{ÿõ�ûöíÛ·nïmïmÏ;±„EƒÿÚ{û¶7œôzÜ£¿÷ý“Á`0œœpËè¤÷¦×{ëöÞöz–Óf0ˆì¯ƒà�ïû‘eÏñ‡C»;?ˆ&QŒ?Ú×êC~ëÃÁ`8ôexr2´ô8oÞ¸½““‘2ðýQàÏÖ"ß�yXŽ1×_}||Ô† QJ…,H‚LÓTJ ©¹@”¤æ~DiÊÊa8/ +v¾¸\ÂôLrJkÌ‘)ÿ[RaˆÈ3ÿhæ�Úd&£ôüêbi$ÈÓÙÁøèãcú.ÂÖ8…1çóƒñ!GæOÓzéÃÿŸ³·ëmI·…e !l{LkLߌn/Фu×l”Gl–̸N÷ýÀ`­–Í8þà¸~�½ÁœÞçˆh—�õeQ†1æ>> åÆ ߟ0°Qã›F£a¼n+°ì.‘Ât™gû§ÝîÓþ“éòÙ2вß|Úív›Ýn·ÝowŸvÛ]¹+ËrSnÖër½\,ÅlF4 TÀ\×¶Lù¯Ùh6›ÍoN&*ŒbüÉC‚QFˆˆói6�fY’ç4Jý<×I¦“ìé<ÏS$ç¯2”!ò^•k³] $Ìdˆ€K‰ä“‘çÓìé)'�ç” õž´Î1û�QND9¥°"=E$Ñã#"F�k’]B€;nߨ6³lÎ æB.µŒ¡Ç8\pÞcîBÙçÀùn5ë{ÇùŒqþÃ÷ã0á¡™!…¹ øZçw½>B 䌇€Â5��8ʉ²<§4÷>åæíkü8S%hžåùUŽ&†>Τ‘Ùë*'ÌrÊ}É9‚Æ>‡ÞãìŽåˆtI`Š rÊi>÷V„f"Pk­±}vB)ˆÄCÀ…‚ „ñµ4GàûÊ�D‚G<¥"AŽ¯Äƒx R˜"‚HoU$Ä!ÌAâ!0æA$„JFÏÆ„ |ïAÝ + ! ªèˆ?Ì9D\¼?¸þ¿º¶ÝºnY–Õ°@$‚@¿ü®k¦:˜mYv·Ë…J‡Ãñx2.–ëõr½X–›²\oÖån·Ûíö»]iJƒU> Üï÷»]¹û´ßï¶Ûr¿ÿ´Ûïv»ÍÖÜö»íÞ¨{Úïw»Í§OûOûO»­A�ív·-w»ív»ÿ´Ùì>}Úí·»Òûr[n7Ó�´\E1Óp0ˆ"ßíÚVãðc‰éø3@@«¬�x+ HŒÑ3‰Ä5"@Œç¡–‰”Ðïï›�y�@µ»šD@x4jb±ŒA¢ÖÚè-GU¥Ä$�ã÷"’QWY¨è0‘ì¿«$ÈBÎÝ<ìsÆïñ^¯ö{ŒÝ±6;g¶Ýn·k³»»i3fó^�³;ÆÚmÖ¾aßW ºœ÷X….pèó»! Cù§êîCúýÐX`k$�’\@©Q£”qüœ`ƒxBqm°ˆÕ^¥”qŒZkã Áïza 2ifÑçRdÖU5ïÀ—<ü€°Bi8(…ƒ�±)Bî#’—# Q'’¨³,A@‡ªŠÆÛƒ2C�ïÔèä°x\wýKDŒQ‚©›kDíBÄûÞJYÙö„œñ 0)@ËjؼÚçó@úÅâ©KRbc ¨QkL4’ iDücS¿×þ‹F@—^›ŠjEß:³,Ûn·ïg¾ÏLM†ÛvûÎÔ\°E %‚” 5j�:A­Òj„2F�ï¤ÔÙ_4ùÕey‘|!ÓÎìf£e»A0H†ÌÖËÊ3h]nÊÝv»ßl>m7Ûr·Ým˪O·Û˜˜ÝP}ó©Ýf¿Ùí·»ýf·ß™�ýîÓv¿Ùìö›}¹¯š‹v»r»ÛîvŸv›Ýf»59¿rWn·»Í¶ÜìÖ›r]®ëu1)ŠÙl<¢(躶ÕlXA%ÀT“#'‚ 3@ÿ Ún¦z4J­Q>zUî7A­�©ŒÃC‡uI›‡Õ0:ç cÔ@ïå[K³R‚(¨ÒÔѨµ‰(€ƒ�-ë·Hà¢Y¼‡÷Ì^–ôz=Þã½»6cívûܘµÙëñð†ÝõZ`·ÛŒõzmÖn·í?Ü0ÖfŒÝ¡{×»3sÿ<M7S­ r€À‡`ô9$¢ ¤Ô:ÑhSÒ$û�bÓ³¬5Pn.�€XJL´Ö(5¢ rn®„ %q¡i˜9aŒ]:yÃ5¾rÿˆ� þ*Ïæ(A‚”ÆÔóµ@&¤™UEîå•VHsSkD ¦h ŽªïP 4 D‚ûD¹ŽAʸ�€ ÆAæUæ,„1ÎÍÆ@‚ y�C‹Ù¶m_ZÍfã†G‡ÅcDˆ8@gZV>_æKè¡4Ib�S­�h� ãvÔˆMrN Gg.X³a]ZvåæÒeRË0~c·Ù]ïŽó8Ð)âØ,®µÎ¢ŒëÒà;‰Rçú Ž.Ëá‚ ðýƒQK·e²\(¤áx2+fÅzQ,Ëõz¹\—ûín½Þl÷›ÍvWn7ûr¿/wûÍfcˆþ~·Ûn·»ý~_n¶›r³Ûlö»ýv³ßîËíÖÁ§ýn»ÙîM^o»ß*±Ùî÷»�é8ÜìvÛín³Ûì¶eY–›Íf½¬ÀgfHøÝk«ÑhX�"BD"â8� $ʽüƒÆ"`LÙTkÊiše£�„€”MçO™F"r¸ñàì†ùµ¦_å™òùHˆ'BÊ 1ÇìÃ=2š÷”¦ Žòìé)GÌ €p„4Íò,Ï�¶€Ö18U[çwÌbÀ˜ßé‡2ä½°'{ü®ok®v�‡rÆ8´€±>ë…=Þë› ‚^¿×»ëUuws ûœñ;Þ {½^Èúœ÷G®Éè,Ÿ>eˆ¤©Cšò,;œ!¢0Ù£å?‘ˆž)#ÄfÓ©¦<£QF(9g¬q(µì1Î]8‚žê,Ë3|^Ž\¤“2àç�@F_„Ñø@à\p¡*»ÝãR¡Mãr ’HkµGˆ`Êà¦ãÐøp<€PP…䦈&")ÁÔÃë{€üâjq3™$$D<�¡ %cì‡Ö]% vÖ°ï#3…™ùä8)AÆxƒs¯îŒ†Jm)A-0‘UªD)¥Æ R'>×�X³Ñ°,Û®jÂ.„a’Wîtœs¸Ö• HýçŠ)H¤±5ÊŒ#œ€òo'Çˤ k6¬–ë j8L'³IQÅr½.—‹r³^ïÖër³Ýî6»ýf[nvÛrmØúf³Ûìö»�¡þå¾Ü–›Í~·Ûnw[4l·»Ýf»ßnvåf·Ùmw›ÝnWnÊr³5·ÿ®,·›ívWîvëÍ®,×ûݦ\o6åz½^ëŲ³ñpˆˆ|æZV£aŸÌ6Ï8t|×qÌX‰×qM2ÞñnÅÃCÇõ:ŽëÝ:Žãy¾U︮Ûq:®ã¶Î/,˺8¿8¿8oµZ-ǹv:ŽãùŽãܺ·Çõª Ïñ<ñð`B§ÛŽã8¾ïÝzŽÛq;®ãtϫ̼Žã¹·žç8Žë´..ÎÏÏ/ÎÏ/Ìø•IÔ_´Z-Û¾>?¿0ƒ&�ÆùÅÅєֿœ_´oüËŹuq~qq~qñ¯VËmµZNë»o[×Nånpqq~}ݺ¨K­ïÌÌŠãºnÇq:·žçùƳÀu;Ž‘‘÷\Çñ§ã;Žã¸··Ž{4Kã ¸ÏsÝ[ÇiµÜëÖEëââ¢Õº8¿¸¸p\çâÚ¹6ÊõÞmÇëTS(Žs{� w¿Ì@m’#ç Äáù 1ô@>!G#­1A�ùózÒ(–2–ˆRƒÊ¡Ãs”ƒ *Á,@ÎEt´¸axt°ÐÔ#­5¢‰ùsC‡ñ5’=Æx oŒ ÈY㊠8]\E¼>#Y/žwè@FtfÏ¢ß>3U)5pŽÎüôÍÎÍ3˶³mÆ}×(ßٶݶëõ8]ãsÿVµ8©÷xÜö,àM?ågàÅpàP\^X×¶)1¦H“ñ¬(–KS +Ø®ËeY®·›ív»[ï6åvW–e¹Þo¶ÛÝn·Ùm7e¹Ýîv›ýv¿Ým÷›�¡;ìwåf³Ù”»íf³Û•å®,wåf³ÙmKãõ»Û–åf»Û–›r·Ûmw›íz³Y—åº\¯gËÅl6™Ì†©Š„|ßnY –+ç6rGLI‰F:Ñ”æ¯2ÊIiàj¬æôhÒ83áj~gÄ|[¦×Þ4ƒ¢øŸ +ÉË 0A$ʈߣ˜fHHµN"èåy)¢Q¼»å„f”. +�5Jä}-Ægœ³›»:ŸÃ¸û=ïÙvûÆØ_\Z—Ђ^Û6Öž6·¬öül´lvÃÚ7Œ÷÷¡Å�ûF»Pbö9ï·$y¯Ïûç> šSlöú^Í…Ÿëª…ÜÃ܈Ö爘š½Žð="%#B�"ÏÍ^�rœqcΡgæÍ__0#$|mÚ#(GÄ™w˜;�“^MsT>|œ>�8ŠHx8êÔì‹“w‰:ך´ÖS�b�1D AÊX"DÂ:ìz]-.8r£þö¼xÄ Õ}¾�t6Ò¤ K¯ãûB? 9Æî.X͆}0ã÷D\~4ýXÍ[¹G‹S¦G:ÑT-7B@(%EUpXág�FÃjU�€¾‘(‚ž]uóZد»2/Z£ª&ÝëÅcIP-ÂË`xzL"Û²l7ˆD¥8ŽÇãÙ¬X‹eYnÖeY–ëͦÜl¶ËM¹Ùl¶kóß”Ûív³Ýl7›r»)ËÝnSn6»rW–›í¶ÜmÊͺÜnvånW®7›Íz»-7e¹ß”›Ýn³-7å¶,׻Ͷܖ›²\oËmYnËåz½.Ër],ËÅd1›Œ'Ã4UÂ÷ƒÀï^Û]u¢ xªt‚ |"Baº"À#º“®.²r�дàü»×ü ‹ÐÆX¯ÇÃbt(м)iˆ˜$àG£;ÿVÖOŠûØóIFðZ'8p@ä@BÈCÞc¼Å¾ÿÞ5ù?ÖëÝõzÌxš[WWV³Ùhž5Ͼ±¬^ËîÙWöå¥}eÛÖïlӬѴ cà}eßÜ0Öf®ÏX bÉ9g!@ö9ã-Æù]5ÓÄCpPˆá(ˆ€sà¨Ñ{¬Øa (pÍ^9"j-Ðìµ~o Þë»®äìÆîû�} Fw"xæš2Få=7} 7m¿æfWRÊJôô�«’ˆ!€\g±ü¨µÖöëÁ o«„¡¤ºqðm=”ÁîsQåa…ià=I…yˆ¦•‡t.åßµÖz$ª²DXo‹÷8ãa‹ÝØöõŒ ×óâä±ÿŸ‹¨�›pSÊŸµÖzáÑ™ƒéŠ%9/žÎ¬Ù¨bÆîî-×Þ•m·¿g½;Îùµ¡åVôg­I™¦Ÿjñ¸^ÜýræÔ$G×ç–Ýõ…àp�ÇãqQÌ–Ëõ²\/‹r¹^¯—e¹.7ËM¹Û­×ër»Ýl·›mY®Ër³Þ¬7eY–ëêv^¯—›²4¥Ä²ÜnËM¹.×ë²Üo×e¹^¯×›õf»Y¯·åb³Ù”ÛͦºõËõbmf×År1+fÅl<¦tëú~`·üôd²trb™ "HUšNhRL‹¢X.—ëåz]®×KÓ\–›Ýº\—&M¿Ù¬×e¹-7å¦\o–定à]/˲¨åe¹©ID¹^¯Ëõ²,Ër³^—Õ*ëÍ¢.:,ÖEQ,–‹ÅzQŸ˜Ì&ÃáSn—ù]ÛòÓSúrò¾< ¬,BÌL(ús“t~Î Då!<"à·"`Õˆ{¿�nX�×@_pŽNy‰™ú­¦@aõP‹UÕŒ‚\"oAÝ"ç>¿‡ÐˆHCÀx† ×e¬ö9»»ã=“tm˲¬FÓ@@£Ù´¬óK»aÙ-ûêæ¢eYÍæY³Ù´š–Õ`Vã¬aY—¶eÛ¶ý½Íìk ++…a!䫦ÖãAb†°bY)ÕÝÖÇ€€óªT8�¢æe#DDBLß矑žªGDÔ §Ÿ>=ü=ϧDD£¼*ÆÅ£'> BL$@„?=*#x‚9eH#!æ™6�a„ Òû$ÿ¯”ezN龜œ~ú‡Zeù4!B¡”}Ž1�u ~`ßÛ¶m56OWê="ffq>Ï5U‹¿G")oEYžL‰Ô#"¾œþãï8ϲ©¦‘Îó 1މiî"‚‘i8Ç;˲,Ûè-Á£ßÍGH„}vÃîŒ|8S"œ‘ ™þícš�ò©Îˆ²œÌìRþ "¼|i 6#ûÚv}ÖõE4¤ÃáxVÌæÅb1[,³År½.–ËÅr½\-ËÅf¹^,—ëM¹\—ër¹,7ë²\˜;x¹.åf½¬nþ¥A€õz¹4P°^¯7ËõzQ®Ëb]–ëõb³^nÊõÂ$×e±\Åb±X“Ù¤˜Í&Ã!â@EœÙ]æ»¶å§'ÀI ¢¡‚bÔ#ÆÒÀy@õH™Ñ`‡˜#Äè€ø8‚»€÷Â`îa Ðã÷Àx$x$Í€”z¤r+žŠæ¡'É™ +•óx˜Ö”qމ†Žà;Æ8%çÌ ±Û¶/­³F£qYš¯./–e7~÷{Ë>oÙ-Ó«uuÉìv«Õh4Κæ bÛþ5s�‡Ðï‡Fq$äÜE3a`œÏ€#Ä�(|üÌÄjÈP®â[ä¼"�DaÕÅ.u¦æþó^Mu”ô!P8ŠsŸ#b@|’‘×,;BõÆü‚FÇ}yt<Ï$a;×q:�NÇó¼ÓV]¥=¯ãyŽë¸žçz^§ãv:ß÷|áˆÊîÒ븮ëy]·Óñ:þ·^Çí¸ž×1*<îmÇ5Buû·ïyž{ëy®×q;^§ÓùÖuÝŽizv:Ïó=ÿáVøžY¨ã:•ÄÏuËþתû¹Ñhœ›¶èN§Óqo]·Óñ¼WF|Õ­ÎÓó<×ûÖØ�VŸéx¾ï·Â÷<ÏlÉíx^§Óñ:ï[¯SI$u\ÏuÝ 3žs~Þjµ®ß´k;ß�ŸÿÎ8Å~ç^¸•hl§ãÔ‹w„ïy^Çq=Ïít<Ït¿{ÿ�×ét:ÆÎôèxÉ&¸¶l»k»Œ‹‡ép’O&ãÉdV,År¶\,—³åb½^.Ö‹e±X¯ëÅz¹^®—ëÅz½6ý¢\®ó_/×år½¬|ü‹åf½.×ër½X®Ö‹õº\õÀQY–ëõb¹\/Ö‹u±,Š¥iþ™ÍŠ"çã4 ‘Ïl×g¶uÁ†§¾'å Àˆ�ê �£�ô1~kJCx&"ù"wj7š€saä£ T +³@ÎÏþzf€ž<ª5$n©C¡‚s~od'QKÀĸ†qÎ!ÇÇj„¾×ëÝõ€Û¶m]5š�Fömûòòòêêò²qfY–Õø¾a]^Z—lÛf¿ïÛuãö¥mÛvÏ#†<„0™JΡ ÀÈU`òEî`5/ú} rh$¨g„!ï¬:õ^ß!fCêŇ½†p “qü.•ZÜs� IK¨‚j€0©ý…À<¡^ \Í?ÐjED«|>ÍH)ŸÓœà‘ˆVÆò( 0Ïç‚rB€(E¯ˆòÉ$Ê�½(½'Dz¸ú©^|”çóiN84Ÿ`BD+T H)³ø8{óB +HsD�ïƒËçð½ÍÚWÖ%C|LWùjE@«�4"ʧó\#Š`<ŸÇ +‰ˆV8 PÕP¾â1Ÿ!(P�ÒrœæsD$!æ¹É�ÅÚn£asÎì(”¦® à[<Æ^�æ€r€i¾€‡A>GPÆ‘€~ʉVˆHJ`µxòu0*˲³Ýn*MÓáp8ÏÆ“ɬX,–Å¢XËe±\,Êõz±\˜ `½\.—ëõzQ”Åb¹\Åb±0-Ä&nX.—E¹(ËõÂ|SQý½rø-ŠYQˆ¨¡e¹\År1™“ñl2™ Çép8P fw]ûÚ:gé©/ÀÉ;+§<…wdÊÃz$5  �G™,“V €zE‚ƒqâ…>xrŒ¿ƒ¦¹?G#ž©‰XÓ�!€6)ß±¯LVÈä�$¡¡"âÀ9—R»èWV~=Îî웫+»šÈ²®.¯,ûêòʺlœ5ÎÎ,Ö¸³,«€««+ÛêÄ�,˾â=λaÈÃ0ä}�÷q\Óy~vÏ)A „΃B 0 ô‰¬,éaÞùð¼W‰1�/눽¾u�à5Œ}4~Vœ¡öú©Rz™Nª_úËzR¢ûc=¾‡¦Y.Ó(µøáq«�@ ¬T‚zam^Ï‘›×Š�±iõFŸG­Qg‘0?íCŠ”„éðŠêÚ}$Ì«hj5òîk·MªÆ†X¢¯1©ÏÐ凜+Nˆ^f?wš ÇÂ:·ì®mwƒÀdh8�'“Él2›M&“bRÌŠeQËår1+ŠY±\/Š¢˜Ì–‹Ùl¶,Š¢X.‹Y¾(fŬ(Åb½\.‹¥qò]ËõbQ,E1[.—¦½¯(Ť(•ÍïlRLŠ¢(Æ“Ùl<šÇ|:À4¼s[-Û¶¬Æ‹*àøéùøù?Ÿ~^)Róù|šÓ|>EÂ}Èu†ëœR€G̉D +ø8ÈÅ|N +hž#ehoŽãüýjN¨4ýçÓO«Õ«Ëç?ÍçDó'Âß#¾zQN€´"|¤¿­<¥ðUî¯rTH9)œ‚ÒïÇyþD�P–O§Øñˆˆ( %Þqþ½ýûßU¢L6³m˲­Öh4άFò~g›l�Í~i]Úákš‚€Õ´ì%ÜpftDú5rpEŽ#À̘dç"¥pöj>'¥hžÓ0GŠ”ÓÇ)!Mÿói5u›ÏçÕ^ÓD_�ÈìUÑǹ �*„\¬ÓœŒÁö¥ÊóÕSFˆ4�?­Ç—ìÁ“N5бDm’ƒïPעć^aÁ¹@Aü¾S�¶ß›b@%¢ó1©ò�U‹ zBÁëJ@YK”Rb’huÈ’Çѽ‘0A3ÇoJƒ�K™k�4ÂÛøóY€}Ãt¬º×-˶íë®5(¢¹Ñ&“Él6™Œg³Y1)EQ,³Éb2+&Ŭ¨¢õeQ,ŠE1›³ÉdVÅlQ³Y±¨nêbRÌf‹¢˜/“¢(Š™ù˜³bVÌfŬ˜LfŤ(Æ&)9i2N‡iªEQÀ®[¶mY–ÍÕðÄè”Y*¥¼ÔˆsàV(cÍ#T ¼7 +Á J*5¥ˆçHf|R!ð6�„*W +”@Ħðà!¥cjœ"!„ç á+ß¨È @R +ðV)À”fF]>�„"cVEˆ@ˆ�BxJ€Ÿ1øû÷Ï‚ Ãõ¿±.Ï�†e*~W–}e8À…õ¬ˆnYf^ôºõCEç÷}ßw»<òÅ­ˆê½(x£”˜Î‘€R „é«TE"±R ¢Ó¢zð‘0WBåoL/­¨W¨€Â[P*ÅtL8eæl£™B� +"ÄôH�öK­¨1¸µá2@‚ e,5½ìZ3 +fÆ�‹<ªšéxEe@Ϻ?·Æ*�=U/a>)¥Ö àt6ÆÈ£!pôµ®ªÕ#6äümn3'é±¶ÍìK«ùMã’ƒD_‰#µ" ƬåñÅ©×Ý‚ÀPT‚Ô<4ªG8eÜŸ?WZ£$¢k5­KÛ¶oXﮆa _·nÚÕ< ¿¿?(�ÆÀâßV-ìQÝ#D\9š²äËã% *b–e_·lÛçAE*M‡ãa:Ži<™å“ñ8ÎL0›Í&æc1+ÆÅ¤˜Íf“¢˜L&ùd2+&‹ÂàF1›M&“IQÌf“Ùd2Of³Å¤0Ÿ+ŠI1.†“Ù¤XÌÆ³IQÌŠÙlbþ“a:¦I:¦CT¥"°n˺¶­ W¨Áð¤˜zJDSAc@ÌzÞ;=¤ÆòQ?e?eˆÉ#¢„Gcù'!†Ç¼S§Åˆ +ß'DDƒ\#À#bt$¬’ªÇ0F$ʦdR…1`F¤�€ULʼÝ `K3E ü®ÇÂÜØ—Öﬖe�Y–e]6Íf­Öh]]^Öp~—6kßõàºz'àwÆ’” N·€¨QO³¹ÉBYŸœŠcˆG¯ŽT¼‘FD£�"Ó +±ÉÃ^Íà+eÓÜ'i´(Mí#(�dRPñ¡'“2m_ÁE àâqŸºyJ#ª~¶_=Îç÷ ßDèёĕ†XGïï kÎEþÉâµôq¤jév8‘Ö¾©èÖÓ�!T£Ú’3îcì¦m_YÍfÃæ€ðp´ø}5…¨¢£3�Œ]0 3q$/%‡`uÔi 0«qf]Uš€U6GÊ×-Û¶íºƒ´r�â•fªB-ãçÅ@J�A$>õwx-Ž N¤ƒÁÀ·,«Õ²m‰�¤Ãá`0LÓtH“áp6g³Éd<žÌ&ãñ,Óx6çÕ];™�ÇãḚ́…Ùx8™L&ãÉx<ÏÆÃ¡ùÚ!®g³ád<™ ÓÉxœ�'Ãád’‡˜¦ƒá0§)*f·¬–m]°�¤éÉÙSÒšD&%H$g%eíá«Ì”ê,Ë2Ì�*%ëÄLïÆ@njÂËÃ]Ašž2šÒA"ß>g„þx-1û�,›OñÈL–eÇÊ™¬“…òD‚Dä¼ç3~áߨW–e5¢LÍfó¬jj6 «Ñ8;kžY—Ífóì¬qgM˲Úí6ëµx¯wÇ9\ŒÂ:9â½[Ï«a–eÿ‘=~8L7c’ Ș<£W PÕM…F ’㉵_¼V`r&³×y<2�?LÌ^�'Z(�ˆˆ?g_ãµì¿Î!AL(%J™$Z¨èèÖå÷uO JêV†\RVm÷R¢NN.åÑ€a%È«ÛÁ(J�h¥x$N’eõÃ%y�õâ1ç¡1�fâZrÆlcÚ°9 +en3Á!¦Êá 5F÷Çgnä`E¥P(‰‡>HãM&%pðèÈC%ô­³3Sæa¼Ú‘F –mÛìÐC΃ :u”ˆj3WSB]4¾ÈTÇ)¤išRnÀí²Àç µ õŠÀ¤[t–ýG–!Q%ìLj@.¼#Ï,Z¿ÓY�H)I &¨æ¶€2v’±F�Mÿœeþ_5à#JI(cÄXÆêî Ÿ@ùdH`�÷zpÎÚí+Ë:¶9:k4ÎÎÍÊ÷àììù Ö!xvfYk·kqÆzœJ–þ�œsèVÞ¨³lše*¯÷*%<|z¹×L£þ(PJ$¡´®‰¶€HA ˆ Í^ÿ2õŸtJŒ%R?ÖŒ¡~9òL- ÈÁ4TDb¸õHk£›!ÔI¤`j´÷F5œº5ß6TJ½lp3|î!æ=P0N¾F $ÓÏ!@=ŽÄ9øk ÿ°¸”pðû�ó–äw¬ýÛ¶-«asa þaº^<9ºÑ^‹úÌkJ P‚Iwšli EàQ�\±±pAßj4¬Ë›ö÷mΤ–RJÒ bËþcì®×ãÏ)ŠçB³¸¬ô�e±þ HåA66³ßæ÷ sÐA4PÊÿ¦qaY-×uY7¼òJ™§m:0SCãašŽ‡išÒ0†ã4M‡ƒt˜ŽÓá`8¦j8i8˜Râ8 ‡Ã!¦Ãñ0¤8HÃa:$2Ôb2†‘ŽÓñxHÃ!¦ƒ4M•ù‘ "!¢ ¸ïº¦%¦q 8¹ÿO€2BÔ"ÊÌÉt–UrƼ«Ù,­ 3ªz^H@|„C…@=b‚gaòÑ77ÅÔÚ8˜4@À,ÓZÿû¿gÞ“–ïj© <æJÕùêc­+uýØŒ³žmYͳƒ†ç»þì¥sÓÙYÃ:þdóêêÆ¾i·îX¯$2nô"€ƒ‹fÈ­z «œ1ƸE�sÿ(ÜAŒ³Lc2õQJMÑ5ˆû#%©z¯™þàMõ³¬�yÏáø±º·ð5¢ÌŽÀ/Ÿ#úø7Aï‘ó9¾Ê>ýcú´å¿ Í2BÄŒÐQšcžSîç„óSŠ!§ù +‰��Ö^>�çszDúðKŽ@ÿ�¢SÂñ (ûÇ?¦O+ÊÿöëÅ s•š¾"Â<'”c>�ªç+LA‚€ÜEÔò›1~Å®þ‘þhV™c.²ìÿøéiEÙGTõâ?BnZñ`˜åDå˜Ï?d¹ž¯Ó8ø~8æOs"@𝿸ô¸m]ÚwŒ#—ñç�Óì?5­ÀfŒ‡`T5Bú‰('é³y>BÌ“|š%f’]Íç«yžÒ|ôcž~çŸùµ ¬Ù8o4,·kw»<A „ˆÔ@)¥@ ¢Á@Ej ƒÁp0¤*M•ÉÂ¥©aåé0ÅŠQ ùÏ  R•ƒ4(¥Õÿbšé`xHç p�«ÿ ”Rƒ7*Š¢È÷…ðcöõuë¢a5×ATñ‚CïÏÑ¡s­µäÜAÔ™~.½7%?D­Œ„‡„‰kUüG<…ˆF†fê!`êÒT€¬~ ¨êg¤¥Ä?gÞ9­Z�B‚$:®Œ¢ŒcàìŽÃµÇXûÒ²šÍ³ÆyœUppúo-ûÊn³ vÃðœóP‡Æèàž“ct +�ª½’–RbœÄ·4$! àñ°×ÌGÀ�¯«½&iÍ•#�iäM“ød¯hÊÜf¯1"‚~¾ÿuãáóãößœŽwëURªŽã¼žçyݮ۹íqÕ[ǹí8ޱí3‡ÿêöÁ÷nÇ}ð\ÇíK¿ŽãyÞ­ç8Ž÷êááö•ãx·�Žs[}߃ð»žW�@;N§Óqn�ÛÛÓÅ=ÿöÁõððÐq畱ûs¾sZ­ë çºuѪm4�ýà³Ùžÿà{žçu]÷ö¶jktœ[ÇqnÝÎó⯼W¯^=<??¿¸h9ß}gd`Ÿ/�ãúÿöêß^½zxðÇypêéoÇqo=×»u]×é¼:½þâs•Æ {ÖhZ ˺¶m×?ΉHEJ½�HE)% ” Ô¨Aª¤æ¡=(5 JEj0ˆJ½ +•RÀ@¥¥ÐÀ‰ŠÌ¿V Þ j êM�hä""‚ `]×µ¯+¶lù"à"8:NºKrÒÙH¤@N*¥ÖÆÖO€qf­Þý:©5þ¤ãC|„ˆ1Ä1yéGDÂ,ÓÙÏÂÜG)õ”µ¾ +'U}_¢1F�ÓZÐH“"TÕŽÏ™(ð{Ìf¬Ýn·í£ yyuÕl^]]Ý\6›Í«Ë››f³yuuÙ¼º¼¼ºººº²OMQϬfûÊn3‹Ùð¯¼× %„¼Ç¹rÁ;qUk×øNã_õsuJ"BÇ#AD•w a–Qö÷„\ ”:C f˜8áÀìGkÔ™ŸéŠÔöš˜€¨Ôí“Ñ¿W‡þ‚/@>Ï?æWŸæ8¥9(¢'MY–åsú…pþË*ûH^òËèiõ¤õ”´i¯S+"š“ø_Vsú˜ë9åyžMçóùˆ¦ÑË3³øÏ«Osý!Ÿ½�ßý¬)˦Dù|ô %ó_ž²�ä«OÙ_?>‘ΫSBXåD3z“Oç3½Êqª‰‰4AÔkýÀìK �Ùêã/SÊó©ÎEšã߉²lN4�Ó/åŸ�V$àSþËÇ'Â,Oˆ0Ÿ£ZåDsŠÆóüc®Ÿ¦ÉOYžç4ŸÎŸ2Ê¡Ê)ÿ)û˜Msn·»>…Oˆšæšrº£~(ç3-ø'Zýò”a6Mò÷˜ç¨fs¢œTºÊÿžÑ|ªçyžçTä󧌲_H`~ú¼pkæc�Ýh4š�s˲l»Ëº~Àx×.�¸ˆ¢H ‘EQ¤ªÇ°RƒAâÍ`0xA¤T�x©ÈH­ +!„P‘ŠÌw@EBDQ¡à�Š`P}>ˆ”:ÜôApÎ}ŸùŒu™}}ݪì€Î»Á‹ã¤½DgY– �þb‰:ÓucÏ= ŠãXš¾(Àç&fCY�°¡ê¼7™�9Äa–eÙGç�”¨§z^‡¦¤PBÇQ¾“IægÉA…%Æ Ô£�&á+«Èô�ü“„kØ�Ýn·Ûí«g›C›×†Dœ÷ú1û½^�‡ýjЧÏyû+°®®ÚmfµX Ú¬¾•²Öä¹G•(JÔø1‘‡¢•IH˜$ å€�õ^§Í])Q8ìµ?­lù¤‘ÒÏ<�Ç =@Å&‘Î…Dá³Yéu‹Ö•zJÀ‘ÑMó„.Cir(–2Ó¨õTš¡½×K|+cx¨œ;¤„DÆ�U`¢s'Otýç&þõO™I‰ZKt#Ä)‚DIf{&K/”Ã~ýBÞã=yÁì«3;F�€™q…â¥4>…Ò�>)³‘Tžà¡ÔS”e2>è²Ê]«o~÷ÑOÂ1ÁÞÕåÕM›1öƒó¤„bàv›sÎ¥„Ð÷�ßHÇÆÊ1Œ«ÑbP~å2"k³'­Äd@rú°‡ßeÌm6�fóܲ®¯ín·kɘïó€D Bð@D"2á9�ø›@p!‚¨Šç‘¢ à‘pˆ@ðHD"xˆêÅÕÿ8˜UE "!DàûŒùc¾ïw»®mwm3ŠmLL¬.cæÜêã�eÙT89H©)›š[RK�W¢é(%‚LWºÖ¤•²ÊeS‡Ô¤ñÑÜÿñ³xåÌAJÔzª!–’4>!â#⣠#PûOºNðȸËDakM �' ßý)�ÙÌfí6k·-«ú-þܧš¾ºç–RõÙQ°Ñ8kX—7ívh�3ÎÚ¬×å;c/!æž†Ø ›©QÕ'‡+„ÿå!<Õ]€ ÿœeÿñ³ð�ܨ~Ð26ÍQ8¯øUl’&äW9€c •ø¢IŠb¦A> +J¦ÏðM`så%¼3¤Œ=)H€8‰R¾Ó1äàœ¦2“RÊܼ¥�´gP�÷DZ¬kpµÖó¦Õˆ¬z„’qm %e,QJ$ è Îi%s)¥¤çŸÀÃ$„aØCÎû¼GüæªÙD™H@ùVJPJš|,ÍÓ$êjñl.Ÿ¤4÷¦iBÌ]-¥4Cf¨õÜËtuæü²i·Ù]�«ZÊcàWv¯× uÈCß7—¥ö¯–(� Ñø8c'£<¨§¤O_€îéáv]»k,÷¾i|cY×v¥Jnwëv»>ó™0Æ¿RôýÀ?à&VðYÀƒ ðý®oÄ ‚ ðƒ€~ø¾Ï|ƃ€ëúœ>Θ&¬a~ø]Öív͵ÎõµÕ¬úe××¶kŸÀÇ£ãçùtú” %³i†”# "å´zƒ˜ÌiNDš0§ÕjúË_ž~xÊò<§ŒV´šÏ¼ùüÓœVOs"ÄÑÓÏ?gó'z奄ˆùG9)E +óŒ>"a6¢�<xš>­~ÎóÑôÃtE9­Æÿ{®DN¥Q–k|„ǹΤ–¾¸Fn3Ö ¯î˜U·B¤‘t’7W=§lšåO4¢,ÿ�'4ŸÏóÅÏY�v»Ýn·ÙŵÍc Ã{#DÉ*@Ĺž#‘N0ÍWó¿¯V¦†æ´¢Å<÷òù§iö´šašÏþù/ÓùûW·?"æsÌ礀³lô1Í1ÏhED &yî?Mç«�yNÓóåùêÇŸþ7ˆœV”çó¥H«Õôé¾0lÌ×§ 3 þc¥¸^ËYÇ«Ô<Ξ ~Ô&ƒ)ÀTnÑHkóQû”Äb)¥ÌdLîA¨ÃâaUSC@7â!—:;,.”*a´bó ýCïýoÛVÛ<¶A¾ AA|ræFI!R^Äï9h’PýX™Tõ&Aˆ±Ñ'ªµQdŒ¨M‡H)ù•e÷îîØ9㼡€Ø•Í8‘sÞ圡Œó}Ÿu»¬Ë\÷ ƒeWé\_ÛßÔê8�f€üŸJ‰HD" „¹â¾ˆ@ˆJùÁWJ©ÔSBˆÀxð!ü‡Hˆ‘F D`,*„BÇG ÄÃC „B(ƒ@D‘<³\ @!¨„xxxD „ð…�ð@ðJÈœÇ}Æ\Û¶íë–õ»otæò@øn×ïv=ß "þ­àœ~àû~àû¾øöQðMãwÖ¹Ý2XÍsY—ùÜç\¤øB€0?Ôó(•úJñ�ñÊBˆ¡""àB=( !"¨ÈˆH(O\À˽Š„|áÕ^#ñ nUm‘ñœ_úˆ+Ñm0tÕG£©{�³€· Îy¬eÃv�26f�¦´ć‡ÑûP-.%V¢ÂöelZíª©ð\3¡U5èd0�� Œ¥„¾) …œs~wÇy+d7W j>bZpŒˆQ|ȘJƒÏ¨bv´8‚L•ÖX9�Æ’ðP‹õò꺼í3Ëf½Þ]�ûa¿6Œ˜}ÃxBÀ¹ÜsÎ9fx>7Ô“%‡ÅãôhñÏëضkÛ–uÑh4¿±Î,ËjÙöµmàº]Öe¬ËXÀ|ÆXÀ|Ÿ¾t}ŸAÀ‚ç8¢z«2t}æû XÐeŒù¬Ë˜!¬ë•ð™ï3Ãüà�ÌgŒùŒu».ëº]Û¶ÍÍÞjµ,Ë2Õñ³ÖµmÛö }9ÙX¢‰’ÑTÀCzµN4 +Ô$ëÆ€×¦VG#‘* ÊGDJI’–ˆ„3õE�Z'1¢ŒµÖš•'<Ö^v„ˆ¨ˆäÁ$âb”‚$€” +ëA ö�mYͳ3ÓùËA‡{Á9•º­én©~`ÌÙ¡xÖlžY—6³ív›õz½Ê^�Ç�'˜Ômaâ5 ‘H‰ÈŽ}â$bŠ$�^DBêc’製blt¸1G”G{EDDa´;ªå ¯ï#JЄø¿6 $LüjÄ·ƒZ®íHW—î#pòjP»Ò1wLŒŠ4J©«'Üc=fÃsǤ:$J]«î�CüöX;ž@(wlÌ‚Ÿûd4b 2N“DJ‰¡ùÅýÊ;ö¢Ý¶mBµ8J0þÂp,6&ã„zÈ�óÀý¼¸– eŽ:‘¨“Ê À(°st#€8–RBh_Ùí^�÷|a¿ìf$��qáçœ÷¼«¯—y½åèDJ­cnfÞëYOÀ©*s÷äþ7P{n6Ž€u»]×í2Öe]sW3ÿìÝ.ó«x€yJtÍ#+`Á�AÐõÆü Û ˜oùŒU`ðÄg¬ËÜn×vmÛ­à÷-˲*7ðß8fÇÄ�Q¢1‘:3’öÏ�h-Ÿ;ƒ ü(2äã#3KBD­ˆž›T@ÆOɤ„0ùggͳFã²ÁB ¸yâ‰jÈí:7ÑÜ#¼~-eŸ]=ÀÙ™uysc ßëU ¥” ˆuÕµ(„„D"¡È°~4V{�SÔ5èµÖf¯Ïà AÄDd£çK§µE”`¬êûÿK�€RþF÷"à<>ÌÙÕ4餅±ªå rĈk�Ç+ƒ”DÄ� 6 ÓÄŒ@-æÄïcwvûædô¬ u@Œ=ì ιX÷á¼€{¬Úô9ÀŽ€X¾ÿîÚmÆ8‡;Î púI"äO u1€iÌà<ñöø�òEÀ¶]Û¾n}SõŸ3€n—½ÿ˜ø ün—ù¬ë3Æ*`óýŠ0æ3?èvYŒæ/�ÏüSøc×7ïv+°�àwU¬õ_À�”hDIG@:!ÉÀ3TU½Gˆ)Õ5ÐúFZ“¯r�U —ˆ¨/p¡teòïWpvf´þ*¨¦kÈ  öÙåͳ¦uÓ6Àïúø“Dàø›�Õ @× @Ç(¥¤—Õ…>ü2¼z€¯´Ç_)¿È"þb�/@ÝÕ¯sÇÜU§€Ÿ€a?~‰€DJ™$€g¸y >gå`8˜Ôð¨‰Ú ŧ¿p€?ü‘=Ó‹P͆M¼HÁ°v·{ôášÀ2-éÇP1€£àØç!@ð"ðt™L0`,Xuœ„Ÿ1€ +~ÿyðe¨À»/†¿Êã@_fäƒ NÀ»ÿ +Ý8 y¯wL ð‚ðÏ@ Ÿ@³Ù8³¬šð;Þç=ò{ù§/Àã—@Ö@�’#Ð õ¿ÂÀW€qï®ú< ø’ø¿¼`”$1H©Ž@ýEaÀ1È_€È„â— 1 €CxH0ÆØç àà(€¨þ«P3uè]¾ìð_ÀãKð8y„²CÐh4¾içëvíÿ2ð!{€oBóØ7!@•-cÇ9€þ×À¯åbraylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_loading.js b/examples/models/models_loading.js new file mode 100644 index 0000000..5f3a9e6 --- /dev/null +++ b/examples/models/models_loading.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_loading.data";var REMOTE_PACKAGE_BASE="models_loading.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","obj",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_loading.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_loading.wasm b/examples/models/models_loading.wasm new file mode 100644 index 0000000..4f07ec8 Binary files /dev/null and b/examples/models/models_loading.wasm differ diff --git a/examples/models/models_loading_gltf.data b/examples/models/models_loading_gltf.data new file mode 100644 index 0000000..4820487 Binary files /dev/null and b/examples/models/models_loading_gltf.data differ diff --git a/examples/models/models_loading_gltf.html b/examples/models/models_loading_gltf.html new file mode 100644 index 0000000..0f4185c --- /dev/null +++ b/examples/models/models_loading_gltf.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_loading_gltf.js b/examples/models/models_loading_gltf.js new file mode 100644 index 0000000..ae1d591 --- /dev/null +++ b/examples/models/models_loading_gltf.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_loading_gltf.data";var REMOTE_PACKAGE_BASE="models_loading_gltf.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","gltf",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_loading_gltf.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_loading_gltf.wasm b/examples/models/models_loading_gltf.wasm new file mode 100644 index 0000000..8a685ec Binary files /dev/null and b/examples/models/models_loading_gltf.wasm differ diff --git a/examples/models/models_loading_vox.data b/examples/models/models_loading_vox.data new file mode 100644 index 0000000..95c378e Binary files /dev/null and b/examples/models/models_loading_vox.data differ diff --git a/examples/models/models_loading_vox.html b/examples/models/models_loading_vox.html new file mode 100644 index 0000000..d852e25 --- /dev/null +++ b/examples/models/models_loading_vox.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_loading_vox.js b/examples/models/models_loading_vox.js new file mode 100644 index 0000000..f65b88a --- /dev/null +++ b/examples/models/models_loading_vox.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_loading_vox.data";var REMOTE_PACKAGE_BASE="models_loading_vox.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","vox",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_loading_vox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_loading_vox.wasm b/examples/models/models_loading_vox.wasm new file mode 100644 index 0000000..5cdfe36 Binary files /dev/null and b/examples/models/models_loading_vox.wasm differ diff --git a/examples/models/models_mesh_generation.html b/examples/models/models_mesh_generation.html new file mode 100644 index 0000000..4f58545 --- /dev/null +++ b/examples/models/models_mesh_generation.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_mesh_generation.js b/examples/models/models_mesh_generation.js new file mode 100644 index 0000000..fe63e45 --- /dev/null +++ b/examples/models/models_mesh_generation.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_mesh_generation.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"f":___assert_fail,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Ua":___sys_ioctl,"Va":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"fe":_emscripten_get_gamepad_status,"ge":_emscripten_get_num_gamepads,"Ld":_emscripten_glActiveTexture,"Kd":_emscripten_glAttachShader,"$d":_emscripten_glBeginQueryEXT,"Jd":_emscripten_glBindAttribLocation,"Id":_emscripten_glBindBuffer,"Hd":_emscripten_glBindFramebuffer,"Gd":_emscripten_glBindRenderbuffer,"Fd":_emscripten_glBindTexture,"Td":_emscripten_glBindVertexArrayOES,"Ed":_emscripten_glBlendColor,"Dd":_emscripten_glBlendEquation,"Cd":_emscripten_glBlendEquationSeparate,"Bd":_emscripten_glBlendFunc,"Ad":_emscripten_glBlendFuncSeparate,"zd":_emscripten_glBufferData,"yd":_emscripten_glBufferSubData,"xd":_emscripten_glCheckFramebufferStatus,"wd":_emscripten_glClear,"vd":_emscripten_glClearColor,"ud":_emscripten_glClearDepthf,"td":_emscripten_glClearStencil,"sd":_emscripten_glColorMask,"rd":_emscripten_glCompileShader,"qd":_emscripten_glCompressedTexImage2D,"pd":_emscripten_glCompressedTexSubImage2D,"od":_emscripten_glCopyTexImage2D,"nd":_emscripten_glCopyTexSubImage2D,"md":_emscripten_glCreateProgram,"ld":_emscripten_glCreateShader,"kd":_emscripten_glCullFace,"jd":_emscripten_glDeleteBuffers,"id":_emscripten_glDeleteFramebuffers,"hd":_emscripten_glDeleteProgram,"be":_emscripten_glDeleteQueriesEXT,"gd":_emscripten_glDeleteRenderbuffers,"fd":_emscripten_glDeleteShader,"dd":_emscripten_glDeleteTextures,"Sd":_emscripten_glDeleteVertexArraysOES,"cd":_emscripten_glDepthFunc,"bd":_emscripten_glDepthMask,"ad":_emscripten_glDepthRangef,"$c":_emscripten_glDetachShader,"_c":_emscripten_glDisable,"Zc":_emscripten_glDisableVertexAttribArray,"Yc":_emscripten_glDrawArrays,"Od":_emscripten_glDrawArraysInstancedANGLE,"Pd":_emscripten_glDrawBuffersWEBGL,"Xc":_emscripten_glDrawElements,"Nd":_emscripten_glDrawElementsInstancedANGLE,"Wc":_emscripten_glEnable,"Vc":_emscripten_glEnableVertexAttribArray,"_d":_emscripten_glEndQueryEXT,"Uc":_emscripten_glFinish,"Tc":_emscripten_glFlush,"Sc":_emscripten_glFramebufferRenderbuffer,"Rc":_emscripten_glFramebufferTexture2D,"Qc":_emscripten_glFrontFace,"Pc":_emscripten_glGenBuffers,"Nc":_emscripten_glGenFramebuffers,"ce":_emscripten_glGenQueriesEXT,"Mc":_emscripten_glGenRenderbuffers,"Lc":_emscripten_glGenTextures,"Rd":_emscripten_glGenVertexArraysOES,"Oc":_emscripten_glGenerateMipmap,"Kc":_emscripten_glGetActiveAttrib,"Jc":_emscripten_glGetActiveUniform,"Ic":_emscripten_glGetAttachedShaders,"Hc":_emscripten_glGetAttribLocation,"Gc":_emscripten_glGetBooleanv,"Fc":_emscripten_glGetBufferParameteriv,"Ec":_emscripten_glGetError,"Dc":_emscripten_glGetFloatv,"Cc":_emscripten_glGetFramebufferAttachmentParameteriv,"Ac":_emscripten_glGetIntegerv,"yc":_emscripten_glGetProgramInfoLog,"zc":_emscripten_glGetProgramiv,"Vd":_emscripten_glGetQueryObjecti64vEXT,"Xd":_emscripten_glGetQueryObjectivEXT,"Ud":_emscripten_glGetQueryObjectui64vEXT,"Wd":_emscripten_glGetQueryObjectuivEXT,"Yd":_emscripten_glGetQueryivEXT,"xc":_emscripten_glGetRenderbufferParameteriv,"vc":_emscripten_glGetShaderInfoLog,"uc":_emscripten_glGetShaderPrecisionFormat,"tc":_emscripten_glGetShaderSource,"wc":_emscripten_glGetShaderiv,"sc":_emscripten_glGetString,"rc":_emscripten_glGetTexParameterfv,"pc":_emscripten_glGetTexParameteriv,"mc":_emscripten_glGetUniformLocation,"oc":_emscripten_glGetUniformfv,"nc":_emscripten_glGetUniformiv,"jc":_emscripten_glGetVertexAttribPointerv,"lc":_emscripten_glGetVertexAttribfv,"kc":_emscripten_glGetVertexAttribiv,"ic":_emscripten_glHint,"hc":_emscripten_glIsBuffer,"gc":_emscripten_glIsEnabled,"ec":_emscripten_glIsFramebuffer,"dc":_emscripten_glIsProgram,"ae":_emscripten_glIsQueryEXT,"cc":_emscripten_glIsRenderbuffer,"bc":_emscripten_glIsShader,"ac":_emscripten_glIsTexture,"Qd":_emscripten_glIsVertexArrayOES,"$b":_emscripten_glLineWidth,"_b":_emscripten_glLinkProgram,"Zb":_emscripten_glPixelStorei,"Yb":_emscripten_glPolygonOffset,"Zd":_emscripten_glQueryCounterEXT,"Xb":_emscripten_glReadPixels,"Vb":_emscripten_glReleaseShaderCompiler,"Ub":_emscripten_glRenderbufferStorage,"Tb":_emscripten_glSampleCoverage,"Sb":_emscripten_glScissor,"Rb":_emscripten_glShaderBinary,"Qb":_emscripten_glShaderSource,"Pb":_emscripten_glStencilFunc,"Ob":_emscripten_glStencilFuncSeparate,"Nb":_emscripten_glStencilMask,"Mb":_emscripten_glStencilMaskSeparate,"Kb":_emscripten_glStencilOp,"Jb":_emscripten_glStencilOpSeparate,"Ib":_emscripten_glTexImage2D,"Hb":_emscripten_glTexParameterf,"Gb":_emscripten_glTexParameterfv,"Fb":_emscripten_glTexParameteri,"Eb":_emscripten_glTexParameteriv,"Db":_emscripten_glTexSubImage2D,"Cb":_emscripten_glUniform1f,"Bb":_emscripten_glUniform1fv,"zb":_emscripten_glUniform1i,"yb":_emscripten_glUniform1iv,"xb":_emscripten_glUniform2f,"wb":_emscripten_glUniform2fv,"vb":_emscripten_glUniform2i,"ub":_emscripten_glUniform2iv,"tb":_emscripten_glUniform3f,"sb":_emscripten_glUniform3fv,"rb":_emscripten_glUniform3i,"qb":_emscripten_glUniform3iv,"ob":_emscripten_glUniform4f,"nb":_emscripten_glUniform4fv,"mb":_emscripten_glUniform4i,"lb":_emscripten_glUniform4iv,"kb":_emscripten_glUniformMatrix2fv,"jb":_emscripten_glUniformMatrix3fv,"ib":_emscripten_glUniformMatrix4fv,"hb":_emscripten_glUseProgram,"gb":_emscripten_glValidateProgram,"fb":_emscripten_glVertexAttrib1f,"db":_emscripten_glVertexAttrib1fv,"cb":_emscripten_glVertexAttrib2f,"bb":_emscripten_glVertexAttrib2fv,"ab":_emscripten_glVertexAttrib3f,"$a":_emscripten_glVertexAttrib3fv,"_a":_emscripten_glVertexAttrib4f,"Za":_emscripten_glVertexAttrib4fv,"Md":_emscripten_glVertexAttribDivisorANGLE,"Ya":_emscripten_glVertexAttribPointer,"Xa":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"he":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"de":_exit,"I":_fd_close,"Ta":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"a":_glBindBuffer,"d":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"e":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"ee":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"ie":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"c":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_mesh_generation.wasm b/examples/models/models_mesh_generation.wasm new file mode 100644 index 0000000..13d7d94 Binary files /dev/null and b/examples/models/models_mesh_generation.wasm differ diff --git a/examples/models/models_mesh_picking.data b/examples/models/models_mesh_picking.data new file mode 100644 index 0000000..25e3636 --- /dev/null +++ b/examples/models/models_mesh_picking.data @@ -0,0 +1,3938 @@ +# (c) 2018 Medieval Assets Pack by Alberto Cano +# Licensed as Creative Commons Attribution-NonCommercial 4.0 + +# +# object turret +# + +v 0.0000 13.3010 3.5973 +v 0.0000 12.1596 2.3386 +v 2.5639 12.1596 2.3386 +v 3.4913 13.3010 3.5973 +v 3.5203 14.0462 3.0738 +v 3.9444 14.0450 3.1421 +v 3.9444 14.0369 -0.0000 +v 3.4351 14.0369 -0.0000 +v 3.4352 14.0462 2.9719 +v 3.3643 13.3303 2.9127 +v 0.0000 13.3303 2.9127 +v 0.0000 13.3010 2.9740 +v 3.4352 13.3010 2.9740 +v 0.0000 14.0462 2.9719 +v 3.9444 13.2918 -0.0000 +v 3.9444 13.2998 3.1441 +v 3.4913 14.0462 3.5952 +v 3.3643 13.3303 -0.0000 +v 0.0000 13.3303 -0.0000 +v 0.0000 14.0462 3.5952 +v 2.5639 12.1504 -0.0000 +v 3.4352 13.2918 -0.0000 +v 3.5237 14.9316 3.0740 +v 3.9478 14.9305 3.1422 +v 3.4947 14.9316 3.5953 +v 3.5271 16.4764 1.4274 +v 3.9512 16.4752 1.4274 +v 3.9512 15.9080 2.0774 +v 3.5271 15.9092 2.0092 +v 1.8327 16.4815 3.5953 +v 1.8617 16.4815 3.0742 +v 2.5117 15.9086 3.0742 +v 2.4725 15.9086 3.5953 +v 3.9512 16.4757 3.1424 +v 3.4981 16.4769 3.5955 +v 3.5271 16.4769 3.0742 +v 2.5639 12.1596 -2.3386 +v 0.0000 12.1596 -2.3386 +v 0.0000 13.3010 -3.5973 +v 3.4913 13.3010 -3.5973 +v 3.5203 14.0462 -3.0738 +v 3.4351 14.0462 -2.9720 +v 3.9444 14.0450 -3.1421 +v 0.0000 13.3010 -2.9740 +v 0.0000 13.3303 -2.9127 +v 3.3643 13.3303 -2.9127 +v 3.4352 13.3010 -2.9740 +v 0.0000 14.0462 -2.9719 +v 3.9444 13.2998 -3.1441 +v 3.4913 14.0462 -3.5952 +v 0.0000 14.0462 -3.5952 +v 3.9478 14.9305 -3.1422 +v 3.5237 14.9316 -3.0740 +v 3.4947 14.9316 -3.5953 +v 3.9512 15.9080 -2.0774 +v 3.9512 16.4752 -1.4274 +v 3.5271 16.4764 -1.4274 +v 3.5271 15.9092 -2.0092 +v 2.5117 15.9086 -3.0742 +v 1.8617 16.4815 -3.0742 +v 1.8327 16.4815 -3.5954 +v 2.4725 15.9086 -3.5953 +v 3.4981 16.4769 -3.5955 +v 3.9512 16.4757 -3.1424 +v 3.5271 16.4769 -3.0742 +v -2.5639 12.1596 2.3386 +v -3.4913 13.3010 3.5973 +v -3.5203 14.0462 3.0738 +v -3.4351 14.0462 2.9720 +v -3.4351 14.0369 0.0000 +v -3.9444 14.0369 0.0000 +v -3.9444 14.0450 3.1421 +v -3.3643 13.3303 2.9127 +v -3.4351 13.3010 2.9740 +v -3.9444 13.2918 0.0000 +v -3.9444 13.2998 3.1441 +v -3.4913 14.0462 3.5952 +v -3.3643 13.3303 0.0000 +v -2.5639 12.1504 0.0000 +v -3.4351 13.2918 0.0000 +v -3.9478 14.9305 3.1422 +v -3.5237 14.9316 3.0740 +v -3.4947 14.9316 3.5954 +v -3.9512 15.9080 2.0774 +v -3.9512 16.4752 1.4274 +v -3.5271 16.4764 1.4274 +v -3.5271 15.9092 2.0092 +v -2.5117 15.9086 3.0742 +v -1.8617 16.4815 3.0742 +v -1.8327 16.4815 3.5954 +v -2.4725 15.9086 3.5953 +v -3.4981 16.4769 3.5955 +v -3.9512 16.4757 3.1424 +v -3.5271 16.4769 3.0742 +v -2.5639 12.1596 -2.3386 +v -3.4913 13.3010 -3.5972 +v -3.5203 14.0462 -3.0738 +v -3.9444 14.0450 -3.1421 +v -3.4351 14.0462 -2.9719 +v -3.3643 13.3303 -2.9127 +v -3.4351 13.3010 -2.9740 +v -3.9444 13.2998 -3.1441 +v -3.4913 14.0462 -3.5952 +v -3.5237 14.9316 -3.0740 +v -3.9478 14.9305 -3.1422 +v -3.4947 14.9316 -3.5953 +v -3.5271 16.4764 -1.4274 +v -3.9512 16.4752 -1.4274 +v -3.9512 15.9080 -2.0774 +v -3.5271 15.9092 -2.0092 +v -1.8327 16.4815 -3.5953 +v -1.8617 16.4815 -3.0742 +v -2.5117 15.9086 -3.0742 +v -2.4725 15.9086 -3.5953 +v -3.9512 16.4757 -3.1424 +v -3.4981 16.4769 -3.5955 +v -3.5271 16.4769 -3.0742 +v 0.1550 14.0277 -3.1544 +v 0.1550 14.0277 -3.5335 +v 0.1550 16.9018 -3.5335 +v 0.1550 16.9018 -3.1544 +v -0.5341 14.0277 -3.5335 +v -0.5341 16.9018 -3.5335 +v -0.5341 14.0277 -3.1544 +v -0.5341 16.9018 -3.1544 +v -3.5170 14.0277 -0.3456 +v -3.8961 14.0277 -0.3456 +v -3.8961 16.9018 -0.3456 +v -3.5170 16.9018 -0.3456 +v -3.8961 14.0277 0.3435 +v -3.8961 16.9018 0.3435 +v -3.5170 14.0277 0.3435 +v -3.5170 16.9018 0.3435 +v -0.3446 14.0277 3.1662 +v -0.3446 14.0277 3.5453 +v -0.3446 16.9018 3.5453 +v -0.3446 16.9018 3.1662 +v 0.3445 14.0277 3.5453 +v 0.3445 16.9018 3.5453 +v 0.3445 14.0277 3.1662 +v 0.3445 16.9018 3.1662 +v 3.5160 14.0277 0.3435 +v 3.8951 14.0277 0.3435 +v 3.8951 16.9018 0.3435 +v 3.5160 16.9018 0.3435 +v 3.8951 14.0277 -0.3456 +v 3.8951 16.9018 -0.3456 +v 3.5160 14.0277 -0.3456 +v 3.5160 16.9018 -0.3456 +v 0.0000 8.6187 2.3766 +v 0.4715 8.6467 2.3766 +v 0.4598 9.7167 2.3896 +v -0.0117 10.0591 2.3896 +v 0.8403 8.5183 2.4160 +v 0.8403 8.5183 2.3077 +v 0.8403 8.6724 2.3077 +v 0.8403 8.6724 2.4160 +v 0.7068 9.8138 2.4290 +v 0.7068 9.8138 2.3207 +v -0.0117 10.3117 2.3207 +v -0.0117 10.3117 2.4290 +v -0.8403 8.6724 2.4160 +v -0.8403 8.6724 2.3077 +v -0.8403 8.5183 2.3077 +v -0.8403 8.5183 2.4160 +v -0.7186 8.5183 2.4160 +v -0.7186 8.5183 2.3077 +v -0.0000 8.4646 2.3077 +v -0.0000 8.4646 2.4160 +v 0.7185 8.5183 2.5347 +v 0.7185 8.6724 2.5347 +v 0.4715 8.6467 2.5347 +v 0.4598 9.7167 2.4290 +v -0.0117 10.0591 2.4290 +v -0.7186 8.6724 2.5347 +v -0.7186 8.5183 2.5347 +v -0.4715 8.6567 2.5347 +v -0.0000 8.4646 2.5347 +v -0.0000 8.6187 2.5347 +v -0.4833 9.7167 2.3896 +v -0.4715 8.6567 2.3766 +v -0.7303 9.8138 2.3207 +v -0.7302 9.8138 2.4290 +v 0.7185 8.5183 2.3077 +v 0.7185 8.5183 2.4160 +v -0.4832 9.7167 2.4290 +v 0.4715 8.6467 2.4160 +v -0.4716 8.6567 2.4160 +v -0.0000 8.6187 2.4160 +v -0.7186 8.6724 2.4160 +v -0.7186 8.6724 2.3077 +v 0.7185 8.6724 2.4160 +v 0.7185 8.6724 2.3077 +v 0.8403 8.5183 2.5347 +v 0.8403 8.6724 2.5347 +v -0.8403 8.6724 2.5347 +v -0.8403 8.5183 2.5347 +v 2.6080 8.6187 -0.0010 +v 2.6080 8.6467 -0.4725 +v 2.6210 9.7167 -0.4608 +v 2.6210 10.0591 0.0107 +v 2.6474 8.5183 -0.8413 +v 2.5392 8.5183 -0.8413 +v 2.5392 8.6724 -0.8413 +v 2.6474 8.6724 -0.8413 +v 2.6604 9.8138 -0.7079 +v 2.5522 9.8138 -0.7078 +v 2.5522 10.3117 0.0107 +v 2.6604 10.3117 0.0107 +v 2.6474 8.6724 0.8393 +v 2.5392 8.6724 0.8393 +v 2.5392 8.5183 0.8393 +v 2.6474 8.5183 0.8393 +v 2.6474 8.5183 0.7175 +v 2.5392 8.5183 0.7175 +v 2.5392 8.4646 -0.0010 +v 2.6474 8.4646 -0.0010 +v 2.7661 8.5183 -0.7195 +v 2.7661 8.6724 -0.7195 +v 2.7661 8.6467 -0.4725 +v 2.6604 9.7167 -0.4609 +v 2.6604 10.0591 0.0107 +v 2.7661 8.6724 0.7175 +v 2.7661 8.5183 0.7175 +v 2.7661 8.6567 0.4705 +v 2.7661 8.4646 -0.0010 +v 2.7661 8.6187 -0.0010 +v 2.6210 9.7167 0.4822 +v 2.6080 8.6567 0.4705 +v 2.5522 9.8138 0.7292 +v 2.6604 9.8138 0.7292 +v 2.5392 8.5183 -0.7196 +v 2.6474 8.5183 -0.7195 +v 2.6604 9.7167 0.4822 +v 2.6474 8.6467 -0.4725 +v 2.6474 8.6567 0.4705 +v 2.6474 8.6187 -0.0010 +v 2.6474 8.6724 0.7175 +v 2.5392 8.6724 0.7175 +v 2.6474 8.6724 -0.7195 +v 2.5392 8.6724 -0.7196 +v 2.7661 8.5183 -0.8413 +v 2.7661 8.6724 -0.8413 +v 2.7661 8.6724 0.8393 +v 2.7661 8.5183 0.8393 +v -2.6159 8.6187 -0.0010 +v -2.6159 8.6467 0.4705 +v -2.6289 9.7167 0.4588 +v -2.6289 10.0591 -0.0127 +v -2.6553 8.5183 0.8393 +v -2.5470 8.5183 0.8393 +v -2.5470 8.6724 0.8393 +v -2.6553 8.6724 0.8393 +v -2.6683 9.8138 0.7058 +v -2.5600 9.8138 0.7058 +v -2.5600 10.3117 -0.0127 +v -2.6683 10.3117 -0.0127 +v -2.6553 8.6724 -0.8413 +v -2.5470 8.6724 -0.8413 +v -2.5470 8.5183 -0.8413 +v -2.6553 8.5183 -0.8413 +v -2.6553 8.5183 -0.7195 +v -2.5470 8.5183 -0.7195 +v -2.5470 8.4646 -0.0010 +v -2.6553 8.4646 -0.0010 +v -2.7740 8.5183 0.7175 +v -2.7740 8.6724 0.7175 +v -2.7740 8.6467 0.4705 +v -2.6683 9.7167 0.4589 +v -2.6683 10.0591 -0.0127 +v -2.7740 8.6724 -0.7195 +v -2.7740 8.5183 -0.7195 +v -2.7740 8.6567 -0.4725 +v -2.7740 8.4646 -0.0010 +v -2.7740 8.6187 -0.0010 +v -2.6289 9.7167 -0.4843 +v -2.6159 8.6567 -0.4725 +v -2.5600 9.8138 -0.7312 +v -2.6683 9.8138 -0.7312 +v -2.5470 8.5183 0.7175 +v -2.6553 8.5183 0.7175 +v -2.6683 9.7167 -0.4842 +v -2.6553 8.6467 0.4705 +v -2.6553 8.6567 -0.4725 +v -2.6553 8.6187 -0.0010 +v -2.6553 8.6724 -0.7195 +v -2.5470 8.6724 -0.7195 +v -2.6553 8.6724 0.7175 +v -2.5470 8.6724 0.7175 +v -2.7740 8.5183 0.8393 +v -2.7740 8.6724 0.8393 +v -2.7740 8.6724 -0.8413 +v -2.7740 8.5183 -0.8413 +v -2.5639 0.0000 -2.3386 +v -2.5639 0.0000 2.3365 +v -2.5639 12.1411 2.3365 +v 2.5639 -0.0000 2.3365 +v 2.5639 12.1411 2.3365 +v 2.5639 -0.0000 -2.3386 +v -3.3222 12.8680 -0.0010 +v -3.3222 12.8680 -2.9994 +v -3.3222 11.9932 -2.9994 +v -3.3222 11.8321 -0.0010 +v -0.0000 12.8680 2.9974 +v -3.3222 12.8680 2.9974 +v -3.3222 11.9932 2.9974 +v -0.0000 11.8320 2.9974 +v 3.3221 12.8680 -0.0010 +v 3.3221 12.8680 2.9974 +v 3.3221 11.9932 2.9974 +v 3.3221 11.8320 -0.0010 +v -0.0000 12.8680 -2.9994 +v 3.3221 12.8680 -2.9994 +v 3.3221 11.9932 -2.9994 +v -0.0000 11.8320 -2.9994 +v -2.5639 11.9932 -2.3386 +v -0.0000 11.8320 -2.3386 +v 2.5639 11.9932 -2.3386 +v 2.5639 11.8321 -0.0010 +v 2.5639 11.9932 2.3365 +v -0.0000 11.8321 2.3365 +v -2.5639 11.9932 2.3365 +v -2.5639 11.8321 -0.0010 +v -2.5639 12.8680 -2.3386 +v -2.5639 12.8680 -0.0010 +v -2.5639 12.8680 2.3365 +v -0.0000 12.8680 2.3365 +v 2.5639 12.8680 2.3365 +v 2.5639 12.8680 -0.0010 +v 2.5639 12.8680 -2.3386 +v -0.0000 12.8680 -2.3386 +v -3.3222 6.6605 -0.0010 +v -3.3222 6.6605 -2.9994 +v -3.3222 5.7858 -2.9994 +v -3.3222 5.6246 -0.0010 +v -0.0000 6.6605 2.9974 +v -3.3222 6.6605 2.9974 +v -3.3222 5.7858 2.9974 +v -0.0000 5.6246 2.9974 +v 3.3221 6.6605 -0.0010 +v 3.3221 6.6605 2.9974 +v 3.3221 5.7858 2.9974 +v 3.3221 5.6246 -0.0010 +v -0.0000 6.6605 -2.9994 +v 3.3221 6.6605 -2.9994 +v 3.3221 5.7858 -2.9994 +v -0.0000 5.6246 -2.9994 +v -2.5639 5.7858 -2.3386 +v -0.0000 5.6246 -2.3386 +v 2.5639 5.7858 -2.3386 +v 2.5639 5.6246 -0.0010 +v 2.5639 5.7858 2.3365 +v -0.0000 5.6246 2.3365 +v -2.5639 5.7858 2.3365 +v -2.5639 5.6246 -0.0010 +v -2.5639 6.6605 -2.3386 +v -2.5639 6.6605 -0.0010 +v -2.5639 6.6605 2.3365 +v -0.0000 6.6605 2.3365 +v 2.5639 6.6605 2.3365 +v 2.5639 6.6605 -0.0010 +v 2.5639 6.6605 -2.3386 +v -0.0000 6.6605 -2.3386 +v -2.6103 9.3882 2.4561 +v -2.6767 9.3882 1.9558 +v -2.9138 6.4859 1.8341 +v -2.9138 6.4859 2.7406 +v -2.9138 12.2904 1.8341 +v -2.9138 12.2904 2.7406 +v -1.9967 6.4859 2.7406 +v -2.0923 9.3882 2.4561 +v -1.9967 11.6821 2.7406 +v -1.9967 6.4859 1.8341 +v -2.1587 9.3882 1.9558 +v -1.9967 11.6821 1.8341 +v -2.6103 9.4353 -2.4582 +v -2.9138 6.5331 -2.7426 +v -2.9138 6.5331 -1.8362 +v -2.6767 9.4353 -1.9578 +v -2.9138 12.3375 -1.8362 +v -2.9138 12.3375 -2.7426 +v -2.0923 9.4353 -2.4581 +v -1.9967 6.5331 -2.7426 +v -1.9967 11.7293 -2.7426 +v -2.1587 9.4353 -1.9578 +v -1.9967 6.5331 -1.8362 +v -1.9967 11.7293 -1.8362 +v -2.6103 2.9022 -2.4582 +v -2.9138 0.0000 -2.7426 +v -2.9138 0.0000 -1.8362 +v -2.6767 2.9022 -1.9578 +v -2.9138 5.8044 -1.8362 +v -2.9138 5.8044 -2.7426 +v -2.0923 2.9022 -2.4581 +v -1.9967 0.0000 -2.7426 +v -1.9967 6.4231 -2.7426 +v -2.1587 2.9022 -1.9578 +v -1.9967 0.0000 -1.8362 +v -1.9967 6.4231 -1.8362 +v 2.6103 9.4517 2.4561 +v 2.9138 6.5495 2.7406 +v 2.9138 6.5495 1.8341 +v 2.6767 9.4517 1.9558 +v 2.9138 12.3539 1.8341 +v 2.9138 12.3539 2.7406 +v 2.0923 9.4517 2.4561 +v 1.9967 6.5495 2.7406 +v 1.9967 11.7456 2.7406 +v 2.1587 9.4517 1.9558 +v 1.9967 6.5495 1.8341 +v 1.9967 11.7456 1.8341 +v 2.6103 2.9022 -2.4581 +v 2.6767 2.9022 -1.9578 +v 2.9138 -0.0000 -1.8362 +v 2.9138 -0.0000 -2.7426 +v 2.9138 5.8044 -1.8362 +v 2.9138 5.8044 -2.7426 +v 1.9967 -0.0000 -2.7426 +v 2.0923 2.9022 -2.4581 +v 1.9967 6.4231 -2.7426 +v 1.9967 -0.0000 -1.8362 +v 2.1587 2.9022 -1.9578 +v 1.9967 6.4231 -1.8362 +v 2.6103 9.4353 -2.4582 +v 2.6767 9.4353 -1.9578 +v 2.9138 6.5331 -1.8362 +v 2.9138 6.5331 -2.7427 +v 2.9138 12.3375 -1.8362 +v 2.9138 12.3375 -2.7427 +v 1.9967 6.5331 -2.7427 +v 2.0923 9.4353 -2.4581 +v 1.9967 11.7293 -2.7427 +v 1.9967 6.5331 -1.8362 +v 2.1587 9.4353 -1.9578 +v 1.9967 11.7293 -1.8362 +v 2.6103 2.9022 2.4561 +v 2.9138 -0.0000 2.7406 +v 2.9138 -0.0000 1.8341 +v 2.6767 2.9022 1.9558 +v 2.9138 5.8044 1.8341 +v 2.9138 5.8044 2.7406 +v 2.0923 2.9022 2.4561 +v 1.9967 -0.0000 2.7406 +v 1.9967 6.4231 2.7406 +v 2.1587 2.9022 1.9558 +v 1.9967 -0.0000 1.8341 +v 1.9967 6.4231 1.8341 +v -2.6103 2.9022 2.4561 +v -2.6767 2.9022 1.9558 +v -2.9138 0.0000 1.8341 +v -2.9138 0.0000 2.7406 +v -2.9138 5.8044 1.8341 +v -2.9138 5.8044 2.7406 +v -1.9967 0.0000 2.7406 +v -2.0923 2.9022 2.4561 +v -1.9967 6.4231 2.7406 +v -1.9967 0.0000 1.8341 +v -2.1587 2.9022 1.9558 +v -1.9967 6.4231 1.8341 +v -1.5453 5.6703 -3.5469 +v -1.5453 7.5835 -3.4309 +v -0.7727 7.5835 -3.4309 +v -0.7727 4.7854 -3.5469 +v -1.5453 9.4968 -3.2987 +v -0.7727 9.4968 -3.2987 +v -1.5453 11.4101 -3.3804 +v -0.7727 11.4101 -3.3804 +v -1.5453 13.3234 -3.5469 +v -0.7727 13.3234 -3.5469 +v -0.0000 7.5835 -3.4309 +v -0.0000 4.2830 -3.5469 +v -0.0000 9.4968 -3.2987 +v -0.0000 11.4101 -3.3804 +v -0.0000 13.3234 -3.5469 +v 0.7726 7.5835 -3.4309 +v 0.7726 4.7854 -3.5469 +v 0.7726 9.4968 -3.2987 +v 0.7726 11.4101 -3.3804 +v 0.7726 13.3234 -3.5469 +v 1.5453 7.5835 -3.4309 +v 1.5453 5.6702 -3.5469 +v 1.5453 9.4968 -3.2987 +v 1.5453 11.4101 -3.3804 +v 1.5453 13.3234 -3.5469 +v 0.0000 23.5750 -0.0000 +v -4.1897 16.4768 -3.9339 +v -4.1897 16.4768 3.9339 +v 4.1897 16.4768 3.9339 +v 4.1897 16.4768 -3.9339 +v -1.2971 3.7738 -2.1572 +v -1.2971 3.7738 -2.6666 +v -1.7173 3.6544 -2.6666 +v -1.7173 3.6544 -2.1572 +v -1.2971 -0.0000 -2.6666 +v -1.2971 3.3171 -2.6666 +v -1.2971 3.3171 -2.4156 +v -1.2971 -0.0000 -2.4156 +v -1.7173 -0.0000 -2.6666 +v -1.7173 3.3171 -2.6666 +v -1.7173 -0.0000 -2.1572 +v -1.7173 3.3171 -2.1572 +v 1.2970 3.7738 -2.6666 +v 1.2970 3.7738 -2.1572 +v 1.7173 3.6544 -2.1572 +v 1.7173 3.6544 -2.6666 +v 1.2970 -0.0000 -2.4156 +v 1.2970 3.3171 -2.4156 +v 1.2970 3.3171 -2.6666 +v 1.2970 -0.0000 -2.6666 +v 1.7173 -0.0000 -2.6666 +v 1.7173 3.3171 -2.6666 +v 1.7173 3.3171 -2.1572 +v 1.7173 -0.0000 -2.1572 +v -0.0000 4.3176 -2.6666 +v -0.0000 4.3176 -2.1572 +v -0.0000 3.7437 -2.6666 +v -0.0000 3.7437 -2.4156 +v -0.0000 -0.0000 -2.4156 +# 518 vertices + +vn 0.0000 -0.7408 0.6718 +vn 0.0016 1.0000 -0.0028 +vn -0.0000 0.9024 0.4309 +vn 0.0000 -0.0028 -1.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.4189 -0.8046 0.4210 +vn 0.7071 0.0020 0.7071 +vn -0.0000 1.0000 -0.0000 +vn 0.0000 0.0028 1.0000 +vn 0.6366 -0.7712 0.0024 +vn 0.4322 0.9018 -0.0014 +vn -1.0000 -0.0000 0.0000 +vn 0.1589 -0.0004 -0.9873 +vn -0.9985 0.0039 -0.0555 +vn 0.7071 -0.0029 0.7071 +vn 0.0524 -0.7346 -0.6765 +vn -0.6635 -0.7469 -0.0434 +vn 0.7071 -0.0016 0.7071 +vn -1.0000 0.0014 -0.0007 +vn 1.0000 -0.0014 0.0007 +vn 0.1062 -0.7327 -0.6723 +vn -0.0001 -0.0001 1.0000 +vn -0.0000 0.0001 -1.0000 +vn -0.6920 -0.7204 -0.0452 +vn 0.0000 -0.7408 -0.6718 +vn 0.0016 1.0000 0.0028 +vn -0.0000 0.9024 -0.4309 +vn 0.0000 -0.0028 1.0000 +vn 0.4189 -0.8046 -0.4210 +vn 0.7071 0.0020 -0.7071 +vn -0.0000 1.0000 0.0000 +vn -0.0000 0.0028 -1.0000 +vn 0.6366 -0.7712 -0.0024 +vn 0.4322 0.9018 0.0014 +vn 0.1589 -0.0004 0.9873 +vn -0.9985 0.0039 0.0555 +vn 0.7071 -0.0029 -0.7071 +vn 0.0524 -0.7346 0.6765 +vn -0.6635 -0.7469 0.0434 +vn 0.7071 -0.0016 -0.7071 +vn -1.0000 0.0014 0.0007 +vn 1.0000 -0.0014 -0.0007 +vn 0.1062 -0.7327 0.6723 +vn -0.0001 -0.0001 -1.0000 +vn -0.0000 0.0001 1.0000 +vn -0.6920 -0.7204 0.0452 +vn -0.0000 -0.7408 0.6718 +vn -0.0016 1.0000 -0.0028 +vn 0.0000 0.9024 0.4309 +vn -0.0000 -0.0028 -1.0000 +vn -1.0000 0.0000 0.0000 +vn -0.4189 -0.8046 0.4210 +vn -0.7071 0.0020 0.7071 +vn 0.0000 1.0000 -0.0000 +vn -0.6366 -0.7712 0.0024 +vn -0.4322 0.9018 -0.0014 +vn -0.4321 0.9018 -0.0014 +vn 1.0000 -0.0000 -0.0000 +vn -0.1589 -0.0004 -0.9873 +vn 0.9985 0.0039 -0.0555 +vn -0.7071 -0.0029 0.7071 +vn -0.0524 -0.7346 -0.6765 +vn 0.6635 -0.7469 -0.0434 +vn -0.7071 -0.0016 0.7071 +vn 1.0000 0.0014 -0.0007 +vn -1.0000 -0.0014 0.0007 +vn -0.1062 -0.7327 -0.6723 +vn 0.0001 -0.0001 1.0000 +vn 0.0000 0.0001 -1.0000 +vn 0.6920 -0.7204 -0.0452 +vn -0.0000 -0.7408 -0.6718 +vn -0.0016 1.0000 0.0028 +vn 0.0000 0.9024 -0.4309 +vn -0.0000 -0.0028 1.0000 +vn -0.4189 -0.8046 -0.4210 +vn -0.7071 0.0020 -0.7071 +vn 0.0000 1.0000 0.0000 +vn -0.6366 -0.7712 -0.0024 +vn -0.4321 0.9018 0.0014 +vn -0.4322 0.9018 0.0014 +vn -0.1589 -0.0004 0.9873 +vn 0.9985 0.0039 0.0555 +vn -0.7071 -0.0029 -0.7071 +vn -0.0524 -0.7346 0.6765 +vn 0.6635 -0.7469 0.0434 +vn -0.7071 -0.0016 -0.7071 +vn 1.0000 0.0014 0.0007 +vn -1.0000 -0.0014 -0.0007 +vn -0.1062 -0.7327 0.6723 +vn 0.0001 -0.0001 -1.0000 +vn 0.0000 0.0001 1.0000 +vn 0.6920 -0.7204 0.0452 +vn -0.0000 0.0000 -1.0000 +vn 0.0000 0.0000 1.0000 +vn -0.0035 -0.0104 0.9999 +vn 1.0000 -0.0000 -0.0002 +vn 0.5696 0.8219 -0.0001 +vn -0.0745 -0.9972 0.0000 +vn -0.0000 -0.0000 1.0000 +vn -0.0000 0.0000 1.0000 +vn 0.0033 -0.0104 0.9999 +vn -0.5696 0.8219 0.0001 +vn 0.0745 -0.9972 0.0000 +vn 0.0000 -0.0000 1.0000 +vn -0.9999 -0.0109 0.0008 +vn -0.5875 -0.8092 0.0009 +vn 0.5875 -0.8092 -0.0008 +vn 0.9999 0.0111 -0.0004 +vn 0.0803 0.9968 0.0001 +vn -0.0593 0.9982 -0.0000 +vn -0.0027 -0.0118 0.9999 +vn -0.9999 -0.0102 0.0001 +vn 0.9999 0.0103 -0.0002 +vn 0.0029 -0.0117 0.9999 +vn 1.0000 -0.0000 0.0001 +vn -0.1034 0.9946 0.0000 +vn -0.0593 0.9982 0.0000 +vn 0.0803 0.9968 -0.0000 +vn 0.0634 0.9980 -0.0000 +vn -1.0000 0.0000 0.0001 +vn -0.0000 -1.0000 0.0000 +vn 0.0000 -1.0000 0.0000 +vn 0.0000 -1.0000 -0.0000 +vn -0.0001 0.0000 1.0000 +vn 0.9999 -0.0104 0.0035 +vn -0.0001 0.0000 -1.0000 +vn -0.0001 0.8219 -0.5696 +vn -0.0000 -0.9972 0.0745 +vn 1.0000 -0.0000 0.0000 +vn 0.9999 -0.0104 -0.0034 +vn 0.0001 0.8219 0.5696 +vn 0.0000 -0.9972 -0.0745 +vn 0.0008 -0.0109 0.9999 +vn 0.0008 -0.8092 0.5875 +vn -0.0008 -0.8092 -0.5875 +vn -0.0004 0.0111 -0.9999 +vn 0.0000 0.9968 -0.0803 +vn -0.0000 0.9982 0.0593 +vn 0.9999 -0.0118 0.0027 +vn 0.0001 -0.0102 0.9999 +vn -0.0002 0.0103 -0.9999 +vn 0.9999 -0.0117 -0.0029 +vn 0.0001 -0.0000 -1.0000 +vn 0.0000 0.9946 0.1034 +vn 0.0000 0.9982 0.0593 +vn 0.0000 0.9968 -0.0804 +vn 0.0000 0.9980 -0.0634 +vn 0.0001 -0.0000 1.0000 +vn -0.0000 -0.9972 -0.0745 +vn -0.0000 -1.0000 -0.0000 +vn -0.9999 -0.0104 -0.0035 +vn 0.0002 -0.0000 1.0000 +vn -1.0000 0.0000 -0.0000 +vn -0.9999 -0.0104 0.0033 +vn -0.0008 -0.0109 -0.9999 +vn -0.0009 -0.8092 -0.5875 +vn 0.0007 -0.8092 0.5875 +vn 0.0004 0.0111 0.9999 +vn -0.0001 0.9968 0.0803 +vn 0.0000 0.9982 -0.0593 +vn -0.9999 -0.0118 -0.0027 +vn -0.0001 -0.0102 -0.9999 +vn 0.0002 0.0103 0.9999 +vn -0.9999 -0.0117 0.0029 +vn -0.0001 -0.0000 1.0000 +vn 0.0000 0.9946 -0.1034 +vn 0.0000 0.9968 0.0803 +vn 0.0000 0.9980 0.0634 +vn -1.0000 0.0000 -0.0001 +vn 0.0000 -0.0000 -1.0000 +vn -0.0547 -0.9980 0.0314 +vn -0.0263 -0.9978 -0.0603 +vn 0.0547 -0.9980 -0.0314 +vn 0.0263 -0.9978 0.0603 +vn 0.0547 -0.9980 0.0314 +vn -0.0263 -0.9978 0.0603 +vn -0.0547 -0.9980 -0.0314 +vn 0.0263 -0.9978 -0.0603 +vn -0.9945 0.0939 0.0469 +vn -0.9945 -0.0939 0.0469 +vn 0.0000 0.0976 0.9952 +vn -0.0469 -0.1106 0.9928 +vn 0.9980 0.0430 -0.0471 +vn 0.9974 -0.0543 -0.0471 +vn -0.0000 0.0419 -0.9991 +vn -0.0199 -0.0471 -0.9987 +vn -0.9945 0.0939 -0.0469 +vn -0.9945 -0.0939 -0.0469 +vn 0.0000 0.0976 -0.9952 +vn -0.0469 -0.1106 -0.9928 +vn 0.9980 0.0430 0.0471 +vn 0.9974 -0.0543 0.0471 +vn 0.0000 0.0419 0.9991 +vn -0.0199 -0.0471 0.9987 +vn 0.0375 -0.0870 -0.9955 +vn 0.9983 -0.0354 0.0471 +vn 0.0162 -0.0377 0.9992 +vn 0.9945 0.0939 0.0469 +vn 0.9945 -0.0939 0.0469 +vn -0.0000 0.0976 0.9952 +vn 0.0469 -0.1106 0.9928 +vn -0.9980 0.0430 -0.0471 +vn -0.9974 -0.0543 -0.0471 +vn 0.0199 -0.0471 -0.9987 +vn 0.9945 0.0939 -0.0469 +vn 0.9945 -0.0939 -0.0469 +vn -0.0000 0.0976 -0.9952 +vn -0.0375 -0.0870 -0.9955 +vn -0.9980 0.0430 0.0471 +vn -0.9983 -0.0354 0.0471 +vn -0.0162 -0.0377 0.9992 +vn 0.0469 -0.1106 -0.9928 +vn -0.9974 -0.0543 0.0471 +vn 0.0199 -0.0471 0.9987 +vn -0.0375 -0.0870 0.9955 +vn -0.9983 -0.0354 -0.0471 +vn -0.0162 -0.0377 -0.9992 +vn 0.0375 -0.0870 0.9955 +vn 0.9983 -0.0354 -0.0471 +vn 0.0162 -0.0377 -0.9992 +vn 0.0281 0.0492 -0.9984 +vn 0.0141 0.0591 -0.9982 +vn 0.0101 0.0563 -0.9984 +vn 0.0163 0.0408 -0.9990 +vn -0.0000 0.0132 -0.9999 +vn -0.0000 -0.0647 -0.9979 +vn -0.0000 -0.0867 -0.9962 +vn -0.0000 0.0535 -0.9986 +vn -0.0000 0.0380 -0.9993 +vn -0.0101 0.0563 -0.9984 +vn -0.0163 0.0408 -0.9990 +vn -0.0141 0.0591 -0.9982 +vn -0.0281 0.0492 -0.9984 +vn -0.8612 0.5083 0.0000 +vn 0.0000 0.4847 0.8747 +vn 0.8612 0.5083 -0.0000 +vn -0.0000 0.4847 -0.8747 +vn -0.2731 0.9620 0.0000 +vn 0.2731 0.9620 0.0000 +vn 0.3867 0.9222 0.0000 +vn -0.0000 -0.0000 -1.0000 +vn 0.3124 -0.9499 -0.0000 +vn -0.3867 0.9222 0.0000 +vn -0.3124 -0.9499 0.0000 +# 244 vertex normals + +vt 0.4672 0.7287 0.0000 +vt 0.4672 0.6812 0.0000 +vt 0.5381 0.6812 0.0000 +vt 0.5637 0.7287 0.0000 +vt 0.4511 0.6743 0.0000 +vt 0.4498 0.6669 0.0000 +vt 0.5101 0.6669 0.0000 +vt 0.5101 0.6758 0.0000 +vt 0.4531 0.6758 0.0000 +vt 0.6996 0.8663 0.0000 +vt 0.6083 0.8663 0.0000 +vt 0.6083 0.8881 0.0000 +vt 0.6996 0.8881 0.0000 +vt 0.6083 0.9203 0.0000 +vt 0.6996 0.9203 0.0000 +vt 0.6348 0.6259 0.0000 +vt 0.6348 0.6557 0.0000 +vt 0.5033 0.6557 0.0000 +vt 0.5033 0.6259 0.0000 +vt 0.4860 0.7374 0.0000 +vt 0.4587 0.8045 0.0000 +vt 0.4433 0.8046 0.0000 +vt 0.7663 0.6259 0.0000 +vt 0.7905 0.6258 0.0000 +vt 0.7905 0.6557 0.0000 +vt 0.7664 0.6557 0.0000 +vt 0.5578 0.5104 0.0000 +vt 0.6319 0.5104 0.0000 +vt 0.6319 0.6024 0.0000 +vt 0.5578 0.6024 0.0000 +vt 0.4411 0.6748 0.0000 +vt 0.4531 0.7357 0.0000 +vt 0.4411 0.7357 0.0000 +vt 0.5654 0.8042 0.0000 +vt 0.5654 0.7371 0.0000 +vt 0.5169 0.8663 0.0000 +vt 0.5169 0.8881 0.0000 +vt 0.5169 0.9203 0.0000 +vt 0.7344 0.2540 0.0000 +vt 0.7344 0.2807 0.0000 +vt 0.7215 0.2807 0.0000 +vt 0.7215 0.2540 0.0000 +vt 0.7532 0.2524 0.0000 +vt 0.7532 0.2800 0.0000 +vt 0.7370 0.2800 0.0000 +vt 0.7370 0.2524 0.0000 +vt 0.8440 0.5063 0.0000 +vt 0.8440 0.5248 0.0000 +vt 0.8307 0.5248 0.0000 +vt 0.8307 0.5063 0.0000 +vt 0.7344 0.3486 0.0000 +vt 0.7215 0.3486 0.0000 +vt 0.7215 0.3237 0.0000 +vt 0.7344 0.3237 0.0000 +vt 0.7532 0.3506 0.0000 +vt 0.7370 0.3506 0.0000 +vt 0.7370 0.3238 0.0000 +vt 0.7532 0.3238 0.0000 +vt 0.8440 0.5570 0.0000 +vt 0.8307 0.5570 0.0000 +vt 0.8364 0.5997 0.0000 +vt 0.7950 0.5997 0.0000 +vt 0.8096 0.5854 0.0000 +vt 0.8364 0.5608 0.0000 +vt 0.8663 0.5452 0.0000 +vt 0.8798 0.5570 0.0000 +vt 0.8093 0.5451 0.0000 +vt 0.7959 0.5570 0.0000 +vt 0.8620 0.5854 0.0000 +vt 0.8784 0.5997 0.0000 +vt 0.6756 0.2660 0.0000 +vt 0.6505 0.2660 0.0000 +vt 0.6505 0.4622 0.0000 +vt 0.6756 0.4622 0.0000 +vt 0.6058 0.3002 0.0000 +vt 0.6440 0.3002 0.0000 +vt 0.6440 0.4741 0.0000 +vt 0.6058 0.4741 0.0000 +vt 0.6280 0.0055 0.0000 +vt 0.6545 0.0069 0.0000 +vt 0.6548 0.0671 0.0000 +vt 0.6284 0.0865 0.0000 +vt 0.6000 0.2239 0.0000 +vt 0.6163 0.2239 0.0000 +vt 0.6163 0.2472 0.0000 +vt 0.6000 0.2472 0.0000 +vt 0.6822 0.1033 0.0000 +vt 0.6903 0.1033 0.0000 +vt 0.6903 0.1767 0.0000 +vt 0.6822 0.1767 0.0000 +vt 0.5852 0.2472 0.0000 +vt 0.5852 0.2239 0.0000 +vt 0.6098 0.1405 0.0000 +vt 0.6145 0.1405 0.0000 +vt 0.6140 0.1724 0.0000 +vt 0.6093 0.1724 0.0000 +vt 0.6552 0.1246 0.0000 +vt 0.6681 0.1246 0.0000 +vt 0.6659 0.1454 0.0000 +vt 0.6571 0.0825 0.0000 +vt 0.6723 0.0885 0.0000 +vt 0.6279 0.1193 0.0000 +vt 0.6279 0.1037 0.0000 +vt 0.6681 0.2453 0.0000 +vt 0.6552 0.2453 0.0000 +vt 0.6668 0.2246 0.0000 +vt 0.6507 0.1850 0.0000 +vt 0.6636 0.1850 0.0000 +vt 0.6018 0.0674 0.0000 +vt 0.6015 0.0077 0.0000 +vt 0.6903 0.2501 0.0000 +vt 0.6822 0.2501 0.0000 +vt 0.6135 0.2044 0.0000 +vt 0.6089 0.2043 0.0000 +vt 0.5834 0.0885 0.0000 +vt 0.5987 0.0825 0.0000 +vt 0.6955 0.1208 0.0000 +vt 0.6955 0.0105 0.0000 +vt 0.7028 0.0105 0.0000 +vt 0.7028 0.1208 0.0000 +vt 0.7028 0.1808 0.0000 +vt 0.6955 0.1808 0.0000 +vt 0.7028 0.2409 0.0000 +vt 0.6955 0.2409 0.0000 +vt 0.7028 0.3501 0.0000 +vt 0.6955 0.3501 0.0000 +vt 0.6375 0.2580 0.0000 +vt 0.6331 0.2581 0.0000 +vt 0.6322 0.2120 0.0000 +vt 0.6366 0.2119 0.0000 +vt 0.6312 0.1659 0.0000 +vt 0.6356 0.1658 0.0000 +vt 0.5834 0.0179 0.0000 +vt 0.5987 0.0169 0.0000 +vt 0.6903 0.3459 0.0000 +vt 0.6822 0.3459 0.0000 +vt 0.6822 0.0075 0.0000 +vt 0.6903 0.0075 0.0000 +vt 0.6571 0.0163 0.0000 +vt 0.6723 0.0179 0.0000 +vt 0.6242 0.1418 0.0000 +vt 0.6307 0.1417 0.0000 +vt 0.6247 0.1661 0.0000 +vt 0.6256 0.2121 0.0000 +vt 0.6265 0.2583 0.0000 +vt 0.6335 0.2823 0.0000 +vt 0.6270 0.2824 0.0000 +vt 0.6047 0.1405 0.0000 +vt 0.6042 0.1724 0.0000 +vt 0.6038 0.2043 0.0000 +vt 0.6365 0.1297 0.0000 +vt 0.6367 0.1416 0.0000 +vt 0.6305 0.1298 0.0000 +vt 0.6240 0.1300 0.0000 +vt 0.6681 0.1144 0.0000 +vt 0.6552 0.1144 0.0000 +vt 0.6037 0.2097 0.0000 +vt 0.6088 0.2097 0.0000 +vt 0.6135 0.2098 0.0000 +vt 0.6145 0.1351 0.0000 +vt 0.6099 0.1351 0.0000 +vt 0.6048 0.1351 0.0000 +vt 0.6552 0.2555 0.0000 +vt 0.6681 0.2555 0.0000 +vt 0.6272 0.2943 0.0000 +vt 0.6337 0.2942 0.0000 +vt 0.6395 0.2822 0.0000 +vt 0.6397 0.2940 0.0000 +vt 0.1601 0.2593 0.0000 +vt 0.1601 0.0045 0.0000 +vt 0.2454 0.0045 0.0000 +vt 0.2454 0.2590 0.0000 +vt 0.2838 0.5470 0.0000 +vt 0.2838 0.2690 0.0000 +vt 0.1765 0.2690 0.0000 +vt 0.1765 0.5470 0.0000 +vt 0.1150 0.3564 0.0000 +vt 0.1150 0.0538 0.0000 +vt 0.0116 0.0538 0.0000 +vt 0.0116 0.3569 0.0000 +vt 0.0100 0.6667 0.0000 +vt 0.0100 0.3673 0.0000 +vt 0.1291 0.3673 0.0000 +vt 0.1291 0.6667 0.0000 +vt 0.9942 0.1083 0.0000 +vt 0.9942 0.2099 0.0000 +vt 0.9659 0.2099 0.0000 +vt 0.9607 0.1083 0.0000 +vt 0.9942 0.0068 0.0000 +vt 0.9659 0.0068 0.0000 +vt 0.3004 0.5798 0.0000 +vt 0.2911 0.5701 0.0000 +vt 0.2911 0.6124 0.0000 +vt 0.3004 0.6124 0.0000 +vt 0.3004 0.6450 0.0000 +vt 0.2911 0.6547 0.0000 +vt 0.3334 0.6547 0.0000 +vt 0.3334 0.6450 0.0000 +vt 0.3663 0.6450 0.0000 +vt 0.3757 0.6547 0.0000 +vt 0.3757 0.6124 0.0000 +vt 0.3663 0.6124 0.0000 +vt 0.3663 0.5798 0.0000 +vt 0.3757 0.5701 0.0000 +vt 0.3334 0.5701 0.0000 +vt 0.3334 0.5798 0.0000 +vt 0.2876 0.5671 0.0000 +vt 0.2747 0.5537 0.0000 +vt 0.3334 0.5537 0.0000 +vt 0.3334 0.5671 0.0000 +vt 0.3793 0.5671 0.0000 +vt 0.3922 0.5537 0.0000 +vt 0.3922 0.6125 0.0000 +vt 0.3793 0.6125 0.0000 +vt 0.3793 0.6578 0.0000 +vt 0.3922 0.6712 0.0000 +vt 0.3334 0.6712 0.0000 +vt 0.3334 0.6578 0.0000 +vt 0.2876 0.6578 0.0000 +vt 0.2747 0.6712 0.0000 +vt 0.2747 0.6125 0.0000 +vt 0.2876 0.6125 0.0000 +vt 0.9513 0.1060 0.0000 +vt 0.9513 0.0044 0.0000 +vt 0.9230 0.0044 0.0000 +vt 0.9178 0.1060 0.0000 +vt 0.9097 0.1060 0.0000 +vt 0.9097 0.0044 0.0000 +vt 0.8814 0.0044 0.0000 +vt 0.8762 0.1060 0.0000 +vt 0.8814 0.2076 0.0000 +vt 0.9097 0.2076 0.0000 +vt 0.9230 0.2075 0.0000 +vt 0.9513 0.2075 0.0000 +vt 0.8658 0.1132 0.0000 +vt 0.8487 0.1132 0.0000 +vt 0.8445 0.0044 0.0000 +vt 0.8755 0.0044 0.0000 +vt 0.8445 0.2221 0.0000 +vt 0.8755 0.2221 0.0000 +vt 0.7801 0.1104 0.0000 +vt 0.7912 0.0058 0.0000 +vt 0.7576 0.0058 0.0000 +vt 0.7611 0.1104 0.0000 +vt 0.7912 0.2151 0.0000 +vt 0.7576 0.2374 0.0000 +vt 0.7362 0.1124 0.0000 +vt 0.7464 0.0064 0.0000 +vt 0.7139 0.0064 0.0000 +vt 0.7182 0.1124 0.0000 +vt 0.7139 0.2409 0.0000 +vt 0.7464 0.2409 0.0000 +vt 0.8231 0.1080 0.0000 +vt 0.8044 0.1080 0.0000 +vt 0.7986 0.0056 0.0000 +vt 0.8316 0.0056 0.0000 +vt 0.8316 0.2103 0.0000 +vt 0.7986 0.2321 0.0000 +vt 0.3996 0.1076 0.0000 +vt 0.3999 0.1680 0.0000 +vt 0.3755 0.1681 0.0000 +vt 0.3751 0.0799 0.0000 +vt 0.4002 0.2285 0.0000 +vt 0.3758 0.2286 0.0000 +vt 0.4005 0.2888 0.0000 +vt 0.3761 0.2890 0.0000 +vt 0.4008 0.3494 0.0000 +vt 0.3764 0.3495 0.0000 +vt 0.3512 0.1683 0.0000 +vt 0.3507 0.0641 0.0000 +vt 0.3515 0.2287 0.0000 +vt 0.3518 0.2891 0.0000 +vt 0.3521 0.3496 0.0000 +vt 0.3268 0.1684 0.0000 +vt 0.3264 0.0801 0.0000 +vt 0.3271 0.2288 0.0000 +vt 0.3274 0.2892 0.0000 +vt 0.3277 0.3497 0.0000 +vt 0.3025 0.1685 0.0000 +vt 0.3022 0.1081 0.0000 +vt 0.3028 0.2289 0.0000 +vt 0.3031 0.2893 0.0000 +vt 0.3033 0.3498 0.0000 +vt 0.1505 0.9738 0.0000 +vt 0.0042 0.6813 0.0000 +vt 0.2968 0.6813 0.0000 +vt 0.9446 0.3902 0.0000 +vt 0.9268 0.3902 0.0000 +vt 0.9268 0.3744 0.0000 +vt 0.9446 0.3744 0.0000 +vt 0.8974 0.3747 0.0000 +vt 0.8974 0.4922 0.0000 +vt 0.9065 0.4922 0.0000 +vt 0.9065 0.3747 0.0000 +vt 0.9924 0.3882 0.0000 +vt 0.9924 0.5080 0.0000 +vt 0.9766 0.5080 0.0000 +vt 0.9766 0.3882 0.0000 +vt 0.9160 0.3747 0.0000 +vt 0.9160 0.4922 0.0000 +vt 0.9924 0.5202 0.0000 +vt 0.9766 0.5245 0.0000 +vt 0.9160 0.5041 0.0000 +vt 0.8974 0.5041 0.0000 +vt 0.9268 0.4879 0.0000 +vt 0.9446 0.4879 0.0000 +vt 0.9446 0.5038 0.0000 +vt 0.9268 0.5038 0.0000 +vt 0.8789 0.3882 0.0000 +vt 0.8789 0.5080 0.0000 +vt 0.8630 0.5080 0.0000 +vt 0.8630 0.3882 0.0000 +vt 0.8789 0.5245 0.0000 +vt 0.8630 0.5202 0.0000 +vt 0.9268 0.4391 0.0000 +vt 0.9446 0.4391 0.0000 +vt 0.9277 0.5235 0.0000 +vt 0.9277 0.5442 0.0000 +vt 0.9356 0.4391 0.0000 +vt 0.9356 0.3902 0.0000 +vt 0.9356 0.4879 0.0000 +vt 0.4150 0.4926 0.0000 +vt 0.3619 0.5102 0.0000 +vt 0.3617 0.3568 0.0000 +vt 0.4148 0.3567 0.0000 +vt 0.3087 0.4928 0.0000 +vt 0.3085 0.3569 0.0000 +# 327 texture coords + +o turret +g turret +f 1/1/1 2/2/1 3/3/1 +f 3/3/1 4/4/1 1/1/1 +f 5/5/2 6/6/2 7/7/2 +f 5/5/2 7/7/2 8/8/2 +f 5/5/2 8/8/2 9/9/2 +f 10/10/3 11/11/3 12/12/3 +f 12/12/3 13/13/3 10/10/3 +f 12/12/4 14/14/4 9/15/4 +f 9/15/4 13/13/4 12/12/4 +f 15/16/5 7/17/5 6/18/5 +f 6/18/5 16/19/5 15/16/5 +f 3/20/6 16/21/6 4/22/6 +f 4/23/7 16/24/7 6/25/7 +f 6/25/7 17/26/7 4/23/7 +f 10/27/8 18/28/8 19/29/8 +f 19/29/8 11/30/8 10/27/8 +f 17/31/8 5/5/8 9/9/8 +f 17/31/8 9/9/8 14/32/8 +f 17/31/8 14/32/8 20/33/8 +f 4/23/9 17/26/9 20/17/9 +f 20/17/9 1/16/9 4/23/9 +f 15/34/10 16/21/10 3/20/10 +f 3/20/10 21/35/10 15/34/10 +f 10/36/11 13/37/11 22/12/11 +f 22/12/11 18/11/11 10/36/11 +f 13/37/12 9/38/12 8/14/12 +f 8/14/12 22/12/12 13/37/12 +f 5/39/13 23/40/13 24/41/13 +f 24/41/13 6/42/13 5/39/13 +f 17/43/14 25/44/14 23/45/14 +f 23/45/14 5/46/14 17/43/14 +f 6/47/15 24/48/15 25/49/15 +f 25/49/15 17/50/15 6/47/15 +f 26/51/16 27/52/16 28/53/16 +f 28/53/16 29/54/16 26/51/16 +f 30/55/17 31/56/17 32/57/17 +f 32/57/17 33/58/17 30/55/17 +f 34/59/18 35/60/18 25/49/18 +f 25/49/18 24/48/18 34/59/18 +f 36/61/19 26/62/19 29/63/19 +f 29/63/19 23/64/19 36/61/19 +f 28/65/20 27/66/20 34/59/20 +f 34/59/20 24/48/20 28/65/20 +f 24/41/21 23/40/21 29/54/21 +f 29/54/21 28/53/21 24/41/21 +f 33/67/22 25/49/22 35/60/22 +f 35/60/22 30/68/22 33/67/22 +f 32/69/23 31/70/23 36/61/23 +f 36/61/23 23/64/23 32/69/23 +f 23/45/24 25/44/24 33/58/24 +f 33/58/24 32/57/24 23/45/24 +f 37/3/25 38/2/25 39/1/25 +f 39/1/25 40/4/25 37/3/25 +f 41/5/26 42/9/26 8/8/26 +f 41/5/26 8/8/26 7/7/26 +f 41/5/26 7/7/26 43/6/26 +f 44/12/27 45/11/27 46/10/27 +f 46/10/27 47/13/27 44/12/27 +f 42/15/28 48/14/28 44/12/28 +f 44/12/28 47/13/28 42/15/28 +f 43/18/5 7/17/5 15/16/5 +f 15/16/5 49/19/5 43/18/5 +f 37/20/29 40/22/29 49/21/29 +f 40/23/30 50/26/30 43/25/30 +f 43/25/30 49/24/30 40/23/30 +f 19/29/31 18/28/31 46/27/31 +f 46/27/31 45/30/31 19/29/31 +f 50/31/31 51/33/31 48/32/31 +f 50/31/31 48/32/31 42/9/31 +f 50/31/31 42/9/31 41/5/31 +f 51/17/32 50/26/32 40/23/32 +f 40/23/32 39/16/32 51/17/32 +f 15/34/33 21/35/33 37/20/33 +f 37/20/33 49/21/33 15/34/33 +f 22/12/34 47/37/34 46/36/34 +f 46/36/34 18/11/34 22/12/34 +f 8/14/12 42/38/12 47/37/12 +f 47/37/12 22/12/12 8/14/12 +f 52/41/35 53/40/35 41/39/35 +f 41/39/35 43/42/35 52/41/35 +f 53/45/36 54/44/36 50/43/36 +f 50/43/36 41/46/36 53/45/36 +f 54/49/37 52/48/37 43/47/37 +f 43/47/37 50/50/37 54/49/37 +f 55/53/38 56/52/38 57/51/38 +f 57/51/38 58/54/38 55/53/38 +f 59/57/39 60/56/39 61/55/39 +f 61/55/39 62/58/39 59/57/39 +f 54/49/40 63/60/40 64/59/40 +f 64/59/40 52/48/40 54/49/40 +f 58/63/41 57/62/41 65/61/41 +f 65/61/41 53/64/41 58/63/41 +f 55/65/42 52/48/42 64/59/42 +f 64/59/42 56/66/42 55/65/42 +f 52/41/43 55/53/43 58/54/43 +f 58/54/43 53/40/43 52/41/43 +f 63/60/44 54/49/44 62/67/44 +f 62/67/44 61/68/44 63/60/44 +f 59/69/45 53/64/45 65/61/45 +f 65/61/45 60/70/45 59/69/45 +f 53/45/46 59/57/46 62/58/46 +f 62/58/46 54/44/46 53/45/46 +f 66/3/47 2/2/47 1/1/47 +f 1/1/47 67/4/47 66/3/47 +f 68/5/48 69/9/48 70/8/48 +f 68/5/48 70/8/48 71/7/48 +f 68/5/48 71/7/48 72/6/48 +f 12/12/49 11/11/49 73/10/49 +f 73/10/49 74/13/49 12/12/49 +f 69/15/50 14/14/50 12/12/50 +f 12/12/50 74/13/50 69/15/50 +f 72/18/51 71/17/51 75/16/51 +f 75/16/51 76/19/51 72/18/51 +f 66/20/52 67/22/52 76/21/52 +f 67/23/53 77/26/53 72/25/53 +f 72/25/53 76/24/53 67/23/53 +f 19/29/54 78/28/54 73/27/54 +f 73/27/54 11/30/54 19/29/54 +f 77/31/54 20/33/54 14/32/54 +f 77/31/54 14/32/54 69/9/54 +f 77/31/54 69/9/54 68/5/54 +f 20/17/9 77/26/9 67/23/9 +f 67/23/9 1/16/9 20/17/9 +f 75/34/55 79/35/55 66/20/55 +f 66/20/55 76/21/55 75/34/55 +f 80/12/56 74/37/57 73/36/57 +f 73/36/57 78/11/56 80/12/56 +f 70/14/58 69/38/58 74/37/58 +f 74/37/58 80/12/58 70/14/58 +f 81/41/59 82/40/59 68/39/59 +f 68/39/59 72/42/59 81/41/59 +f 82/45/60 83/44/60 77/43/60 +f 77/43/60 68/46/60 82/45/60 +f 83/49/61 81/48/61 72/47/61 +f 72/47/61 77/50/61 83/49/61 +f 84/53/62 85/52/62 86/51/62 +f 86/51/62 87/54/62 84/53/62 +f 88/57/63 89/56/63 90/55/63 +f 90/55/63 91/58/63 88/57/63 +f 83/49/64 92/60/64 93/59/64 +f 93/59/64 81/48/64 83/49/64 +f 87/63/65 86/62/65 94/61/65 +f 94/61/65 82/64/65 87/63/65 +f 84/65/66 81/48/66 93/59/66 +f 93/59/66 85/66/66 84/65/66 +f 81/41/67 84/53/67 87/54/67 +f 87/54/67 82/40/67 81/41/67 +f 92/60/68 83/49/68 91/67/68 +f 91/67/68 90/68/68 92/60/68 +f 88/69/69 82/64/69 94/61/69 +f 94/61/69 89/70/69 88/69/69 +f 82/45/70 88/57/70 91/58/70 +f 91/58/70 83/44/70 82/45/70 +f 39/1/71 38/2/71 95/3/71 +f 95/3/71 96/4/71 39/1/71 +f 97/5/72 98/6/72 71/7/72 +f 97/5/72 71/7/72 70/8/72 +f 97/5/72 70/8/72 99/9/72 +f 100/10/73 45/11/73 44/12/73 +f 44/12/73 101/13/73 100/10/73 +f 44/12/74 48/14/74 99/15/74 +f 99/15/74 101/13/74 44/12/74 +f 75/16/51 71/17/51 98/18/51 +f 98/18/51 102/19/51 75/16/51 +f 95/20/75 102/21/75 96/22/75 +f 96/23/76 102/24/76 98/25/76 +f 98/25/76 103/26/76 96/23/76 +f 100/27/77 78/28/77 19/29/77 +f 19/29/77 45/30/77 100/27/77 +f 103/31/77 97/5/77 99/9/77 +f 103/31/77 99/9/77 48/32/77 +f 103/31/77 48/32/77 51/33/77 +f 96/23/32 103/26/32 51/17/32 +f 51/17/32 39/16/32 96/23/32 +f 75/34/78 102/21/78 95/20/78 +f 95/20/78 79/35/78 75/34/78 +f 100/36/79 101/37/79 80/12/80 +f 80/12/80 78/11/80 100/36/79 +f 101/37/58 99/38/58 70/14/58 +f 70/14/58 80/12/58 101/37/58 +f 97/39/81 104/40/81 105/41/81 +f 105/41/81 98/42/81 97/39/81 +f 103/43/82 106/44/82 104/45/82 +f 104/45/82 97/46/82 103/43/82 +f 98/47/83 105/48/83 106/49/83 +f 106/49/83 103/50/83 98/47/83 +f 107/51/84 108/52/84 109/53/84 +f 109/53/84 110/54/84 107/51/84 +f 111/55/85 112/56/85 113/57/85 +f 113/57/85 114/58/85 111/55/85 +f 115/59/86 116/60/86 106/49/86 +f 106/49/86 105/48/86 115/59/86 +f 117/61/87 107/62/87 110/63/87 +f 110/63/87 104/64/87 117/61/87 +f 109/65/88 108/66/88 115/59/88 +f 115/59/88 105/48/88 109/65/88 +f 105/41/89 104/40/89 110/54/89 +f 110/54/89 109/53/89 105/41/89 +f 114/67/90 106/49/90 116/60/90 +f 116/60/90 111/68/90 114/67/90 +f 113/69/91 112/70/91 117/61/91 +f 117/61/91 104/64/91 113/69/91 +f 104/45/92 106/44/92 114/58/92 +f 114/58/92 113/57/92 104/45/92 +f 118/71/58 119/72/58 120/73/58 +f 120/73/58 121/74/58 118/71/58 +f 119/75/93 122/76/93 123/77/93 +f 123/77/93 120/78/93 119/75/93 +f 122/72/51 124/71/51 125/74/51 +f 125/74/51 123/73/51 122/72/51 +f 126/71/93 127/72/93 128/73/93 +f 128/73/93 129/74/93 126/71/93 +f 127/75/51 130/76/51 131/77/51 +f 131/77/51 128/78/51 127/75/51 +f 130/72/94 132/71/94 133/74/94 +f 133/74/94 131/73/94 130/72/94 +f 134/71/51 135/72/51 136/73/51 +f 136/73/51 137/74/51 134/71/51 +f 135/75/94 138/76/94 139/77/94 +f 139/77/94 136/78/94 135/75/94 +f 138/72/58 140/71/58 141/74/58 +f 141/74/58 139/73/58 138/72/58 +f 142/71/94 143/72/94 144/73/94 +f 144/73/94 145/74/94 142/71/94 +f 143/75/58 146/76/58 147/77/58 +f 147/77/58 144/78/58 143/75/58 +f 146/72/93 148/71/93 149/74/93 +f 149/74/93 147/73/93 146/72/93 +f 150/79/95 151/80/95 152/81/95 +f 152/81/95 153/82/95 150/79/95 +f 154/83/96 155/84/96 156/85/96 +f 156/85/96 157/86/96 154/83/96 +f 158/87/97 159/88/97 160/89/97 +f 160/89/97 161/90/97 158/87/97 +f 162/86/51 163/91/51 164/92/51 +f 164/92/51 165/83/51 162/86/51 +f 166/93/98 167/94/98 168/95/98 +f 168/95/98 169/96/98 166/93/98 +f 170/97/99 171/98/99 172/99/99 +f 173/100/99 158/101/99 161/102/99 +f 161/102/99 174/103/99 173/100/99 +f 175/104/100 176/105/100 177/106/100 +f 177/106/99 176/105/99 178/107/99 +f 178/107/99 179/108/99 177/106/99 +f 150/79/101 153/82/101 180/109/101 +f 180/109/101 181/110/101 150/79/101 +f 161/90/102 160/89/102 182/111/102 +f 182/111/102 183/112/102 161/90/102 +f 169/96/103 168/95/103 184/113/103 +f 184/113/103 185/114/103 169/96/103 +f 174/103/100 161/102/100 183/115/100 +f 183/115/100 186/116/100 174/103/100 +f 172/99/104 179/108/104 178/107/104 +f 178/107/104 170/97/104 172/99/104 +f 152/117/105 151/118/105 187/119/105 +f 187/119/105 173/120/105 152/117/105 +f 152/117/106 173/120/106 174/121/106 +f 174/121/106 153/122/106 152/117/106 +f 153/122/107 174/121/107 186/123/107 +f 186/123/107 180/124/107 153/122/107 +f 180/124/108 186/123/108 188/125/108 +f 188/125/108 181/126/108 180/124/108 +f 181/127/109 188/128/109 189/129/109 +f 189/129/109 150/130/109 181/127/109 +f 150/130/110 189/129/110 187/131/110 +f 187/131/110 151/132/110 150/130/110 +f 190/133/111 188/134/111 186/116/111 +f 186/116/111 183/115/111 190/133/111 +f 182/111/112 191/135/112 190/136/112 +f 190/136/112 183/112/112 182/111/112 +f 192/137/113 193/138/113 159/88/113 +f 159/88/113 158/87/113 192/137/113 +f 173/100/114 187/139/114 192/140/114 +f 192/140/114 158/101/114 173/100/114 +f 194/92/115 154/83/115 157/86/115 +f 157/86/115 195/91/115 194/92/115 +f 171/141/116 192/142/116 187/131/116 +f 187/131/116 172/143/116 171/141/116 +f 172/143/117 187/131/117 189/129/117 +f 189/129/117 179/144/117 172/143/117 +f 179/144/118 189/129/118 188/128/118 +f 188/128/118 177/145/118 179/144/118 +f 177/145/119 188/128/119 190/146/119 +f 190/146/119 175/147/119 177/145/119 +f 196/85/120 162/86/120 165/83/120 +f 165/83/120 197/84/120 196/85/120 +f 176/148/98 166/93/98 169/96/98 +f 169/96/98 178/149/98 176/148/98 +f 178/149/103 169/96/103 185/114/103 +f 185/114/103 170/150/103 178/149/103 +f 156/151/54 193/152/54 192/142/54 +f 192/142/54 157/153/54 156/151/54 +f 157/153/8 192/142/8 171/141/8 +f 171/141/8 195/154/8 157/153/8 +f 195/155/104 171/98/104 170/97/104 +f 170/97/104 194/156/104 195/155/104 +f 194/157/121 170/150/121 185/114/121 +f 185/114/121 154/158/121 194/157/121 +f 154/158/121 185/114/121 184/113/121 +f 184/113/121 155/159/121 154/158/121 +f 164/160/122 167/94/122 166/93/122 +f 166/93/122 165/161/122 164/160/122 +f 165/161/123 166/93/123 176/148/123 +f 176/148/123 197/162/123 165/161/123 +f 197/163/124 176/105/124 175/104/124 +f 175/104/124 196/164/124 197/163/124 +f 196/165/54 175/147/54 190/146/54 +f 190/146/54 162/166/54 196/165/54 +f 162/166/54 190/146/54 191/167/54 +f 191/167/54 163/168/54 162/166/54 +f 198/79/125 199/80/125 200/81/125 +f 200/81/125 201/82/125 198/79/125 +f 202/83/126 203/84/126 204/85/126 +f 204/85/126 205/86/126 202/83/126 +f 206/87/127 207/88/127 208/89/127 +f 208/89/127 209/90/127 206/87/127 +f 210/86/104 211/91/104 212/92/104 +f 212/92/104 213/83/104 210/86/104 +f 214/93/128 215/94/128 216/95/128 +f 216/95/128 217/96/128 214/93/128 +f 218/97/58 219/98/58 220/99/58 +f 221/100/129 206/101/129 209/102/129 +f 209/102/129 222/103/129 221/100/129 +f 223/104/129 224/105/129 225/106/129 +f 225/106/58 224/105/58 226/107/58 +f 226/107/58 227/108/58 225/106/58 +f 198/79/130 201/82/130 228/109/130 +f 228/109/130 229/110/130 198/79/130 +f 209/90/131 208/89/131 230/111/131 +f 230/111/131 231/112/131 209/90/131 +f 217/96/132 216/95/132 232/113/132 +f 232/113/132 233/114/132 217/96/132 +f 222/103/58 209/102/58 231/115/58 +f 231/115/58 234/116/58 222/103/58 +f 220/99/5 227/108/5 226/107/5 +f 226/107/5 218/97/5 220/99/5 +f 200/117/133 199/118/133 235/119/133 +f 235/119/133 221/120/133 200/117/133 +f 200/117/134 221/120/134 222/121/134 +f 222/121/134 201/122/134 200/117/134 +f 201/122/135 222/121/135 234/123/135 +f 234/123/135 228/124/135 201/122/135 +f 228/124/136 234/123/136 236/125/136 +f 236/125/136 229/126/136 228/124/136 +f 229/127/137 236/128/137 237/129/137 +f 237/129/137 198/130/137 229/127/137 +f 198/130/138 237/129/138 235/131/138 +f 235/131/138 199/132/138 198/130/138 +f 238/133/139 236/134/139 234/116/139 +f 234/116/139 231/115/139 238/133/139 +f 230/111/140 239/135/140 238/136/140 +f 238/136/140 231/112/140 230/111/140 +f 240/137/141 241/138/141 207/88/141 +f 207/88/141 206/87/141 240/137/141 +f 221/100/142 235/139/142 240/140/142 +f 240/140/142 206/101/142 221/100/142 +f 242/92/143 202/83/143 205/86/143 +f 205/86/143 243/91/143 242/92/143 +f 219/141/144 240/142/144 235/131/144 +f 235/131/144 220/143/144 219/141/144 +f 220/143/145 235/131/145 237/129/145 +f 237/129/145 227/144/145 220/143/145 +f 227/144/146 237/129/146 236/128/146 +f 236/128/146 225/145/146 227/144/146 +f 225/145/147 236/128/147 238/146/147 +f 238/146/147 223/147/147 225/145/147 +f 244/85/148 210/86/148 213/83/148 +f 213/83/148 245/84/148 244/85/148 +f 224/148/128 214/93/128 217/96/128 +f 217/96/128 226/149/128 224/148/128 +f 226/149/149 217/96/149 233/114/149 +f 233/114/149 218/150/149 226/149/149 +f 204/151/8 241/152/8 240/142/8 +f 240/142/8 205/153/8 204/151/8 +f 205/153/8 240/142/8 219/141/8 +f 219/141/8 243/154/8 205/153/8 +f 243/155/58 219/98/58 218/97/58 +f 218/97/58 242/156/58 243/155/58 +f 242/157/121 218/150/121 233/114/121 +f 233/114/121 202/158/121 242/157/121 +f 202/158/122 233/114/122 232/113/122 +f 232/113/122 203/159/122 202/158/122 +f 212/160/121 215/94/121 214/93/121 +f 214/93/121 213/161/121 212/160/121 +f 213/161/150 214/93/150 224/148/150 +f 224/148/150 245/162/150 213/161/150 +f 245/163/115 224/105/115 223/104/115 +f 223/104/115 244/164/115 245/163/115 +f 244/165/54 223/147/54 238/146/54 +f 238/146/54 210/166/54 244/165/54 +f 210/166/54 238/146/54 239/167/54 +f 239/167/54 211/168/54 210/166/54 +f 246/79/151 247/80/151 248/81/151 +f 248/81/151 249/82/151 246/79/151 +f 250/83/152 251/84/152 252/85/152 +f 252/85/152 253/86/152 250/83/152 +f 254/87/131 255/88/131 256/89/131 +f 256/89/131 257/90/131 254/87/131 +f 258/86/93 259/91/93 260/92/93 +f 260/92/93 261/83/93 258/86/93 +f 262/93/149 263/94/149 264/95/149 +f 264/95/149 265/96/149 262/93/149 +f 266/97/51 267/98/51 268/99/51 +f 269/100/12 254/101/12 257/102/12 +f 257/102/12 270/103/12 269/100/12 +f 271/104/153 272/105/153 273/106/153 +f 273/106/12 272/105/12 274/107/12 +f 274/107/12 275/108/12 273/106/12 +f 246/79/154 249/82/154 276/109/154 +f 276/109/154 277/110/154 246/79/154 +f 257/90/127 256/89/127 278/111/127 +f 278/111/127 279/112/127 257/90/127 +f 265/96/128 264/95/128 280/113/128 +f 280/113/128 281/114/128 265/96/128 +f 270/103/12 257/102/12 279/115/12 +f 279/115/12 282/116/12 270/103/12 +f 268/99/51 275/108/51 274/107/51 +f 274/107/51 266/97/51 268/99/51 +f 248/117/155 247/118/155 283/119/155 +f 283/119/155 269/120/155 248/117/155 +f 248/117/156 269/120/156 270/121/156 +f 270/121/156 249/122/156 248/117/156 +f 249/122/157 270/121/157 282/123/157 +f 282/123/157 276/124/157 249/122/157 +f 276/124/158 282/123/158 284/125/158 +f 284/125/158 277/126/158 276/124/158 +f 277/127/159 284/128/159 285/129/159 +f 285/129/159 246/130/159 277/127/159 +f 246/130/160 285/129/160 283/131/160 +f 283/131/160 247/132/160 246/130/160 +f 286/133/161 284/134/161 282/116/161 +f 282/116/161 279/115/161 286/133/161 +f 278/111/162 287/135/162 286/136/162 +f 286/136/162 279/112/162 278/111/162 +f 288/137/163 289/138/163 255/88/163 +f 255/88/163 254/87/163 288/137/163 +f 269/100/164 283/139/164 288/140/164 +f 288/140/164 254/101/164 269/100/164 +f 290/92/165 250/83/165 253/86/165 +f 253/86/165 291/91/165 290/92/165 +f 267/141/166 288/142/166 283/131/166 +f 283/131/166 268/143/166 267/141/166 +f 268/143/160 283/131/160 285/129/160 +f 285/129/160 275/144/160 268/143/160 +f 275/144/167 285/129/167 284/128/167 +f 284/128/167 273/145/167 275/144/167 +f 273/145/168 284/128/168 286/146/168 +f 286/146/168 271/147/168 273/145/168 +f 292/85/126 258/86/126 261/83/126 +f 261/83/126 293/84/126 292/85/126 +f 272/148/149 262/93/149 265/96/149 +f 265/96/149 274/149/149 272/148/149 +f 274/149/128 265/96/128 281/114/128 +f 281/114/128 266/150/128 274/149/128 +f 252/151/54 289/152/54 288/142/54 +f 288/142/54 253/153/54 252/151/54 +f 253/153/54 288/142/54 267/141/54 +f 267/141/54 291/154/54 253/153/54 +f 291/155/51 267/98/51 266/97/51 +f 266/97/51 290/156/51 291/155/51 +f 290/157/123 266/150/123 281/114/123 +f 281/114/123 250/158/123 290/157/123 +f 250/158/121 281/114/121 280/113/121 +f 280/113/121 251/159/121 250/158/121 +f 260/160/121 263/94/121 262/93/121 +f 262/93/121 261/161/121 260/160/121 +f 261/161/121 262/93/121 272/148/121 +f 272/148/121 293/162/121 261/161/121 +f 293/163/169 272/105/169 271/104/169 +f 271/104/169 292/164/169 293/163/169 +f 292/165/54 271/147/54 286/146/54 +f 286/146/54 258/166/54 292/165/54 +f 258/166/54 286/146/54 287/167/54 +f 287/167/54 259/168/54 258/166/54 +f 95/169/51 294/170/51 295/171/51 +f 295/171/51 296/172/51 95/169/51 +f 296/173/94 295/174/94 297/175/94 +f 297/175/94 298/176/94 296/173/94 +f 298/177/58 297/178/58 299/179/58 +f 299/179/58 37/180/58 298/177/58 +f 37/181/170 299/182/170 294/183/170 +f 294/183/170 95/184/170 37/181/170 +f 300/185/51 301/186/51 302/187/51 +f 302/187/51 303/188/51 300/185/51 +f 304/185/100 305/189/100 306/190/100 +f 306/190/100 307/188/100 304/185/100 +f 308/185/58 309/189/58 310/190/58 +f 310/190/58 311/188/58 308/185/58 +f 312/185/93 313/186/93 314/187/93 +f 314/187/93 315/188/93 312/185/93 +f 316/191/171 302/192/171 315/193/171 +f 315/193/171 317/194/171 316/191/171 +f 318/195/172 314/196/172 311/197/172 +f 311/197/172 319/198/172 318/195/172 +f 320/199/173 310/200/173 307/201/173 +f 307/201/173 321/202/173 320/199/173 +f 322/203/174 306/204/174 303/205/174 +f 303/205/174 323/206/174 322/203/174 +f 324/207/54 301/208/54 300/209/54 +f 300/209/54 325/210/54 324/207/54 +f 326/211/8 305/212/8 304/213/8 +f 304/213/8 327/214/8 326/211/8 +f 328/215/77 309/216/77 308/217/77 +f 308/217/77 329/218/77 328/215/77 +f 330/219/77 313/220/77 312/221/77 +f 312/221/77 331/222/77 330/219/77 +f 308/185/58 311/188/58 314/187/58 +f 314/187/58 313/186/58 308/185/58 +f 312/185/93 315/188/93 302/190/93 +f 302/190/93 301/189/93 312/185/93 +f 318/195/175 317/194/175 315/193/175 +f 315/193/175 314/196/175 318/195/175 +f 320/199/176 319/198/176 311/197/176 +f 311/197/176 310/200/176 320/199/176 +f 322/203/177 321/202/177 307/201/177 +f 307/201/177 306/204/177 322/203/177 +f 330/219/54 329/218/54 308/217/54 +f 308/217/54 313/220/54 330/219/54 +f 324/207/31 331/222/31 312/221/31 +f 312/221/31 301/208/31 324/207/31 +f 300/185/51 303/188/51 306/190/51 +f 306/190/51 305/189/51 300/185/51 +f 304/185/94 307/188/94 310/187/94 +f 310/187/94 309/186/94 304/185/94 +f 316/191/178 323/206/178 303/205/178 +f 303/205/178 302/192/178 316/191/178 +f 326/211/77 325/210/77 300/209/77 +f 300/209/77 305/212/77 326/211/77 +f 328/215/77 327/214/77 304/213/77 +f 304/213/77 309/216/77 328/215/77 +f 332/185/51 333/186/51 334/187/51 +f 334/187/51 335/188/51 332/185/51 +f 336/223/94 337/224/94 338/225/94 +f 338/225/94 339/226/94 336/223/94 +f 340/227/58 341/228/58 342/229/58 +f 342/229/58 343/230/58 340/227/58 +f 344/185/93 345/186/93 346/187/93 +f 346/187/93 347/188/93 344/185/93 +f 348/191/171 334/192/171 347/193/171 +f 347/193/171 349/194/171 348/191/171 +f 350/195/172 346/196/172 343/197/172 +f 343/197/172 351/198/172 350/195/172 +f 352/199/173 342/200/173 339/201/173 +f 339/201/173 353/202/173 352/199/173 +f 354/203/174 338/204/174 335/205/174 +f 335/205/174 355/206/174 354/203/174 +f 356/207/54 333/208/54 332/209/54 +f 332/209/54 357/210/54 356/207/54 +f 358/211/8 337/212/8 336/213/8 +f 336/213/8 359/214/8 358/211/8 +f 360/215/54 341/216/54 340/217/54 +f 340/217/54 361/218/54 360/215/54 +f 362/219/77 345/220/77 344/221/77 +f 344/221/77 363/222/77 362/219/77 +f 340/227/58 343/230/58 346/231/58 +f 346/231/58 345/232/58 340/227/58 +f 344/185/93 347/188/93 334/190/93 +f 334/190/93 333/189/93 344/185/93 +f 350/195/175 349/194/175 347/193/175 +f 347/193/175 346/196/175 350/195/175 +f 352/199/176 351/198/176 343/197/176 +f 343/197/176 342/200/176 352/199/176 +f 354/203/177 353/202/177 339/201/177 +f 339/201/177 338/204/177 354/203/177 +f 362/219/54 361/218/54 340/217/54 +f 340/217/54 345/220/54 362/219/54 +f 356/207/31 363/222/31 344/221/31 +f 344/221/31 333/208/31 356/207/31 +f 332/185/51 335/188/51 338/190/51 +f 338/190/51 337/189/51 332/185/51 +f 336/223/94 339/226/94 342/233/94 +f 342/233/94 341/234/94 336/223/94 +f 348/191/178 355/206/178 335/205/178 +f 335/205/178 334/192/178 348/191/178 +f 358/211/77 357/210/77 332/209/77 +f 332/209/77 337/212/77 358/211/77 +f 360/215/54 359/214/54 336/213/54 +f 336/213/54 341/216/54 360/215/54 +f 364/235/179 365/236/179 366/237/179 +f 366/237/179 367/238/179 364/235/179 +f 368/239/180 365/236/180 364/235/180 +f 364/235/180 369/240/180 368/239/180 +f 364/241/181 367/242/181 370/243/181 +f 370/243/181 371/244/181 364/241/181 +f 369/245/182 364/241/182 371/244/182 +f 371/244/182 372/246/182 369/245/182 +f 371/247/183 370/248/183 373/249/183 +f 373/249/183 374/250/183 371/247/183 +f 375/251/184 372/252/184 371/247/184 +f 371/247/184 374/250/184 375/251/184 +f 365/253/185 374/254/185 373/255/185 +f 373/255/185 366/256/185 365/253/185 +f 368/257/186 375/258/186 374/254/186 +f 374/254/186 365/253/186 368/257/186 +f 376/235/187 377/238/187 378/237/187 +f 378/237/187 379/236/187 376/235/187 +f 380/239/188 381/240/188 376/235/188 +f 376/235/188 379/236/188 380/239/188 +f 376/241/189 382/244/189 383/243/189 +f 383/243/189 377/242/189 376/241/189 +f 381/245/190 384/246/190 382/244/190 +f 382/244/190 376/241/190 381/245/190 +f 382/247/191 385/250/191 386/249/191 +f 386/249/191 383/248/191 382/247/191 +f 387/251/192 385/250/192 382/247/192 +f 382/247/192 384/252/192 387/251/192 +f 379/253/193 378/256/193 386/255/193 +f 386/255/193 385/254/193 379/253/193 +f 380/257/194 379/253/194 385/254/194 +f 385/254/194 387/258/194 380/257/194 +f 388/235/187 389/238/187 390/237/187 +f 390/237/187 391/236/187 388/235/187 +f 392/239/188 393/240/188 388/235/188 +f 388/235/188 391/236/188 392/239/188 +f 388/241/189 394/244/189 395/243/189 +f 395/243/189 389/242/189 388/241/189 +f 393/245/195 396/246/195 394/244/195 +f 394/244/195 388/241/195 393/245/195 +f 394/247/191 397/250/191 398/249/191 +f 398/249/191 395/248/191 394/247/191 +f 399/251/196 397/250/196 394/247/196 +f 394/247/196 396/252/196 399/251/196 +f 391/253/193 390/256/193 398/255/193 +f 398/255/193 397/254/193 391/253/193 +f 392/257/197 391/253/197 397/254/197 +f 397/254/197 399/258/197 392/257/197 +f 400/235/198 401/238/198 402/237/198 +f 402/237/198 403/236/198 400/235/198 +f 404/239/199 405/240/199 400/235/199 +f 400/235/199 403/236/199 404/239/199 +f 400/241/200 406/244/200 407/243/200 +f 407/243/200 401/242/200 400/241/200 +f 405/245/201 408/246/201 406/244/201 +f 406/244/201 400/241/201 405/245/201 +f 406/247/202 409/250/202 410/249/202 +f 410/249/202 407/248/202 406/247/202 +f 411/251/203 409/250/203 406/247/203 +f 406/247/203 408/252/203 411/251/203 +f 403/253/185 402/256/185 410/255/185 +f 410/255/185 409/254/185 403/253/185 +f 404/257/204 403/253/204 409/254/204 +f 409/254/204 411/258/204 404/257/204 +f 412/235/205 413/236/205 414/237/205 +f 414/237/205 415/238/205 412/235/205 +f 416/239/206 413/236/206 412/235/206 +f 412/235/206 417/240/206 416/239/206 +f 412/241/207 415/242/207 418/243/207 +f 418/243/207 419/244/207 412/241/207 +f 417/245/208 412/241/208 419/244/208 +f 419/244/208 420/246/208 417/245/208 +f 419/247/209 418/248/209 421/249/209 +f 421/249/209 422/250/209 419/247/209 +f 423/251/210 420/252/210 419/247/210 +f 419/247/210 422/250/210 423/251/210 +f 413/253/193 422/254/193 421/255/193 +f 421/255/193 414/256/193 413/253/193 +f 416/257/211 423/258/211 422/254/211 +f 422/254/211 413/253/211 416/257/211 +f 424/235/205 425/236/205 426/237/205 +f 426/237/205 427/238/205 424/235/205 +f 428/239/206 425/236/206 424/235/206 +f 424/235/206 429/240/206 428/239/206 +f 424/241/207 427/242/207 430/243/207 +f 430/243/207 431/244/207 424/241/207 +f 429/245/212 424/241/212 431/244/212 +f 431/244/212 432/246/212 429/245/212 +f 431/247/209 430/248/209 433/249/209 +f 433/249/209 434/250/209 431/247/209 +f 435/251/213 432/252/213 431/247/213 +f 431/247/213 434/250/213 435/251/213 +f 425/253/193 434/254/193 433/255/193 +f 433/255/193 426/256/193 425/253/193 +f 428/257/214 435/258/214 434/254/214 +f 434/254/214 425/253/214 428/257/214 +f 436/235/198 437/238/198 438/237/198 +f 438/237/198 439/236/198 436/235/198 +f 440/239/199 441/240/199 436/235/199 +f 436/235/199 439/236/199 440/239/199 +f 436/241/200 442/244/200 443/243/200 +f 443/243/200 437/242/200 436/241/200 +f 441/245/215 444/246/215 442/244/215 +f 442/244/215 436/241/215 441/245/215 +f 442/247/202 445/250/202 446/249/202 +f 446/249/202 443/248/202 442/247/202 +f 447/251/216 445/250/216 442/247/216 +f 442/247/216 444/252/216 447/251/216 +f 439/253/185 438/256/185 446/255/185 +f 446/255/185 445/254/185 439/253/185 +f 440/257/217 439/253/217 445/254/217 +f 445/254/217 447/258/217 440/257/217 +f 448/235/179 449/236/179 450/237/179 +f 450/237/179 451/238/179 448/235/179 +f 452/239/180 449/236/180 448/235/180 +f 448/235/180 453/240/180 452/239/180 +f 448/241/181 451/242/181 454/243/181 +f 454/243/181 455/244/181 448/241/181 +f 453/245/218 448/241/218 455/244/218 +f 455/244/218 456/246/218 453/245/218 +f 455/247/183 454/248/183 457/249/183 +f 457/249/183 458/250/183 455/247/183 +f 459/251/219 456/252/219 455/247/219 +f 455/247/219 458/250/219 459/251/219 +f 449/253/185 458/254/185 457/255/185 +f 457/255/185 450/256/185 449/253/185 +f 452/257/220 459/258/220 458/254/220 +f 458/254/220 449/253/220 452/257/220 +f 460/259/221 461/260/222 462/261/223 +f 462/261/223 463/262/224 460/259/221 +f 461/260/222 464/263/225 465/264/225 +f 465/264/225 462/261/223 461/260/222 +f 464/263/225 466/265/226 467/266/226 +f 467/266/226 465/264/225 464/263/225 +f 466/265/226 468/267/227 469/268/227 +f 469/268/227 467/266/226 466/265/226 +f 463/262/224 462/261/223 470/269/228 +f 470/269/228 471/270/229 463/262/224 +f 462/261/223 465/264/225 472/271/225 +f 472/271/225 470/269/228 462/261/223 +f 465/264/225 467/266/226 473/272/226 +f 473/272/226 472/271/225 465/264/225 +f 467/266/226 469/268/227 474/273/227 +f 474/273/227 473/272/226 467/266/226 +f 471/270/229 470/269/228 475/274/230 +f 475/274/230 476/275/231 471/270/229 +f 470/269/228 472/271/225 477/276/225 +f 477/276/225 475/274/230 470/269/228 +f 472/271/225 473/272/226 478/277/226 +f 478/277/226 477/276/225 472/271/225 +f 473/272/226 474/273/227 479/278/227 +f 479/278/227 478/277/226 473/272/226 +f 476/275/231 475/274/230 480/279/232 +f 480/279/232 481/280/233 476/275/231 +f 475/274/230 477/276/225 482/281/225 +f 482/281/225 480/279/232 475/274/230 +f 477/276/225 478/277/226 483/282/226 +f 483/282/226 482/281/225 477/276/225 +f 478/277/226 479/278/227 484/283/227 +f 484/283/227 483/282/226 478/277/226 +f 485/284/234 486/285/234 487/286/234 +f 485/284/235 487/285/235 488/286/235 +f 485/284/236 488/285/236 489/286/236 +f 485/284/237 489/285/237 486/286/237 +f 490/287/238 491/288/238 492/289/238 +f 492/289/238 493/290/238 490/287/238 +f 494/291/58 495/292/58 496/293/58 +f 496/293/58 497/294/58 494/291/58 +f 498/295/93 499/296/93 495/297/93 +f 495/297/93 494/298/93 498/295/93 +f 500/299/153 501/300/153 499/292/153 +f 499/292/153 498/291/153 500/299/153 +f 492/301/93 491/302/93 495/297/93 +f 495/297/93 499/296/93 492/301/93 +f 493/303/153 492/304/153 499/292/153 +f 499/292/153 501/300/153 493/303/153 +f 502/305/239 503/306/239 504/307/239 +f 504/307/239 505/308/239 502/305/239 +f 506/294/153 507/293/153 508/292/153 +f 508/292/153 509/291/153 506/294/153 +f 510/291/129 511/292/129 512/300/129 +f 512/300/129 513/299/129 510/291/129 +f 509/309/93 508/310/93 511/311/93 +f 511/311/93 510/312/93 509/309/93 +f 505/304/129 504/303/129 512/300/129 +f 512/300/129 511/292/129 505/304/129 +f 502/313/93 505/314/93 511/311/93 +f 511/311/93 508/310/93 502/313/93 +f 502/305/240 514/315/77 515/316/77 +f 515/316/77 503/306/240 502/305/240 +f 508/310/93 516/317/241 514/318/241 +f 514/318/241 502/313/93 508/310/93 +f 516/315/242 517/319/242 496/320/242 +f 496/320/242 495/288/242 516/315/242 +f 491/288/243 490/287/243 515/316/77 +f 515/316/77 514/315/77 491/288/243 +f 495/297/170 491/302/170 514/318/241 +f 514/318/241 516/317/241 495/297/170 +f 508/305/244 507/321/244 517/319/244 +f 517/319/244 516/315/244 508/305/244 +f 496/322/170 517/323/170 518/324/170 +f 518/324/170 497/325/170 496/322/170 +f 517/323/93 507/326/93 506/327/93 +f 506/327/93 518/324/93 517/323/93 +# 782 faces + +‰PNG + + IHDRHÃÛ±PLTE   +  " & ( ""((133;:  '# &$ %+,'(!(/;"8)=7###%&('('&(()%#(&(+(&+++-/0.0..010'%0)&1-,0/030.333568686689955868;86:;;=[<"`"b$ e( h& k)l,d< `>`?h?s+ r-y0`?!@?@G@^@MF!C@>UK$^D2\S(n@bAeEfHiCkHiIsA sLxRfF'kL2e[-nS>yV%uU9i`/lb1uj5}q9CCCDGHEIIHFEHGHLIEJKKFOPMNPGPQMQQNWXNYYQNKPNPUQMRSSUVXVXYYVRXWX]YTZ[[]_`^``a]X{[A`_`gb]bcceghfhike`nicjkkmopmpprlgxrlzvr„H�M‡U”Z‚[ •c�|ˆd$„x=¡_¨i¥q´gµqª{*³{!€_C‡fJ�kQ‰}@‘nR˜uY‚|už{` |_¡}aÄw¼€¬ˆ)£�7¾‡"´‘$²’6��A–‰Fž�J‡�{£•MªœP®ˆj¯ S½£M·¨WÉ#ɨ2ʬ@ò]˹aпdÙÆhàÍlãÐnë×qòÞvóàv‡„��‰…/hþÉ“IDATx^ìýÿoWž& +Ë'”eQ#F¥QºÅM<ŠB¥!­R8¦U +i—8#&’ØÉ¦óem^9Ž‘à¾=h`ï"hä—™ö/(ËéÚ¬ð¦/Û³«éÁ»Þ¾7¸û�½Ïó|N‹)É’“î;é§HÖ÷SŪó|>ÏùœS§Æ¶‰-¢Chj�¸FhJЊ6±™A›Zû¿{ÄBSZñ¢ñˆBC=ð‹¯àùÓQös7Áɤ*)jµÚê*SjaÏÇ5ŒZ\a)¯Áj-¬áÖâ 6jÚ+*$‡#M‹…BÑÃd)J´Ëñùw„�ïÞýä8îž÷\Ÿ0í_~þËt¤>ô-ºàÒDªnqïž[8Øâã»÷R¸…§á [ÚÁO„û³€»Ÿ ÝO>Æ&îåÿDn—×:¸•9à–¼á#á|†` ¤/5w:;[;;;¤7l¬€ã? MÚ¯ö™mòÊ+¯œ`dWÎ�¥x +¶Á맀㠀Ÿßs|·Ÿå*ÇU 0ËZ€ßÕÌ`"ŒæŒj_’áXâ 6�¨Åõ€Z@P¡˜›£(Ç®VÃà ÖÃ5�ÎùánøùñÙ§ü¹ÿùgð‹Y÷>ùì3—[søü® ŸÜuÙëC ý°e¹¥÷°GÞ Çö8aÀÒÌ*ôãó_7Ÿ¹„eì|qÆ÷xf¢wzš6|vÿ3àÓO?ýä¾Önÿ|†­ïÝÿ,ÝÑ6åÔPØ?äeãÀ38Æ?ü¥�ñ§ðoG\aœÎÉmëþ‡Àýþ17ü +;ÿêW¿úå/ñC¸Å†ƒàYdC +NÝ… 0Ll.ÀÅš€ííÀõ´'˜€ww¶ÎóQz§A¼>#à§eàå‹E*Ï,€ƒ˜O@öc €E % °[f jPa^Ô†)ðX€9ß›Ë+€ý?fpþ ¹h`>„¾gu¡†{=þÃü +ÙÛe]w0“"MßRNø¹_¹qOä�'Hų‚—×`§i_�,6ùø.¬„�K¸ñÇX� Ú�»ðK1¸)ÂRvûf°Ã÷áW:kúcüOw z +ÉåÿD +ãÜÿwsƒp‡K/@ŸÝ2¦KcðùÀ6e€E`*€`C†­6¶xcÀ¼²ðÊÂÉ&`gçݧþ(±ÓÐÞhœu oœ¨Éÿ²³äŇ»·)€rP½!0DìÏP„_pí‰ +`5§Æ —ŠÕðö7(ðdþH€¹1(€û扨z¬Í€\¦|œÒ`˜p ûHèp +`0#c)²¯›éä&zÈ+s›ŸÒàÌ•uš:U,„€«…þ8uê£Nônl»â¤‰~&ÃGºpçT¦3ܶÀ‰ +às*üS˜°½2ŒVwiÀ€3YA€³ïl¡À‚àøh‹c*€2àD‹ò”"§à©Šy €Àœ�”÷ýø, p¢ê߀X„AðQpT`}M +`ËjëC@¥VéW•?úÀ +€9kƒFĈ¸œ«Crn"M~éçÈáä¿›ëÁ%ÛÇ*œ�ñ?=M~?¹{ßmÙSÜ è 8M¬Èí* `Kú€Ù8;üz +€3Ü5è)€ÏïæŠ)û ä| +Lc®Rvåà—Ú�“bÃ!ðe€ÑÊ©€­ˆ²þTP¼xºÏÐ>o `ªHËTV2; "ÀH @t’ XNcãÏ¡°ðǦà¸@œ Ž+€cÛö€ôñ±ò5³¯›KÝ7ì)€^  ? Ó•gÝÀÓä<øg÷ îÂ;÷€Û½ØéÂ\À/ÌÝ3@cH ÝmˆÀ?L™øKžýhp‡Ä´Û˜P¸¿‚°Ë€áWÿ¨ÀçT œIàÄϪH÷Ô`Ô§ ÃQ  8](XpZ,àÝ­ÎY?§c[€òþ,ßc +À…@µX¬U|Èñ1€S°<çϺZ€«U(€ê‘ès=ĽcyþŸ9 Ô‡Ä€A xºpçN€³’xw§I/Jc79¦sêZ‚c²Ë^hê$èèƒÈ�³ ^ +w�.££<%·¥ YýA,�p³°=rx* åM@^Pl™ x&* OãŸü9[ �A€álü +Ž7')YãeS7üàÜ1€ +–öbÅÂ%§þ(cŸ)"ƒQà‚Ì1F8nNV"9¿9лç€Á¶É÷tèWF�êJã¿B÷4*ÂÎøþ`t4!¶[É\iiÛ| ³„ýÅ1øj8c€pW�ÉBÜûŒÆ©O¸ãqð«ÏGÇz‡#žRìŠG}& SXÂP€3ÏD DúF~`”Æi8k€6`x À÷]C)€ + +ý˜X�A0€2€)`P€õ¦T 0T¼¦@(Œÿ¿ 0\˜o„BÎXÐÏtÃñ%ý +ଵ¶C¯ à’M€XG@Æ»SŽÞ(fƒÿ4sC€+ÿsÏœÐKœ8© 0D° ÿBî* ]*€û8Ò È4@>h‘»rýÚ@³Ú%‡§R{»CL€SœÛ…?~¦* ³³uê‡e…³€­c®~Ø7…ã�SV 0,€iS,˜HÝûÐÀh°Zá�SÔ1€ûÊ„Cý"M@¿‚³0D 8{rþËÍ9çÆíÌØDƒ +'LRÁk§üOO•qõ1œ¤ÜHl¿ÿÙgJ?Ú6¯¸É±>TàtS—|.€ýu4¤ +`t-@îpÄÓ*X€T—ô©€>À-¾ €²ÇëÏÔÀÙ€Q +À!«ý­ Ê¦ öÓÆ*Ö Uã.ðǤ2·“â ’@Ê‚Aµ/[ÐS–úÙb¶‡A¸dSÀIE§ÀN§Ë:2€ðœ4“ð)vá®™ÈÐÇ~ýÏ�îë” BøI ˜`W!U2M˜Ö.@ÎÿÃÝ÷K§€²K—ƒ¬eÊ}Cçè`L¥:Û{´"SŸ ÈTM@O ˜€sÖФŒþÐ`â,X8îî¿Ù„ã͉1J™)€(UÁj° +ÿ><pB-@ûõjþècÈ…t§Cb'1ú™ÐÑb”À¡ã·iæœpyZS�N¨H*R>Ü©Ò ÒÍ~ÞW àö4‰m ˜S;€OÈLLjcŒ\ `øŸ¾wL° µZ´£ “À0 @à†_ÑÉK˜p‹¤òH€Ó)05¼~² +Ь¨I0¤uàùj:£?âÿYêqB›àuß�ùKŒ¨HŸp1MÐHD~p#‹ *°þŒµHZµô1úÓ¡ +ù _PDbæ†ÅŽ/üNÏIRñ¬új¸áçÐôøéSÚÀ´içÿ{ +€¼Ä¤¶å’mßGC«tÎ0iäúg» H7¯R�Å´[®b€Ì·Ç ít8®7àîcú( ¿á*" 4ÎQ\\X°ÿø?ø¾{þëH»�§€ãÍI +@ÏTÓZ(Zp¿vS§= @ ÐXþcŽÈ¡#b¢ †X€ô+eáþ€òíi +À$°�WŽ2$•"÷ÆwªÓ*Üc È1ºŸßš» B¦2ƒ£-2¤ü˜À?Ä_I¹ø«¾?k—�É~ŒÓ9»À®l€Ã@v8á)@{«Mg?\Ph™f¥P Àg  À½Î£\‘?ÿÁa0¼{ºÐQ:�3€�§Œ8P nœ] PÁÚ!1€?ÞvŸ~Œ:\ÿó +à8ŽÇúÀykzpÉ‚;6Ÿ*±6UvªœT TTöœ6ÿßøÌ*´-–äÊéÎ=ˆü}pµøCÍËÁ.Ò¥2°)P\Â+ןœ�Sp wz‚1}¤€ÿ~�¶0çŒì¼›ÿÐóo¡Àz€Sø¯#ð w©ð%óG�5"oNªг2i ÀÀ‰1€Û¬þ¿(€Y€ã +à\–£UO -  §ìˆÌ®Ì³äÜOU=Œˆ(roƒ;Õ�aµî±ðþP êÌ”Üæ,0RÇ,À=]:žHŸÀÈ™´Ó€»0€À¥ÀùÊéÀ€Ú Éá +@{§à)ÈÔ>Y`JË4«(Ý3Œä´??�,œÖP©ë|vž¢1ð0"`µFŠué£p#ߣrT[ k – ÕuX®$`aPÆ�*©@Ò³žþ�ŠÕ0ê.u»b0L‡óÂÝògŠá +@ôÐÔPÖŽã6!S.ýóÅÒ"À¯2BÊu‚2À�'Ç÷àhïÉ®9`;8“ùÿ>@ ¢�¹$C~gýÍ�îð8w|ù²ÿ”®)9ŸWîÂ8óa ÍS(à®@ÞœdRî;èvõ`L©H´§Sža,†%ýШ€CœÐP)ëÔh%ÎlÈju \(Y `–ä¿+êW–>ˆÉ¿"ë“êR³ª¦Á++¢6d@®*è•c�>„ð£Ú:½>,dBÀòA†ó,Me¹‚ +>¼Þþ¶šüqbðepœÈ“Ç]!> D¦F¸ÿc%€œP-@_.–EÀ÷œ +°v:7vžø°à˜ âO�¿‘# +&ÓvÆŸ´Íi }¤rÀePªp'̳ïû³ºLv˜HË*ë3 +˜Š°<®°¦gz +@ Å(°) pv@À]ži, �¸ê;­!Pª:-ÒgoÏ‘�Nxè8źL€PXÜLÃ$¬\¶‘=âz¡€WWƒõõF£•Ħ#â29ŒÂ¾ßˆA~'ðÿ‘R<Ÿ¬B;ðQÀeƒ=�ÿE(€ ŒŽnÆqtìŸîŽ_}®çîp gÈ¥ I�Àq£�*wòÝ�Íg¿¹¥¶‡A¸dS€³¨ÈNUy)l9´3æÿbJIÛö)€þ¿|ÄJ†cÀ9ã2xNT} ßÝNÊ]£>Î�E¿I¾Š“8~˜ø…¨ÉÀðôQ”<º(>À7:ÀVX´Tþ&¹Ý “èá“ÿÙíbÙá·‡GGQÜ…†ï!¬DÜ=üúq7~xðøèq܈¾†kZG3݇a­o 9ÅÈovºE7“(Iºq÷BøÉ…ðöÛï!‹€P¬*SÝw?#RˆýXEN‘T#6…~0¬€9/yºi`?ä¦òÚL¸, (—a5ê-íñßÍ÷Ê.Ù‘ +@S�ñƒÆ= wëv6˜æ9p»:p>º�ÝxR}À9»ÿ¡.AzÀš¡ +@À±_—{³ {É]Z:\I·¡]Ò!òAG`²óÒðL�û®@�ÆŒßb×Sª€ï Àb€ìʱ–€JA§ÐïýÛ0S’ÿùF£lÜífñÒ#wºí¸æ½9ð2`í}Æ­8^Ú?Úh„­–JåöƒÂAÔ¤^ãâ¸[e1A0ÚSU«_‘ó]%5Z!Rk5q7ŽL© ËQ-­…7@ÿiöFºqxØMœSr!H¸^`>Dù�cfY ÀǼóÐZ€¼=Û-�W=É@d;8ã§^=úþ!þ +?:ßÀKÊd–ò"¥"oïûãý‘=€ך>àn} º+ Z¶¿Å°3©€´u –p�g èl¹§ú€öÖá½ÿî{�ݰ6šä‡t6¢u®È†(.7Q>'{g‹ãÅbÑóæh€ +<~9 +bÆð‚`uÕ�B5d3�á½ZÐ-w1�C|µFµ`5d£,` °V«5KN­–oLà8 ,L­ÊTàT×/87ÜÝ=?>dŽ@^þðî½,ïõ�]Q».ܶGéÍæ€Œx@L¼½tãˆ`|á0—¸ãÜ— 7U pŠÈNÄæ61ÿŸWJ‹[kIƒÿ�µÇ£8gÜ958þoÎ žΉ]–Èà B7%½švv=×eÔ#PŸ x*`&àYÆ0=–´� =uèãÞŸ0‚ó£oo*å¾V‡�æ›äˆÉÚxÖ¨zMãRì7(îA^€Ì%°r%$ÿ‰U€Ç6 Ð$„Áz¸µ�¤K¹ïkJFÆ &ÿ¡¦Ù^€m†W׃å‹ÀÝÃsù1øìãuQl‰’Eš‰ü‡âH?)`¸­JŸ}™[Éïï¾ýö;o¿ýöO^}õ'qòíwÞ—/—Yެwø_)è툓)€Qµ2[*dµøSð­RZŸ!g ±ÝÅÈ4š ìpŒL}Póˆ>`N?ã½.×?þÓ&þñ?§Ä®Úq+:Ä®ž3ȺújMáRè·['aÌ|uŸ àü2Ða9 «Ð^:ì0ï/8‡z +¾‚`8¾x¢? +Ëþ2›ÿÀKG¥ÐƒÊºè›ý€ €r‚ +@¤VSlµ¸‡ª9¸1×:þc`Ù'ß+ϪA0Ž=-@xÓÜ=†™A¢¤èÓäÙUtc@Äì+$á ú»nÇt�YI +C¬\Ck׺K3X‹}rEýkþȦQBô€!&€äûCÆX0 =tÈáÞ¸v�íï Û©ÝñíMqq:¬®†%”Ûù¸Ï2ø'ý?WaË__­JM5æƒ<$¶£³ˆ.ØT2s3œGÙžÍþApCbµ$`"œtÒ`’µ€Åâ•B¡0^à/Ççýºû{^ |¯¨Ÿø³z#–�ùÔ²9)íÀBÇ¥Ú!@_ïúËßÞyûÝ÷ßã=|ø¡J¥’ïÃHüämVN¾ýöûo¿k€<«ó"~ a·šV†e0Sá€ø/3�™ƒÁ—;˜îï-д‹8þŸª>õyÿgbÝñ–Í€œ1ÀºÕx¦©¶¨¯ÁÃÅ/Ì\ˆø´ØŽVÄÅjX�t'6üYoÖã‡ÅÕ+ü9÷÷>ß.uΟ{ø|n$C~¹w÷ƒŸ½÷ïÿý»½\œ‚l€µ$`þýI~íÛð礷S¤&³Ÿ«çePfôO Þ_ÇK#�˜ÚL-g úL€¡Gùljˆàò¼™#ø{, Úgv¯gí´3~´‹M÷>È®¯…>üÒúµù_8Çe ò½­Š5ÚÿU^9Ø%ûC,P°�3›3|òñ0+�_fšM¤ÇÅä^ÎŽhr° ½� �2¢ö™Ú€?`,`Ï�‰u‚÷G›p†p‰©gÌûÈÞP(øc` Ò°ä–6`@ÿÕ$˜„¯…Q#¬E­¨DÎ�‡ŒùÃ$€ÉX?£†Còïa£uÐ “ =ŒÃpµÆ�n…Áz´E|ú°ÖX_k ’DJÉ öJ%�¾sjx˜A?7ää >f«dwË–9F÷2ìû '||œ¹²w[gÃ¸Ê ªiD•C’†ÇlF]­· ýj9Ƥd ܹ¼ a¶¿ŠXûVN˜e€ß†“ƒ9c}€´>Ÿ³A3™bI~$þ÷½øO�¯iìÁþC´«d= ÿÛ;ï��ó‘[²XšËÌ„³yÇ´ßÇg[d…mr ü%ûSÀG¸tJ�`¬‚^wé¾",*Üû„E5êv³ŸŠÎ:u +V/8}ÝY¬²_g FÀZQ ñ[ËΤ0¥ef¸ ÒÂg  À½žVt¶Ú gðþ08›› óéð^˜(Z»_FBHrPr9Œãˆíùæã/ ã$z ËâV÷Åñ×a°„M6$ó3ó‹ÕruÒ_œ)Ï” óK?®–Ë3XåxåòäËå™j©^ÅÆKØc~¾üc¬]\ÄÖfæKÜËWVü*’*ÏÌÌðÞ¤¥Cz¥âøÄΤ0qõÜCqb‚EÜó�µWžY€T³¾ý.Ü-а\�ÜÇ4 +™Gw@U²ƒÀÒlÅP¯DÊ;ú\eJ0TÑmHœ d3t ÈJÁ`ÑbA €„ôˆ°IäËû”ñ ýûüLÜסYÃO麧çÄÀW™í3�ùsìMóäuìÀm>ý˜Óà+-"ñÉ'&ß!<ôs"rÐΜ\' +ϯ¿@ŸBpÛ4 ƒƒ­Çù§ (³S_ép¢ àü&°Õ!ÿO÷þ8˶üúiðø"p¯Ìö¼aì-C„Á µ ¿Pþ$nΗã¯êa�žœÊ?(ûMnÁãw#h‚úR9Œ÷ëåfT÷›õø(J‡\¬C<ÜÆR�›‹á“$ù-ÓˆÂ×™:§ê�X{~,þ,ãV‘±/Šœbeƒ@çñè#3N�rûq“ðqêO¹�Û‹8­œhKäM2¨ß+‘YÀðÿð+l�‚Åho%iCÛÙ*êðÿ'Ð*÷¸»£&¨’Àç0ï@ÄÃÐÑ~vJ3v„¿ýé“O!¼eÜ cà1€»ŸÑ(ŒNqô¡´FI—ªC+Ö܃»çßÁiàÇŽ3°aJ† º¹t†#^^NÁ¶pwÞa ô>Ù<• +0ð,b{[�…ÝÝ3xÿöÖæÖŸ{g(º‹ÅY +½zÒ&ðµ ì  zÇE˜,Çé«�`ü šgïzP�¿îJ€CðUu>náb‡湊a?FÕEX–ƒVZ'þrTøŽAX 2—‚È÷¼)N_bÁEðnªñI…ýÍU +½7<ï!Ÿ!w)¿©Uñ𭎃{¹I@ðgíU¡Mkð+Z•ÝÙzÈ›¦õhÀUÒ»‹/Ðû©gT»ÿÏ@·�ü'€ÿ´ÿ®œ©Åñ?KÑþñ'ø~Š CÃÃÁÂ|JNž·ã”vèAá @ÿ ø°ß ? (ì8v¾qŽ™yúÁ>O3œÿ¾c?ßÛÜÛÄqN÷þ[›on¾éq"Ф\ɦ£’·: àp+˜/E±›!Pú¯—ÂHÓ¶ ">ÄÐ~T¢jµ^®E Zø0c ŒùG‹õl 'UÓh(ûsì} *–Ê! ¸(Ü=0º8¸ìs*q"Aƒ0„ª=™òÁ„ž_;Þyçgï¼ó†wp!¸»~ÜkžÛCš$Žrÿ»ø> ˜@i*¼Î}`Z¡vü½-F˜&éŽè ƒph(™Ü­ï�}: BeD=¿ +x±`vwO÷þ›o¾ùæ¦cÄép•€Q î?%¦¿¥Å8˜[daÒ¸éhž3l,ý^Š£U�½D?Æò ¼Â’Cƒ¢Àg"{¤5‚¸ªJ°V±¶ˬoôT +™�&CR"Àóʳåëç|ïÝ·/2¼/mL ;)[9p›Êçò;]KæV>OƒYF åÔ‘ &8©"ìø”\ŠO>þŒ¥ÞÏq •éq¤c¶+%ü1迲ÄÀƒÃ;ªè3zw07—XúH RàzKÐÿ´H.ý4]õ1-�]vÞ>¤ñ!®¾=Ó’_cl§G¯3&.I\LLÚ +ࣾzÕ4Æ“ËïÂô,ÀUÀ³Œìýï{[»[àÿîÞ©ÞÿMLŠÕg…ïÏ…¥àa8éC8„ád9âƒ�9MG>S�àým¦ÖòC6âLTÆŠæ�Õ�"=~ôùÀÆ|¸Oþ˰´(êLý†Ô>5gÏ�Ü}<Ï þg ÙÑç‘�ÝâsA€ÑlÀ~•© 7¸9FÒXì~ +dñ6¶ã¡ã§ïCI]ô8>åÏý�UjpÿÚp÷ü¼ûÎÏ4#õ*J1PÓïð>ë0Y{Ú¦—çv?ÒrŽq_²žS†j¸ÿü3Ö'äê,;Y¦O‘f»ÔƒZžCÖ(eµxF}º|Âòô‰{k`o¿'ö³i+£«,pVP/|vÿ3׿æ> +òŸÃ$ÀàŒ?¾û�kòàš>ü¤-&]»¦†Íù—×T}ý“6k*¸†W1p¾ ž9¤´ãLÔNmªsÊÖ°ØÝ?d<€¥2G2ÝÈ®KŽutïÉùɵ]Ùh ^½öê‚ÎŽÐèqŽz#§Ÿ� +À”–™ à.H Ÿ�‚÷:Itv±×&ýw·¶¡Nðþ¢?à(qæŒÿz8š ~X/ùÍ ŽÙj¢Xî—¯ó‘ý ¦$Þ93¨¡Z™€Ào#XæÌ*À†b‡ìÖÁü¿ã;äǪV'ýº/Î dRñœ_dôd!ûþg÷>ƒ À÷ÞçŸÞwŠ€ÜNéOjÑÁ>†cºJ•`Ý¢¹Ç.A²‚ú™ãC�# }&+™ ¨5‘]BRÛôö(Àÿäm˜�lüKXâG +Vciûíw>pgÛ;{Š}\d]kÞ•îµÐÕfä)Q#Ðý“샀;Æ/ë.AMÜlþ¾ö×å412sÀ¥¡·Ú)^Žt×ÕFC¡ à³U�t:{?ïlÂõëæþOðþ@[´;$ßuuP²ò°eŽÃÀ¢_¦H…ù) +À¯—ùVм@À)€r^ð $ † +®’G€ƒ—Ù€àܰÌvnü &Àr�ådW«�¹P7å_£öìÊÇË!'B’~ˆ½PjÅîF}‡kؾï²Ç ÙW\Œ·i�"|÷'lÊoŒG’¹œ.oë\úas­~ã ADê[n–©ïû1d•NF•|÷bëCjÅî~øNÊ5N=þ€0Âßc«ÿ,D™UXöŸ.«4¿Ê¸áBðº3”)jS¨‹©+ ‡€\ Là>÷> ¢lÏô¨¥åâ·–}籈€…ÝŸÿœˆ-HXš”þ#½ÿ’0r� ×ýÑ,‰�a3 CLxÇcâ¿@k ̇ý +`E€j¥Àù”ý•¨t#ÄÄ ¿–/20?\È÷éD*ÍÞ¡’Ì$dýÑ€Þqr÷=¶Äý ßQqqN°mœèaÕvö A ‘zcp¢‚›fÆÆÐ_Â,#ƒÍ%Å1ü8k`&¡Ÿx) 04 Å/õË{æ·U¨‡¬JaÇA 5f|�Éò�“’(¹?)» K*j§s†Ÿý샟¹ ¤À™¬mv5L„¹ë“îéÿ.NÅÅ/€wÕÆSÏ dŸ,ølU¦´ÌLwAZø ¸×  +xeaao�uPÿ[»mèGçwÌûÛŽ`gDs-÷“ƒŽæˆ*p�ÏzÝô@×óù¯î¾í*×põDýwÈwRžHKY£0äu� ' ‚Å}29Ð_ex5i6Á€Ý ûòÖh9€c;¥ñjä¯ÊÂÛŒPR™h" šêـŴ\üÖ²ï8°°ùFc¯½³Ù&»·¶2ú�ðþ:sñï¤!sÂDRfžSðÿ@3‹”³€‹ôÀ}1(€r}£O°`ˆË!_*ÆÃb•„5Y’[2Ù0øâØ`޹\vA�5Ë2¯¾º€/ºav™˜‹<ï£ẕ›gU¼ÊÅÌÇÒiú +{©cL¹eO�ir$c³Ÿ�Ó3û¬Lç*[L…ë6Æœ¦R€íÆ®û#„™QÈ&îÝÿÙDQ&¼àt'Þ³ž–‘÷Ú�Ms:‡-&yÞ¸B9:yvÌžÁjÿQúbl° –BwD¦ÿ‰ü·EÂ۸Č+âj/¼ªžX^íÕâäÞÍ„Š&ú‚€6•Y€ ª€óÆàô‘4&h-ˆÓ¼¿ŽâŠÅ£qàZãø•åJ%ñPÓÙF¿Ùh4¥®£à©i0qZ à˜¨åkœXÆžä¿:YÖÚÖ�©T}ö/z~ìË?žp¹&Ž-ß¼cy—xGùY9[N‡yl¬7áîËå!U±>«!³ +)X—¿üË—^šxéG?êçÿ« æ«Ô}k¬ÞV9‰`•‚™ÕGŸ‡ƒ6ÜìPÐR°©ïç³W–¾ó qp%•">ì/ +ñ + ïãŠå �ží—²ýM²Õ`¯ØÀhp¿ïAc3Ë2ÀÊð‹îŒ?ÒÌáÎõ‚‘<+;5ªî8x óAÀŒL=Уš–‹ßZöÝÅÚðû(à+åÿJæþG{–1¬çß“°G|‘G$ Ì'tØI¨]jkT×Ë0 +#cP1€A�¯P €åá@Dà�1_2_�ÙM¹u ~Xhê¼CåƒÅã}”¹Fp+{Ðz"ç0¥ü?âØE5Ð ™ûI•§ÐsJ9h!}V›Q2$Å4�èƒ<ŸV:Ê«w‚^¯C;Û{lëÃjûûüèUGFOš–3îÎFŸóñ{^Š?xWŠH”êÙõÎû,Ó¸(çÿÄZ +áßpÒZ aÑOÒ²•ÎÌøN @ðp= ä�_[©_» +j([¨5C!ë0ôvL‹'ƒµÌߦ2 pA€)-3À]�>'ÄÜ! ·š“Øb´÷gËOÀ|y~¦TšŸ™)—Ë¥òR©=P>>-HQ–¢ä§ëwíÏH äýá©ä4Û?±¸8¶ÑúcxgÅ'áÌd@žv,èá}POÜçO›Æÿ2̲Aô�ýŸY/A쀟ϹÃ}X.¾O�€K†wVºliãÍs?µ bÅê;i`ÔÁˆ¯"õÍBj +a>Ði $ €'¨©Œ´Î1œ@xà7n0˜‘ªgz”Órñ[˾“X玩I +ß‘Þ_–hË +ó'¡y{¿ÀóÇÉ­P½}ÀM³Ó~Öp5˜Í@ŸP;€A0P À€®³±õ°mDõpc#NVyð_Çz±ÐíæE`®ëœƒ2Í}”×Í)àË'aÕÅÐn²Rñ _ æ‘ÏYoZ˜ü4ûð�D)\¦Ø2XO.^ˆqÀ;ÜÉ| ÁrÀG}Џ/.>æìÙÚçŒRðÓ€èì`ƒ•”c"ÒÔXÈŸÛÂŽèQB'> ð%ð‡Àþ�ÀD°V€úƒÕ„0<8oùï2HÑw½Yü!Žù~:ñþýR¤Ê‰»åU”ÒéÁ €q½7™N˜8ÉhClw‚ +xÚX€Ž×&ÿÛ(öãkÄþ‘ô×§q 3uÃZÔˆºpÓ}oè壋žÏmˆS€_Ÿ­æ©\²Â*«ˆ( ÃV´Ñ-«Ë� Aœº vÕþçS–B™ ehàD‡ç«áà£÷ŽF_¸1yj¦fß¡0:‚¬ýŒ5�éGßã7=�¦Ð&::‹ÇÆ™!&Ü¡‰ ãgÿˆ¸°}\Žì·Kp[0¨M›–yð Ø  +v p�Êÿ˜DÚ¬ãøü3Z”Oh�e²xÜ@ô&ÃÍ"Kºða*ÕõçêLÒàg +“‡Õ�›/„«zÄÏÈÕ³=êi¹ø­eO©Ìœ À¡ØX¯ãbô&è¢÷·Ï‰w"àÅÁ]úò¨Á—ü6’rX½|¥÷+ËP×}×VÈÀ‰1€cµ=À8_?ª8:LC�âàñ|ä¬ÅùánÿEÁ07å1rò~Ïœ*–º|†<�r*—:Á´†›’t©b`\d1$üK2‰‡0ð@£bã€2¹q̨ÆbGF¡�Vpù”:šfàŠ¸ ,dM�X³ø,“ø»þ=Íб[L©]Bz+ú�«8ÞÂ�„¬®ç)pñ?ûìèNfŸÄw¦dÏH§ÏJk&Õħ ¼¸¼¼4:¯~°CQÉ,@�ø6… ÇÄý´BüÖ2±�Û?“XÀpý<\?“¤=ûGÐßàHq–U÷Æûì´³Ñò’0Xo¬ãê³¾®¶%ëOQÇÛô+€ªlŽC%¨,ÃÊ`óÆÆ>­Å£p5j±ósCüÜp9€¢ó!™ ­'€áä9¯5ç9A#L[Œ•97ªÿR�ª>µö¸ <ûöö "p±ÙH’ÿ}gzC‡H*€”öyâg$ëÙ€µ\üÖ²§T'Åp(pßÈÏsÑÙ¥AÛ‚PJ}ôǤ£ÚI ;AÁÆúFm½ÑŠç[­´â>ÅÙcCkr17•‡ÆúÕ¦Gê#^ì>d/¤�îì³€2K "²*9�A9Ž„ï“»¬{ÛÚ©džz=Ò¥­(x”Á?ÿÀ»s€Í(ôÁ—… ¦¯Æ°æÙ€ “€MtRfÌ<Ýñ +´@ +ƒÇ¢._Ö©î�‰žfŸοÛ§B^'•I‰å$¸Bö´36ç_ÔEïÃûø¿©Îÿ­üï¾,åÈß×è0�’ݸޛL'¸ÝEC­¿µìL*à,±w ôt¶èÿ1›··r�þ;;®`<Ôùéµ}ümÍD5¾·'�ÀbgQ(œP ÀQ–ùþ0ŸFã �R@¼˜4ÖµçùÁÜp€ ,úòñc ÉHfÂäQÞ±®2úˆ?€^ã¾ã}Z©«^Mé¥î«âïëi?çlµ‰34Š*0–·訶åb¹? 6QîN5À‡jE‹ÁR‰ì¯é Ø™;’´ 9?b¸c>gáÏéáÕQ &ù±U o óF ¯ÃõLjvý0�ì&4Eþs­×ÑÀÂ4:óÈ"J#šfìôV)ØÆ'¶@!>—I©çzÄÏÈÖ³¢»¨¨åâ·–=¥ +0p, Î?mÅ_‹0 h«ÓuýÍ€þ;§*X¨ÿ”~�Ýú×ÑL|Œ�•à)b'(³990ò¿^ƒöZ­r·Á×^ïýû‹ p•(gÍÔ²FéX•+i³’ëmŠÞQ" ãê00‹�*`þ™;¥ÀŠì¸< &*sò\ܨþ�º Ä�g?™@î±Í ÈgýRg„ðábîô^¾âá˜Øùøî§ìÉüøIŠÚö“N`8ê�üž÷ÇÝxW•¸,‰è¢#Q»‡È¥�»¶™ê_ F®ÛWçz“é—¢;Ùx.€)-3À]�>® @±/` ®ì°õÙæÝ +à¸÷çǽѠGì_­ÔPò§`—]yÀ¨Ã-²þ´@}t €?î7Ã*ƒ0<@c½—ÖmÏóƒ½z�{`žÈJ¬l"s<ï’M. 1¯‰ÿC-ÔAÏìRì.›ã€&F.U5�Z¤½ÃŽÈÓhº2¶²7cìl2“Â=<ï¶SÕ‚hž7ï!Õ¬.…öf Aï%äÀvˆ 1²™aÉòïØ¶8ØOØã8ã{@ê[5‰jFá‰,BÑkºÇ¯× +0jw*Ň­ÏL É'w?ƒÁ Ø_âuÇ•ÃÿWÉLw·.ò¥‡žÈø®dݣܒªË¾z7àF ‰ðZ»ÅÞ€h8Û;M óþZêh1 +ŠÈ‘~¯‘õpÄQ¹U|=¯ú 0œO¨àcqÈ ëS ×k¯aÇn•¡.h>xû¼ÃÏÞý÷o¿f23|w¼¡âЄ–Éùf>´~’ú§Wêñ_Rœ%u‡´‚ðíŸ ´ÿ5X¯9n «5wkr`�€êAN˜}S`ÕK`:ýèÚ�~Ä7’ê­¤öjRÖ’7ôÏ5ÂÓ‘îª�d¬¿�#˜!À iwœ—í4?iÿä–a>‡•ì‡"ÛÌh�ÁFŒýsé}6 ä=�slg,•[úaq2TçSC¬Hߣ?ûØr\&½2ú‰ë½ÉtB,¼¨ +  “çqzà4�»µ£U@FC�þ›gé€ü'ë*˜z=ò’ýy°Ë¾ºÜ×M§³½Åéf|8+·¶ßw“íôúŽí¬BqH-¸–§ÀY“Ün"½1€xŸ�Ï€eŽË}&@\ïM¦\ +ˆîn7@üÖ2ã&¶êX€ö8®1�jߌþ†ýu:ÛŽ'�Dí0±Í$«îaýtà�Æ|Rð´ÀèZ€Q ñ¡¨…q¼xtÑJ€@µCç”×?¿Ïæ.ÿÀnµóV@B4ƒkx÷Þ":‚‰ùBÊ}‚ÞÑùGXŽž1ØÐ¨¯NÛqðþûïø}0ž�¯³þ(hHu:~™‚”ô¬‰œº±sHkúq9Øíþ9ùÜã4®/‡ÞÌi–À¤³i_¤æf�*ò¤s ›sË9ÅEòöL¡½%ê +~¾§õïóhÛi:ìU誻i¿JŸ 8ø~)×+ 8’bŒ„"»—9™Òž¬K‰OhªgDw· ~k™ˆ*ÆžI¤±€…k mAîßÒÑ�þ¶´GzÿM&�üØ ’øªã-ŒJ5Lå†ô§B pžv#ý:|ÿkØh5×£¸ú¤á*Î wsÏ –Ô]6 þ7¿¡5iÖ1ý/�êïäúºÉ…ü¨¦³�;b§à‹i2X&ìË�\üáÛzzÀp ô&ÃÁlµÌÂÜ>7c|Кã9 b­‚)Ÿsd3|~®$ýì3°‚ÏðÉ­ù˜OŠ-öüƒšC}‚u">í×Ü»�…{µÊuÐ[éæ¹·ÐvÉ俱_$'Ø"ÀM=ú›÷WºØ'Ž™ì» l ã™8¬p€ 8UÀ QRùv¼tlîV‡áz­õõb·uQ `ùâ@ö÷û\Ej¬Ï•yE¥Aþ¿Ï>¬ÙJ—Å(€œ·)Uý3Ë)[’¨€åj2ÇIu±�?f l­"l°}…Ñ!7jF0Ü,|  öuz’Yo!øü³�#�ùL„õŽhÅqÖ=ÒýwÖ5Öÿ1ŽÂç‰ ]#;B óZG�Aƒ‘¦È�^Š_öÜý'wÍØòêœd”q˜@€ÉòöC—ê?ü#þà÷ø0�Ü.Ùí¸ÌÉ”öâ»#>¡©ž ÝÝn€x¨eÆ_n~&3±Û^Øl¿K’§äÏ^R¿nEFÿÌû3͇¿z8úÛ�ãäë >��o”$­.»ä|˜âþh!¦¥žöY€Ã$I¾±§õ³±Ç]|1n!ínrx´Òív�~{tÜ¿X½m®°:|Ò\ Ç�)7C˜H¸û¾ ~d5È;m—† åMG|{gM`ÝÜ»þ?y›íkßfã&üAÚãVÂuÓo§©õƒ”ÃÀø³Ù€ìÍŸÌ7mãL X�ÿ”ÀÔ<À·–ÀÀ±ßg]žÌ ÕÀ½{ŸÒks÷’숯Rìö 8z&† ±¿áÞ}}”5>á� �þàƒ·Ó"Î@¡Hëí·Ý#Q¸ÂðñŽ×ÿøŸÿáŸÈûtøÏÀ?ýçú'7Û IGn�2âzo2�àÒ“M€6Äv çé±€Ž @‡´ÆüÎŽêÌìè˜ié€ Súç¼?áì½Â{~~f†ïñöœ¬zÞLn°Ÿ²çÍsjæ´À�v‹À’¾Ò1ž�úÀ§Zêá�nU«~5·ÅSK.Ç\ Ÿ²m¶ZsLí Ÿ¹óbòH@Ÿú'dØ7�²«Œ+hr‘lÅbDæï²ûü|¾SiÌWg•y/OöÊÏ:{[ŠæîD f–t›÷#�ûPí|îîS+ÕË&||Æ„³X�Â?M!{³£õŽ(áÀÓHGš„T ¨0BS<Ø÷ïá€H¢à>«W(«RMϳ -ɲ^'�ƒë`Á€ëújïÕ^)T:ñ£—„ý—*‰]GR‹º¿¿2ÃÀ%P óÄnÇeN¦´ßñ Mõl€èîvÄG-3úró3¨€Ý=$´µµ'÷/~“è¥pS=ú÷yâ×ÉIC÷(I¢ z# ƒ[ÐÏÍ0ˆâ/à“GãÄÀ°þ¬ë¡áÐÁƒý0ï„Íýˆ}u�'?/�¿.Ü}ø²Ô÷±ˆ¬ÜßË…ä—ü¨FF®wßç{ò0oKåO @ÒqŒíÙ8×ñväÞ'ï¿ú£´†Þ>˜‘̧¿‡HÕ=i 2ô±aŽð„¤‡L>æüu|Úªòž\Ý€`šõœ6îßýüãOèí©ÉÙI/©M3Áx€�‰û4C÷ôä.FØ]�éRüt|‚ýí¸„’Ö âÇÍôg¢Ýî~ð>¯Ò1 €â{^2Cj—2…ÚJ¼Jc­ÈAzÓ´[ÖÀ»`<ì2°ÛÙÂÞŒhx.Žð²<šÐ£ÿ€÷,Ê>Öåp>˜Ë×W£¡Oã€ìøà§rJ  îSHuÄ ƒc¢T‘V3¬?LâFC}û�Êç5ð�}Ê}$¯ñ,ýÅØ¹Ö6+æ;   €¾Y]@*¨ú]ö@úwáì¹q-*;ž˜nÈÙ ·¥�z¸GKfYûaq”Æ€<ŽHË€I5P€À¶âNtÙ°\rsSÆþO§p¬?ØipQÓº…aàsÿ u àøì�H0ÁÖ#@îæüŠ�÷u'Âæ”¬Cp!ñùIÍЦq`¤€ëJÿÒC¹J×l0Àr€Ùd·ã2'SÚ“�)ñ Mõl€èîvÄK-3úrsòt´ +hw:(lµ÷:mî Î“èŽø˜”Fíý�S[7A¿• t°WŸ„§j`Ú¶E`g œ�a°7{ :ïàBÚç gøÓTœf %§À㜫%ss€ÍéŒÏ´­Lé .!e&팤3>—“q=Ðp<¾Òpf'ýјuŽHEÉqí˜Á<'�:øJŠÓ�ƒ³²Ç€+ _N’ó„ðC⃔ðô⿱>“LÀ <0é 0ZH+bvÄ­8iaÌýK·Îøç¼D9¼“U™ä�R :à XØÝZ¸&�±^ûåÆíý‡ynB®Ž¨?] ª¤túÌïi8±@ @›�7"ªÕå•*t€ÍY8ÿœøà½ ð –;ˆ´Nþmä"ÅѰ�# à2á–¤„­¶lIK{CÆYöDÆ}‹*Á]çHkµjƒæDçÇ­z[ÒïÛˇé³Á\ÖÓ‹üø05܃�,ÀØ 9Aé µ½©ã€A dÂ!%�£'#Œ“þŸêt†J®<½Wá=�_~þn¡*ñT•§Ù ¬áËÞº$¤+Ò†ÜC§§¹2àˆöŠtv;Øw«½k +@t&tRœåa87Òû'¿ä8æ˜Zf7À'þIíòµ�Ÿ{ißñð+Tý0²ŽÉçÃÂ2@ º�á}’-G|ƒ£>á–�«öÀæ˜! Eó`4`8@µ™Ac2xÜ¡`qC´g2°(w +y9ssëη³™m؇ =¤�Qn«ÜUIr€ôg"˜h*+|¬6 �ø¥-V|ÂpcP2 'Äpþºù<`Ò࿃êýXåêæSôj3ôºÀ/W7ʈë½Ét‚KO6ÚÛ�Pb>vÛ„ ‡Waî”Ì�OðþL«#‚�@¦ú‹Rø™ó¯�üë×ýrùŒí`$N–iC2þÓÿgŠàÈh{®Á‘p�ñùP  ?Æ_frÂqkÔ"ø]Í8ÐWÛ ·w•ÈÛ6!8zƒÔÇȤ5ƒjÀr'(Ü‘‡ãý�R+„¶xBàÙ™eèÍO™ñ‰t ­ˆÊÎÜ‘ô\Úƒ,ñùýÏÔ[1¥ûÇìGì A¯¯ªsîÂ6DšØ¶ˆáØAi�™„!/E>/Ôàà˜é½DQÅ'.v\ædo«ñ Mõl€èîvÄS-;YlÃlo¡°¹»Ûæ–8g0aü¶><ŠþÛÛ»ŽCÁȸ %�aÑóáå¯ ®{³sz}ðYb'Ô©ì7çïfNžçÛ{¶÷<ƒò:s¼és£FŽ3\ŸÊ\?{èkþKJcGNêQÕA™�”•æsàÁœ«ç„’ÏÀõ|ýû÷W¶ÑXÍ ˜#¹ŽÛÄ%¡×ÞZ`_üÚzNj[‘]ÿ›}–/Ä M¬Æÿ Â§ËLJ/"&uS߯{¦ˆ«r¶ÏMi¤]V<ðCp_XL@Kä ›p¿#0Lœê‚dzäÀ³ï?€ÃQl‚ù{[�]Š”Ø„ p‚¤¯$�ú„¶Ð2$Vœz]Ѐ¤Ö�çÿ¾C‡9ßóü²7k/?®òïPÏ¢ðô#¿ªW0Ú#ÁÊŠRªV9f¡àiÇÊôç,?ö#�‘q½ø”ãé$ZiŽÔïÁ–ÐpÇt§˜Y(þ¥À2²�ý}¤µŠî¤4œLV©éw¹Wuò6¡n�Ø’þ]>"èŽlçòáû´²ÇN�ÿKŸÐãýùàÊ)ÜM|’k 9 G +˜Ûö +³3lä¦z` @¼� "ê÷  ½�ö_Øñ‚Žúµ�Eq�ÔÖfÇøoÔ'´X‡ýww]�ßp˜BEâ1YiÿØiPö8ò†ÆòíÌÅc4ê›ChFÀ* �AÌ&<ݸG™s ¹L®˜WõV²_“ C‘.â†iEջРnp ù¨UoÿäU=ÀÖ?ص8¶ dzŸíy€>d@ÝõA�!ª. É #¶|ÜYXŦÎÅ6ík*5fHú�´´nÈÞäú,\Á Ù‚l&]äÖ2Æ1왚åÇlEj$ÞŠJ,ú~cß Àî^›Œï´;;;=ë |6; HÊqÐz%/úcÆØ1 ¬¥3îUnà—Oü@å«À!Ãl™#®·ÎŽ·Èú@1_ÏŒøê¨:xÈönT'ÿod_7ñ4ã Y3rÒƒyR´í}sð—ÈÎ}Ô1‹ ôø‘ÜYƒÑÑög#o«[‹E°ëoÒÎ�š¡ÿø,� H8K<�>à:/Äx—�7›øàîp¤´×…cW† vø3¸,«`¹¶ÊH@ÞŽ“$Jâ8ˆÅQˆ)¦ÞÔ·é&žf|[™ôœùï(¦ü—÷Ø×›ÊÎ0·¹`3é"nn:ÂÑI‹o€ö7ð6ûÿÐ[‚©H»üA5}üØï7=ëü}€Ñ +€Ûkäÿž”,öÛÁÜYÜ}Ÿ�×Lësôà²ûû`ÿq €Ým¥~{�O6ΧSRÀN»Åòs¬OÅ`=jø˜Oñ9E,qü×*%‡ImÔT (NœqÀ²ï+ÐÙÚÝÚÙÝí\ƒØ“€СñÅÖê$|W� +w63þ3•úoííÖG#×üjµ\åsà0 +Òþ"_¨fú§aX ÀÕ°„�Ï€×ç7{ëQÇáÊÕEÝýªÎg%¨¯`ê¦ÒÑSŒëÌ çŒ]t×ÀmÓCß܇ÿ�™=¥»À„ì8¦ø#:Úþ¦Øæàûçk³©*i—žšÐü J¦¦ž3NQ&˜žøÎ`þ_bP¼O€åÚê$˜€ýbRpŽéõ˜i@‹@óO¸@Ž^»�Ää:m¡Á�r©5À¸·Ðk v·â­f "êw “iöØ3&wA}”pxn´Ë©Íí­�6¦0™¦xœþ»»tÙ#°5¡ºQü_d{À* +ã ¢¿¶¶Ž¸&]k €ØN�Ÿ~+wp<÷M?Ôþ8xõF½¾Æ—c´¶ñù óC™ôœ3ª£˜2a\L�`ÂC1õY(>Ïòl@†³+€¾ÿ S6£-3'³Ké$pŠ pl62kŠî�ÓlÍħ5´¡­ÒFÙ¤æ´äØÝ¿÷Ú0æÈ#º‹·6+`Ùw ئØÙ}°×Yéw÷:mØ*Z%Hƒ­Ý ²‘ ¦FÒŸüo·]ÀoØ-w ýß` Úˆ¢'â׸Õ_%É�v¬ÛÉxøºƒŽÉ¿ŽÈF|�ðÙàîѾcò9Á JouޝåIÙ�cyÒh7@¾ü,)‚ìÜǦd¿À°À1�‹whLc+Ð~s …ƒ½ÝÍNG{óþ »­Ë8da"êv¯Â£óþÔµ&Ç¿øÕAñaí"¬ÐZ_$? «Âpý–B€áú:2ÉúzìJç„d{ªïG‡/¬@ʵ\`ìù±K—Ç +À•‰Ù‰|N'ŠBÉFBµ0ë‹ÓàÄœ}§§ñ™Ã¿`J©XñŠ3^,j–˜›óùѤï{Õ"§�èF%¤]Â0£_ÈŸ,úv¨¦ÝØŸ°UŽYœâÒ+YIbò30íùO%²½áÀkØ�X#ÿIôTÔ©¾¬ƒõ2 Aˆ‰U)€ +£×!6Öó1RMö\;c6á–¤k5NÚÀ@¯Bþ `�€Û��Û`-+D}–g›j �¶B)Z€“ýô电··§Ë8 #!~Ù3pH Upvo°ªN†Ïœ‡  1Z×ËH‰såç(œ#ó™¿øQÃ\[ (8pé¹Âø�Ï ´Wg'ž÷ÇÇÇ W¯^q Òdö¦gIòa +\.ÎÍ‘ÿÞ,V,SÓà7(š¿(öc¡e²§¦dŽ)gh`¯L®²³˜g +€/e�°"@ª` ‚µæ +ÙŠƒ°TMÌ9 p‹6€2\ +À´Z + ÚH‹ƒ +E(Z€ |• @Zp +~>¸¥N*p$§@|§pB>L.2MøzÞæøÏn 5©9Ç@:Íñ1@œAð终ð¸;»¸~õð`÷œ|›�K�îHj[¡�Ðé`å6 çý{ÞŸ׆÷ƒ¤ç«�ä¸�58qÈMb¦?PŸa_épduëøYoDÐ!ȯ‡4¤ðß‘ÈøB œõk;`OÑŸA`ìò¥±>Ï©P¸Zð¨ +ÐWE7R0…çO Ïí¬À0€MR€åTÙÚ�e+x/b@JTø²(@;’—ÝÁˆiH°ÝЧÄÿœ ~!ÿáú7¨ZàÞFø øšW$?£NuRpP€’¦ pL2=)Ç wÇAã~½Ë7½ÒÃ?æ’\�ãu¦³Þháf¿†…0âÿ@‚H€ŒPþPÁ�H–bÿ�€õAƳ"ý?¿�à&mNKœÈ–¤ö�ãÞfÆ^zÉhô‡Št ì;»»Æ`tö ÑY;ˆX€Î&Ï [ìB @p‡”þœÒ!DÀè6òØpÀø‰ùr�´ŸÐ³¢?R÷†ÓᎠGÑúºÖ¨¡ä&‹ì8ìÜ ‘Ia•ì�ÖgùâÇíÐS—/=7î�Á˜(zW/û…ñ+Pgz€˜e € +@FàD0ËM¬€Â €SSTø´$>|ÿ‹( 8@0y•,çz~…Ô�¢T -3´`wY8ŒAY€x2�þ_üÆ}¥³5þ­Ý +ƒ¥zlüËh‰­ îã«—©¢õ¸ËprBéO½¿´ /¢èp ’ �m ¬!Ž÷�V�X[KàÇÕ-ÌšÙzDhFÕýV!ÄB +€ + ˜;vÝãÿ +À�äþåø¼?‡±—^yéQé …!òw÷:Ïú~€UøwXí·£Ö?h¯ €ª †{¥Ÿ÷ÊýC�oæסX Ñ+ð(°×ÿ,`­ ÓßSA‘Ð`Fd†Dîã;ŠÇäs‚<æ‡d¦øþýô¯E�ÿÜ +¼óeD#)€ë…‰ñ¡ + PR!@`¤��Og*¶}Ÿàoªf†*€Ò6À×áTP(€æZðÿ¼á  Š­xdŠtpÚXG¢�þ˜a©t+OTcñ/µ +À: ŠÉRWóë’þöƒ€‘ÿ¿å±¢¤™Àýeãqþ–_gbÈå�¾žïèÑR“‡àz-Z4¡‘Þ,@:ÙsíÇL�Û6]� càÿKO£Ì8<+€u{pþ{vÿ÷Î.–ï> ògl—ógøV`—MÚ»»l�òÿ¸÷gÒôýÐ�Ò_x½•„µ |å§Z쬑s¢(IXÉo>=ý=!ø6þöYÒZ" +#§åÏ ò×>øªXÏŸ“¾¥%î‚+>¸ Ö?�á2¾…1š`|nâ…Ç�â„S©‚B™|·gáÛéâ=ðqº¶sz +²•FÃbÔsµÊÜìœ_ó½)ìr}2ó‹ ½�eœâ]þ ðœË€–N1Ö§�ÿ7EÕ @\1þ?àŠS��°»‡äÿÃ#po#úb­  J9V‘ì6µF§ìÏM ¤:á�;Šã2U–� 6à×cZzzøh 6’¥ÔPwTd÷»'¿Ã×lJ]‡ Â×pDdªzjˆh¾YŠöa´¥scüéôd0߯¡(‚l à üË §#žFLÌöY�ºa=VpLìÙ)€WžBðçÙÅ¶Ú {�ÎÞÞÚûÅv‡!�ÿ´«"ÀÒž~²Ÿ¬_€60 ÀÀ0ïÏT�¨C@KMÊ2¸>ŠVO€¸ËkWÆ¥Å`¿§ Îÿ4ë5Ÿç_L,¥ôÿ;µ¢¡å×OþrD!À9>åû»ÿ�)H¹Q(€)ŽÇ¯\g�ÁúÁ ÌCHð$(‰ ÂÏN{¯z‚ø˜åhnަ_¸þi/ðŠ«â½—*|VbÉ´È]Z.–üÙZºzÚÃ�ÜÏÆÁø«•)€çPôOÑBɼQ«è¥ìa…k d8ùáJÞàºÆj·Ép_!àzB$ë*ˆµd‰YôN!`êÇ‚ˆQÐà2=gRˆÔ9ÀĨÎÖê]MÞ’4X§ZT·fj0lÔBSij„`û3ÈrÐ<Ùõ†€òu¤Âír�xZÀ.v\ædo«ñ{ûf6`ÀÐ’ìn£\¿Ëà?¦·þ~wwĆàÀð °L;4lÔé´a¸Ñqï/Ø5Fàj««¸0¤źðàä™AcJ#š$|JÀGY Ëš�Š¢`? ·Î€q]çÊωÔ�ã+B“Üœ9ñK§¯Í0£Eà=+@~gðAS{ã_-@¬‹s^ çáÿAhò{γ•žÏ*AÏ f T˜†> !€�¡ð¦ö÷f‹�øŸO³â?¾þd1°E8@j‚‚3 nÉ4 ˜ÏóÆÀqIÎØ °�J¥ö:os{µN¿f~:J€(Zç<è†"¨HKDh>;ÔÀOX€õô�þÆ�­…Ðù"ÞãjBSƒc½5jË•�|t©T—4ÐêF!>:tp¦Ä/G1Nƒ«,` +ÀM +¬TŒ`Bd2ê'ã‘<�Mƒ @s-‚¹a +`aÁ™|ÄŸï7ÐÖûÕüw‹‘ÿÿ´çÏWƒïnímc îs “$l„À6KJNôϼ¿�ù‡ †ÖW+(œ©��ëîçŒàÅÄuEAï\ºý2TÞÙQ[_¯Á áGj@74ª»&}ç„ñXîœÔfû>É�‘_mo£¿£à$OýFœ 5À:L\�°¦)¦ƒ+ùQԷ¿ÆAÇ€^ðU§`#þZÑÀak�lŽ¢AÉ9Òó‡ú€“Á¤[gÐPàÂ?wE.!€€téAp!hx½qéy+º7WŽ8KŠÀKÄ+˜‡zPž¥S¾Ð†Ëk[5`kƒÑ?ãµÌ +–›ˆ—º:k3ÇL;dü_ªb�eSAýŽ ¤dÒâÑ˘RX€�àµPú 0óE𘘑x>žv §6\`}PT}/0ã‘ @f¾÷XpíÚ+/±:MïíÁ<ÀÑ÷€úÐø8�í½ + o` �Ÿ‚q€DØcR¢¿Ò±c`×PX ¬½Æ6~ËŒé±�ß™¡Â_Tà xø5 +˜Ï € +€¿�oŽÉçD™åz)µM�øjkEµ!Æ¢>¿© ÅÜ¥KÏ?ÏÙ»2>~õ*JÅ¢‰µ»�ã…``�ÿd?ü6[ü°®Z` +�ï\kvAv‚d†D(Nðý´Ü»Ê@@”^,Îa‰­0Ðÿc{ÉœöFêGÁEš1ËÜ‚b•¹@€|Š¢'õ•„E·f“ükp¹€ªñ¸5sþ„qp‰€œXUñWÃ~ùQȺD¤‹Å,¼ŽÍêà\|pÀ°@µñ�F…µ9–¨ê,A5‚X T«ûÂÆBœê.¥Åx-Ù,x+5¶3aÒø WsEû`mc^¼¦t¨`‚2 Ø1°-þÐÿÿ!b`ýK¯à_,€—ÿùÏÿþïN泦OÑ><#VÿqF‹;ä¿èßïý�wµ�ƒ%ð‹„53¦«¼ š:âð6îBXs + ZlÆÑù|–�ù«Öjý-ï¾�uXèõ¤>s18F‹Þ¤5m4úµÕn›¦b–è�¬](éæ{eoO•ñ„µÄpyΟ¥ì7,ógnÙŸ[EŽe|`š"VÛ,£ `¥. +Š…Y­2ÈvÐ<àW^Ùç"|í˜n ó0å¿Û Cdƒb�%ž9Í—þÇ�Þïf˜Ùªù”â¸ô-òåh¥št“(þ‚�„“v]19Ä,Võ¿H¾B +|r$Eœ|ÁF á¿,v£�~6Žõ@G ìuð¸ÿî yRí>ÆÂh�IBlÒ6ÄñÕ›7W8ÄG`=ÕxxÙª S½Ž#l$ñÆ~tTýç‡8�¯ù¬8nÅ ¨Å�ð@gîЋd¥þ�Áó7G¦êUvˆhoƒM|¯±¢ p $ÆT{¡³ÛÑy`ñ¿³�¯è¿Õa¤‰ìòé!Œ±åæ0ï¯#Y‡ ~·ZPTkµàV3ŒÀgòñŒ¨ÓO¬K|õõú¾)€ƒÌ\Ÿ†èõða+_ è1¬WÜcW˜?/Èb‹îóû!¾œ�=öUŒPüç,~>Õ`µ0WQ +`õ:…y±8‡B�XXô®ÏN°ϯ€ "êœoc2’U+e¯ÆžPQ$P‘?À†Fr¾wÝ«å'0]òJ&V™5€¯cg¬Ü +J‚b±,‘À€-Füx^Gæ¶àJ¡ÈVT.H¶ä°ñ¸ãìèÄc½£ñèÑZs?úõ�æ#‚ñ£î?ïÿîèèÛ'Oº`ü£°¥æ#ço'ýK—ô üf’ß~ý¯G|ÍTtØ=ÄÒÃÆ„:|-Œ~÷äèÉÚ7GIòu—o…~pK£û(ªP¯ïGÍ_¯~½Dûq·=º8¹$ÚÔ­'û|s + FÑáãîO½‰,#“7†£…·ÌÀ �õø»ÌÉ.Àʉa1€á + =`ð•Π. hom^{é¥쮾¾;pó8(!Ð�Ò§·ç*•­�NV†`%„!ÞŸ?mGŽã˜‡Ïäw¦„QyßRiòŒ.9ìGŸ¨B~$‡‹å³ 88‡ +÷ùryr‰¯ +äÜ…@[€llTõåÇ 8¾ Caì2‡çÇ. +—_¸|ùù˘ ^x�M…'8y3š~¡0Q¼Œg'®rÝÄDVi)ÖcWÚ"Ì©½±¦ôSza²Xœ¸ZxA xnƒß+8>¶‹ì˜—9àœt’cúæ±ør¹7,-•''J3å——^ž‡Ç…çâÅÅ¥¥——«/—Ë‹õùzóæJu©ÌÞ™Q–RH³W«}“¿¥I¯\~yeiqa,Âw¥úr)!µ*Ò°%--â°eŒ–ÒSqX²N+Êåj}e}¼ªN"yÔE&ˆá‘y0“ž sl@ ÈŠ0°Îðâ±wÏc¬óÞ1ð½Å°hsGÃ4wüÌB +$ÈÍ”2탊 ×h2¸@‡´4t.[[î¯ "†¿³Ï+ ­W�Y„§J: °W=†bŒ$]¨µÓ‡äkžBH{C|Ö—‚_Ø»O QÙ¹~rÛ•îG~ïêAÀlöÒ%kúc_5Â 7¼¬õêÔìuîº|s‰NªŸNë¼´"¥ˆ’ªWö|*¿®Vj«J~€¥òרcvåŠe_EvÊŽ !à÷«³ܼïMù(„CøËÁ��:O€XfïŒ88¾èÍÍê̦ÔScWX~±R °}}¹o…Štž+/?êÂ#ïw»O ÖýïÝîÑ~5n&¿9ŠÃ£ÿÕ�7ân™þpoa:ê~ñ¯“ä7�p—»Ý'¿ÿöwGøt) Öç‚/â/—R0p2XANø¦Ûíþ÷æÍýiñà�qh¦¾ÏM�žÜlòõ‘ÔØ'vçÂÂ,î|_ @”‡8%p +`0Ë�±ƒ ˜Çàï3@°Õ¾†ÃQÔcÒ±_ 6ÅigŒþfThÀ´ÒspF +SŒ³ �)LÕ¿b²–õŽÀì-'¼T¸Ø4ü¦µT_Ç-k xò÷µUÖüØÁÃ8XªßÐä!ãGZ‚L |-ì�IZ U YŽƒMi,`ðPÀˆ”sHMƒ� +¬·ãäÔÔt0�ŸiozŠq kM¸\Ñ Ó/º !(ÌbW|HpF §\Ó?Ÿá†ì4 +W1bÉßpé +,—…hžcˆ/Ã-èm¶áitë/ó9›µ:i�Åù€£›ßDá> +ˆ ˜c*¹ekšnïÀj#È?,uy(èGIókð䎿¥+nà—-øPø�Óµm{@‘þ;`¨€æo2½äk÷€ž<æãî¬,#ÇhSž O.x$�5êÕpÏ�@yˆØêlóå|Rüáb%`“½­zÄïík6»T׸I©ë/n¶¹µ`æSüåõ‚F×pŠðÿœ±Ä <“4y]¬!X üZ^üÕxF­zÏ\¨ýèoB X”8ŒcõOùâ^TØ%9oÊêz\­_¬»Rú›Kw–¿4¹/—ñWÀ€íDö!Pi:o¼ËÅi³ÇõX`� @–—Ù@—U´Á§àº+“…ô�Bß/xãÈ}Xƒ’By,—AÑž²~¡ä 8Ïúbœ¡‰Â¸3,¯ôÇì~PÖ¦ú¯|ÁpnY•Ÿ#&hxTMÂða#“‡%ìÏ�Tn4b( 0Ò(Ø8àæø�`Í/zUcyF¢ºTõ€œ�Íà®Sž7Q¼ŠYgE\û!Àêö8ÅîÈ·Ê/˜Qp{pâ +NKÁƒš0ç |ŸF—ÅVãT×p´üÀ-tJ῱}¯y[\Ó˜, +Žÿë0øª»¯±AÀ ¥gº£èàN� CÁ@|ë�×IñƒƒŠ—TÚ¼ëÈDtB<³0zT�ê(Ëðè ®LL#Œ³Fc)Î '§ùI2íõ£:+.ØðQÖªäà€��œ +Š’z=\qg£í2ØãÀÛWüåb%`“½­zÄïíËQ§CðÊö¶ÈŒÔõúOC��îØš%ØLÒ.À¼‚"·Ï�;…s�Ç@Êàºó•Ue…ùât@XQ¨ Ø�¬pH¯®Ö‚“¾:¶à/C—%`?›‚ñÁVÕ@„Vù|ç²uPúµõn`€V +/?7ögÏt¡97zé¹LL].Çǯ’ptÃ"ã×2 å¥Wdå\Æg·bZòÚûB@º�glμÀÁ“/h­Ü>f½\IÃyÿ+˜0î;þ³Ò‚ŠÅ�· Æ—nojÌîÆ¬{ê(ó6Ú: :ªÆ,Ø]ª€äÝÔQRéñ[o°û×”Ï|”ÓýkXïÒ'K` —…Øš x¦§‡²Zb0„‰º+Rl�±Ñh 5&%0Öˆáf0¼Gˆü'?ˆºõÐêþl1M²#üv~@#šç¦·k¡g®¯ÚÁÕòÏá¹Â¥K—Æ®ðtó { €B•qs)¡ Ãj9ÜOðœ7µ‹"Ëê0͵Ê2l²îy +¬¡Ø•÷�ñPâëÝfø„Ò[ʼ�eæz#ÜrëÈcb&ø«óÀQã›:8 „Aî¢8¢\Ö]úŠ)†Ár%DÉÂ\<…ø6j^gzPõ\Šâä??vN-@çCtë7#�ÍýaØÏþ»¤Í÷ ý)€k¬ä7ï/ÿ/;Ïm P™€ l/l2�¹wEcÙ àëzöË‘ï{öÞ¯“�˜Ø�>åÕ߀ +@Eä%—ô™&ÕGz³Çê­<›Ÿ~X�AlÇo§î©8Ö¬­�,À¯Ö�ŽÿhàXÇÉ*°Ì»\œ"ëøÛ¯H ÀÀ@�Ë”Ü3z®1 �ÈW¹�{aÚó +³X®@¬™ð°;\?ÒšÖ¯çÉnŒ¼Ãü˜er|øß9ÖY<_€X¹<`Rîs¯PkEðô™'Ç5‚Š^Òó7,:üm¥Ñ=d‹@¼õÜfÅŽú Ö'Íð·$ [®[#@†›˜!Lt�T‘ÜÁ¡�Ö*ãÁ~¼Ä܃ŭ ÀúÆá!F À‘å_ìó76�’@’Á”·†Gõ;‰ü¿Ì�À#D,fDÔœÃfͰ¹€ô5ßÃØ.xÏwóßo,@“4¯¼²Ëirß¾0˜7åÏ”h°DF[ › îq�lQï„bÛF³ã€6\ ‚¤ÜŠ D¿½Õv̧°„¸!Kúj#ȶÓÎΫ›×^ºÖÞã†ZèV +¢?Ƭt=†0l&aœl<ŒÃ�¸›T¡µ‚Óh«=yYàã¢}í, "@Ø´{3¬£‰poãVÜ=êVcÌâóîÞE¾¤³q»�æø¨°Ÿ:~™ƒ´øšÿG¹”Wè_(\¥ gµ<«þÙ‚Ÿ¿Z Æ�ØÖ›*ø¬Ó×"H«ŠÇfÂ\m›Ó¤!kõ¦°ýrSm”.3�â×Â6Îùþ4“ñg! ¸‚[r�¶âÁoà 2€Ï¥|ÀªÌ Irø¸GGOºõ£øËÿƒUñqrøä°ûÏÝ/¢¨ß~9N ¤“£ƒ�äqÒ=üýÿ}�üË¿áÚ~Uöûû£‡�€m8º1’<ê%ñãnÌùø÷É =yÒý]ò0év“ÿ†¬Õ€ïîvw +<°CöLi˜„eVýóàñãoŸ|ûøÉïŸüÏ££î£5œ [D�ŽyD +à0�ôróþ£oˆƒÿËìõøÉ!›ÅÑGݘ§ù[ø¨'ß&_Ek8äf³l)hd¾ßX€´}{§£jÀuý�½œ0n»] þÕLˆi´‘\§Ýf `¯ÃžÃ;éVBJÿ­-÷¼ü ªþÒb•µÿUúöùzµº¢‚£á'9àZ’Ë®@V @ÀFä£Q­.–ËÕ•ÿ*Ž;߬×ë|A‰DÀù¿uZ¬¦«ÏÅüd4Í%¬öO—ŸØþ¯‡?c8ÀyZ?�¯ÚïÔ&pbœ�­÷¦.¿8¡~ŠZZÔJ¶4L¸’ûäe¶×Jn{EéÀÂp9·ã—©°d�ßÉq¬Ða&xØtl5,<Y _áŒÇ—�@ù³Q R›c„Çãê¬46YA•/Œ�9Þ +IÔ�|¿‘tÿz>úöI79ìv“äÕÂ�íÆë¼(Bl>~|‹øm½)½ åmxüÿÄ¿>ŠX^ ¿ Y‘º�T–Hâ£î·G‡Ê'PßOšûݯP†gë 8©zÝ-$+¸Äqð¨V cN’xÃ~pØ=úÝñ¤Þüç#¬�pGB‡|Ê0Ø?:xB¡DA Ðù^ %Ùîï‘“¹ ûä÷Í_w¿I¾A¢¿>ì>�É`ú�?éþõR÷ÿüÿ„Á*ŽÒuçà0¶Ã@¦¾ŸX§U²ßV-À‚=égÜ'l#nmÆlag§MÐé7yﯓ ä>ÕìÊ?ˆƒÚk«« Ô=¦¾'dÔã°â£<7"Àv¹"€À­JÈ<|—h-¨uQøš1Z6غ(6>`ÿpì ¹£ºEÿðÕ¼Æâ¿~CN[£t]¸Ä·ˆe”øÊû…1ˆt #tðñ.>§‚9ÛÌT°g±+³—¡Æä›f蟷؞A3jNP˜¶h?+¸3Ò� à)±r’å•´0€œôªqc•³èÇ/à ´`ÿA*»xŒÙ³àÐÚÞ°ËÐÖÆzã_þW��ûµªoG¿�aÔxzR|�Áz˜}¶l4ÂÆmü¨aNH½'x…"«S´ZÃÕæ¼ +2Ÿkp ¬cíÁÁý¯‡ß~[‡¦àë¤ÄÏjä�÷apëÖ­´‹¢0jÅ¢Ôb¶hÐ"­G_J‚¤¬ód5då!�„//%8¹Ê¬ßz¨öŠ9Œ�¯»9ð½Ä$ëéôw·Ùp²žs2���=YnŠí±© [ÃÑí½´¹õ€`ÇÎuÀûs‘®A°²ÚbÜZ-™©ÏÇÁrP©ä{öî`Þû/n.àŠY-n–ªsGÁÇJöÆåúR·Æ6®n÷"hXÀ‡©·‡öÇ´³Zæ¦åÿÿÎä4( ]-j]b‹ µ * ÂY"¸Äyð0òT€WS/m3òÕpàPï˜euí…v`t?ÝÕV]a7(,¸¨¶`ð6¿¬Ú Ð'Åî¿Ü)š€×rx7‚颟Ôo•y ÙT´!!q+UÏûÊi˜€�ÖF­õøñ’uÓÁÇÅí¡â£fx–^ôTN×íT¯.øAfÊRÃîZ‰ÿÕß½qu—B/›Œh}j ˆ²¶‰¨Ò[µþæà¿ü×ßÿßÝrħΰš›¡·–ØA]#æÂJ±8ƒÓ]ÁP¬w«0·d êa‚OhEßÞÜ_Â5üâ\ƒ�—æ4n´1¶ÁÞ¯¾óX7¤ à167_z‰,_h“þþlýÔÈÎd5l±£p£?ÖnãTL@epé ÷'åûÎÞü�ªQu1^ôÎ?õ÷}P^} + ¯@Oäkn±9¸ß ¾0|¼ø¨ZMx'kì¯ò¢é�òÜÊû9êóç#=¨�£ÇÀnm,3 ú“ô(<§7ˆ`î2]1;ãÑš‰ ”ÓÁs¤à¤Â8¸ gï�_À +PB€´§‹Ç�Û“ÛM_¹25Ý3 ¶ ¬ÈócS…?C¢|†‘X��4@plìvØ`$k0�Jûóô¨¯‡aK$1õà-‰õÆÆß6^ƒ�È Ö ‡õz—•ð"5Vå’¹4á¼Ýlõ‹ÇñÊþ­øÁ ?(O³â {£´æÀîÁÙ“xàMûìƒý‚`Uû6Zû_[ÿ߃¸ìZñšék(4ÕxLô”d°ÚêŸF\wï©3ºEîóÁ€î£µˆM jþ´0àsØ�<Ê«€ï%à{›%z�Ü€¾ówÆÔNG›ÃØ.£€ø;roÿ I0$괯 €³|Á¯Þ4+�ÝÈ:ŒAµ /|ƒ­<}ßó +Ó`lô„�|.-øúH +€ Ry\þ°»úÖß>F®ë¾ìžÐDá +áLù‹4®`«€JÀ Üöv¼ÏŒ­Ès"ÖúýⓃ'Õß…Á²Wœ6Ö[zß}:<kÓÍWße, �Efv·¡^Y@úTd4ÿË 6À&›gM�Þlãd®Q3ÐXó"w`&Œ°¤Ï> ÉhD!�»µ(¨Æ0 ©à'ÿ] ¾8®ÜÓ€øZ;€¾gœÀêÕUyüA@U„«A­†Ý:»g`£Rkx18¡Ï¾,êÛλ1'5Î +=$ f±À9{êF%¸y>/¨¢8¤Àóc—Á}€K,•s3àòxáÒepZ`ü¿¿ÞOz‚;"->Ò'Kö�«Â‘…}mA`�=ñÃÞÿT.‘a22pK*A×:)' i}¨fvÐŒu¸ä>]+!®Vâ£Å·qkÅXl7ýh• ×�¬Ô6mÕvæL÷æ~¹7«7�ë`®x•ZãhÉ)`²PsÌ9¬ÖZ­ÇK�Ý ÙL˜'ÎÞ+k•eÏoE²Ƚ0 +*!Ðx!üþ†Ã“›�^ÞOTW¡7į‡ÑÑâÿ·˜¾à¯æŠ»¤¶Üœb ”‘ øþb¹õ�6‹¬t +€F`ç§læÇ=;( 4Ú§¸…S€ý‘îÎËÿÙAûǺ~è.mD~¼^;ª_I¬/Íñ@_Ÿ€¦j`ÎÑÑ€ +Q7ÂnP?ˆÁ}e¾‹bU4w�‚ê* ¸ªã?;b<À2¥6iÇÂ÷¸µ‚E€ ?vü·F0± +”°'ØkA½âØxª2½ ޳h¯IαpÀZ—2l�l„æï�HAמ„éànWãrÜ¢ß ÀšuxbŽáBe†ÙLû5j€J¥öM5¹¥ +§¸e¾ <6'â¶Uym3L€V€pÕƒîJòM½EÁ�>{>� +OÊG_ÄRìŃz°%|Ñ\«lÜh­'åß0%l„”ô+žžb\ òUe5…•®èV»]Ab�9)‚ø(±mñRÕ*T|V¹c¤ÎðÝÄl±m²ÛnÓŸÃËÃ8 "À©¥A~.a@ +`WE€Rä&\ÍDÿQxq´Ë#€'¨Åqé”ÅB”é|¾ëa‚¨~–€Ï^�óµ�ë 4—+µ$*w£p= ùgÁ~ÁˆO0þOökƦ´êüïKnVž�Z€¼ÄZú~5¾+éº1ɸ—s©uè€KÏcâ¹Â” ŠÏsÁ2·ƒ ¶`YBb‚¶‚�0—2ìÎ%J *\Ƕ—Ø‹ †Àq_AAÏ›«ÔbVÑ�U¸|@»Ñx  ²¼�U4¤s%aLrg½y´Âz#ô¯À(ƒ+�ŸîI·ÂúaT�¿Žêå:ßÛQö=¨‰ô‰æ @;ÌùP™Dr¬ D.šO8]Aã‚õ�|ÆÀ$€�N¾¾ +€?ÅB2%O4z´uU—š´ìa jý®Üýºµ‘,uaAf‹ÅÀÔCTàË(ðìcöH +óÐïðâl€ÅðãýßÙ¥!0À8lD °óÖNggÏbl +ŒÕ°+ê(€GÈØ�9ü¨�cpëƒ >(Ŭ��Cÿk^Z¶V‚·ïx @µÇÛäk,€{¬zÄþ‹$.% x¤$¬ Çd÷þb ÑAwèÅÜKÿÜ +ÇŠ§CÊûôW�´[Së@ºÓ�â`/Ë0�µŒÿc¿àösÐ">H}…\žŸ)q!-h å \¹Bú3AgR0Eb¥�3€TN±þ8,(/×6ê1Ì·Jü¸p…ë|X–’-&÷×!^«ÑÔäÐ3‡Eõ.½¶ã¿^î C©S¨cI‚Õ ªîGÍæ­U¹ØŸ*ÖBuãG¸´d¼i6a5œ@RÜäÞÄ €€óT& “†3R[$©(hü§Aà¢x‰MÞÂ…ê}0\��V¾<ŠZ^©Ä  +`ˆÀÕ”R �¾ÀÅÜÓ€ýµÜF`%ˆÛÙñ¹®;ÕC¶Cz-h1`ÙŽåÀ‹ìX¯´ÀGw—c!þXpFŸ•ç#!æ;DÉQ­X˜ž 6‚ˆê�e/`$n)e½¶�Œ«¼ž•©å¸\weeÚ r, ƒ¸Æ¦ÀËØ‚ô§àË;Y�@`–HÊõ° +ð¨úã€ìã'8JƒT 3À‚½75ËÓ¥Hþ0 +p€$Jp$˜ãI2“øsþŒ`GáÙSð©`=$Nqí5h‡2Àí$ùM}i?‰Ã¤þ?þE†ço»KITæ¨Øï@l + ô›€ï0àèÁ/Æ;Ûm¶àa! ðÝ{Ób#Æ™ ƒ€| ô§ôW›H¤Î_ÞŸo Üíï�p$åÀÇ=ˆª-Xäce€W— +àÆ°v}1€Täk²Çeîg`›ó$ž‡_­ ËDA…(kf¾ÐP1ÞóÇ}¤08:üðàÔ¿7“…ñ¹JÄÌ"/µ€ýú’¸üÐñÓË%ý¤ŒÛh|#ðÛ­¯$Átqv»²7òß@Nö~�ÄÕJ #zE˜i{Â6p0ª‰ôÝ”™ù@Þòƒ¯fÀîô,:òœ‘;•ü"þ“n·Üýçî¯ëKõæ7|Òï¢îAÔ`÷`Ýů£`Ù£@îíÃØƒdæ©*KÉÆ‹Å« kwÚ;»*\Û†!Àv þíìaü–ínhƒãê˜� tÞÚcÅA†`Çb@&@ôÇá�Øt°‡ð6¬ÀJŒÒw#>8JØl²ÁV[yˆÀRzt°À \ Àžì¯àj³0],²Ø“r’Àóàq÷ Ü`ºÜüâ×­»}d  ~ˆÐmsˆ¡§Š~Ðê®%q³›-hvž{�$¼Ï ýƒîFÎúa·ú¨k;³`«µqø°Z�Øå{ÕH¾Àæ1 ûA‚[?Äî|2p£[�«ó|(4FA…wÏ?ÂF<ÆWl¥gÀ¶ ß«(cDQ »±÷.æ+f‰¤'q# +VQ+^¯­{×cˆy¦’½c$‰½«>OÜíê5&GÝäIýQ½}óÍoޏ‹ó~¬Û}òmõèÒuÊÛ€ê ÀƒŸÝŒCøŽP�ð0 RîÆÚNÇ:ùFj|`o c +€ÛàGc +€…77Iÿ·öö¶Þ€èðõÁª0”Pz9ᅦ=\' =0tVC¶ dØ¥¬Öš¾[i YÏõ,¦RðøuØFxVVðÁ¡Ã•*Ÿ&ÃÁ$_Cõ,àZt—ï¡1À¼£Â +á»!*åÂØT¹̯(Ÿ¯TÙ,.þ¢_®ú¸|+Õ±\Æ:üzE?œ¯»[ã:“¨c¾êOŠE슩E±Z¯.zóÞ¢W^T·2¸Ÿ‹‹åê| ‰Ü¨VyˆR¡0SV|õⱆJGÀÁ L ÓNˆç£DÕh5˜ ´2"3(¶™š˜Á +ë¾Îuqм鯸¾3õ/ÃþBVVnÖ_^ªß¼‰ÂæJu-ª×£GÐõµfíÏGk~¹T(–q4K ÅXàŒ*àÄÞSúïò—`w« Ë!€•"þ‰nc„ X@aðÖ^go�6c³³GþoÁNq7îóþ/zÀPUî®QˆD&‚‹ºª4ÉØP +@æö”vù"@.ÞJ@£ÖlÞIk!q4Ÿw¦ºÀ–ÔÏÔ�à€rÝÝì}@fG„*Ü•1Ô¿pÕ›ðË׫Ìa,«ó~d—h§ưf¯Ô'æ<ÆÀ²„£ ¸¸@t{,4·/òÁ2y¿ºƒ«˜ VãjõòvÐ�}¯P`YyeŸFmÂIAÆ„o¤Ùñil|ìÒ¼SŠ¿ä•«\ºH/¡× ‹ ƒzbþB^ŽãúD�O²_9Ì!wÁ,ÄÖEpï'_~Ù ï4Ãf’¼Ü¬Ö‘ý|¯„"@3R¯DÆ@OZ€3ª€ ÆÈlµê×pV/}e»½mOâÛ�Ög1€[S ðd6e Þê0À°ÁÂÞž6ä`¹0使إ衆kˆÿOÝ~ã–ÕÀvÝ(¬�‘0pz;€^p0ÐS�ZÍò�}ù$Ö—A¯¯¢$ wè ‘ÐzÊ|9ÿnÙ?/m†( +ŠÅÙ‚î¬Þæ¿z#ðo`œã3ZÕ:;…VYka�¯Ðd¥�à.rð´Õ›�-}Á+Î(ÊÕh#]؇7xX­ëU=áú:÷ŠW Œ»‡ñ—_Fû_~¹oI1€âŒØ×‰¿\e ÂÖ£¨„| 7¬|óWÈöêûÓ¹X…üõ�hªà¡ �ÜŽ££$9LžEpFÝCv)'-š$NÅÝoªGQ|Ê÷`9ØQ4f¾�X�‰Vûí´;¬`KÀk ? ¾‡ù·Þb ÐLÇ^{ï§2”ïì¼%p��3H‹{ñÖn÷yЮk +ðTx WÌó÷‡i΢ðÍ·8ö,@.ÀºVà!‚•ZÃî#ÿUô¢BWö87DvFOú‹ý¢?À‹�°Òþ¢?á®O +¯piª°ìy³`:_^Ì÷ ;Ú²BÉóiÈo«bq¨U¸_R€Ûˆ2‚6Ö;ޝƒªÞ,²Œ"aÙ—nnvk‹ÅÂØ%ï:#Wúö"HÆKì8)53úõ+“·5Ás„�!™C™-¸d•%”ax£8KEB4Ö�ŽPÔhÈÁ +еõýò7¬SÈ €¶Ï�3ßm,€Ì‡ØÁRzôÎRr +`F` Œ¦£;(þïíüÔÄ€ë„ßÛÚSC ½=BIËÀ ÒwWÿ?³ËDì—ÃÞœλOŒ~0‹XàØ³a¸Ï @ªí2ºG‹>凼ÊÅÀÛŒáõÔP8üÐ!åp9Oy‡Ü¢âŸƒ†¥âÔÜe¯@‹@KÁÁaŽÛð¥ZeyHBÀÜÜbÓ9mLPI‘–Ë�Zl˜bËFð¿ÄÁó'jZËÔ˜Ž’b:H…�ݺ>~a¬ø"òsTÀz/&�×Ù¶¡Æ Öø0#vˆ6æÙôÿéÈXÛ7ŒY-»Xó*à±Æñ¶7Û»›{à·1–Àc(âï<ØÛzKÁT+Àó±ÄÞÜé@ùï±±…c0X ÕÆyB,ôÑpž?C,Ý�‹Ò cîÙœ Æ%%ƒ³À�vïìµ|`@ÁÇÖ¨ëÖƒZ7ô#x‰ ÷ÜÚ8Ûà�®ÙÏF‡ æŠÅÙ G-áEçzù†�~βëa­\*8ùY±àWÀI|Šz¹¹ös›’£¥`Ž+ÕÑ)V>–ûÞ\ZY_*Ú€=ìaIK$ƒ_™ ‘`‚fC 1سjá + �Ýv‘š`;,³X€ @Øh¬ãhø$16 _>îª÷Kd‚×rCÀ@¿ øcö{ '-ÛñÂŽP,¼±¹½–w:o²*ð-è~¤®³átäC,#`¡µÜíÀè¬v¶Øl`ûŒDýwß»áˆï°D�ZI^9 <Ù«X!öÁû~0¤€~ó-�? ©Ð§*|¸;l…á­A7XÌU=À �k@‚Ž÷Q4Â×]îÿò +ž“ìñÆÙ qÑ^H±›ÐŒGV¼±>&bø ØxÐçÆ¦ Á¬{ã1�í¤®ÎùÞ“"™jë§Ø�òX�ýƒ}œËÚÒ�í¤ÇÁm7«žÔ§æ + :ôô4eb…+ž?=ej„ 6€Ñ°öHñjPk˜`Hž½Ñê6¾kì(^bmdKñ k¥s€ úMÀw €þGÑ¡½×ÞÞ5ã± ¾û~ $~k�ùðßÞÆê½ÿÏÖ.œ< Û4[{Ûmõ „”õŒì ƒ ³ë¼‡ïž#~ +¾®:‚ÉÕ28ˆò qv€m4Ä` #c}Ž~ õ+¶èªE­ q«Ãy§¶¼Çé§HúÿÓ)—ûÿ„1wË…9ov޵G5ÖMبXgEÿØÕ‚ú2g¿åÓðÁÌ\PTÜëŽ ãWì톩å _.[`¯—Æ®§g�ófË`G¹ÂÇ[0>quœÓ*Ÿ¼�[ys~P¾ŽÅùU…ƒ~©„<, @Î'‹Ý¹“Ôö�ÖÃdŒÖA³?1d4%òÄ0víšxÓo¾‹X6éìî½±Ç�mp €z²j>Ð~Ë Y½YÏ¢ÀÖ¦5 +f`gowáGlÀ¢&àb—Ý=žªóþïu�òÞ®»ì)*|f v`µU½H‹ýEÜ×¹ø¡Àm§(Nipì½Y `P¯½öšn ÎàÀç[IqC�ùÀpk3Þ»—ûÿ„\¥h°çsˆÀ;$�÷ékJµ’>y¬pI¬„ ÀÀ»€±"í•1��š»�íÇÒ%Š>˜ª®Î.�å|¡‚KÅ-®Œó�7“¡X´¬b‚‰ð] =7öœNZ7ßñ¨úSE–bo h vËq‹ìÇ$¿Öï)�S9b£•:¼`Å™Åc¯¼2Ô<ëX 4ÿÞÂ._ +®ùX ¸»»ðÒKo¼aO wvÞÚÜ{°õ€½ý€Ö�½$ø[[›,à$X ¸û`waá¥öÞYˆœç[;í- Rþ#ÕÝ=ôïuÅz¨ÔØ¿V©Ä~‰…ðEØö9Ø€D­4ûcCÚœþ^€,ÀšÀœ`¶†é Q[ ¢²X�SŸ²ÈÓ|SwÉo#ûhÊeÿ?N?… +ãðÕ—ø>!GMõLLÍyO=¥€S|Þ�”ÇçôŽÔš´À”^_ô"¤ÂÔ4ßZB`Éê$ ;d»Þ}CñÜs|©aJÔ»“\—HÖÚž{ÎÄÂØ»E�É>EØÉ§*, f°ÃrÕ^cŽS~kEµÆF9²,àM! kú0Â<ãX¹µÛî,tTÿ¿ [�ý‘,Š[Ûí7`¸bó­½YiîмÅiøÿÍ7iXÐY¸öÒöÞð¼ÝOm îÁàüyJðþ<Úîî/~ñ�‘KÁ‡½‰ZP.M>eEx_'qBÞÓˆÀ£€{ß|KÀ!Ïìc“~P[�^§u®Á-–`cx/qS|‹öžý›£{�÷.ð§2@\« z <î¼éóσfˆßsÜy°pîú*cïåW@&=9Xk„ëÁt1ðP’c7"zz¦]¢Ó,Z‡áQ' á@@ü§ Ó|(mñié‚ÒÙ‹L c|à Çàø$†€çÆØé¢›$ÔMŠÌŒŠøçáÔü+¿ºŒ¹Zw~LçÃð_­Õ€ƒÀlT� ¢�Í¥«àtƒÀÅTÀ™béä+¼ùÂ&(ÊÙÏèÏ�d9°çÖæÞÞ[0l¼µû€a@ø0@g�ýˆ¶÷~ŽD:[»oñ 3èl-PÐûÓÿÿâïÿã/þžÁøØ3»…/ÏTÙ3ªƒøñ7É#\¹ÌŒŒ ¾°ÿqàþ@“Í3ý(Ž[ÉA´%aÒjm`MÜZÆÑ«`>k#nñ4Ë�ãÏñ?›Rfùúc>L~…Ä*^-–àÉaôi¥ú<òüUº† À¦Yï°$ µ¢††øðèñÑCܰr|pøøñïºÝ‡O�1ºÝ˜ïõJ¾z”$_ðÝbû_v»GGO’nt”´âFà/'�Ÿtùz@‚‡å‘àÑ}0Øó¯{j,Àz©IIü9º| ”jhP"˜£ˆ�™E!¶BbÌt8cƤ¢N/ŠW»È¼­VÆ­l0_eQÿ¯È7 É¥õàÀ…TÀÙbÛØr«Í$>€©k(°G m( +ö¶@úÿ#zÛPõ8<ˆÎ–@oª™ÀMik÷82k +àûwö~JÃÄSÖ í�þpÿ¿µåj]Üðz–½ÒÌ̤73Q*M–&'KPÕ‹‹l”íM–&Š““(NbfJóþÌŒ7S.ÏÏÌc‹E¯<3?Sâ0 |ìƒéÍèÆ`sb¾Tú1FØ|¾úc{ ds3löÍ›Xž)sÓ‰ÒäPôl¯³!ÇøüD/ðúŸ,€/uŠª^°[žðJåÉ2îÐüÌ’5Íxó°€÷W÷®T*O'¼ª¿¤,�[¾¸¸Ä/ßÈY�Á�[ñ¹ßâRù奲ëí{éå—_^zyi©ú×7—ª7±v…» C•¼jÞiÞ¼éÞÊ=ÊEdä?‘§€/3Iu2DÉ”�$éØÌ?X3Yò|qžà9 +“3“…^`.VÖ›)-"_—f�ñ‹\ËüV]ñË^uYn¢4Q¸<1�ÿçŸrÈÀÅTÀ)±’ž´Ç��‡YØ”ØÞ^Ø~cw{©>x °�bÁîñ p„€ìÀæÞÏUªxÀZÃÎöÔÙÜÔÙ ¨ñ º>0äõ uj %£²Ùb>·�7ÊAxÃ¿Ž™$h„( ðéù`5Ôó•é£ùA½À€ÊaÜ ù¼Å�8ºƒÌSÇêO2V{l“€0ÒØÓ8nÉ[]]žc©þÌðøç`dÇp<ð'à�:[¶é?êòQYÜ‹d±™$ûÍýýC3ŒÃf7ù¾àî“îKAµuãnÙ¯%Ýoÿ»Õæ&yŸ“oÂÞb”t�þN>aç�%qüÍÑ7�}H)þ�’l|ÿõÑï°>¬#…ÿƒÏévõ^ßG�ôD¤# pc#¬×1óÏGÝ#ä‘(ù×îQs +âÛÿ©ýË¿>9úöˆ0�’h_*´§)4oQ³ ï.z~9�ïÿFÖº?´gÜW‚ê#©Qfv¿tŠÂª � rÈ)€&àÄ8ðýI}õóµ@óðÅA»³¹°ÕyëÁÜÃã‡@à‹ú›Hèü·vv!¶¯Aì±@gÏí0”-8Açÿ œIg`¤wX +*zS^ù•hÆ«û×yÜ* cÔ¢ˆ%wlòÙŽU¤pk0¸z¢ ûñ£r7Dy�.&Á§ +- +€‘¬Ä݇ê4XÆ’ø%AmwÝŸóƒÉoxÅÙôô¬ÈóÜF¹ù4ð§z¾A7 +d¸)µÕ°Û|9J0MJ5ÁC”ÓÂæ>ltÿ¶·ø¢¬,EAÄWfñÝ»AZ(ÆQ5H`†Õ�„°ŽeøÁ}F11~²ß}rÔ=ä9iú¹7õv2�uÇßÚ-¾bCHõÃ#öFoDq·ÊøQnäS<8lÔh=d$nEÉ“XFDÕ’Àu”X]àùËʺQYdTv©!ã‹)æu®,(Jhº×øE{)Gÿ&àÄpJ‘>�³€cªO@ài¶ö~ñà­_ì0Å{ÞRЯc½ŠÃ(Ú¹p­MG�;�·:Üxws»ýóŸÿœež§ +¢N +”UÉ‚Ip0,y‘®Îuè äyiª0ê'^}1U?ëÅ…‘U–� ÛKû•JÐpWW?m¬íIõF#<¨U"¶>ˆZaGÅ¡Y +]�(ºJቫWNù\™À}FfËø>:€ G€:\ºêŠÉ¸ +GK±^»¹V_Ó3¾uŒ9ßhü xÝ€±÷K0ß|ƒ®{uV†õ„›�[«¿ÞâM殂ÖCj¬Å‡Øã·�×£Ç1îF²ê™ëÕîNý—(À“4¢‡ :_¶%K°öò>ÑŸàûAùãdí ¶¼¬ŠÅ …ÂÕ´Š1*!×Íáüf+a07WiÔ|³DàMÅtÛ‹ùE€3˜€‹Åd6øPóûH™õz6¯á˜° ×®-°óï…7wX gÁQúß�wG¢JòŸ��Ù‹ßB“ðà¬3„UèlíÂln¡ðúËû¤ežoU¿¸³sáL5ÐÓ`eü'ƒ!¨p k5Öâ+B§\€M`høN§/fèÞI5ÏNòû½w=ÄU†dk­d#l°úZ IÂò¨}§_À=,ŠãWÆOý`Hðr,·Q:Ñ‹ Ï9üÐ!9àêàúá®Fû|7˜a ·Â=¨¯Ó[·Z1Ý?¨¿ÍÇà䯱×6#¶¦cu.vg¶‰ÝÓù\†·»uvé³Ñ::èn´�V­2Ç—ƒfà‰ ÿZ+À3€Y¢ÂÐKC€u-Ec�üçŽQWa„¦r°ƒU ¨^Ò àß‘¹æ`tææfù!ë.�yð‹³Ú¶”k¼h€ N5‰ QPžo²T]Ê�̶ÙÜùé[{ðøí]¾û³ÓÞú9>Û ±�mƒ·vùf+K(©7QrÀ ±‹ñÎÞ6¶N½?õ†seÃôþðoÅð€´$ «ØáÃÉsUÝ‘ÒaÕ €XŽ/ÉÏþ…x + Ù_ Ù§ƒíŒvûŒÍi°52´¿NÈ*ÏN°µy¸aÔGCJï^™p^cqäð‡ã��Ü"‡âæâ?sšPŸ!„¸˜¾BÙãÆóáYŠ@k3«~±ÕZ4'ÈV$çã·|kŽÒè®EÉFc£õ_‘Z«µ^áËAAr¤lC +õBs­ÓË+y.�-1ʤŠŸga¿ø¢ðB g� —¬n�~muRÏð±o&`nι;ÞfZ훎73d -¢Ÿl. ¸vM€ý÷¥pé@H"м²¹Ã~¿°ög*8úÊúHiívÐß³ÀP8±Í7ß|“û_£~@*ËÆ�ü ¯BQ´‹SSøÓ6|í¤,äèHIN @! €øVwDDå¦èÙ+lHÄWJðF .ñ“\‹�AùÛ~°ìߨÒB°¸Uãul»±¾Nш)*x@Öëx/¤MÏzá‡þø¸FõÜ(7ŸÆŽâý?zÕp ¤éê­(,[§ì@\ êì®×M¬czÅ0TãÚΜ»Ã:Ÿ)ªºâëä¿Å{´”#:Z‹Àß�¾}G àŠ S9 Ènèà´Dƒ¯ ×<(£|ƒSµgz¹†ÉÐЄt­d æ æeöœnSDåò¸˜Fn×Ci«G¯p¹ÈV‰Å«�–«RÀ\ƒG¥ 8Õœ3°À^®ñ`ˆzÑŸ)P€Ë8EÈ Jon2Z(Ó°I¢—€2ì·Í>ÿÉðMÓÉŽÂëhhd ¸ˆï XÀ%p>ãWôfJ\î_ß2ëXËT)ÿ�¤w�î lr½Lò³Õ5ù¿ZkÂPÝ‹ÿ [Á"וV²H�RÛ¨±$,€oωâîø|’CÀMKíÓñ_ü@2‹*ÛÙht ¡ø“Ò"üKÔæ}In÷âmGB8bN@ò³?~uðÍÑ`t¸®`A�À�ün¬¯V&ŠlhƒÅŽ»–œÌ¬H·¹·6Zðÿ4;µ`Y + ³%yPÀ0�×-Ú§Š_Ä,£X¯€QŸ‡&ºŒÔëb­H €ªy6*@¾ßÕ`†ïQ�Z¡·mÆÚ¬’'çÏbÎ Pk?µ€ PRu;IŒC@ðx `?-f1¼¶ðŠ˜ÌvÂØØB�8ÀL +´¾oR%¨m;  Ùpxô‡DXh‰lÈ®‡zb K® ˜9ù~”>§G¦0•d±ºÎw +ƒáÝ—i¨òka w­ÁòÙÏ@H! Áøn™mÆØ8Š@¢¢bÇÃy{~fäà ¾½xð÷†r÷Þ?J'z1€(lÖïˆ?hˆ“¸:ïOwÉEï ¬×ÈÏt=ßò„q\vZÛ 9îªùãÅó@#bk?¬]ß`Ü«°Éz£FOâÖÁ�TÇ:Tß ÈŽ‚†€1 –ãÇqeW’Ø^Kn'·ÿ: +‘ä €Ú*ŠÓÏñeŠDñraŠ­ûÀ·.�aϵ±LÀåçóŸL-€h˜ÿŠ©ý&à©cÛÛê÷ï�ø&l¯]&ʶA::�6ñæ›°.V(6ëôHî6(TŸ"Ø�騟nD%�chóÍ6½?èÏR‚(‡ò?QœJÔz3õâu+¨4€ç/–S߯?8(WCPŸÊ •ìYþWu Lw)B¿R Q>Ð{\` °ò»bˆ‚ùÆÊÿØÔ§°N%t|/*ÇÈrÄ­0¸�„áÖ±_ø ñÚÑû´@ø¥)€ú�?…�6]gúûhß)xaX9è(¼Eÿ„‡M½†[üwžxÕ/£e�•OÙ¦�†±¸ ‚6¢¤þþàðoZ”ôl‘ëÏM+€#1ú�›ÚCÀ^HƒzÄÕë°<8z>—ŽòÖ)s„ŸuÆ-êue =Ý€ò;¸O·OPlð©Åi>˜Œ[êÓ´…q1Ö~\ÅT_wº xÚXÀ{êöK½�ƒÁ8˜%Eþƒ½HƒÎ^Þ{óM÷aP–§ H­@ϵL�¯–áÙaŠ= Álp7.rX^†zç×=8MW½\…&_ ¬Ûãüâ"ŠðÖAˆçýtÁ¢¿—Ëìš÷Êö… ïG5¬Eêh…u€~E€_@6¢pòµ×^ãR§)p°©â‹,’ùñ»lî�Þ¤7îýó"~ÿ(7oÄ™øÁ[±7ìvTNÈX»¯ËûZÏ›F€Ñó}FÂ$ÀïõFÍ/–¬f/¨­vqÁ×%ïid»�¿¨®%-Ù X˜~v!bà8Y‹¤Ï^+RGñ£¾Ô³>ü?~Ø9T§Àk³ÕjÅ+ZgdØ»”•9)QQN±4™Ù¹Aè{ÑÜ4r:õìòr%þjyŒ�â�.2tÄyú�0O è°&à•—®muX‰ÏýÔ�"}.&à,ñæ›[¤‹ùÅ4‹ $¾3 œÆ‡6„ l½×¾†c°ÔŸ�.Ñnój8èj¸ê0«‹Ö,HeÐS¿›ç¡x€ëš@ø0Té)øP1„ÛjÍ(@Èn[qáÅ~·ŠÑzµŒ»@ß/ý��Ô“Ln¡0Uï.}#­Ç\H`?ôø*Ê[¿sD×0*PßO À£? �>ïò¯^ +¹x0bµ¿Üµb-½Þ€Ý7”ÊÃæ�RȸÝ^)6 ŠAq²†{¬íIs>¬ƒŸÑÆÃx¥Ù…¡ÀÌ: ˜Æ–:à @=ð¦Ì­ -iŸÊ0ɳƒãβŒ±Œ?Á^¿ kŸD#ìhÙ Û±‘Rˆ¥<“+ÜÕåÑ +ê rß°sA€�x¦*Àböþ¿WXW�Mé¾e²WI›g—ÿßêlJÐÇ£l�õ[PF{ržF¢+0ÏÃsƒí½6O{a›ƒŒÿ˜|ÕýM‡Uweƒâ¸?9kE€YkÅSÎô¿ "ûtýÃûUgáj²»µ°“õ|º‡–W�h ‚ö¿ªRXVë,Œš ª-xRM¬WðS` w¥.ÕYP þê‡^d°K ëÌWgÙŒâÕm%ôzJÂ0*Á—ÖYbÌwÔâCPŽ�éjP�!ë~bzj\})…°»ÖcN2 +˜n²½·)ÀFj0ñjû ÷7 ³YÇO³tþ‹×ÁcÊu|Èw]Ùh%°ŽCÜkYÂÚz௮®†q9a00 +|…úîD€;Ï „þƒý| ùœ¯òù?V\=ªî·,ØÛ›–ƒDb—›l¬Û©Á�NŒ€øY +`íÝ ÀQ߀«ƒÜÑ��Y§® 0g#âœ["éÕ� <¾hǤø$€Ïµ R,–�Aà’aKD3‚Õ4 +„¿Y‹¾Æ�°j[d¶Õ-ÌZžXËTõ+Up¶Z,x ¾+î9DGK]}œ›cÒ�[ëU�'U¬aÂFƒµ0´G<ÉðheŸ/?çÁýSƒHGð|Â[qÇô|uM7€±-”Ÿ�7Ú¯¾¡vyÏZ`Ž/…ÀæÛÒÿ®@úŸ†€-�‘0R{kgg«£Œ(ÎcÑVl¾É1I‘¯0ŸÎÆŒÛí¾Êclnó¿P!pñ«,ݼÁ+bÀmæ%a³J¾YuâEÑ + E|Pƒfϰ%KAÄþ|y‘A¾Û›—v]aþx1�Ó‡ ÀE‡ÅëÙÜÌvÅúx†½±ÃœX\à:ø?m +à‹•/™5ùž¹QÀ­Ë†³Ä¢;½"@ó‡ltåSàžãrV`êóÑ:.:®)O¾7¾�Áðy1q'[! wqPñ¬Ÿ¯Âs…Iÿ["} /Ö=<ìvw";ÝG_ð1½£‡ÿëÉã£ßÿ.yˆEO’(Œôj@{º�p�ŠxÅ+…•±BÉZ÷'­¯Üóß"ºâ£$>ˆZñoq×yï[qÂÇð#ÜpöýëÚžòÎ +…Ò zï(è´ºÈ0Èp‡q+æk½»1NY­7’Ç|rÉŸ…Ü/\™¼2Y´7?yòí·ÿó(†»Šº­Vü0é~ýóû®`اû/G¿×³ÿ˜=B @o¦ã,¾z¨( Â<{ Ð~é%¬¥HC÷¤{Z°œÜù©žë]x‰E­¥Øz“µšÇ¡$ýYyàv£`ð FÄçU˜Ð«íÙª|!ÔUs­îO\*\¾Z˜(N°y4±XæsÒ‹~u±ÊgÀý•År¹>_æsÿø]¬V«(°5£X„?fsnÏõbG=Žm¸ˆöSàbͨ>oløáAýüñßIvñPbÉërar"p—X’¤®W#Hî`¥ªRøâ¶Öä �çÂeõÜ3ÆD lM7�_=¨5Q(.Ö£ª‡{<� uÃ8.^¸Ì=ÜþÄeU½ÆðÅa^x¡ð2 K誷X­¯ý»:N¬<‰%Wy艩I—w~~,ÐãÀjÅXÅ!ùjÒæJ½ÙÜ_ª¯Ý¬ß¼¹‚¡º´T¯bº^¿!·¯TWþº¼Xš,ÚŸ_êR¾Š¡U|‘ë­ðV}_E.g‚EMëêá�¤»Èn›îÀ’š&ñ£Å*ŠtÕf¬×ÃÑzG-˜]Æ›÷)ôa2VüàÆ$_(éSNù¼t'MeÂAHœæ7:!Ow‡àŽêbÍz9øCŠ€?`-€q7…U”cñ¥ç(ƒ+ÕêâJ´árÁO«'Çf½¹.Ÿçþ`j¡ð¢ƒ¹nóÝ á8ìÂ[Ö’‘Èyö'èÕ“GðèÞì•ñq)ü«l­;>Qà5`¯]4¦zMóÈêçØ¢ï¹Â¸k¼Sdäù!ôËévã®ûѱK8¬;ë[h­u»›aôMòë#‚d‹ câ&…OrÅ‘¸{ô? wbv€@=ÚçúÐ3’ÏÏXlïmóñÝ…W^btŸ„'çE|þjİwØ(ö•ÐÚ > àxÜ“jÀø�¥˜ +œùÞ8ÆæŽ¥óÂ0úcÚÑXŠ»�n£œÔJ"6œdõŸŠtD³~ÍçþUFB!Ž/"½Õ7 µÔˆºKì LÅ+ìI„Ýê +i—<„�ÃÜ1Ã-vå@n*ÐS-2(„ŒtÅ q¶ƒ?ÃN§Å~ §Çøtû1ðïnþ0C�Öî+HD’‰pd##2øõªÅ"o kg3€m—Œ™Žpi@6€6d||üŠW|ÅùqlâŠôþÜœœ³Í–LÉ`xc(4\*ò%!s¾Kx+ÇøêP6PåžããŽáe¯L¹Âý ïyš�±Žcƒaâð⋈åF+êëÑJ­ƒßþöàðn%iÅ�ânµ‰ fоØxÈ�aµ2,Ãå cÏN°Òo�{mëuž[zzíCp{îDÓ±kS2¬8`-€Ûlg�`„Û�Q5 ºv Åm´½µýs­—6¯™y¡Hxƒ§¢=p �þ�ÑÛ‚€¼ÈÞì,îË,›ÿ†3‘ר¡*Ûñõàós‹-?VƒÕÚ*+’ëW%c€QW÷™,�—pT«Õô·Õ +ðÙ‚ ˜@¦³{ʨ!NG­KÌÌCŽäÆðühH º3¨˜çûf)~H0ªdÉU,>—öõ™¡%žk/Ösû_º21nÌv¬¯5Ã=¹9WL»s ¾(¤Ûº×x8ŒÏA'Œ�±/ßô¹|,¥yà€)ÑjØ/��s¥íÁ +Œ®B\\ñ +°Iì”)jWeeC æÆ¯À¿0³14È,E O-ÕãÛÌêŒ +2F,Ïú!ëµEy?\ÁàMOñ=\äƒÉ`®7 1Ëấc€-Áž².Çuƒ79ÓÀ— `[6fŸVa-Aƒ]KÏùjùÇÕjüͳ+&Ö¡Ô¨ ˜MjÈ„ž_kÀ1ôw80hž� +€ PzøÝ„ û-DO»¹ž]~Bì`%üjøªP®¦X¶ÇÁ0µ pí•Ö²€”;»lðÆÂ{ܺÍG�tœ­íõ�ÊÖ±7¨I@Ñ5;KiðWÑ$ @(òRÁoÈyƒ’˜QŸ`ÝE3äµü}ЈªÎXc °¶Ê¾ÙÙtÃÄ„)õÏ{:½Ê3`k-ŽŒÃRZ+šts6¸Ñ¨@¸ç˜` àßQ4ÃX»`§¸ð(H)ßæèr1vŽÙ÷²ž1@ýÛÛþ¬#Íg§¡å\çr »0…¦EuͪÈ0;ðõ +­3T.?Ï£iKYd 2ù Ó�™š›�ݹ¤9�Í�q“ÙâpÇ`5 Úа²°ÆUy;¹;ÖOÁòܲÛ:kÁó4À³Q`r§ÍW \þ*c|®_°£lêÑ î£z>NS@1˜à¸xlÉ¥8L€H�_¶÷Iµ€Ø ìt:°/-,ls?@Û¹m…·54©Ví’PèP³^…÷'ðM4LÈu ~õF5S·¤äù�+€ u$¸š*ª²œ¨T�)k5Λ”G°Bðt1ÜÆ¡ + ,Ðü�=`<é}7¸>5mÝçð6ð™lã>¨E�ÎGh0K›óûÆ\õµ35NÊÎy�_b‡œn“ ³|—·^ßÀ_ovr\ +À½‚.¬ô±¦P„ýàˬˆà„�§´Ì‡“b�°wF·o›§·òŠ×}uP!—bÍØ �•MU]ž«´TÀ¶9 1ÏF€üÛ[›¶Pùœ³\šút‚B/ÿ†è´Ù¾Û^x…ï l[j6þÑÎ*0ÀÆB|RÅ‹íM= HÏ@n¸€mZLš¾Góá.Èëø×TTU™R@çMÓu¯‚ç\áLÔêNð¹_š S20 ÒdR´@%SWdkìì! +_w:µG'±·mè Æ@ÿ;Ía1€T0ÔóýãT àxÒ–ÞÇE~Êqð “³Þ$ x¦ÅøŠ†ÒùÌ®ÜnŒ5 ™+ðçz³,>½¨ ÀŽä¿re3ø`9Ćª··gÀV\˜Á=ö¨ÜŒoá’ Q*€eZöús²к!1X€œ@Z(yñY`SùÛ� WA5X©òÆ�hÜ(�ÿOV¬®tôø7öÞ60°Ã'†Ñ@"Ü�õ¹àÑ®³H²ËÃ[lcjŽOðùA=Äz}ÞW€9À^ŵÁ}¼R‡ßǃ{†D°5…8Ÿû ÃZ" Å~qJÔ•aÈ£FAa‚çÔZHÃò·e®bå”<Óm©À/²K*ù—3™™h× +ã�mØ’äëÖF«•<ìþËãß$¿mF Ý›à3:‰ü¹Ókù*Œ0Wd.&øPúëö&æàñS àøI§w+àó‚Ü©ýŠuÄ> *úþm½DÈ +] õØl»«a +`ç]œ! õMï¿~;¢` €´30•*€åã +_öò…©T„Y�7Žtƒ×�ØpÀ)zùLðy€^ @ +€¥5Žd›8¼®ØŸÀ +`h Œ8¦ò1€Hg�¼Þƒˆ¢º?Y˜âKºA9>ç–"ëóñÌ�a .Õ“Ø4g›/6¶Y ìAþ[U¾&"œC¡Vvº 3�HA�¾˜,Ýn*nï³Drƒ%V+SÕ#šÜ¦ÁóË%íf}3»a޽SùULs‘?Y*ù/Jt0âkVû€´ñŸ{gТ܎¿‚îcÿä8�8©Þ¬7ù¶.I‚i»< �0šÃ(\Läò.<¿"ô›» ¿-$ýI\NðàXÞiï <˳µuMéîÐàGE€±i¸¨£Ç‡PÎØ]Øæ1°5ÒbÂÜVì'^g+i  §p7ó +@1€ã +÷÷æ5§G+€ €¼X­Ôh) @Äž û<�×SgްüÏZÀÀW2?  ¶;ƒ({¥’ +ö>_Àƒ�{ÓŒ§èx YÑšṵ̈Ñàe÷)¬öf–| Õ¥2›é• pÛ“U{õN¹¼Xöø&žùry¦ÌwHUKa=Xñùš!ì¼èÍ'žG ¼¸¢x€µ -{óóåÒ2`É+ãìpF8”Ë¥*ßýƒ±ŒgRš¸:Q­/Δ_.ãSx^ê/_f£ÄÉ©ÒÄœWb#E6o-¨�!§&ðŠ8‘˜kÉÈ‘}Øqu(.¤PàÏèùÆ,ðm?H”uì¨� tÚ»4Û»íö+Úˆ¥¶ô‘€î©™fggaK@áC61äS‡ /]k/ðé#‰Ìºi-E©9 �è�°³¯ŠSœ[å+˜cyÀ�úbÚ¨?ЫÈÇàCpJljüt1€×Cèÿa + 0ߤ,ðo°òCvR¼ê-‡}X½ÅW7†4üš¿¾–'!¢«~ˆ‹HÝ£ôB>¼cNû‹} ¸¹I½¼zT1×F·)¬qQã¸nàr‡�fµ%Ý(V±�×ù„æÞÊ# +“pº8U¿Ì”‚/£ ŠƒãÆáøþÌ-žcÈâ| §T'ùêÂb™~]û*8Á1ûÈNã¬9˜ÅwªP€v™+N�³&A�Y§@ÞŒ „²ÕnP£-ÀÅT;öÞÜ#¡XÝY9ÇC~LœGàK=Y_€El DÀsâ¦Pù;z@1€7èÜ·7÷À{vøÇR龫ÂJ0[8­;ìv:áí0|p+ _üXE€Ñ1,1ðßµn˜à-ïS뫯UV�8±€ â.�—Ÿ>€£ÞQ-àé + Þ¬¯8¦üÛòpxˆß°„;¤ÙE{º›/‚ 'p?´Œ*·!(¾`ki¹M›A�”ëÍäv‰Uj!ïÿ2ŠþjôÅwÎV—Ãj9i„Ôî… +“Þ +¶TR•ô¥\LÝ)g«å°Î™ëÞ"óýf¹ì”>‡pK¡w‹Yßi6UØ\õ#üú‹STóW\Õáĸ?=Ug›½ùœužj×põJa Ìbc\"FûÁ"€¢ï#p^ ˆÞ.«vAéW^jon³¶žÔDª”òä>)¿µÀ +i€��Îî66ºÆº}©¾dLd°ÕÖ&’E2|ˆ›lmímíñ��8€] ì(*è•Á�Íðv ÿ¬X® *\j¨~ÅT ÀÀcN3sùH½Ñj¬Çu6Ñht«­Özƒ}ÍëëцÂ�œÆñ¿”´�ä¼P””»L��G +³OˆöÙàL1€(€¾¿‚À÷^ ÀÈÙ°‰¯Ç—ÂG|]V†*lù¬§ýña8¯XàØgXŽ�ù¡Æ§¼£èÇá‹W½ò \1Ü1ùÏ—HÕØÊNÒ/ª–[Œ +È3X'PpÑôÈGz'X½AgàMàà=ÐÚ”«_¹9%Ã�É0¬Ì‚¿á|ܸqîÈ œ ;«6éè§ü© ßÞ{%¿ŸÂ\Î\±4uÀ7�Ýc ½€4yö*€a½=á÷ÚÛTj¯ÍNF#Q’eò~.îÔÆ\g{/-(¸ÙÙÚ�Ög7Q{AL/@õÓ`ØÙCAâûêt:T8Û­­÷hØ)£�›ëa\ÝÀµìSq|@Í>ÖjGÁ>ûTbd¦uÐ…î‹?‰¾i†¿SÍ Qÿz ÎAet«_> 1/À°ƒ�‰õ`#\Ö‹dIà˜8c ºsðM¦pvŽ.ÿæÀ«8¸¿sˆß`&ž)‡±‰¢U'×AY>Éé–‚¤¥‰`NN:ø+ Ê ;TW¼‰)¿ÑåCŽó¡O6Á©Aø1¿ð­·0æk!0ûÞtar6U9¬U¿ôbi¢ø‹e˜ îP "¿š¸3a Ÿh±¹øåb±„©Ú‡´µÎ@qM!û¬ƒílJ0ÍFEXdÍ’ÿ¿P ¶ôXÐÖy¤AÀg¬öøB�ÎÏQŒg¯ o0@G]NnÓ¿ƒ¥\²Õ�“‡X >`ûaȆöÖK à¹ÊÿdºŒðƒÑ;{Øp‡e °„Vbk¯«Á‚ïÒ¸`1Û0MÒaw÷x;€\ k H{Oæ?$ý]ï½G7£„=°ù4‡ñß6ý€Š?S`ûã¥/Q ‡�X¯óˆ2ë +©@³Oà–┞2 gF(€!1gP>u”ù7W­=ô¾W +Eß/%Q—Zåef7/a0ÙŒ|¯Ì.áé±çèóW§'�«6öã¦qT­Fñ$ŠôårÖ«Ë? Æ>`ØzŒ°¹xÄElwm¨{ê�_!ÿ±„C`çC+Üð +ì ÀƒøÇ&ÖZ´’w¹ÖfÔ,³S™¹_¢ù(PGÑ +(Jòȹޕ+EW¤_öJ‘M ÁrÉ‹–' ÅÂØsÞõëÞuHžÞà À3W�ò»Ðó›íÎv¦µwÄL‚Þ™ÏþnínnR£skÌïîÒD¼´ÉBýÖÂ6õÛ"ÉÍ-¸|쳇ó¤—ûQ*û;?ÝÂn:F{“‰(u¬�ÀÙ�#° `1¸c§`GÔ€øòþ|Û3ö€XP0¿‘»ù5Æ·Höè4€Tƒµzð0J^®N²ndM€Î°"À> ÀÁ¿=Àk8s0(<‚›ž¼©~‰ÿì ?UVÕâÔü"ã6|9´æÙe'(‹’| €ÏvN`¼ÏÖN³©Nð^÷<üeƒÔ,©cä‹Ã³S��{{»»àíöööÖÈɧÈg$Æ6A|ú‡’ ÝÝã+D¸˜£½öÖ+ z¯ + ØdfñŸs»;°$�[ÁºÐš<ÀIcc(ì2ö˜=_lüýÙ;ÁYÛÄñW ¿^ö>T´ò +€"@ +€qý>à €½žªO¼vLÌ=] @ÏŒPCb=ÀçDqþ�€¬ 0 b9ðÙIÛõÉð6¯xØlNÞºm$–¡ +Ôh+ôKµÞNX¡Õ•¨Z*•aXëÎûŠò?‹°Ãœ ØÁ h€¥€Y��Šp,6Ý£•0€ÛQõ…"ßH­p£ïú›]­%Aø�Å“•¦jHt?ª®àŒm©ÿÄ<€€ÍSvÓ¥Ùì‡uˆËåö`âr¡xÊÇ�…Ø{hx–*  "Ò§³Çh}zgÉv*w¤ÄÔ¶`øphuÖáS} în¿Ä*l +ŠëÈHvœ¥wàÎ÷4ý ÀÎÎìÖ^gëUõ"°µ·ó€ïÅê6ŠH<£?­K‡*LÇÎlÊîuÁÖæÎÎO)@ðÍ……k»›ðÿX ãAË yñÿ§îo›Û¸Ît_œ©xB‰´ jBDb!®b«v5ÃBÔbÓ€ÔDLHa¾¿BUðPCÇy3³K/ü1š ÜG›ç¯¤-g#NíÙ]Þ9•/v~×½$H‘%;Sÿ}ƒÄC?w¯u]ëºïõ4¬?Õà¤`JÔTm›šPùŸ^¤²³ +@f +à� +ÀÅ4õœ“S +`3ªý�€Þ%  W3&N㵿ç$bÿ‰µW`™ßËÈëZmGÿ´™�—ý8¾OákPˆ6‚È»¥tª×­íP¤@7Q>ŠƒRk¸�HœÊ.¥_¡(¢2:OÑñ…È�D•ØúÅ©ó�—F¥ÂGVb[ãõh,QÈñ¥1â2‚BÁÏ+ƒ�”=–¹8÷áÍÎ��7(f8Qä£-‘˜ÉñÄ +'„�øåÄSGåÙÙ¹8Ko�±¼ô) +ø±T€Zå[¨¯RÙŒ•;O»ÝÏ»(€§ü±Šsæú~‘®pÿDPº¾}¯bm‚\-—ƒ`µÚ©rÑ?Õþ½]1Ö.¼þï@*þõgGìu„ÿ)øcý‹ÚLÅ\ùT>§ŽÎÄdNx€¦zrI @9ç4 âèÄtâë)€ÓZÈÀpí W‘ƒèÿ`˃k—™ž®@P– ’¤Ü\ †RÓ0®â�ð_ä½oÄ^!¨i`߆€%›Y�Ô£¹8YÖ„ªLÂxo5¢ƒ­~D‰[;¾Àœx猢ï:®…σ¢ú&hVy{ºÊ +ÀØ‚ÔõWñ-ÜqJ¥�ÑVæÛp F%ŠSy³³ó¥%®Xñ‚FXŽðóU‹¡#æ< · o#ñ½@+ÅÇ?ßÔ˜w'¯éõYhž!4úÎnù�;ÚæŸî´;B7å¶‚ùÎ*•ÊÓÊ +hG§Ã;;]÷ر}™O9^1è‹–)$ÚÙ„#)0 öÏövwQèˆäÞªñ�nE{´{}Hã ü{oÄxþy;…ÿ{ÁßÙ[€`¸DL\ñÃ1€oÖ¼S @MÞ7 ð+á9Wù@¼~’AIêq ± û�‚Ôê ‚´ª©Ì{lKÿÅKZ G@NF¥º~ã§xøÖRU¡C@µÖ®"p ïpZàK� +3…hXàÞ¾8yÍH¥ÿÈ*À–š‰à ÆèRpà  ¾Ò­TÚO5¬/$¡Y½¡ã‹�m{\.hGÍúVš Ï*ñ;Ý^Emˆtžáeàö«ÐJåÎ=Uª±óÏ‚? +yþ}®ë|-ÀIK@zQÀAî¼5 ;‰D®À[k,pU-À[c”ü*Æùx»˜vNÀP.6‡â \u˜ˆš9¬þ�1žV݂엽`M�ФܚlÿÔ™…ùä ¯Ð�V–cº4·Òmw£„£¯’KðëÃù­À€(€dKß¶8 +û[ƒÕ¸É,s%I6L4οyœ™?í!K‚0�êÀxR%çéâðŠ�Fë¯6=°ª±Ìêëjâ‡óïk³ÿÃDÄ„·ìÝ‘C°j~›’F2ôHýa2ý?,Þ ì¨7dgnZ~O�–ëÏö@ÝÚõi�1ÉiC€–Cín·‚g¯þÄrxYã^]-Ò^\@Ñ¿³û¬ÓÙßQ7¹ðIޠȢÝíü²ÝWSg9üEPçÀ¤%`žBÓöÒÚð�7ÇRQ¤f«•¥G­FëèèÛjsó? €íÖ¶ ÆÖ«†.6áŽÇß? AYš½l‘êq+Ébd€ÒMÓHû‡Yjê²Vè:òæç,bLâY�n71½{M¾L}lƒdëp‰¸²À› +úe~Â?™˜�îvX]]ÅYæ±*hÙ ãMŽðG?ÖäÅÉ�CYp:·”ÿ‰¦‡jÜué?�$(Ü,E‘[aü)N×⤦ܬ3ó}�´Sj±_°.cQf–´Z­ß´¾;AçÂÕrŠ®Ë�/£¸¡¡·”؉5ØqL÷Þå�áaðÊwûöa’¨qŽlý>Åÿ}RÑÔžiè§s׳ò+S’ªµj�íÑè{«D„t>1 +‚Ô––ÔQ `»´¹¦�[i£¦E™ä „`ô÷R­ ¼2EL!ÑbgLpü`=õw¬P̵�RÞ¦øÀmc³9÷®�œ6¤´ .€õðë¨A€Â 0èSÌ÷]-!¾�Fìô v½ÃM°±ÈÁ௖F•î„&ð×rš‹Zæ˜?cÇ)Ù`ÜÌŽ_Mt^:úówý÷×ãïŽÓêða–Ž¿ÿ.Ëþü2ÍÆ/�³eEò—äy–ùq¢1š¿É …qzü=GrÙ‹lüïÍü&ͲC`9FÙ¿gGä¬8J¿gš$Oš«�bßÜÿw«8hæ +€½ -`8nñ¡Àæf¨¡ã›Ã髨Ã̈́히^ùC šž&m¢$#!²ô%Z|’ÞGÁHj|;þÓø[7ßè¯ÇýîhÜhøþ2Jü’üu–ŒÆYö}š¼ÈIÜ Iê4ãñFIš«µ`¡Ä£ÏŽ¿wfúþáUºvx|$dR§š¦òˆ£!gÍ¢M›Ý#ÍÂñ1ï1—š´ŽÈ8GÇdÂM’Äh);JFI©À!%Í4iÆ/BïI’QÐ$)©Â5:=¼€†å>q$d½BÉO×tüS›Q¡Š½AØû©@[m~õaÒ¾" +ÊõfŸNLL¿gÀóÎÎàó><43PÝ ð—3¯óöúHÐÌ·�žÚôÕ™@ + ­1Áð34( 6þŸÃjbtþb"1À™�¬% M¿|Þüµµ»«k¿ +…¹âry-7Éä<ÎjÔü¯kþðaèW}6R¯Q Ç—UMBò‹Ps‘Tn®­Q’FZ^^.—Ëšaä×ZùëeíîÝ»Õp­jÝDoËÚ‘³ù>˵îÄÎüp&ýo…ÿ% +à’¾S +`ø �Up€SМR=®H +@0QÃøy¶&!\@2 ùŸR À3½»\þý³Š?Þfgo-”—.ß-/¯Ýåio®…¾¿Z.¯éÑß]½Ëfk¶iyùþ-·ØcÍXш1j¥à×!»’â¤)æûeŸÍù^öïþšc“æáÏ­¬./oÍÎËl9™†ÃY³úer“¦œ1ãäö鯅ká]Ë(!ÔË’»å‡j7¼4qíÉ®iÚšUÞ>øÉ\¡¸¼09ˆ¦°)ÃÒËÐ|èNNÖ°|yùÖ­¹™ŠåÍe.íáé¿u¾˜ÞSÜ£ì7ìÛtÿ|¨ï˜¾ÇîÜ«°Í½JŽ}Ç šÒC{ÙÆl¤Z‚.Â_õ\O›ÃY­¢ ‹`Y¯WéõÔÜ`ÐQ`Å@•Št5�¾î³õ)ü1S\Ñ�sµÕoÚ¡'Ùÿ'¾ºvR ¦P5‡É‹Ç͇ÐôëãcJn¤À߆M! Ú‡ñaœ6aãM +z^š’êðŒ³±›“*ûõá+MÚð§ìø/”1zôyúB£½f'>®0‹^[L÷8«&1)Ñšå±3 +`mU +àÕË7Àæ#\€Wáíó¦åý»šŠ0é›KŒUZ¿H¯ ÏÒqÜL²¯bRà}÷—ãìÊÌø IÆÏ>°åp&HgÏÐŽ�þñÕõgiޝẩ¤�Çÿ#�³oÿv|7yuˆ+­É7tˆdFˆ#6æ G5œôWlëŽ5‘væÇcK†ä¹:gùòôØ·‰Átò?޳$ªÒíp‹|—d_»”·ª€qöuœ,•‚92¤6çÏ­™4ýHÓ„£qžs Ö¥‹‰Ég£l5潨ù]û”ÍñK){€§/üO)÷¦²��Ü7}ÇÖÑÏUˆ;*+(kqGS‹HÐ÷]b«(ìä Xû�Î`°»ó9h¯¨Ã‚ŸÍ?g#Ü„¸ï:ÜΙҟ“ÃAvÞ;Óíš�óœ{Ö¢ø1¥¨¢ÜP=À_ž rϵ\‹ñöhÜJŽŽFãµ/Ù– 74jÕkI†»iPª^i9î¯Pï˜VO¤(€š‰‡ŠL+€a¶¦9f6/t&öäïÎ<ÑkYÌ—¢F£•޲at$­ÿ\•µÑÒº…ü' 侓†�Lmfx±ãÂèqÜ`i˜Ž“xc#JŽ7£1©d‡mdÿ^޳»êg„¥Ç�ýáî·JYÒõãBI“ÍÈË�éácš_:(-E£ž½.D'y|[>TÆfÄ©-ga^�&­mGn‰îÉ+}4,Ĩ^.ÖgÉšNÓàû# elµø�¤­ñª_/îD OÿQãSÀ{¨€p«¿œN9@Ðöõ®pÅ=0¼§*¾œ¾Wã! Šu± —ãø÷p Ú;¼Š«Ð8al­æ†ªlìÔ¹ßþ¼Ý·F�êx¶ôÏåvªô°®4µÜv Ðh( h öqxÜÊkøHÖeòˆž<¦IžÕuhNÏIßhÄx”Gü§k“äUç�Èâ‹T‡z» þl¬ +€ë(G§}L ÞÏÆ6§ÝI `íIüâÕ›1IÈK]€‰åHýûXþ0Þf$YPšßh´’V+‹‚¯ ©,U�´±ÝPP�aTÓäV! Md�—?ˆ;k5<¯Þƒp°(:Hüðÿ±Ôgwt÷¦’‰³ærš� &µ5Á£ìQ¨(qžI”~3}:úô›QõûV’�TP 5€×8Ò°B9ƒ\iÍ©ÂßÞÞ¯@|a àŒxèἩ,ÐŒP¯®&€¿'Dn¸¾·¼ OõÒÒƒÆv«uð}óÉ÷�äHÜë’(Hͦ¡¯¶ ]Ö$z‚¡3 2+Îã׭ƆW�Æa¬yøeY¶Ö[Ê*�P×£GრJW)NÐÿ"€’}�à-ý»2œ•�¹â$niøxA+~µ<ä'Åù$+pA–á„ÿHãfqÕYk&ËßL¨ƒŸÆ>#íüÚ‹¢‚§j*[uòŸ+‡ñ‹)àÝTÀ<W”;IŸ×È\ÍK¡ ç¡mGÏ_"@±~­ÔÜ_‚ª±†¶².ÖU`°¯ØÀH|$å?0ètr +*÷pÚÝþçª7ø\ãŒ"*¿Ô‘.,ýÿ/`OåË€$SšÙ"ÒÃ9«~ ü[�x®%x[yš©«/[¶YS­»�‰íãÑÁè8JýñKµV+rŠWZ$³¹hnë+L>À¤ð¿¾80p�€jÓ?¼ÈÀe1€Ëñúc[þ,Þn<ÕúÒ" + Ñú×û¯£³$ëÍÄ€ÀsašE¯)€­4&ÀŠtgËO�‚n;�6DÔ£ÍPm;Ä&$ki±.ÎO~´FnK³`±´Nq{OR(¿ »i!ùÍjk 1xd +B¶º¦×fÒ +æ ŸpHÀ�› +'q´lŠSô¥"‡ÛäGc{{„ÇQ¸mKÏØL^ xнÞWtÚ•;+¶ÑîÎÔ–àlç­�¶[ÈÇnwGõÈC Œ´\$ŒO @¦½ùµc–¨T Ê;¼ï´w;ynµDtGÑÁt˜IñÿFéow +È/{)Ÿ“aä— +ÆÚQ”D�ÜJjdk<í8[NÕ5Dy$öyúm Ñ%¦Ú$Ë Š¤þ÷"% IèÙ Ê•.'^eBý[Ào�Ǭ +¹$pMÀ,Gï7—u¯k]Žª­DR˜ÌÒÊì” +â¼@:ÎLÏK�  ×Ô^˜� c<»ÄýÈZ(¹ó4×âãü›WZªSRœžéÄ4:±y|Ÿ$y A[éω)Ó9¯[±a�Œ’'f©º´ß\ÚÒP:1„QG›ò‘®»�Òûðåe5^¿80Áé�¡À?åyÏæùžÚÌÅöøÔád-êã3h´ µÝý¥# +­4ìêOøbeÏØûÙήš©µann¹ÀŸ�í|sE¼;Ûäø¿ ôïqùøÐ�ÿ˜ÞMDA8ж EÒ_ Óh\þÚ0ÎÓ&“Xb«Ç‰>H�¸9©5#K©wHã`ìÿ•mÿ2묩= µºÒT` ‡ÞI¼g ÀÕ¼g;€s–øš2ö;Yü‰Ow<fNda®4¶t™,CA‡ª ýœ¹ÅQ4Š·G¸õ]¦Q@—‘æ¶…!WñŸ`¼–q8 %¸Q*±‹¥ºÌ¶“wD5oÑ"xüÌñ/wC݉Tœ[~çÊ@?ñ6?µN £ñ_ôÒöó7ñ/(08†6!gò¹9^ÕÉM†’ÍtjE �ãjº!ÈÃØ'6£9ywwìû“×û¨€nç +ÀFûg· P ˜F3ýÓoì—Rj³ÛÞ­ˆ ÁnN r9¿Ã¹Šu¬'Ípg…µ"­SxOÆFì9 A(âàh§ƒ+aÀ•þoÂÿjÀ$²¢Ì:pêI÷QÒâ…ŽÇÕf†J#}ãÖ§££ÑkRxS „q7]q`&RÖ'€YX7pÍ!1q´úJ3¸ÛßéÛµboÔœÆD @Ã.pI-À{ÄœåþA–?‡ë[£Q_*­×›=yœ»2=ÁsÒk+Y"ß9qfn±* ·�Z"€ãp-N²e5õ¦·ÓÊFyc!‘Wò§ð•; +PšçŽÄ©¹€;<ËËGñð®^�‘¡*%mÀ17¶(n(¥ ¶ê…›^½qÔ³‚†k†}š ìcÇ0Ó¹ó wä'Á¼‹3�± £�XÃôVªqëä +@C€*°/0òEÿ‚dŽ|L'QѼ‚f°n¼ +¸í\ìШC(W8Àb�ݾSŽ!Œ0P:¸A{ èÚ]5N¨ô?/þäGþ4.2n3j½Î"#J‡`)*Û}š�ýåpŽ�o£Vö×IK‹@J1�³äɱ•4JýÉ?9±•@–Eë€ü3K/kÁy¹IX¡ýÀ…}®ˆàeœ¯¸,py_€K,GñûyÇW#®/æ +`ůå¨Ð‡l]b¨ ´oXº òk”ÿZ}ü;=W¹r¡ý¿ã,Iÿ6ÊÆÀ³NÆ/_¿þ�ìèuz”Æw‡¿NÇ*PŸ'¯Ç<ù£4Ó¯H0²lœým¬î�ÏÙ(ÍÔõû%™êE’fþ>e¯¿{ýzÌb)ˆÒ×þ†ÝÙnü*½ôÅÑ­ø œÈ~]¥N]€kÄâæ“i�×ü81³Éïg60æ»™zF^ƒtH³ï¿}9~=>þ÷ñ¿?gãññ±~’ÊzêY:ÌR?Jÿò·qúÒuáÿÏ¿ðÿïìûïŽG-õô “µæ±†ëH¶�¾ûî8n}Ÿd‚E’w”~÷·æPüA¹ÁC�Õã_ñ»ƒƒ$¿ Κ½Œ[œöhü�ç%_y–I�³ã¿eé÷Yvœ¥#%[’½N/hér1ΤÔ#^£‹*4 'ÿówiú uò4#'Žõ™&Yò‡,ûþI¶½dÇãϯ"·™/�ÎÛ×Tž?0Ðî¶ŸÞYq.ëv;ûùÖæ*e^?  º�¾SÚL€×çé1�.´—Â{®"QS +àÏf�+8»�|€©°Ÿ‘ÀS "`ßaNãð!ü{½‡—™…d«at×/Ï~ Nå²UߪaÙ÷7ï>Üt]¹ËkÕjXõ«kwÕ{Í_f£ Ü,þšïûU`TV?o{ÝeA.û`U�¿K Å9ë9~·ÌKýÕ/7÷·Ö¼;€\LbÖ¼C_€‹,ó{˜õ§GÓ�›+.¯úÕ‡¡Ïǹ|ÿ®&í½ÝÅËá.Ùê.I±¶Üô=%Oè.•ýÙFi¨Ù½Výp-ôCu½g[éaõ¡ëzï“Ö É°Ü\¶V×–Kss®Wþ/–—¡t7[]+ûå…"‹Y©Ô¾Ë6|]¾»ü„ƒ«›~´æ“s8à¯m°ˆâìÜj¸ö�ÝØ«««ÞÜìBÙ#£¹“ßåÒ¨º¦“?|È�­rØ_°’³pãÕp™£¸|ÝΔʹ!§~„X@»}gåPÞÝÝãÅ~ùz €^Å“ݪ®Âsš  -ºjË79­^û¨,·àžF� 0!8Á ­6ý8[˜è]õ‹0 ƒ\ÿ^O­«.¶Wß¾H†É›‡ÉýÛúìHdLJYZ¥È?úB‡á +_P–~KÑ _Ç4íН�ÏÇI3l¦Ã!»¦‡MHüýñxñƒ`q=bûfôtþ?@ì%¦‚?W×�°ß œU—µx£àô¸Àr8¿³}û§÷x¥ÜU°®;'EâïQjûóñ8<>Fh«·üaÊÓ:䩌ÓÍf3LGuU0;tS4÷­†~hJx€oLç·?™v4ðËÛ× ®=4¥xO—ª¢²Ò}ÊÊ�J~õîíò?Ðx!¾ˆVÚ6 é…ðÇ!ù.~)ñ·¢ãµ$¸]P÷KC?9'Iý¢U6P>¢0·meö[Ù&S�T–* \z¨ë†ØÛ7å0ö–4ß{ÞH£Fañ¿À¤þ ö“Âÿðn1À9ðc÷xÃrT_ßôpÞÓPXž1ÃÒ ŠR5»çSÉ´En s +¨yV%›ÄÃí¡X\FN +7#’œ$v|!Øi(µuoÖW/V“–f –y%Rõ'u/í†eõ4ZW½$(åM—iTˆš¸É®1»õÉõi&bSM’h©(Ë€�ÿÿ\fÚ £:uèr¦ZÂQŠAtü¤zÆ Q&ø¡±€®é ý�Þõ&QaØ5φ½ +GÓg°ñ €¶5èõÛr´•¦ùw¦’Ÿ¢Þýè Ú(€ ósBAì¹s‡üƒ¾¼îcw°®!u†&4i€®þBøs=.�/49óÒ p Ÿp@£‘dÕ±ZZç¹�¤³|À§RQƒ…³.óc6²§Ÿ¥�2b5ð-?FAZŽ’uÍ#;¯#+½jŽ.6ÿм“pð.}Þ¨øúœ·××5=æ÷6„…¨…6³Ú{(Œbk€éŠL¤²šÌŽ�¿7V¢b±)�·GÚò[y@ ®Æöìaå¿ëv7Š«£‘æ4Ó¸?¬×iyidýý×xZcý‡Ý¶Æ:ßÇCý�² ?ÕïõqU†„ß¼Èvõùù�š2ŒÈG•†0À(FsØÁìm¢?ªÕ2Ê&N úi30 +øa± ½«.�Îø õ?`�E€†€¬0Ì/Mø!Ó\o@ AÍG¡oî—•ÿ2Í8ʨ¬×&Öüï©:!wvûH�Ý `»ûƒþ„îìT`·‹á/³çzÁ˵Ó—Ç…Â|i‰|d½±�h~Ÿ<½ öùWÞµTeC<^y.•OÓÙaÿ¾s¼a¹¹%P¦«oª +ÙÐV]d¡Šü[Àû·P‰.àÇï pÞrd_Ïì)¿—éyjößµðå�…‡¡Ô<Ž»s¨Á+'µÖ óÊÅL‰�5Ÿ˜ð� ÷[®tÝ2GßQ¿¥7IÏ£ÍqÝÌBÞ* +€O׿Ø‘+®fõü+¿h�½‘ÜAµp 5L¬+ÅëÑÆü|=óõ]p×~\Bižâ¨æNý´`Ÿ4n¾vƒŒÙü…î€:­þ}S¤öË Wï pÛ¶{y  ·»Ç»t¸ÛKZÝh…¿IPîyW½ô*;j�º ÷œOGuÛš`_L» ;À=>�®‘†ÔE¥}Ocƒ³#§¶Q‚4TX� °ï�Á%ÛQì&Ìt|ûËŸì/‘@=IË(€ÙÛFšÄ…Hüt›´W’X:YSOiÔ�Ú`È-ËMp‰<1§æ{ɪʧÒíÙÂFT-ÅÎlqÖTø“eüÝúœi øcö8g9¶¯cÑæ{¿À §Ç³Ý|ÄÃ妳0Ý&‘€ìÖË·p͵¡i€u<î(¶�Û1Àñ~‘þu_³÷Y¾@­)é1å—æ|ò= Ç&Ûa/X´Øãɸ}¹¥åƒ-° IhM­VSŸ9†:;à;6'm�ÔTÔ+¹Ì‘[c+˜×D2uÓ!#½QAÐ:¹Y~3YÎhàãB 9Ì+¸s;!€ �hWg`‹öþ $÷ö€yî航þë=s¨Öx½ÖHWƒùŠvÙS‡ìvú +èH¶mÐמš�‹”³âÈ¢Ý^ù¥†³o�X_òÿw¨)€J[^ƒhFf7`vÿξ{Xîòr€Ñ’çi*gá=ÉüI£k·À™Â(AËl´6†ªeävÚ6WKÞÛDsÒ¥$üú’fm±Þav­¾Ø,pðn}¦€¶øûô8g9ºßn¢Ö÷}é�XÑo€¢WÜ ¦D’黌&ÛUǬÔ)€|=\! »ÐGtInAŽ@Lù ù•†ìTËÀΫmÌ”ò²¤œÔk”#|…ì´¶œ³»SrF# +[ãbÁñCç8kDÁümEurœÅœ¹ÖÃ8SPÃ69É”�È8boG(~žGÿr›QMÜĬ¤}ïX¦¾Ô²Ÿ’xOÐþî€"€ø©íUžKt4$˜Ä9[qH>Úv<6ÜßùL-lw«?4.@¨`§£K´QP@¥Â�À1»ƒ 7€h:ƒÝ/ÍØÇM`—6œ¡Óž˜Žç®nÿËèAž_ν,ù2@­p£PrÝ�äz¹ É«w—QÁ–*l�YJË ¯ýã†Ã¿’`ó©JQožïWÓò#üA€†Íñ¹M+€ëÇÞ©/À¹–€?v_€³–ãûmf�凘ž½5¡'Q‚°^ò0ÛÆk§d·¥Â?b!ˆ�ÕH×ÀøÛ?ýi¬p›Ò3j7fAt$X*És4¶”³8³4g;‹=rÚ j'‰h“”Yᯟq €(U«p-KÓÀ¨&Çp�+ª�«ºJËhœ6Þ +ò  *œYÞP±'‡ªš2s¢ +xsƒZz·Q‰ÒmÊfvž�£€wŒØ¼9h†®¼3ðÙ@€Þs`@Ä š¹!—¿. +@Õ€å·*À*v!õ СvwUà.…kºcÕ€RÚN +Ú¨¬pŽž  àúã‚ ~û¥ù(v2` +ÿ§ðÿÝþ—ûû»zF¥v”ŽË%€@Þ‰³•ùàh[>‚ÒIÜü=zt!¾@ÜHÆ~6bµL m;>Ò×ÉÄÏ÷ý¤ìmoxK°‹´…;£û¸È®­þÿ·/ÀYË~µå7ÿ 5•[¼�ÄÿðašPh’JZb¾Ö8֢޾ÿy<Op´7gÉ G�m; +é�KrKsLÁø-tUDÁàRÜ€ö¦˜×+·fXN¶êÁ†á_…�ûrdÝû5ºH:‡¿Œ…%Ï@ÜPמ�z-?·l;N²f2’/"³=�ñ0X€«Q�DªýãÉK +àÙy +x×X@Ϧê3“ @ fÕ +ôZÓ"öl@› ­`§‚ŒØáˆ);Ž¢}¸& ©æìá Ô=/•/ÞQH‘ÏÊJ·Ãau°š?!|ðÙïû9tpÇjOð? ÿýßí÷û}XxIÿûéQPZòàXÒ@süJüä gjo�VÇÉëqv�ŒFü%/“P³–¦ãq–¨Ìå@ ,¦ñaô"ÁàÈ ª¼Àíô +¥d;e£×G]½>.´i`ïï¸f_à‚Z€¿K @–cü*Ó3KQ1ïùÏCçîõ¬‡jù§Y“´¦Ç£cÒ«5¶éƒŽÓìèõßþvDÆq©”Ä{m�ö8‚l”dIiL¥¯��Ið£,Kÿ#ŠGão^’â£#kxÏßA†$ù8‘|^ Ì’½:ÒKƃršFÉÈÚ#ð›c'Éèø;rN¿ØŽ_EÇi�ÿ¤N™%]ämŒR’Ž´Äë»ì¯ÁÇžÎ8âðãïŽØõ0ƒ7âì?Ž�Ód ÀEš““ãÍkyêäæÎn3 ¸s^¼c,ô”êìX÷z;Hr8@¥½ÿ84SfÛ<üîN‚€h\ôžˆ@õ€»B¯€—¹¦´‡¦…2VÔª‡‹ÓEh©€mDÈ@®?~À÷ý^EC•µ9Ë®‚‡çàÿå~¯¿×ëå>Ñy[ó«k~3þyÓŸ›�+-”Ë«n‚?¿¹¬ +˪dÑ\n2Êy7U Øµúðç~ñ»Zh�¿ZÖŸ™6R£ðµÕŸû …[…¹˜óªlV5»DŽ7íTð•¼s©ø‘Úü}úœ±å—›•š?Àò°‹ÅUÿa5|¸ùðaõaX]{¸ù‹!éº «©ÕÕf3ÔÜZ¦ Øx¶à¯ò¤7ã¸Z}ð"ÁVg?(—ÕI@‰nézJF’œ%.UÕ‰àn�¯ú¡ïqÞªÏ#t¦fýØZ¸–‹ >Y¡ê¯úÕÀoJ* +è­)s-‡Ñ²òKt‚ÕòÂì\9^sÏ+Ò‹ - +e�“ÃÒl©+©†ÑÚé¯Ò6,U§~мýµ2W³ökeÎ)Ó  ”Ψ€wˆX �ß]u»£(Hìî¡ÅA¤AÍšøË/7 C±wÐÏ] +sä•þ.DÀj¶¨Ïè¦Ô·³Úªã×�`÷Ú€]Ñmâ@ÅÚœ*€=�. 7øRAÀ;íN×f= äÿ®– –DoZ³y7 +Ëke?üèöb”ðÛ£§H +ÆÐú°™=r?:Ì’¦¼:Š{R!\&…žÈÇ|‘PzF¾²@ÓjŠÛ(i#ßóVK¨Î$‚¯F1|…M)€é¡�¯¥®00ÕðïÑàŒå8¿Ì¤Â¾²¿÷úO¾¢m–K�8e/%î0I¹‹'!¬9Ôœ?iÂmzšÃ8¬– sn:W°¢»Ä¢Ãa0;[ +£ø°Üþ9Œ’œ4D°Ãkˆ¿â).¯mŠM"�:ò<uÔõm¯‡aTEÈÓS•0ô¡½!2xå2eó«¯ÓÃMU_6ƒB!"“ÉÔCã:ËÊ1ñrI6›œœä#±¢$~ò\âçë˜\±7•ædùA1ùù¬A;�‹TÀõchù�àßÇ�ïVþi§³×ã…è=ÓjíÅj¡xÀÿ.ÞûŽUÆÉÃÐ0Â÷LìhTOÃ2šC +€-DŸ ®ª"ÔHƒž@ÑG6f…S6° GÀ]ÚRíØïh A\S â;Ü.èßßïïRü«UÁàåö‡—Yä'ß’ØiTšý°Pò¥Ú’h¨~ÿñQôõqLöðO“Âk5�|„žù—8$°X1a�ùÆÚá¶¶‹Õ"|”ÅËÃ8ð5 ؇%�§­Ÿ8^h¹`KÁþT([[ÇÓƒt;9ÀÑ�¿ÿJS•n¨!„_Á uuœøeš¾L�‡k¢‚hS'æPù¥rñ°•¼Ê³ê+ó$}®1j¢XÝ™%&ÉŠI¶†c£ïz ?Ôr¤_lÖòõ‡˜$¸¥–:ø½ä)}ßô_q³ 4N†_Áb<(›ašV–f!þ­÷µUHE'jLä±vMbZpâ�9¶ZhužZt„K�U9�ža=ª×7¼ •’Öù�‚e^U_lì•5ý€{~FFý"çåˆÝÔñTgü„·‚B)" Êl6F%RõOþ†‹Cðã×gÃô€%©Ú$ls,Ö$dˆô`$o!‚Ì·¶éS& »X\/�€b€íU· ` h<;ˆ¬´v;à*hgŽ+¸ÓÞ :} +vµ-§€eS.€ÐéP¶ç-¡ P‹ÒPÔèîh„´?ÄÅGðÙ¾®¿óK€fýŽ40¡ÿK ;�&´@Ìù?×àëaàÍÎΊž§¡\\/J4ïº}Ím38 +‚– EQ}êéW㫳­F̪Z]ÁcU Gâælÿ¼l‡¨úèºK-WŽ üöƒBD�Þ#2�*©…øV¦Q ôÕ™µòJëm-¶•”-6tjyûåF,ý”(Å«¥äÒGìí¤IÊCÌZ¯lúƒ^68žŸ! ‚dÙéagªáV�û}ÿ�ÂA¬ `´Õhm·ÔI#�Âÿ©;Ô½q~îHŸj«ƒm^a6˜˵$7Ò‹—“Çù•™ Á$Nü`«ÑHá–ºêøU¿^Zª©±�šŽ``_/›5°TZu÷{jºi?—qC\+±‰ùÞÍ‚èâ±Dš3DD©àÉ) ŽÔآέ´ù'q²bšØÖVœØ�¥ú7¶¸�¬:TÃ)›1è^¢® X  �ØYY‘ 0PG5Ë8�8à¾õUˆC ”SFw@æô<ЇT<·ÙÂèC‡¶'љԶ€uxt¥MyÎ…©ì·Xa§ý´ÒíêÌZú%;âì[K@ðÿ…S¬W A—šûþx{=6±ùD/!€Ø_N ^af¡n)•3@êk2iȲ«²B=¨G®ó 7ÉuµñWÛQŒÏšrp$?nÕëéò ’¥T*Íþt®ÄQp0<Ü÷/~ù¹ Üä +@ +Düª‘R8Z•�ß<‰òV+wµzq| Æo–%2Ÿ (ÚÙÝ2çwLðžùþ ûiÆšŽäá¤åd¨6î?Šyޏy=Û¨ž,oÚÅä䤋ÿA·¶¼%M“§–ý-ÀÐÕçñ—nèÀðàªÿÌŸ´—ãíe7Îå‰qÈ$¶£ ¡¸¿’<Ò“‘:Pš×�¹†›ä'dQ(HNàûéÍ™î}]ŸñBØ$°Ý}Êûâ•f ^^ó˜_V*¦¿¥Y ¬�ò)Ú´†g$µ5KPÃd%¼ûK^êCÜgL½$Þ;�CJýùú••�-ÊØý Ça"·>i“ø�žfûç¸ë¨2ÞV*b5@Ý:-ýâaPW ðÖT�ø –3øx.UD�àWmM=Y@ÿ³³7Tp¤*'3©xÁë¾SæôKˆ”6Á>"±Ò\0oŒ’PÃÓÛél¹€¬¡‘ËÈÖuäá—c·¢ Õ^Ö1ù,^k©ýâ»ÖóŪÒU žÝŠŒäT¼¿ ÿ2ñÞºñ_®îÛb™eå`ܸçñ¶‘Þ-î J6CûæŠ|Ë7Ôì/Z�þWvfÝ»½\ËZÕ'ËàÓÂq·FJsR6Vƒ¯¨¾5ö‡�;ðkóQø´Ü^y–B5j*¸^P.•õybÉ²æŠæðÄ †ÅÙº®M‘[´½8��bš<åñ¸‰ú×Vj޲}‚èÛR×T5fË%¯uÒzmb3”Š9¼o,Àêôl!E¬¢ñJ¸UgaW;t…~!™�vÐæ ¯ÓYQ«árÐh±œ�þL•Šþõí3ù\g ͬv¾»]© Îω¹�}7]¨ ¿ë:@�ÊÓ;w!�Lá`Î÷ç–8†³üûýüÉž³8\ÎH?(Ïþdv®(âV&5ËVCt®@äÁÄuuçÑuä[};òSáSú×ÔnS›P8Ô·êŸð5)ÆP.ÀOç (_‡¿Oî¿èåþ®èç _ReÑf áë”Æ¤|jä¿ÝEÕ×*ˆLõoÅÊ* ¬4p-×Òj³®îÓé•éœÒÐÚòÿ¡‘«8dV~î¼à(qÔó/+vì_6½æÜËÆ¼v3܉0ž”€J¾If¯oc­÷ýçF[��%¹|…ྡk›Ã�n†Â?4¦BUËà4/¸5óÂ?·Pn\PZô‚çŽ4†ÇhhÌw’¸©õ?Òòc¹y²­�¥Riƒ§¯ãÊr°B£d�J¼Õ�½³ ÄåÈ䀙³.¡ V>µ Nj¥’Óè¾#KóF#k"?ÌÔ/ Ó-›ò!-êµ%/®N6˜ØŒÀóVpU,À€Eÿ lûÝö +n‹Áï Í*�õßek>mÏvG Ã¡4ЍÕÐKtÀ{”þ;Š ˆF:\‘…ï¼Âî*¿uL±nE¥²3h¾Ti®@vØWPr@ƒ‚®p^ñgþÜŒj rñ¿ÿ9øïwô´ß°(,S�P˜_„¶ÕbÇ’FÈé3Hi§óù…¨Ül®âE+#ÛOsC±z½/h£ ÑTt¥ÒBaö'7½_©$çOÊá Ì8 þ›¼%I+'yP®o ì“'²š&±JãWhìÒTD+ŽÒ�Ì�˜O²��WPØä=¥Xd2T›l’ßø”(§p‡Vñ“7^ÑÉ¿lz͹—O9ïèTêÇØo“‡�yHìf€M 2j´_A—Üʤ‰œDT¸©ï¡�ì•åÚ°¤=`Ó�bÝæô_¶ùø6m©Gˆ*(ÖŠ{ÒU\ÀÅoÕkÂx}C +`ƒ$ÏáÙ8CV–8à¾Ùý{Þ£åШPYÁ…ƒäpJg&›’4i¥¥ i ÍV29C}o1Á®¤y$k4lbâúÒRŒü8k.øpe, §^~æàŸw+”çªkÀrèÍo0"�`ÇÝön{°£N< + ôåÜkï~.ø£D'Â(»ö;Ïöñ,Ð×ÖžƒÏöEVqØÉÇÔ…s¸ÊJY`pÖ…B»û=À6£ð�{šDŸÁ‘ø7øÁ§ÄMçbh¤8)xs3j +¸èm`*®‚àùjÓb.Ê'ü?ÐO+ „ðVTά4ØPˆHK(‡·�(ÔÏh#.F `~nV}Ü|�ý{âöŸ}OòÚ?ÿys3x@†h}š7³ò½E ßH#ßõe«K(*{lÇ­ß(û£UFiõUŽU†O*Qη÷ô!Ôç°/Ó¡0+—!€a\“W*Yñ†‘ýòY¾ð"ã†0k\yß÷ñôT- {���ÐfT}Ïÿ8Þnllî|+jµFˆMQŸóTª'`_uJÜ9?œhŸ‰ûŽÉ7ð`' Œpïˆ~î΂Á6%É +´Êrñ�ªQÒZw”PŒÕÿkâL úJ®ÜÿxuñŒ -WÍè@:OÅ%ʉ?ÔÒ\€LÚO“6âƒMWÀ?ˆâÆ'¶�ø§¯¡IM8kì£μfv  ¸  ö¼VsÇB³sOê}w¹ >í_k8‹@Þ=ïnà?ÖÈiîYîªy•Ö�}¾‹Ü©"ƒ‰ëÀ·Ãá5X €«ìM‰mN·¯ž}ÂJ��_êDc•îé^ÿÿN''è³5bÄ7ÔìOo¸™ðà”(¨5ä¿¥ +%»ò¦”?ˆêꟀñ8ZÅ}�9Bh°T>8ßFñ¯¼�zðh!‘7X(ܘ™€>®0)²*üƒM•þæH�Fßè‹ +„QÓwS’  +„c†—8Û­ Úâz“Õq~Ô x†÷]± \nËB•U*£ÝRgö+€ô­®yNuÂ÷31�;žÎcø÷½ÈbÓ +@Š×ó¾ÆãilÔ (@ƒ°hÓÍ×vBj››ÜŸ€N‡î7S‰^nWQZ(yI¹©�S?*öuyuUý8Ò_ÎGÙˆjÞÒ|IœÿéËÿžþ÷4=2\{^sÅd«|qÑOñ¥U/.ê@¿#Šiê"�„Ì6C°I}q~C'w¤o]PâQ¨–`2ë�`üw4þÙ—d5N°Ø¨Z$xÊ4/€åþ·©€Kb|ÊИž]JãvÛj$Ý)pww¾| í©€ÞÙtÀ)ø]µåUÛa€¯¯(„€Yž|gçK|ü}«ÿ{{P€@m¡.Åp«‹ÞíuŸ®ì÷Áô¾øDÛr½Ÿí#CTs . ªGDÀ/Vú;ß?‡ÿÊÊtQ{òŠšËM˦V @Z­o8Ñ*X%Ÿê‡ �W�Qœ­“Hç¯Ç¡#ROò@Ž?V3™ÀnžW�b#€@ìùø§¥î›¦Z€þø® þŸ¢”+$G£h„ê*“èá¤/Û£ZÌO\�(ªá7¬jjk3ù÷æv»Š/+pÒpÍʲܴ£õ=[F4HøNý>Æ�:`Å%âGÆÓr1€û§ +ÀÊØ÷5°$ÿ‹ÐõãÙœíÜ­Õž*²®ûTEaŠÐkRPŠ[7J·=oXv×Åõ“¤*ôõ+�Óó#Šó ¡*{pæ@vhÖù®ý}Un + TZ-•å”—ìÞËåÅòã¢Â±YAî OE�]Ç} ]®\\/Ý6 ¨?°YçÕ%0ÙL•Â?çü74L€¨@ŒE^¡”Z7c¥åä_�SÀûÄþ™ò\Õ÷6¦Ÿ� €lçû˜Þí|©ª=p§RÝ@þ}¯½³«:y�ˆìôEr$ØY2ØÁP§bÕP¤ç.€ªþ$áY/  *m5%R™¬‘ƒ^Çøjw'eçΊðoxW¤pùŸ‚ÿ½{+îqŸµ(,ºHuyø€—7‚��`Ý‹Q‹Aí¤žŸ|BZaÝ`ýA#òØWÙ·æŠlKu„5͆øEáß‚€7´gð+”°;ñÅf1E¯À¿Klã²¢ WÙhŒ£ µÎj*óܘýV%%Y$XS Ï—ŠÉXÎÝÔ‚G¨‹Ø÷\„ÃÁÔö$»©?s4.ÛOÍ;Ýøä%ïöÒ�åØy¤�w_nï› +À]"÷ô¾¯Vc}‰ä1ã­•VCÕ�~àeÆÓz´)`­9ÌëÛòkÝiŠ –¡…Ú$=µœ´$5á[¼zZ:J6êKó*¥Ußk¶à¬¬\bæ!�RiÉÀ|·|ç`­oàypuVQwÀ-=¸]ðœË‰‡Dš+‘Óð•XN—l¸—0Ðô�ÜOx©à%kU©?v™üϨF}BoSoÆT¾ƒqMítž¶°8àÝëìàɃYiü½»�[5Ðë<Ó'å<'ܹ‚Õƒ·×îI·«8W3 `G¤1ølÏΤaFñ-ú¹P£`\€Œl³´+T�Üþ/ÅÒùûV °¯ÇÚ@¯«ÁB»“Ú�³ð¿£ÙsÕƢȢ>ÕÀ‚€òœÏ*‹ý(Vý’õùÀ?ËÈ ÿˆÈßj|R¯Å�VE2UÎ;àÔœxa}£îÍ)Ä+˜™-¡ÿ]^w1ËL£Oàþ)þóðfyužg‘`¥Á–…X £˜g‡Öˆ]|á¿(¬G®pn¯îÎ×�çf‹!öçmŒ P‹­Ú�÷Ôäüœÿv‘é ÷�`Ïó¾#Onþ| À=B Ú÷µ††àt§Ѹúм£ú¦9|§êaGCµxoµÔ�A»ÄYÕtXRš“I+ßÑFò€)€õ³µÓ1{oD#7¬þ»¾Ò£V· •Ì#S;ý±¿–diBªê^{ª^jˆ¯fûA”5_½ÒÄ]˜8S»ªQ²¾´¤ )ŒjÉ˃â¡hHa‹²Â±/ãVZN9 + ¢PËúü?FV»J�¢³…(©ãä J�6Pç‹<„u»Ñí; úY¨¡¬ þ“‘f§Üæ%¤Ãðü*•êJKkÞГף£qõu–¾äFå$Û­ÑÑ(5‘È6�-ï¶—¬ú±»±‰iH0JúwT20¸Elî$€#‘ˆì(|qÂYE‘®à\P© Š-@§%H†N[j@Cûä¼X€ ŸítTþ[«`yûûpÁDìR„«ŽŸk�»ÁÉw*]É("†ýÁ_°n)Ò5 Û“ €Ðïèí\éof9í¬ÅÃ5ÊÁ8ô)¥çæ Eµûañ£È¿O + É0$jœô&÷â6•­½Uï“~˜kw¡n Âõ'QôÀóBkHÄO–‡ÅGø~ÅÂììÌÜýG‘º€¤BÜ¥6ÿ*ýHþçÁLøWfO4¦'¥gúú K‡c×·å1'Š¢çqë“Ðf'£Xý“¦?$§q-UÅÀâø« ´Œ' �bµsLÀ¢j–5%�&<æ‚0ùÊ×LH�-ygÓ“•8­˜VǸŠÇñ»¿šqzð¼\ðH$=ßfü*MšM5n†ÍH½ªÓÃl”�¿Ià„8òƒÃ‡øY< Øë¥N8q\.zÍf9S*Åñ'вêR¤à!p†“ãÔãzœêï‡oWkÄ +옹ÞÀeŸÜP*Þ25©Ù¦£ Îcô¬hÙ Ð~P.¯ª‘6Ž�6ñIìÉ9BŠ£¯¶4’˜µÙ$ÍÙ/± 72ÈìììÜœ}/Í‘0ù—öY¼…J(Ë�ò’r™F3àjËå»ä3¿ZõgV$¿qY\+i^µnÿ–æáCw�k¤<©ÈµÿÚ¦ œ�[°ñ¦m&ŸZçÝU€ ­b�✠_P°rp²œBvØ"¹¿d3þ¿Ô§@çYWNå´¤»z +˜”)ËùߣÇàSµ”ã”ý{ûV ( V=_ˆqÄ?í:X»Âþ|ገó 444¨.¸c%½æîèn1•þÓåÿÊŠ�è¬Áþâû&4|Ê­Ë‘‡êªqäS¼a³IÇ©ŸPê¨|¥ô¨«ƒ®Äf•$*ñ7Y…Ìzeÿ … I)š—GX(©À9,ÇÒÿÉá%¯$q +ìSà;øË¥Pá¿�—ÇÔ±ê\ ûz&-îyµ(Û¼«n¾\9 O^ë¬`ü2{ÎZ-¹Uêk¹Ý¤BMJÜû¨ ¤Z=mÝ¢—nT¿Ø÷²™Ìz)šªv€·go¨Ú(Oz¯´h/}+ÝP•’Y Øÿ⼯/-m,--zëúÅŸ†Ü`kO®›ª`¬Í‚Ý‚F.$ë=Æ¿ci~¹G\¸B'iîRXcØã`¨O¡Kº)›Q¿{ +C¡ú�U€M÷ÙÖÐÛшê ⺪¤ôØÀÂW—ŹŽh]žÕÂ-{˘«ÀD�pé$ðf-æÀ{ûJbmÔ¢ÑPÝ›l¡øÍýÉÆj"ÏŸ"䤷¦øæõªÁÞQ-zÄw…ꕨ¤Y°®v jpÁAÄgÝÚ+¹‹å'ÉÏYgg]’;c½––”æ³…y$¡X +�d« K¥�%�õ” @³˜·+Q®Ì‰v½J7¯0»èm ù-Æj�Î + ©¶~ºDµçX�…h¶Ý§mˆ æï¡N-Ÿ S躷¢øtÛ;ÝöSŽa-zÖhÀŽÆÁ*LÐíºÓA'¨N¯=й%ëUˆ+ ¦}ò»ûa 1PýÁ—”ÿ\œÓyÚ¦Œï·Q*ýÙØÜŒûbðeOµ}_ Úƒp·‹¬ðqO\o9ØŸ˜–Z uúÕÊá/ŸýYiþ¶UÙ^¨œ€Y +YÑ…ÞzãV¼Îbò‚[E6¨ã6HLð/¦@>Ä_&;x¥yµø YeÝ{UN|X:ßîB3ñ?‰þ‘´hPýMðoðÇÈ$/’¹e��í.Ü[/œÄ²†2o¾X8¸Yßf‰¾†ÌDI’CÂÌÑ¢¾èë»XzJ“€}wð?QÇêI�7Aº¾mrKó…%Eo›>Ç´ö½*2õ¨Ü&Fj¥Sn¨•Ÿ¿OÞ¡#æIPŠ]‰86S +“Ø‘_nð�çQ3ÊW©°Á㹈rãÛÍÙ›À¾  'çHÿłټÀ¿èÕã"—«Ìeà’UñàOÂ@( I±åšýë"± ÚjYš»Tµ‡Xoá[¹¹'ØùŒ‰("Á¨ñŽ*@&;0@©]ßç½nO¢žÂYòh ïngÿÏž=Ûy¦Söÿ[ÿ‹ý~·³Oñoîƒ. Îéµ:°ú»$•ù]Í&Véîùåþï9Iêè?â}Ȇ}Uø+ŽÐëýÞ\„Åþ »¯Y‹u­'W»¡þÄt÷í¶=³³¶QWI¨>™3�6JÍm(ý-Q§L¬"eŠ�uAC©g-�.òÍ0 +¹ÕÕ’Ú�*SÌk@ õðQá ¹ª‘ov±M×ýóìƒù¢®ä7««UŸU@žÐ4NŠÖÖ”_'3ˤl™­«×ZÎùA„#kPºÆ@†IAµ ïdþTÕÃY'ãª|JÔû¹¸"�D«9hßÅpJëAm”Xg-Ùà)Oãè1nÀ±u’s36�lõFfx‹'ŽG¨£\8еÙ%‰¬Á‡1�x«±¼ÒXKIyÛ=J¶Û PÀ³ÆA�(nD ¨‚R°(·Ù_ ¶,Ÿ±¨åÉ*ü“šïÇŽb_-{l•q–Úx8™oM„r÷)HÃU®Þ)€gl¦ß·"˜ Œ‚ÆõT€ìp¬9º ZZ*!asöëÃ÷–Ó}ÇÊWÖÛ�6ȇD(;•Ηj0 Íð…®å … +¿ø}O\Téñc +àZð|ïóŽ ÝíªÊ¡]éVº¿ä…—ÏÑq1à6–»!7@ã}BmV®ø:}[œÃM�!]ªœWHMÒÎ5‡Á…Â(-*-7H˜Ðüf ªÎ>‚Ú­HÀ:Øg2ƒS­�ÛFTŽ>VV moóAvø©�—Loú¦�Öýƒ~¤ÿ‰÷oðWÆ�ä!õœïp,OÖ>†¸)žõ:ÒbðèVÃJ)hŒª°ù¦A)£u¬Hó.$5Ž”FêõnÛƒK}ËÔµ,LN+爈nœÀ& +à²@°ªZ­w´ZA + Hâ5uÏÞöª¼³R_7g> +Gí74ôø£|§Ñ +rÅ-ØEQ+@ÿ)¡I×u¹{|‘ž—ˆòÅù,]—o€mx‹ŽN‰_)n&Å?a€RIž¥Ê[€T¯C¶Å�Ôà˜—é—DÔ €Û:¹¸yÊê5©6Ê,8Zã·¸‡—V½°Tœ<ÕÜ a3Œ ¤×TyáŸõ'Žþ ‰žÜsÔ³ +á-V[¸£Á&ÏÔÍ_U®yß»xë~r9"Eþõß¾ü7AaAñ—³#@ð»ÿJå)_øª í¨�5&ì Ü�àøÝn‡K¹·£Óëjõ®óòÍ&ðg%)yÖÔ�DDÁR�B†ö>&)Mæ©%·ª´´È79oÞRTxÄNd—ì|·Ïó—« øª d/üdföc ãþº‚år›Ôý[á¶øßƵµ¾h€×i=¾»wà—Õ“…¯Mkç«ê‘~ðJƒŸ­ãÏjP39Ž-à U™¯‚�5§ãÃöx‹Ï(€©¶À.pU_€€ðx'³6| +ßiî~€E6!¸<#¶8Y³Ou¢«ã…7ŽÒ¼��f åÅM‹ëÔÐÌq•Ùº¡ ôFø˜¸Á¸](_¤$° 1¿³ü;à—ä%?É`hBv‡8.9 2ÝŠùSøz³³·—äh0ÒûÄ”ÒlV—ÏÆ‡Ú�)´Ì)|%9ý›yê@`,® Ð|ýB½æí¬hgyØú<á6h"ml@UÍ!ø—Ø9õ)ì$ª% °§ßÕE©E´Ð|ñÅà ÕÞkx/'+ÁÀ7fF8'fT£ Ü +öé*,h©{Q÷¡ö œÂŸUE­õO_-!mD©£T’@3ÀŠxKT üåÐÛ+¾+ä+-gŸÚD¬¯'åÈò�å ’ú7±˜,k¥ïå¶q +ÿçSÞ?Ù¹ÕØŽ­ %CXãSË.ù›e £�ÔF"Í+rÓ‚ÉhW`_ujJ*àk,Yå22�é¹¶�{‹/Uçj.�€6~\ß4Ÿw ¥ Ó¥>NŽšøXìŸ'fÊ&ŒUI&„áMs9£ß¤£Ô5”Óv À¥RŸët i¼‡�_U*pq|WZÊ·›�Õ&“ÜCð çJq}Üœ+ø;14†bA�4@²àO®+‚i¤eŠDa�DA@nÊæËûbú¢•öf +Îð_‹Cß\ö$S�|'ê +8U׫ÐjPÏ·\Û™AJÒÀVÁ 0ð±}eúHf¨ìžjêlOµ,ê´ïítwmÊ`í©–üÝþ®ùV£gçY©˜Ö`Ï;.ÆgWaDÄùDQyIÏ’ü¬ªyèhxÐ�\¦LÁŸK9:o££oŽÈ ã,R €Tm‚:2LbÓ8ar¥¥?ö‚û%ò›¥å1Øä¹,QÝ^‚W¦ÊcA6)K€j_e&E©gK*‰âÏÚ^e þþ©âŸòÆzŒF,áãø™˜ƼiV¢,;zùZ­U‡‡±ÆICÙœ�ãÃ4.û|ªj«•�Çék­³ªMY¬še-â½¥aïôHl]×È|/üt2ֆŬ6íTðwa-À™€8Ú¦í¹žÅ/FG�ÇE��³Íñø0K’öÔÆÇÇÇãñ«ôOãáÝá˜[O_ë“TUéã?›}㬕dÙë$@Š“†Q\k�Œz¬6"\¦\ +VJl©ŸT¬~ÞÞmÊ\K3°mõ"ý&Ö ?+á,Pôß.,ñ TyÌ‘Iè`µ¦Àd¼áE£×ß¼L²o¿Q£3Înªæq3'ã$KŽHÝ×ÜÅvœ¾ÊŽØ=åªÍ DއQ«U‚e™i›!ß·M8 + ®¡lV~“ÔZàÞø™#Pô‘›}ëOvá�w­7`/wZŠîcPV娖ÐPla‡ÂÞ~Š\xc£{È~HcØ".ÃoæH!'*gÝ~N¿C?kŸq¢¼½Ý©ù�W¦œòýÒìÌ7æ +·H¸r‘ÿ²šo +®í–û/-”ü9µ,­Z»@M$´\²å¶¹Z…i?o­²»,pˆÂ­ÙÙ™™Ù";ùEÍZæ]eþæýoOÿü?¨?¨Œ^¨�Z±¤6Œe×6�ÝV˼{|ñ®Iit¤UUCjÉê;„·ª¶�Ï"vñª^ÙÓ¤3žÿsÞW×<5”N÷Ôˆ��ØÎµ…»ž ˇիb晼5 2m2¾Þµ,ô ³E.x­ù‹Mk ††áfÕ×üfáÃps¹¹é6T´¼¬£ÛV¡8[cÍÜlA�ô¬GO‰„$a¹-žYÀÇ*�ÇnS­>‹Å²Zy’eH×2”ìp«0{‹ tëCÊ|VIöÍñ÷s³üƒýÂn9E üTºÅÙ­X¸¥ôp×âNÁéÈ�.µ\�ÔÜ2T�ªOR{j1¨ «JIí°¦¶¬~yµXüÙ¬­9c3jÛž¦˜2Ãê)L«@/mê0-î>)ÛPoBx¯rÇFÜ9Ä)¨c°!TXvïúÍ'òÛŽçðïd‚•õ¶À�.¼ó]ã„ÞCZˆšro„¨¬×•Û&Fgµ>`i—›Öæâ‡~Ý[Ý«˜jœ¶(Ù,‡ +•yà7p ½¨‰2�~åñªe«Ï.äÙÚF�%ÒÈüeeL›]]–öc€¸O‚_™ðå]Ìà}56óšrή2 ý»èŸƒ¿ð�ðP¨ÿàà@ø÷9Æjs(¬EÙNõ~*±¢&åkj¶æŽõ5…Œ:ÄÄña|š_yµÄ½x粿JµòÂ0k)Ѝl0e3‡*Aó´ +À9!ñ h;a)ç­Õ½k‘ýÈËÐíÖa•;)3U+ °»ÏD‚òÉBµ)Tï"N¥c=“Ô0  ˜Ÿ ô»¢^è…¤ÜPãº>Öˆt~c)Ì®Ð:ít;ÝÅ mk~sPé +Ž˜$ub-_‚c­‰k©%ñ—ê·â�€ôR;³ÒG8p¤ßb)° ­Z{©À/¸PŸ™â:5ÏÛøÕz‚�=6$‘×Ùnþ6 +`fV5Këj/`1ž«L¹z:ø�) ýü¿Ðà[õÈÿ“²¨knŒm8¥›^¼œÜ�43+Åù‘ô;÷'¯a�¬}«¾^k%kÉc·Le¨þK|?Q=š%z©ô�&óìOí÷¥÷Ì–è@_ŠEòŽÝ¬Ž©œ–9ü“enB 3?…¦àXÉ‘~¦B…c,š¦àØ…‚O~qcEæT#ø °¯ëcTe¼3õ1+ë�I¬]…AH�ã-foj¼Ú3VS-€l¢®S#�£ SY¬oÖî8úÁ‹O¡ Â40€ÏËb|™F ³‘½ÍôS�EšsüÄÄA+Øí˜ŸOû•{wVàýÒÐÄä@¯½«mu-º}å_ãƒpA;½~Gû¬X„“Ò{úËüÉLl…åX2˜òù6*�ZZœCÍ-�HóÆÕFjÐÏå)D¡@Á‚Ë4K^IÍ:6’r5#S[�±´T×x?™™]Ìño¼ÚÎÿ)þ)ø_˜ÐppX>‚Æ‘)«ºc +ÆõzVгªÆ†°B£UÏ�Çf‚Úm(iÐøt+Jk¸áëè®¶Žgqäi¼*å?ƒ¬*¿×7p]ÞöòÔÆ)€ëÖ\à +ÀK¹NÀ{ÕkKíxZ�h¾ßÊÆþñ–ƒy’ÁÀ?R#�¼µŸ:ÍaÛ�õ�Ñx-�‘FõO4–;º¡ZJ(soº´äÈͳïFú�ê+{E/â—ÊÕõ«‡JÏ+RÁnßÄ~2cÀÙ?Ìþ‡@ +… °³"„Ö1È[ZœŸ+ÂÙŽ+u&[3O™A~“jÄ,h¦*I>]¢ùHõzœ,Œ“Ò+AKx8gÍÆN.V¬º°FÀYŽ0þrì�ÔÐ>nѽŠ&ó³mr¦È€L…±-S�ÿŽF€žíª0%¸­0ŸøZb;äö†¹sGà ÚÙÄ2â%H„�tCÎÅ`ÝÕÆ�J¯›+k¤x¹ùƒ™X+ˆÐ_jÐj­M-zsÖ~�„à}Ò¢KÆ8aÂ륹“S  ^6b¯ªÁb4©Èò¥%s\#ƒÜ(– ½ÌÖü…œ”ÀìËÿwòŸÒ_ø¯jæ=g€¾1’t¤#ŠPÝ›¦Ëáp« –¹(•¢RX\üRñ#rÃììO)£—¶n‘L2åŒÂ~vF 03;óófl`‘,µñ�gù‰ƒª´Y,ÝžŸ+™¶çI�°�M(k]ˆ—òþ(%/Yˆ A¹ìý£µð¨£Îâ… °ÐòJóä2Ñ‚»±‰iv`!Ä¡éB€9„t¢€.Ø6Àºí_>C¶;õÏF_YÉ @?z;u�mõÝ(!Wìn~ �ðaÀÚJÏ)áÙ.Ó®@KN| ­yÚkOÇíÛ:�z ë•oÞßým®lŽÑ +pþíöFíÁFͽø{:Ê‘ïz€¥(à|)˜ƒ•UqCH2ܼyC_m�L¥„2JPŒÖo‘¸ À’·ÞòTvµ<‹Ö|l +Àh„Oð-sø' �òâŸ?Šr´+þÿ'O’åá0VYê|$£íí£ Ö¨B9ÛpmßòÒ\c°Psgá0Ò´˜l +â88T°š¨.ßÒ}Ôà‘«^< +Ô±ƒùåíÞ©/€–¡ ›\ÞÕ/î0ûÙ?®oÔVÓŸ@¾A¤ðßT0·z£¾µ´­ýAi0ëyƒÚ‰ÃrTBªç©ëLÉ'f?Å)Zˆ¢�‹$9 +`–B žs�º�uàî^�€«åûñ÷Sc€7•\ @_LJ ó…�ëëâGàëVé‘ÚGžkTïà•¢b•Õ~XW-Éë‹‹I|-4(¾nÌÜð „I$ɽŒ $–£€«kD Nl �Ú—ì2‰ÚcöuÇÀŽºSÑ|AÎ'èA6‰ˆ ºÇ€~Hô;{H¡²£á„Û€ZíO®Ð]#Gw rk[•^¥ÝDZw¶[i·5k°®Cû¸�»ý¶!ržF_# Iä6�ÿÓ§¿´’si¿«Ò_<: +Å9›Ÿ +Á’K ñö‰˜uµ‚ªÂ±¿%\…`}Žì°P˜—Ç﵂’Æ üH5ç¸Ä¾ySúàŒž»Ò&Þ¿ðŸÃÊûm¸Çô0.W›ˆj›¬Ü8ŽšcJÃ,ŠÕ@ÙEˆA’*‘a9•ô(m+Èl·ÆõÔ·ù¿þÍ?iY…T=ð«lNOÖ]bdj]òÛÀ;õ¨ç1L×w¥5¶�Ë‹¥Å�znÃ’¹s�h�p±å¦€5tsšOŒ~j[š;i^ÃÿÁÎy€®8vÉèÈ t¿Èe—çX¥œpã'³¥øÃ(íx9þBù/ø�Ÿüä�Œbd¾0{ûO=�†®¥�2•n’GCAtsî/�\§ÐzÙÈ +>'/–}.Ld±ÑHnÅ Tì¶pSt¤êˆé׌$½Ì@%»LLjÚ*›Ï(p&ÎÉŽO¹»³roG#þQÄãˆkwÞõþÏDj毑¿ö:ê¤v»ƒ>Âyj:U}ç.Ò½»OÎ-°ƒ4QOiH>¸-¦n âÚWeÎI7o=hè?�¿™üêíX¼’T±Å°½Ò‡J"’&š«é�“ú³³ònë0$=yÞRdÎ[üØ+Ω/‡bgq4ƒÿ�Äuù'Ï(áØåbnÝ*㔚×à�7‹ÿ­Sï_ÅSõ¥qâ/7>)äÇñòXAo¼ÛÌ Œ7ÑŸöS]åÜ¢í£4Ð(†,xÄ¿EY“øß)R{ªlŽiÇ+LíOP§1€¥/€@&áRjÖKær‹_GÕ`¶„ˆäŽð¾¥Æ2-Ì=7dÅ'õ- p˜Ÿ{bÑ#?ÁT íÒÖ$¦JÁSPò {Ô·XÑ=;s#PT07ô>Š¢ôK°ÿ©œÙ�7Õ*èöLéÆM×0Haf�pN#�q�üÍÞ¼ÁË]ƒÞu\;3æInrò’¦;!…¢¸¨„ÞP6èŒj³Î˜M fù0MQ€}a�ÀÎÎu/`º�y×Üß@Ú3 f8Ú‚··S¹'�%ìj2}Ñ‹"¾kcÃ4œMÐVeÀ.G¦ÐvU~ ßªú�˜Ï%½¹ùP•)GZ<0ÀÜ%²5_t}ƒßŠ_ô¥ßWPãƒ:ôŸÀ¿ýÔÛXZ_ÒÿúÒ¯(öƒh!šëA´H"�íÛóµ9Åbä¼»”Sm޵å2ƒ¸Ñ$ÞââÜz©¸,Í•>ŽãZœÄ·4D»g\•€V‚H6àB,©‡1¹Z:Ï)Æ+�òþSÞ¿ÿ¸/ä% 7—›ññ8§Ë©MäsÜL\„Ëü[¹ÈÖ™Ì@ÀUŸ�ÕÆõè ]³1ë�¯‚¶ÒÕ±´�1íÔ;äp•½¡~„¾úEy8QAp|µ%ËIéfi£vÔÌ ð9ÜEÆ£üÛˆo w¿V‚¢­Ü%ÊM ¦½›ªy/øæ-®cØ_šÂ?^ŸR5n)2@ð-´^n*ø'°—ø- àòÐ�Y„ ð3—�Èòf*x-%•¬pC6!óNο>ç{ ¥ v«ìEÉVœ$å¢yQ}!Áe0pÞfÌë©VµaáÛÊq3‡2`·#èå1-èkœÀ\tPà* ìåƒRxRæO@‚†ÖØ€Nh(«^ä*Ô¶ƒ&˜Î À>µ‰S:´.A~~W~E~KFÿÜm·5Hp°ÀÞÉYøs‡îÁÈ·B¤« +§hYl~zó¶dY0¬»J¹Õ—{b&Ûn“0ÅRéãÒ¬§>a YFÖŽŠÞ–U¸£µ›P7û•Ö…þ�°ó]mqœÃßð®øÏ‡é)a”úa3Ž“ÃrBÁ�}%GV +:Í#C’ þÍã‡MŽþ\�Òªï�q¢òãd5³Ñ¦@ÇÿW›ë‹�À;ô4U �9àçá•v7npYó(Qó»Aáþ`œX]@^¨SÔ·TËVæ Ø©±Fà¿Ü¸ùS5�ÝsôcyñëÞWˤtñ#Ý®ºô({hZ~µ ƒ þyÀìOâ¾N ~™Ÿ/Üôr˜WãR¨†ÜTðF¦v0·é)äÍ’l¦±€§PZàÎY~ Š�ºUD �%õMœWÀä”ÊœÆNk�jp#˜ik3¤z»‡ËßÎE€ ¿) +hZ ÛïÜS;ò  ;î=gíì>ì‚¿^o�•€B�l…5(—ÐØ‚Rvpß¾è +4,È=ÀÜ׋rú(Õõk•�Ÿ­ùÁZ D‹15Æ;9ƒ~×I <µ@~»™JãÜõ¹ S:‰»O€E·Qêø-›ón#ÿ¤™…žÔ¶@@'u—oäøiž~Îí¹4ºÈrçßà®øw¥šVƒ°dióÃìŒù+ïy^q+iYs`lË5j|Âñ6@¹©{äeGÇ’À�!€›–þ~{õî•°Rxq©É{%¯àøq3dŽ ¡q›-QæÏüƒEÿäð20Ÿ +  ‘{fn?Êð¶Zðãö­�¹wšºñá‡äWér£@[n¯Ï©�üV,O¸Ër[‘4Š‘Ç³75œ�4Á©¹–€‰÷š±€�Jßâh’øZ€ª²s{ÌÚJ�»ò¿‹X1@@> tk\ùß·jú¤ ¿à„& 9£sx·òÞHEߤ>œÎ·×Å=h'ÍVØ>‰ð¯ŸnƘfj$�àÀ¹ü;+úMHDÑ2YVy�ô´'¾äÍ.n(Ý•LªÃ;qÿY¦Ü¡�(`äíZ°0'!‡,."ü½%5ÐðâHž¾€´}n( ôPdVo³5þ(à\ñòm4~•¡àÿÛp8L’í,Ký×VÐ7ëðOþ¶‘1ll} +Òöé2~”Qš»Z£2�FÒ\Ée¨ƒ—-äˆ\`VÁþF `Jü ¾S +àJ/ fq´±äI˜Ž$ú¹%�>±’¿å A'�©)°=[§O}?Y—Pò/rKΔ|Ê 2Ñ‹ðº#XV»Tâ¬*|m Ì‚~®ÆO.ÀOUý¯`ý›ààå*áŸcKaægË"?n¿Ù¦*o8|žãÄ|/’߸fÅJÁ}À6y¨{ð+eLÀù¼5#° '`€²e¢€S`5BŒ5¹�ˆ}œw~v{ý ê•cŽoTkÉ?ƒe`/H`wß‚�Œ³ ßßiÿ�Áü#€�¹Ïö]+Ð�*ÝvÅ`ÏÕÁ09טiå½;;;ûªaÂw9¢@ŠÂTË Kiï ¾ØMq\Ði˜°»Ærø·ÛêGpVck¤Ûq­TðÔdf«da=íf6|‹9ô¿Ñ lúg6hD—ná�µ1‡*ªn”h榤Q³�é�ZØsIëUiâ}¾Å4k�Áÿlñ?�¿‚Øa5Ìø>Ö(€òq·Òñø¯‡Ùë4IµÊ'£4Í\Ûâñ8;bi’¾Lãƒxâ2Õ�6É´ßÅæêÛÞ³à꾪‹œVWi€WÍï�4=^z�¿É¸èoxGã,;ÊÆ,ƒ‡“}£¡A4ßIš4Jþö8´çƒå�{û^—>tZ"pu¤¼Ž§ïnÏ‚-½°XôE\ :�”®ÐD�‰(, ¾7ùse2>1ÆÛº´ƒŒâG1”ÒÒÜl)&]H•—©6‚x8¥Žò›e=A{«„ãá.F—ÃJ»’|I)&“y[ñ6R'¿˜Ülj0ÃÑõT0’eÚD�7~v;-ž†¥Ê]àÛ…ØiE ´ùg”k¸¿Ï4Î7b ÒÅAð»šHP1µÒÁB¬û)øä¨máú¤£±Î(`ûª9� ct¥X­«·€¾jxa¾v;»]S@œÀ¿ÓÖè6ƒ—þJ^¹èÏðÊF½8õÅ9kè5§×lþþáìœ>oÙOÖfwš+?¤0à¥"Þ‚g�‚4=i¦oH„×Üì,G-.pºòÂÛ,¿å%üËÎÿdØ ü«ÁC4¼Œ•-¢ywÓ_]«Výpõa>ÌÅZyÍ_ݬj&2 ðQ¶ù¸O ²Êê°¬m|Osz±9ÅsüÓ}Í4ÆB¶\³íÜŒUü!2¦€ƒù¹Z€Ò଀ï.³ønäWýri5Xn†¾FÐØÝ4hU�ôñÐç_¸µr™„]Û\}wnTDy¹¼ð³e€[üñO +Š·ì�oz']Š ·”�$±‚…³?›™›û˜Õf¥âÌ”û3®ÖϾ}ð?›áÿƒà›•ìØÜí>´OÑv‹ïÿPÐH.žÆù€ƒ|0ó3­×`"ʇ·ÜwÞ?PÞ³S-,ðØW”©Èy«sžò(ÙpAÐMÛŒk#|ÉËU€£€ßÿ ô§šý ¢hr5Æþsjp&@ë:À` +²qÁåÐ.°CÐí^ß`â ò ÇP`¯ò´k]wt)öš\K(Î¥ søçO.€ù*Ú_ ô‘ M!/Bc‹r»OþNáßn5<Å0_Å‘|ÁA�xø*çõôòæ—>4 Zí6T¼¨°ííR ]¿tŸÔ +¢bÉù�z£€•Iùb£ºᦢë� aúmU?‚PÞ¯¯á7®zåð_‚§Åÿ üñþ«œÌàþ¿Òä]IÜä®Ó0fN�dwø„‹Ð9�𵩙ÎÂÍ8ù*IýTãƒø×ùAS½Îݤ—ѰٌËqúä+�ˆ…ÍsLœØ¤ÅÍ{Ö\à@gc²¯.±¡®0�oA*QòõašeÉðP5$±êK†1É}kÎÌ¡ÄOr‹D šJ‹“²›„óJâÂH´þ>” ê÷wx¨|~x~-þ¸L‡5íɲÒíÙ›K|Óc“Í޼ŠA ÌÀ7Ä#³…›8‘øðù3Ï»}ÃPÍS+ê� X %*}šq|sö&®ÂœF -ÜžÕdµš¬BѨÅ ‹KëòZírt<^¿ÑÄ% ôY¼]zLÜw*”ò;\ýO Îr`Ûê²­®P + »Óå”î9`'M¤uüÖЂ]+¿{ª œÀ¿Ýî“cÈ5Ê8q¢ñtÈdf’}žÇ­1A4ÀN—¤àíq«O�þn›-eUŠ©`ƒ +¨Ÿˆ=piCM3À7’ JAóig¹¿¤—6ª¹ƒ^a9ü�¹âßA_ÿ:KX�àŸÿD¹Çòqšú_'òlðmÁ=åñ¦ð=Ù”¢€âd9}a.Ð0ÑT¸3韅�¤éÚqz�«ãËÛ5ÔçÚ1€wè 8[ `vÙ¼�‰ø.Ûº…»Ä�ä` f�@“&7N ±¦îIü²Å­šÂ5‡1ÄñÕð+;®w‹]ì1ÐÌŸ»¸°†¹\‡k1g˜ÇŽk`§´‹c]ë€SQì£þw9ÙŽª5/™¶5@ü Àíä¥ìb9�U4æðï÷É Ïý‘/P› 9™¢ý¶W×ä0Áºyqi‹´þX!žÅ�N@õ½êÑ$Q9RC«T§!�•e‡!«o—GICC‡‡Bæ…†üÿ„gö1ÿvA×h@¢ðìÎ)=ÛË,Žj·äóUt¦g Åö, ÝܤŒ·_Ñ-¯t_ã(™¯¬ø Ì�SºY˜¿U[ZH•nrÝ—TgÑbžÒˆ‚Á۰豂w ú&ë–x¼fVïo1ÀrŒ Ô–+̪õ_égjÞçz’(8`Ç]â065PS×n[Ϫ%Ðm…Ÿçu ·-¦ š(·;¦Ñ`‚ ë;lÃÑ�›æ’ž¼\W DÒ׊á�>úêõì Ù»ÂoÚIpÝ>%/HoïhÎà^ô›ÐW›~ïéL|«ô*]Ž3è@R†u5V”šÑEPÈWðì‚\5Cn¶N.@›Õ +'ä]­€Ò]»ì¨÷‚® vÙÓ>Š*øLnúCÕ ¶¥!Y%�• NlIz5ê�7[„+Të¹¢Ð‰Ê´Š +»PŽ#§êe›×…ÒàM@‘wª<#¯j +`SÙ[½ÂrÜŸÚªUü9øOÿfÊ¿Æõ`³–®ìÌÜ÷mTc/ð7\ÛQ�ÞªñB^õ)˜4¬ú`k«Ñ$¡„ÔW‡ú¼è5Øœ78ÇuŽv;€÷è p^ˆ«/°¼Uÿ­é EPDöÉå ÿú¢ññn­«æ6ÐüªÜrn1 ¾A‰ëê®­éæÞÁ¿&†XT¤¿q„€o¢>¼ä ª„eC;Å”(|¨út˜ýP_nÜ,•fƒ‚ÕaHIe&�¬ ^|uWeÉ^†w ¨™=Ô’‹¥œT{8e^0·¥ë”—¡+Ö�ÀR“ÿ \G ãûçÄ€ô¥¯�þΠ׶–»ˆGà T²®]¹Ã¾rêUˆ¯ Éƒ)ì÷$Œä(,@�’¨Tvw÷{r¤tªê¯è+—ÊвüÊÜ@тގ +}]…@"Ä\Sùô"GÁ®1W + +®˜ÈÐýü¹‡ý‹@PZò`e縬|cS…�Ô X›^Àå +@£q¨?­÷1”l£‹ñÝ€åD¥úå–£þŒá³ö¯Õ›ðG‹[0b+R/tø3ø•]9ÖîG¦Ák¤ÃU}ʬ.Œ7ÕýG[®Ç�¾Î§½Ø4‹À»*€÷î 01}ÓÕž·M®%ÚŠ‹�mµ¸ s°ß +psuüâKn…%ßq†L«yi¶€8¯¦5õ`‰+Õ°ÂÿÖ«“¤ß¶Ê¤�šzÉ\õ 6š\–°/ìÕ@±poAc \ð~äð7S/?Œ2^ã…ÇCÙ�ÎÞ¸¡]Àô�àöMc€Âülx[�SlgÇKœ¼�'¥t1FS6cƒí9{› +p� п•�ù£@ ¾�ô¦~½«} ЫA „{_Sùò‡j�Þ‡p.€s¬±Áð……Ô<ÀšV*+€;'×ÀA�_íö/ïܽjý“¯ãR1ù"ˆ<Øéíÿ–KÔ�…ZBS¦¢;ä(9üùo�S˜@NÊ ¼¡ÈSzˆ“ó%¹mF€äŸ*`©r²S²ó +ÌáX÷�C~ÚV}ÞRµ_?‹ƒ?EÙ8ÃCXì8lJºçæUïontr�bJœBx«§¤TtÔÐ ”à(ÔÒÕä›VCºš „ëó–K†ið÷è à`¢p'hç,‘”GÖªq²ÁdK>áû"àûQRŒ¤rÙ€|RÓ�@A)r3ð¾uK?²„° +D«dMd�˜O>9kŽ!ß  àË ˜»yó¶7Ga` `î…âIŽ”w4`áóm·ƒ¹ ©PW¢šoM1v‚iU•*^Éi L +§À5Kš¼Ô0Ç?v¥ +@àãï52–PôˉßS=›È’| W>­Î``"vP´�P Ï_¥_uRúÛïï>ƒÀ¿¦öfµªóÁ+.@®ý¡}èÚŒ¸�{w*ò?P,Òõt´¸€n�cèÂzûŸiG®�ÕŽ¨¸nÆ'ðÇ®P%ùÿʵ“  È:§„û¤¾ê€|Ö²é©ÐA¼òR©x^è W˜ÃüYóÅ‚ÿ$ø/sðoh²Ø,�Ôvg\Õ5Ÿ˜�Í-p'6?|Õóš¦ndýŸ  ÔEP3†Ç �øGŸjò`ÛÀ»Oi}ö_¡~¬yx^ç$ÔŠ"ë³v”BßYâsGB¡i9ùÜ‘¾æb@G¨z÷ø{êá8 n:€xº?Q5§O€•¯$ýFÐ@¬o(€-ɉ×ké<€Å›6Páæ-@Ì �·½Ùà#� )ƒ:¦À:@ù~3éú°îB®á¢`Þµ\òbµ8õ¼¤V >øEáß[,³fúåº;øË®T"€ +HCÀ n• +vi ÍßW Ü Y| yÛ ½MIß³@€f×}¼~Üvíj^ßÞ>À¾b”û(›\ +ÏÂN½²’Çôd"×9P'À?°�8µωvÛ½®Z,ÚPeÜ�¶Ã¿ãð…ëË€4VŒä¦à?œSPÀI À<|eÔ\ä@¡dUý–bÚâÁE +»†`ë+Ì!þ¬™ð×Êaµšƒÿþ õyk¥G+ke~3Þ´³Ŏ‰ÌA(§P \õ"ࢾÁʺ˜@¶�ŒÆþX]éO±wÖbõ²=¯r²¹4ð}ì×› +@D 5ÌyÊ €FãèÀP8�¢ªF e_í¡ ‚¨EŠbæfCC6œ(y"€\Àü–zN€%^ß:.À©°,19«ƒ?¦°�ÝP70е$�SŸŬùY@¾ã±"’‰ηød3ÞoXL`¢ÿ”í^LÖãäQ‘l¶Xd…Â\�’#ÿ�"G×Q,p +÷qâY Œû +úõ€.â+àVAVÖ«ÜÐvGC|iîUBèÕT¤ú�ý½Žÿþ`oO#ƒ}É�Þ‚)€{•É@Á8ð|áŠÜOYûÞ�ŽŽÜWc®‘“ÂHÝ�¶ºYùnT´ÿ/Š?Z3�îŽ5æsG¡ì'ð‡|.WJhs›] øç1€Ó  bµó1ϳœŠ§b¤È1ôrs�?ob€Õ»åµýgáßJÿ»FÀÅ�#?Ì£{ûTé„ö#?…W�W%�E]¬ÖÈ‚ŠÄHá辌½×Û[ð†�ÿ÷‰ˆy´ÙuÚ�(Ç`!åÌë(Ý>Q”öVîoê†Î*(§ê¹x4­�?ºS昘èÿ3 +`•Í6òºx#!îM@©o +@e?  €ÞŠÞ¬?Ñ’ s¢(ØÏ+k7¨/òô9„|€ÒÏ–D�Ú)€_‘ÃÖ½$€P· %iUŠ)ø)ÿçš&p ŒÀžÊuC‰ ޥؤí÷~ßå Œ�Qä=H5P®K'ôÝö>ÔX¨¬Á­ŽË~R»ûP»™èï ðý?{†?ñ%T ß=ð}ºâÀý9èRÎëëç�§wîuð~?è|¡º‰U?p`1—Ž#Â9~û™‹pYV À€~€´Æ)ü÷÷Ï*ì$0] ÀSýø$Õœ‹¸Z€I8¼Ÿ³‰¸»æ$@Žþü�Z£Ö6�?ønRO…lÍá›ãr^ o;Kl†à)3*p½^Ë”‹ŠŒ�¿'&ü_˜R?^_L_£b‘/v '/SÙ�µÏ�HSŸ ¶òEv)€ç"€©�.ü©Ô>.”̸P¸€8JO¶ÑñÌü1UZS`�%EñoínÜ,X Àì’@rÒà6�•�‰ ¯¹P%€)sNœá€©7W7qJoS’Àj§ò%à63Äìÿ›&ñÕûÙÅh‚•ªÜ‚vû^§?xŠ@´UÁ}P¾³–7ÀþçP‰6æH_vŸI€ÿ}À¸û†.î´+ûÚï¥ÑëªGŸªá�A·»r§óÅ ÷Åï;ÿmÝ´!4ž˜–’w &\‚ý°¾b(«+èuóòßàÏç5Ài à¼îObÊš—Æ>Æ9{'àÞ, ð°Z­æàŸÀ¿•|Ú‰4Ë�_¥Qvç_é°É&v?ö&j6y©œ_Ûg o«Š¢jù~4½5³l”dj—Bpqú8Žƒf„i’&£Õ8�5c®™ ’×£Æh¤Ö²ñoG£o’Q#o8mÝ› +ÀÁü\-Àûõ¸¤@�›¢¢Æ…„&¯i0 î›zÇàB ê'1€‚&¦i4<ˆÅ6Î*ä18:ðVP¸eIy»aµ³A!ß–{Emjò(Ý$¿qݲ†ºqj|�7ïð/0U  ¬h +@.ÀÒzâÀG'1—C'×4Ó~zœQ"€Ë/¹ÓÎä ¢ûª¾Û³â¼Ãf,Pu~oŸcÀ”½;+•�¦ÿ@“Xkýý~¥ý”ókÿß~¯ À³�£5ÖùÚw*++*¤�ÂØ(Þ”û¼}ލhš/®€.À¼Â�ûü ¾ì!AbN +Æ@„@P¡ø‡<¬‚á_Ÿq·s‰P-Àù€Õœ­Ài à�Z€é@™lò +Àáý›(@®ü[ÉèÓÖ§­D]ZÖÊåµåòÚZqmmyyùçü;[(oÉ\Ÿ³ò­eOóÿ†þ¯ýàa +šïvaYs/—««êߤ pËì6õç†Rûj®npQ @Û…ñ”f'øŸÄ& +àê€#à?Å`oÇÕœ�ä…ü90àÞPªò߀†þBX;58é5 ñUßXœ_"q�"�aµš5~§ ÇŽ.¦„‰?Ncgj¤jN|TP›%)©<$�³™ +𻎠+°bÿ ÊWÐŒÕÆ¶©fñÓÜ�wøÜyÖáO@ÓokJ_`_ÚÀ¼ WôvÁ>Ãmù÷Ýþ®pÏêÝN +`±¦MVø«HöwžòþÅR \PO�E5ë¹sçŽæúÌ/H˜GŽ¿:$Ù¦ÝÞþ@µ€¸x!6/€F)‘@§)Màÿ9{rñÇÎ+€< Qœ•Ú`>8UØSíoØ”@˜ÈáŸh®ËOAÿÝrš�³aò*KîF¯Ò¤S¢Bl\dý(ØÊâÃ(ƒÇÉ0®ª×r6N(yÒô•‰�\Å�B?�ÿ4ÎÒ,y‚zN¿4õ¯7ÀB_€i¾sü;p4:£NbŸØí‹É±I àl-€4@^ àªÏÇP;�xdŽ @5‹s +êþ1×Àþzj²‰0àwRu +6ÊΣœ!­–6ó…~HóíÆÈo80�=ÃGià'ÚxÝû¸@>ôu;‰ÀU H_ãESŽvlæàoïØ³�gŽî=ë<Ûé<ã] òù|ïT(¬Û¨Ü¬ªv%0U.|N�n��ÁþKìŽilÿ•ʽÊS5ET¥žü£àwa€®Õ>h¢¿{Úž¶Í9J# YиÚ�ÃßéÀb_|�h°ÖƒjƒäJÿß#>$(ýÙ® ´ß- Ë€pÿf Àrê¹9èbîØI Àà�åø§ø%廼òô&#Ååfªk€LÙBƒÈ.–¹&å:²Ü†×\P“ae,Ó/äzaJ³¨y9k€ +îKŶš¿_÷¿Uüýúè[ÍÅ&¹ÛÀb§ +à²vªNk4 ’^Ö˜ öDµU¨YÅéÃà-n%ÕæXU¥±U˜²½;¾³$~øúdsˆ( 5Ú*†zÔxPÊÖ�ÿrP?U÷IÄ�dÔ�®Qô­ßÒ��JõÆolâ³;}-zFi¸–XcGß+–üê9 {« +°Ž¶òúN[îÌ�Ó£âž"[ZÿÞŽ<‚Ýg»,s»Û4üàÏÐ'-a¦Ót@óÈÂÝQyç?ÿ¡“S½NÌ}µ8âaǼsÇMð•$7¶Ò–Hý·U!€[2è¢�wî�è»bƒÁ¿•þö °‰€Nbçk\ ŸÏÅ€Î�¤Úß´é€ üÁ?îÿêjyÍÒÚ¥yœ”]s`a——HÈÆ¸ó6juÊ/Õ¬KËâÆh3�U€ªIIK9'(ò¸ÜsÞ to*óËÛüð¾&µ¹Ð%HÑuc& �œâ2?¸‚iì·¸I#ŠÛ p—‚Þsെ4þ9øÓ[±À‰…ÀHrí^©x£ Çý€<¥€k(€I>Òp­Ñ7S +àÀ ߤD8«¼u§l7g9¼E¨ ¹†¡L@b¯°àøóFá¼R|¦Eàh²¿ðêPn¿x�ü\1X뮃0¨×ŽÎ(ÏW4“?4 3üŸ0Š^œ²R1 ïÃXgBÚß�F1„•üz¸;˜èé½;m´¿Ô„"F _¥¿6Ó±8Ò;´0\Ò@��£�‰\ÔàM\åæÐ~¡M€Êÿ\þ­¤Œïï’šü"ˆ“å¯ ƒ”Èb/ÌÛ1ª�ƒ5dÅ¢…0²>Nòi-ÿ¾±¾Å š˜M߸ÎÅÿ�T pe;ÄÉ›1m~TÈcä}©˜hªà²vA-ÀÿBWœ5« WXÓÆ(@6A+_ãíëÀá ÜîœÀüDX¬Õ(àbp”Ç‚§ðÏNßúà l»©O�@hœWrNÀ•oSB•>ù×2…û(PU–«ìW¡¿ rÚ\€Þîgb€g¢ L;;ÓvµØ…VÍÒ-”Ý¿œƒ @9×Ì„~/6°ï¼ñݯkRw¥ü"�¥ìÈ•;,Öqyw}àUÿvWŸ¿„z“ҟŸ—®°rÍÀüü¹–€? /À¥ +Àaý;W €ñ>j}šŒpþó”v)εÄË.ëúe”4˜¹.š$\lT ðfA<ËXÊ…s†y–Å ±owUû›�°—ŠÿKÀ�Ø€ʲKZžQ$÷vV\0àÚäµÉ þ¥(À%Ñ5fó o%ç/®TO±T(|HÒ‡5#€ ¥\¥þÅ�a�«7�U¹ŸÊ¸"@^;§Ó \FùêÜ€E¨:Ðö…~ý)šŽ¤_ÙÙÝCÀ¬y¦žø†AaO;Š4Œ:+p‡3¸wXýn³‹ñ‚L±„sçÆ ô†aÊþ‰˜09Át9:‘��ÓqE\S¯½ËðîEëØ‡ƒ(ˆðôiNˆ­r'6êÁt„s +à´à\_€ËÚ¼Q „+·òþN}Ø/´©€ÀïH`”¬–O}™°=V_Èq««^¹èª1óàµê´¢¢uI´2csv5 !&ŠQ˜¯¦&ÛÈ&ªüµïÞ@TpPÎwE©•¦õè�bÎHp£&/üˆ8‹«-oQ|~F@"|}7…á#hóJ�(€a¾w¨ç]* 6É=ÜFPÄj~mÌ gÉfÚÝðÏ­~ë?¿PÔÏ*€�ßP*@¯CVz +U‚-H3¬iœn!ßDÿgÆ÷v:ƒ½ÏöŒžY7[Ûßá@{í>CèRî¸úe‡³Í4HŸ}×JSíZÌV••øH ~[-øŸ\‡Ô_n6q“;}΢c8ß^Ç3à@¼}üSÎ)$/ýuÅl¯‡Ð¾F;€Ü¸0pª,ÁÞW8¨_hgkNlõ üëQM“üér¢ð“à¦w±¦°ê,¬ 4¦�íJ~éî¼î•C7jÎ[˜2«¸D8˜_øá}ŒË€[p½@^ ìOð� `1S"�)`ø[ ‰¾0nÓãŸÐ7Qà8KižåºG.§žøA"ØÒÙejˆÉËêõø›j ì·S”AQºk�„â?viN +ÛnÚјqR¢¾…øÈ¿ÙW@&7ÚŠrÍÝcà߃(mïíìÿÝ6�{hfA'Ìr´î€fÀÆaYit’ŸG€”å]¨ç³rWvžæ—ËFÆf:†Æú‘ qÀD7Z?舤/¤´ f€wŽ…|ˆ;|½³bk§Jg�kÅNÀ¹vÊšgj¦c‚Ü5€Ãú%vªŒœ°Ìafàü”Qª¿·~_á{•¹Ž(§ñA£ˆ‡ÀÝ8[×-Kÿ„~1æÛz­®¯i³âÿ}cv)§ +àÊEü›1µ<�8ÀëÆ-ŸÛß5cy-€€?Á«õR +@1€��i¦‡áë[@õ| ÀU㑦@î¹iç¥,ˆÌ+ñý‘znE Ù6z�òûŒR?ÎZÛÿ—þ˜ÍÎÎAäîÄ͇® ˆW.”´DÕÎf”ÿßJ®(Õ'æ@-8 ®|ùŸ}öì3õ³3`°ç@nøpYç_'Æ`ô½ÌÀÖÐo4–q°ïØX`ŽHì„m…5§—ŠhwP} ä—ÄYlã(X bÍþ¸/ýd�»˜üfer%Iä5)ýÙß.Jf'Vß·ëöÌlóc×8 _lgkràáÈì¤P@òóf-�úÏ­¬ÎD®1£,n±þãrr³.$àÝxí³^ Љæ0²Ë„O_W)€±/€øàâ–€çj¾äoús?Ôç1€ÿg€by-À™€áÿí1€³ +€§Êðï�ÂÇ$Œb0À#L÷W ¼Û+L¸rn.Æànë-v³JÔ: Ó½ò÷x-x½ÍƒÏ­®N[¬å‡AV97„K.zæ è°²øÊ[T€¤Æú*i‰€j%:xÆç׈¿= 6|Ô^ÚnW;îXS½ýuu»;¼l\q™hÁþµ�":¼x€?®^l¹c +@Ä Ì›åßì—�ï¡“á¸]v:=GªÈ0\;ö¨ì¬Øž˜¾t*ÒÏÔMèüíôoo0ÕP¸ÿ±û8¨_bgú˜ñµè€ è°JøZ˜!¡)+—!‰€Üìb(´ù\T; ¨¬TG¨Ð`QBx£ÎÝžL|köƒÀõûhÑ1Ùt;€É­ëîHê*í …WƬÀþüç + F¼à0|½Xز7c¢!윰§ÕBH€€7q.�h"¦àWøb»uÕ(‘[ÍrxÀ�íZêŸ(. Åî¾Ð +~&(µ'†6Hµlfgç^åždõå@‰jþ´Ir•¯BDŽPµÅ7äÊ4‡\€½Ïœ€m|>\¶0¿ûð[õÊéžÜ}ê§îrÌ•èŸäcmàKñÖ“»�€"À\°^¯5Ä-älJ¯Uófy„ªŒ´tV¯“2¥[Ï08LÞòO»¸·Å4õ∗½Ù @ÇÉ0”´„tw½«³ä8jŽ8ÒùS8…|’V³Âpü"¬/¹v(Æ5èŸî\Ò¨êp ¾Ä…kˆfÝ8OêôÎ�ý8b�úÍQ=xð@[ê>Y‹˜à�ÕjA”lj’7¶$£=�  mêõ—ÿWä_B;A@ÈO‚ópEjûsïYg°7JÚDë¤õ…%l÷_ÿu÷³=±‹l±€~²@0Œ½à ŠØ„/Z¥¡|t)\¢ô€Œír>`ÓJg¥��  Õ!xiàJ¥k­|ì²á Ök/»{»3m½ Eœà_—Ìö�Î?Ÿ|»Hä1€©¾¶Å�ÜÀÁü2»¨ࡵaWY�8ÉÚØq:•îy·R“þŽÆ …¨èÛWD@àÚ6`2Ý·Šþ‚] oÎX7À¿ +;ûË…¯iì 0Ë!¶Ýsâ +÷]Æ3qUŠ'0 é*Å ï&7$*ÈÓQ=Fè–‚ 1~Ã…'u8\€ ­즿 íê@M‘ôs¦¦ ñ0’vBÕ4ŽÜœLÀ^J‡òžR:Ý|’:`åÿ'<0¾ÇŠ$M?v“­;ÃPS=îÛðkhįþðêðÞ}X‘ó||¨sî lS«�êF>Up^È»o™�‹TSu�ÿò‘š3™¾I"»JëÏÀª�§§RVŒ†•KU€å}�@ +\M–hâÁþïBõÚûÙõ4� ¶Ÿv  §r`Çgç\ñ ÇÑÖö ðÏbVT4È×X©ü’ D ×´€î`âXt@‡ÔQÙ «ž?•5ûuŠÄN!ç@Ÿì©kÓ]ƒÅ+ôÓöÖ"í`ßÔꊀ,WÂý�ÚÀáür;ÓÀ½õc5tDÍéA¾£ÇE]À‰tçÜŽ¬™ÝD©ô¤ å²�5·TNІ‚}AQ³!²liK Ì8ÜúI_62¾FÔÖg­f5‰A�Vš¿V… + Su66éJÞ­«‰»ØJ=V’ÄQ QÝ*À° º€``÷W‡Üq0®©°®»Ô�\L™²;O^¦q+I²ãˆã)f1Ê’­0Œ³TÓ�r ×ßpذÉãåAÝQÌ3ÐÉÍfT^^¥‚¨ìÃáD`BÝ í¿³‡ÐÐ ëŽÅöÔñ^À¨Û»¿å¥-?~·¯ &c íî¶»Û×¶¶agÅ!ÐÊòg¦Øµj°n¼ ù)Ì` +€¥F.jhÛuuñs[m È1ð¬—1¬ s Ø"Š 7i�s.Ë!ßùléß·‘º' +à]Û„ ð=ú8˜_e0 >¬ªÎ‘l + ˜HR+£c�‹”´†Y3Îí@©p[ýWÅ¥æ”à-'€‰0`�â$šô}w榛4[]+¯–mÊÑâ쳨ˆòªf-ßÿ'_#ðW^^.®jt�ò‚çÙºÜV}«¼\üùr‘uìÄ»·êùŽ=Êž_ôíHËeíä„ l¼ªxEaîƒ[Emg£\fWÇ�SØÚêÚZøpÍ_ИårÕ¯B» +RøkwË~èûÕjø_�Ë“ƒ÷‡¬®†!ký‡—–Y¦ÿµ»Ë!gY][ l”…²NPõ9>/¢�ç·Ê“ûÉ­‚»Y—ÏÓÐCÐ�Ÿ>jm˳ñ<ÙçYñËÝ·=|[µÊã¢|à‰`š†v®¸\儚ØU6#•• +pŠß•‚G€0°1¿±°ü¬÷l@sútîÉ؇|ÝÈ $bívû»ý¼Ð@ÓôsPÛZ +@¼b +€œYﮋŸx‡îݹWérAî’í‹Bjùc×§ß+|ãBu¶°vyÐæÀÏ׉íž`…§’ Î4E¹N¢ScçKû¦grF¸Àôˆ@àå’€Ðø> +À²è¦i¼Ó£ä…FñÉ�Ò^ÃÙž*!~Jœ´pø7à&8cÑÒ©(´0¥¬§€€>r`Tb ùzòJ_qA”òÃaêÏÝ.áŸj~RM5hkܧ¿9ŒŸd¨�&¬$ Ùü£VG%ÌD_k ³¤Ùtú6ú*êØ‡i¼ì‡8 +Ÿ(¦hŒøLÿ˜&Áâ"_“ä9%i>¼Ø®Š°óW¼†¼(£3.=7×Â'”Ö¤”÷\Í_²ìûÿý·¿}“R>g¯¸%Êø4ÛäæÒo�ÿ×qöõ¡æ$¥ä×râôÉ3îƒ[æÜ<�W¯.XŠ “&ú(,‚²¤¼Ígf¢Š§øÇ  §!º@7ŸÄh�1â‚Jã5©Ù*ÏYe~B~ø–dà©ë±óÇ! ÁãÇ\å�S’Ì8G_XrP;«œL&ß´ AñªÖ¿·ÛÙCßïiÒ Ü­ìÞÛéìi¨ 9ld ¶€Ž°ÛÙÿÝ—~AM~Â3¹c½�A`ðÙö2r-¸]€õ.æš…zÁ]ש¯î*m‰¾påZÍE¢VÄX6S‘F1݉ØÁŠ{»µÎ¾UØWGJîÛ9øÃ@çcV 0¥„û±/)zµ¥ñ¯E©sì0å$O¢D0æ×¥1€‰€ÂN€w�8˜¸£S;h‘ß,æ•z³Üžª¹ Ìr½YjÿùÈg+ ˜»Ð€&Þ¯é’d ÄÍ@ºÝ¸ÑY-Am�–<_µ +P¼‹{\*­+÷‰PÖ­Øê1N‰oÿÆ ·ƒCŠÉ7êi¼6äºñCÐÜÛñ–”÷vëÓß´F¯î­VÊÝÇÑÿ|þE7·Zævk[iÔÚ>ÜŽÙÃø”½aÀ‡¦^tf#UofƒB×¹µÓ;çI¬±Q�“Z+„ …írÚFluÜ[z×=²­×αˆA=Xn{Qò‡5Ü‘Ø š®îÀޤ¶�Ψ…É>¤Îõ§M�‚©häv§·�ÿÿl°g‚~¥s§³»7ØûŒ_’Û»Ÿ‰ÔG?ÁøÞ¿ªPð7ÐS#]a�Ej;`¨30Æ0¯˜B×UT:+6”× À:‘–mÂ=¨O{rI¿äë�7çÖX;€�î +ØÀ#ª°è›Ó )á(Só%5Wp¿ìhØ9ø«ò½Š#€©Àßq^¥îÕ¦ÚgY^ý$ƒt(ÿ·N€Ž$eâ j°‹‚òBêiJRi¿XHf5ÛJ"dyÓŽ9®|8VÞÒË(Àå(³†A¼Áé“òÏTÁ ú«é¬:5çÖ#ˆêqÕO>‚ØŸ\Wêßø;YP‹U¥%ãveï8,'r£½LO™g�G2_â¸Î‚ ÕŒú¼|Ïnî‚€¾_j‚ÖR)FaøA+÷!"¡ hwÔÒÓP¥@�«ª{Ów‘‡bˆ®™O/ŽÇ~3°Š`z +r›·Ôò†¸ŒçP˜-É.jÁÍñÒšT#»C}’“2Kashqž$„Á�—Iµ«ËMÃ� x>ØJW‡1 `æÆài¿¡´ +ÔÛ\û†~þX d)(ó¸ &õtövUó÷TÐéíiHo½Z™ñ½¿»÷o¿Ëñ/—¡3pA@Ç»j䤂 ‚”U  3ñ^é®À\—‹ìç`!¾È€@µa˜æL°ŸS°3èjR8¡gÐç¥M»â˜. j@Ý¥Îgïo”þ÷Vläü€wÀRì\ @íÛ€+Ò¯²<#Ú ½Î¬ü?«Èi��!xÔíW¬.‹È7šX¹ÔLWzj�¤éR‘‹ÜïQ¥C€áßeïübdV¸ÚÅ$þì,ÒBªHÀ›X ¦ ªqe~�q5Ô�®+ÏÓÜ3\ˆÙb±†0ÑÓBˆha=8½?èPæÚh¶u €‹-Jêܨ&ª%øßY²«ð/›Vöõ{Äm"€$ÚLãüis÷6�(÷}L,«Z †_Oh«aMuI¥ÆVâ +°ü³îÕ•8‚%%Œ¹á›³¥Š e ò¶;÷âê£í hèIò{ÝmÊ“Uõ£ž¡ñ_”®zÄJ/VÙÓ€�½ÀªÇ«IdÉ„ÍϘ…ûßT•ÊS!aç´ZO“$oSˆ +@�Á>Nÿ3#€^geç^çÙÞþ~oÏU +ê@ ~÷;Ó + +æ (‚L +@D £jÒ.H`R¼›Q)�óïb]!Û®Û8B4!›ÀÒ_ê +:PdÀ\€ÊŽ DÜëip¹œÍ€«hÐÐÁª¾ìiÝTvþ<=ÎÇaÎÄ€ð¥íxø?DXxûjs9QE™*žìEšË 8£€ü‰øD9H¶ZJÔüNW©zííœM-�‡ìlë ò_XÕ©�RFŽôwÆ„.m_ß +Ô̸´(ïÃ@'W>•ÅA9ñ¹Ä¼a‹ejÜ+]ª«u ¿ƒ é©û‘�ÀG‰¼8*§Ö¯Ý« +즽–Jó·ç zÓ“¼Ø``ÿf @ßÞb‹¥€“ûèk÷œ&¦Ö†(žH#‘$Só;­øÍ4^Ú6%fÛqèZ´Lh y-áBàAQ¡@ÁoŒ»í z±ïçm)ÍeS{D6…»îÞãÎó™]ÈVûjËùVº}H‘“¬b--s?}SH"xûN�|8 áþ ¾&õz¶‡®îôP +î‰vwz9˜ñS�ïö;pï¨�=ŠØ-q ÓiX¥òϦ„ã|E“þ( äº X¯­,^Ñmw+•îS.S´Áæ°€)@ +@#j,pwC¢ îUñ®�®Qk»”sðw¥?ÏGðïvû}¥Ö;´P2‘ïØ`‹üò˳"Ç6P¯\œÖØQï“UXæ@¸î +岎w®xÊu¥§¶…HâpJLÀöÐÇ$›çÆ>¦%bÿgj +È“qçV]<ÔÀ‰‘ýq°ª!vøá$€üÍT®áÉø\±åm°™âQX­GqY½b�+ùåƒðäKó7çí$œ™ÃEV!z‰½°/W[Ý[ÚðâØÊvpœ›¤'`ø×‡Þ“°©­lµÀo+Ò‘©ý­Ä"äU4ë°îv.¼Ü…8ónÌ.έRN¸;ç�”óâGò‡0Ç”öUP·«[oXq—ói µ�RM &µÒG³·TY|2WúL×Á]vNT`Éj¸jìMÌ€ŠÈ®)ŠÍýÎþà™F4z�  Þ€Hƒ þpÜg¼¯Àrèu1¦ô5�8Ë›ähqÇ' +ˆ¹T;Q_!k3èÚüè+.€Æ×uö;_â@€ì¾]˜BÜ;÷z{€$;8üëjÞ(ýybþZN^…Îö8×À§T´9xk_Az«©š‡â6ËÆy4~tpÔŠÓ´œX´ ‘Z­äõ7ÙH Óã´•« @ÞNñh<ÊFIr¤Ú¡8ITÃeßq’6Ë +zok݈-³qš†ÓÏ2cý©ü›X’޶_§£,ieñ·w»T&†íÖA–½æä�Z¾¥~•B²ÇY¸Ñ�´- 9³nµLÚÑnÕZ©Bÿ«Ëq¶-®±P�u#ŠÃPq½•´â£V’ÅÛ™×_j6j橺øå%ƳLÒ¤u¤ G…gÇz6éq’>�·Ó4ÎÆGG–�ù˲ãQú¿›Yºmo$­ÑÑÑñ_¿ÿžGº�¤¯ÇÙéq<²Ž£ô%«ULJÙÓ#1ãx½pci®LJëz4’hu5=RÝGœ¢òÃ(n¤HÜÒ3l¥ñz·ŽÃGiËq@-Þj¼~�©PÁKŽ?sµ…˜`šΨS†È¶ÊNÅ۴̘5 �b [iß‘ì åë(LkCëýÛÛýÝ¿œÀÞNïç@ÿù¶²Þ3äÆ +#�ŽT#�Yàœ{.Ä\€‹€[w".‚í�>1ž°ZS( £Ñ�;{h¾²R÷)Òkïö_r’œù üÏ–þŸOà¿RYY¹H]_€Ì ÿ"€½£P­0Šømÿ%ëÅç«—©3Ë2ÎâáWå0P5³ê‡“¤Iq·É‚X%Ci¿¹ê+G°PÆNÍø‰f3fyš4Ãpy-â]GQ;öp“-ÖšIóqóDؾ΢Oômr¼pöfU¢ëšÈËV¿§|ሣ+"?ðËWÜwU÷ÚcýUµ±QÇøø‰ïùÅå�‡¡çæ [”Ù<Ô謁wÏ/\^ô>Bl°O3V�Íæ0RÛºó¯‰mFÓ1€Íhó*SCƒ!WW,–¸•p3inãÍͦ³°ÙŒ“fÃ\pÂc>²Ípsøê�'~˜>O_ÄÍfô$~Âj�/Û<Œ£¦_ö­mÞŽMÙÓW5%·°Ä›…>œ…àNåb¹Ê3ðÕ‚+v*‰ç©/ÜœÅö\£¦*@› §#Í#¸“ÇÁ–ÕûšÞìqæÕÄ73›Ñ8øg(`¢Ä”›@„ò©¯9ú0Sã�]͸Ϻ~ç·ƒùl0x¶¿;€r؇v»û{{Ÿul|p ÍqÀø^ïK€€ÿ^§¿»sO ÕoÁ_\ £ Ì8ú*޹¤œÀ¼à©úÉ>ž>�€é+Ï�q»/) «æMûÁU(€AÚhL“ö5+�n†NÀVíönðÅn¿§“õÚõgº²ô笢tee8q.@²Ž$z—¾"™ª¯ø¿=§ù&n•¬I™™Ð+ ªAXN,ðZ� ÜTªVèêûk,�6Ãæf³…~UûE›U¿ùd¹©¶8Õ�¬ÝÜ Ãµ_‡¿«›Íµ¸Yýµ.õD«uH è ðSF1eç¨ÍÙ™Ù¹BaµZåÞo= ;[C½+MØwdÉ]êV.5Øþ ý9O'+ó `™@Mrª<àða8úi6ŒŸèòÀ´1*Œ|úðpøðP¼©zì sS§ŒÊþÇ·¸b;÷ÃðÉ“'Í5�ËVwÉOîÃ[ENVCntmu!Rs?Ý�jUí#ÕJ’/QXæ¡o²ÖîÙž# Æ€ê5ˆ£Ç3*ÌΑIÄÿœ\/à +p*@?4X0X»ïú"˜IŠ×^¿·¿¿·{¢ŒµP4MrÛIz¼lwwÐû—ßîi6>Bþ•;6ëï¤ìçDmÖ™+(u…õ¸"iS(5ÚÑÌ>º¡²]ù¥Þ¥äö·{”Óª&ЕçÍú¸¬J{tu)íÁ¾|9úV7-' ÂÍ f`6G¿=�«JxAŸ'€#€ó1¼°÷U¶á5¬¾~_üÑ’†4;Êí�G_£5ÓC52³Ç~|œ�“­8CÁ¦M5 o¾8NûÕ1ÊÓZ› ‡¯Òèn¨I„ðØÇæZ QÕjóuš<´Öû*Ý(÷0yD™Î©Vo¬Ê7ÔX6Jñ#Òt‹b]jàÑ�¢)f±÷s/mZùgB6Š>ïQü•´H,Á_ô£w‹MЪˆ�VoÏñ8´Š¿z”–« ÓVo5ŽÀuEÑøÛ?ñwÅ«ù_ÓÃä0k–ä±pä$Kqf²ñøkµþSƒÀføêßÇß§Ù!O˦MJY÷5O�ȾmŽ��Ç ·�HØe˜4ÇãdÜz�ž•¦^Ê^¼x‘"š‡vålVœ[�‚Øÿ¹h* =R+Š« U¼-LÏ ŽŸs�ê¡N©©š¸qmeÒa¶Ó8äq·Èr…B„yÞüËŸ¬qãpæŸl6¬s  O«–*QwÔªW-ýÛÝÝÁ¿óýýgû�½ÝgšBðÎ3¤ôPB¨É¯€.tsœþ Q:hW8ïtîݱI¾Uþ›gà>EÀºc~¾`Ç¢­Z*Ö¦ðk°Uû�þN¥_Q0_”Ú‘(åèö%>úí>ô¤¼Òµ@¢ØÌ[?q ;r»zo)ý…ýœVþh}Ä)×1iÂ1‹L™zÚP¦—Ó · �TdAø8&w}²—D †bDDßµ‘·ð^ ­o—AfOü4z6—-0  +�º7�éŒCp’þúM�7T„éOt]õ +lò˜ hê•fK7Å6 +�]ϸÂ7žÕ…öÍÃæ+>ÂbI�÷€A—<Ÿ‘@Š’MÿÏ®ñ#‹Ä'²¥ Œ­?=�]<€ßÖB'Œ›�ÿÉ¥y| +ж¬VÓÌÓ(-äÏ{\ÖsÁâ!×õ„Xè¶ÑØú¡§qôpÌ,é,é3BVªHÌòŒá”hóçf3ÀIsò_ xŸÄOsŧ +Y°¦`9^v¯³ÿ¯�.¸Û=@·³··‡?°‡S`ªßêüuDjAA@ŽƒíêSÓsX˜QuŽWøPìȉ(£W€§)¡pOŠ}… m³F@0,i"ùÀ†Ðeuñ)Ò0Â~¯¯»šS°‚ÜgmÎíÎþ¾f¶šÄNOjæ¥?¿ìg.NÀ�Ñ€…ü•=MC»xÕ?[Éì°Î,¯aŠºaËç¶âÈÒ,µås¼"òÿ?âþv9ŽëJÓ†AbEE\”Q¦(š~�ðDÂH!!E$TE&J")‚´ž§5Ž™y1<€Š¦ÛýÇ3Á:ŒDANShÃN‚ž2OÃê�Ý­³è#˜Ãxîkí�Ui¿?ÞU_Y™;sçǾ׺×Ú_ï&ûn«œÆpw¸†Qç»T4ãôZÚm6Óù,#V¥ -Ç©ŸØ‹²¶ 4"¹V À5¦¢¨™ŽÈ‰ŠïTœP•Úð²’„7«º7Ü—„1̸%+ñT4n†ÕÛ ¡m¶1›Éò²MÈ[×Õ2Î÷Aà-Õ€wÞ$I6ŸÝnÆMñõx³Ób'ª„óΖ5c¦ž¤Ÿh½�ìkhFaT%ÞI»‹éaÏå%Í+�Äëóéó%a²FðV”íJ¸b.Mß•ÊXm)˜kM®\ +`6Õu£ jEÖÖ˜ª%Za#éi½»$FIœB/ŒïÌ'yK›•ÙX™DÝö"3Lxïç¸$rQÚܸ÷ ¦ò€vÀ"Êþî#éÀ¯—R?ö +@Ë:£'�°ÿo´þö_ZâþÝ{ø§Æ† @ò×ÅÞV––Jõ)^¶RgÇ š­BÖz6/W±ÐŽ7ºwã©ä™õ ½ÍPÂV¼˜ÁH÷æs9ç¦Òù/»Q³‘3ñ¦Ä(­SnW/´Fa¶>1X7®®°Æp¢�æ”ÑY¢tAÐ Ë«ÿÜÿnS0[°ý�[S;,ÖjAyUw¬šr�…'Áï²öž ô.¥’ Â:ð»$çÊ)÷ì4‰»¿žßmÇQ%ªëâL`’Ž~„÷´²–ÚKZûÂt6HÜzÞ^ù.ïλÐ’¦aCœ!X€ð`à4¦ðiÀ4í$+² h69 S·‚°QÍP¾í“.’”*l”¨†4ã¶Ù…Ó^‚„®ÈuÃ0O£Y+„•ÒdÐL¶áî-k µ2FAVI÷„ +P§Ù+ü|?ÏY§/áW«~õ?žˆX-3ˆ?¸�SðPïÏ…iöc:Švt,B(”=÷ŠÖnÐü‰x¸Á�˜ƒP&ƒb�k nq nüˆf4ûU²»h¦»÷ û�uLÓ3|£tú´¤°ã+: ÜDªäÞÏž>½ç×ö˜úÆó­¿}™õ÷$‚B þψµoÙ€Ç÷voŸ +ƒ³ò' +°&W×o£ mœ¥×6ɨ g]ÙÂÒB¤šUKÞ s™šMU­æaW%O" µ»±Þ^QQ†ýÒ ¦{` ²*¥Ç…Ë9/�¡f¸Ä°šI\ 1Þ”â$*GM +xÕÝ:/õɰÃP�Ú\£$ bŒvhÔæâ†eî«Wö³ÊІÜÊKµ1‹°–$o�îå%Ùõ7¾¤.³Å;RwÕ ¾¼&¼[ó!‹¤Bü�ds7 ûFô]sªMÝa¤ß“<�Oö«‡L²õvá5�`V +Àk”V¶—íqc(ËIgŠ0 ·§ÄSÍ…tûFÔ�\¥ U!PKÅP +‘ ¿ÆZÒýT?=ÆN›Õ0 ª•w*A’^[L¨ND˜@ÂD{ÇcÌóéÀ68bæö•é”%~ÌÛ÷üòWÿ(€]}ôä3m?€Ñ?¥^€¹øa ŸH€À G�smÑ}ÁÌ zýª ,†í`:¥�á–š°¬¸F*æê{w·ï¾w.ÀÝ{?² +â}wéê«_eaJÊiy3ïÝxð )Sb‹ @bÉ©¸±­½•—€<‚�V£þϱþ…�õ'{�Ã*¿¯·ø›j,ÉÛ‹ ™‘BLÁðRáJ\ç2d-iÏgq”&�u¬Ñ-Ùðwo'Îþ6·öÐa’�ðȬœóy*cuËÕ$Gq{¾ÝN´ÿqÍ[‰tÁPs°~'X—á�Ôco®°º âGÅÀJ9Š©=Œ=ʉÔW#JsP_Šõ ]©AÌÁÒMªê4¥dãu£Hí$Ò}g{‰)TøÁ¾¾OO—k=±ñ†W³ÙmÔî6§–õ ýèžÌÞJ¤’­¸-L¿L䈰�;Ãï‡|ÅØâ8Oæï0â�œýõF¢Û¸BÅ%i67[/ò~γ4{ÁàÈ•RÅݛՅ†.RWn.­Å4ŽË äµN‰�@†Zea õœ„SD §4úö|ðc¨±€‘XÀ½û×eqeqÕ ÉBÅ�(ʾn?¦NíÁã_þê—�d9¥\Ñ„ÇwÅžþãCÆý´}PB÷Ï=¼K{€GQ#:ˆ ‡"Ù– `Éh›k:à©ý +¶Û4’0 o[£^Áù*})P+äÉø» !4í´-… óSbín +@6ž�Š´R +Ýð‹‡:¥”ªÀ½`ï{Úö³{Œ +D¾�îý‚6Šw¹þ¯Yn›Y/:�{ÛŽ€ûÿßúØÏ_'ÊÅúƒ™ÈòØ‹f¥Îúã jM2 oOòæUw›?H²hÉ m£‚£ó¢MÜIú-Á;%ÀM¼ƒd‹Í|?ܵ�6#(õçŸX¿´�ÀÉ�"bY:‡›S�胸ݨ‚ïH0ÿiˆ-!Wwaîûkq9‘™$Bp³ÑhÄS04¤ïýgäTjÕñÊ…lÁ~ Þ oÙØZ4燻ý´<ãï‚�ü;�^�Ti{1K}ÌO"'€ƒvk3o¯g­Í$ß_Ÿoãê/®§ôèAT­é©ZÉ¡öS�y7Ò R®LëÆˆESQ‹ûè’ìâäôÐu«µ"fӸ衧(á(a?X€Ài÷²@Ï7S=OJ„^bÆbõ> �W¬~b,eÿÜ� -Ë/&@ÇÚ'ODžü�ÿùËé¿U�áè¯` Ì?]…¤€öãùf®¥°çÊ `ÝtHK !ö½§c^ þݽÿ@8WJæõ¿qÿ1Mú¥Ä¿Á°g 42ª }‰ðk£•ÿœá¸–í§´Úÿ@ÿëe€cðøuwuˆÇž¢Ëεþ,yìKÈή÷¼À[×�”;¿ùm þ%­½ACËÁDp¶Œ%$NçeÕW™…æZ#Ý·µUù†ÅE‰”*iìÉÌ­®mödÛ©¤A¦ÙLú‹Y?üŠñpÅp·Œ X}רÚBiꘓv©6)¤¡ . XmDQC…[¯YÙ9Æ!/+Í*Õ,}pK2g¿ç¥³IZ- »© “Õ­\§kèš�À6¾�ÈÀ#žÿ‘ÝÎÛG;^›‹ÇÑï$­NöêUŠ2\L·n±E4Н,¡ÿনw¾�÷çÛ)ãžÒ‚±V™ªD6BÙÇ­ +@×fÇ�ª üsåqþ.Ö*î_YúåU½[zÖA¸Vm¼RÞ”T¤Õ’ÊEY´�éGGµ±¦â®=,2£ë¯•n} bañß»W±Ä�Q(€Ç¿x"F,ÑHð_~úô郧?3ðË'OO±ç_>ùGœu¡òᣟYû‡R�­R@ˆÇœÃÄø+ü£zž<|úøáëY0³®!ù=sG´Š®tø´ áݸÿ#\ÿ (»–®ßÖ]­%Šá‘ÔÙõ»Û¿Ð9?yr�€T˜@.¾¢#ˆ°ÿ]ªY̓ö{üàÛ÷޳ƃgX^ûÔ�“‡ï¾ûîûïþä'?y×^?yÿ]¾ôm¢-~Éäj¹ì—Þ÷}É�´ßßÿýßñ±7{½Í[_‘ÜÒ(¶þq'…I!=¬YHæ­=.%TF¿ù¥•4�‰ +�q÷äY#P²Õ4™Rb‡o}§­~3; ­‘�p« +×ÇS(sb“•”œÀªËæV[ gðë9‘û9"a³´ ¨ÏÕׂê¦Çv´T¦D7æhÌÅQR“(ÎÖdy¹^Çþ›ŒWƆ + 0–o;}wgq?ì?/רkáºeâ[IÚjõ2œ�8͇1¾ãòqœ¶©§—’èfÙµ;?ìfñ†«… jÓ¥J@�]b´¡¸ußÂq @`®V�—“j*ö†¹wÀ´×ˆØ%8€çgB*ei…@”âض(¸T¿•ƾ£ݸ¬I F®Þ»/É: +^n<”ù‡VË püŸ\xÅu'*°-»j.€t�Ñw7áþ#ÀÇŸi”‹! +@¶VJ‡Ázå» ÷L)öT„Bä1y¨°ôTÒÁoûñ½ûÛæP3!¥@àîýû÷­€sD›ŽUhoÀ ŸyOŽ?Þ‡t›Ü©¸�ž20Q„í¡H±Â+‘”'ÒeÌ%òVÖßî"íœò>Ø·Ï�Ý?/?þ‰ þ®Ô¬“¡àÿ'_|¡÷Æ£ß^dªEôé\ÆøÚ««¾ è‘{ºQHœÍš±þ Œã_ÇM‹í…0C�€Úh-k¤¦/¢¤=eC»Š¬å­Vš7óPþ,Bñ6à’Ê?.<ƒ¸bá†}êWÂDˆ¹5äÖ|¸.ìJDñlâ|ú8(ËyÂ7X‚,%¢ëI�à #NI0 �~jŒi,ø_ô + æš xÓËûé|Ÿýéä�N?O¿*×mP­“^°!>…+κ^t¨`ñâùÀf–®@ˆ•t³õ,'‰Ý#y€åŠk&)aP?;í ­5dÑkÒº´HÎ$½�(Gîõëêí^$¡×ŠÎ×´‡Éá¥ô£×R®–Ž5V+ +„Õn6ýÄ L ä”±!…ػߔy +>ËÆ©UÜ mN„Ox¸ÐˆÜxïáCx�� WRAËþ[á'÷Z`Q„á±)‘ jÄ=žŠFHI@0hŽ#Û°‚5}÷p2îmÓtH›É{ûî�û÷Œ˜!ðð.÷¤ˆW  ÷áŸþéŸÿâ¿Ðñ0öR^Â; àtbûU¥äx´ýäÑ=kéðþëïnÁNÿ0/¤ËîÿØ1ýñr&¸Žø @èG¬@¼­ˆ0il›df0„ôŒ±‡Z{QÚ¤Æj 0’–ëP +½#fîbŒ6XoWzÙ|òQi6 ê/¤Îx„ÚX�A½_‘@� ø)}`UìÓ¸ê��Ä4€È0�"bµ1©€º¾‹ äÜ�õ_|“ìu’ôÛ½æf™1غÒ{�d3�7wšÒašºQ®¿Õå/[q–nôãÛ(€$yF{^‡t 3“•�iDâA;]6l¿vY.Àr"X/G½¸6p�`ÿØx™ÿ¥ &x¤+ kò‹ˆê�TÂI*ßÑ—QSÏE2W©U­õ°|¸!ÁTŒ�Ø[*@ðež¯ªä‹ð¶b_è÷åð@{Y³�¦?®Èÿ%*@߸Úôx +©ÿÌúðÍòÿµíW¯e“i~òË_ +þzAÐÅΘ™·Ž¿àÐPúó'?ßÞ¾~•$:DZ`[À]½ Ã8R:)© › +¢€¹ñJƒÈåkô‹'Oþé‰|è€ÃÁ kÈ…ð¥mÿâñ¶.ÇÐþöÖÿáÃG Cît€ch,?‹ïjÅY à}vô +à ÌÛŠ‹Fã(� _mµ¶–îÐ5ØäY*3ÿŒv%0|𯷸®Š­¬}CæL#etÝ͸Å›Iç ˶Z2„I¸bUÖ@à¸0°?ñ4Ԉȉ]¥„2¨žE]EÓÀ/±Á@‚úZTqíâ긲�MbªQ*…÷ÕZȲsuÑæNŒK×,ËGËŒ„%kêŒåùŸ‘ÑÿÏ~='Ø÷]Ò�>Õ O¤ Æÿ|žÄí,MÒÅg;º-ý½íñw^Ù]±ÆIÒOšß¦xÝn¿›‡»º;­gЦ`�îK1Í÷;Rù‹\'$P5?�ÉÁê�Ü+¸~†5S؆ê5wƒ±\Ý•hVëãVÚâqŠq؈JÚN’,ü GŠoD"U¦~”¡«àD`ãU”­d[™Ç‚Úzù¬r…¹{ﺳ}¶Õäöe›h6§� è=Çê·ï Í�ýÓSÚü<|ô?PÔš3Am‚°΂¬@‹ÙÆÕWúGÄí ÿœ§p÷#]}ðsC²˜Â“Ÿßؾ�·´É}í¦#cîuˆ'ÊC‡6°}ïú]L>Ì�Ö‚�Nõm�ýûp ¹¿øu‰¦Œrn‹jˆ ]};ëïáoøÓéör1Ó&Bùÿ'À�FÀ_øpÞÛÈÞ^FG“4½µŸ¹E‰³^¾«7¹4Ëód¾ÉLUØ¢vÖŒó¾ ÚTyHÓgéî—¸‡Ú�öo7Ò¯è=”ý€#§Ò:üáÁáÓ^$‹ë"�ÇT€·“…Ðw6Z‘UÌ’HF¹ºUþ£©àVØ4ÔËHEk§M:ýªèë”Ó¬µ¿ÖNµ­=¢M¨«ëÄI+ gå[ƒ»D%_y§LÝ+�Õ¢V²Êa]Ž¡6Ïÿ´Ü o�¿¼ê&”EJsºûd‡ýGZÌ¿Ló´›~ùQ7ýÃóüE¶Ç;ùá‘‹ûwÝLËßt×»YWwë«gIš¯dGº‘m=�£Ü}mhßN¾ÒA%n4„0K¥Šƒš<ú\Ê$ ¨5±áƒñ5Ò¤£ëkÇaÔÖ­ +aD¢5©Nªš¨qÝ&I£°™DwDû‚+Aº˜ö_0c‹œ4¤€ºÙ .yO²²îLŸü¯Täµ7€ÂOý™-ÙL�3¤„tðLå¾<ëG0ü‚Fðio+@æÝµ�­¸–×uaýúõwA‰aQ@4å:Ⱦ/üÞ¿÷˜Ñ@h'lµu|dÖu¶Úøè7o­m bÎ�ƒ¿”9Z%#£HmHO0^ÈÏ(7�‚.Xßœ�ýžgý ücÊGÀ€÷ÿx 0‘(´AÁþ/ S9¼­4š?h6˜¿¼,0U„¤ú÷K?ÚùÆÊTÈFëØ*q?úž­þ Z­ÎWççµ}VË$’�xÖ§‘„�˜ÿ8¢HqL”å|cV™UÇÇÆÆÆKåreªR�ªN]i”ÕêÔÔå4”ÙêT¥ì¤R®•Ë—•Üí¡/^ÕªÞúÒš2ñÂYý±-åJµ\Ó¾¥ÒøxIY�••Ël™Äo)®IÜÄõ±ýhþR©FÜâž­„óM& YX¸¶8^k,.^[\ù!ƒ�zñÚ5[`ê¶pq}ñ?­3+Ⱥ­bÝ"·¼Tž½vM·¸±¸¢ûöCÝ".€ C¦Ê¥±Kº!v–úÖ•ÓtpvÖÝ‹©oýò¶/É<ß³ó³J¤?LbÂ,�ù…©ÙY¯L¯âEº +/è¤õòc†YRmÐ^ýŠ kƒá[O³-¢î=øL_T~\µMÀÒ¢öÇ!`(¡Т�E®õ"Ðoá; )¸êÇ·ð¾Üõ«¶h+¤Ot0o„]*X‰��´Mîô[Ò"J`› ƒ€ý£_*“m?±HŽçZü ŠcÊݹ'ü>¾ûž®ÑZ?CBlÙo½¸KNð7ôÿG�¼¥ä…æA `$ðã!�œ�xý’í†IöûÝ®aR¢"f’ÒV‡N©éí”i)â/µ˜'aÚIEAEXéÈš¥;²EY’uïȤ0\E[$U̶�$;¾iÖ…È´ƒø]8Ä1pû¸Èp'Qø[¢9›æ~�P׳P\æI›ŒZÈJ­RQšÐ­…ÛV#^]þ.Ф] <–†Ìb15šr�8ÍF<¢Íxg«¼,G·6CS÷I9aÔX`³®†v7ç}ôeñ&q}|³´Vn(k&3ËÝÏ¿;üaöM_$€ÙÐöwéM�tw›I¾¿o»hu¿x˜wû/óþwí.#)¥ßöÿwÿðè ÏØ I¬u¹iúòßšbVs㺨¨Q›«sÉzoØ•Gœ/7M÷oO^”‹;ro,®4£F¨;·¹µ_š£–j=ó…f²)ÿjO4#ïæ/Ò|�—öÜ` [IW�¿ËÈ{fsYc0±2/ A³°Í·ßWû±ÕaÊxö›£±(¤Ì`›vÍ.ç úïãS¾äo1þè`~J$ÈgåNÀÿžoý%ÍXrŒýO´øñô®Bðõ€áÿx @bÏömd5î‡�¾Ã‡“bô‹ÎÖãgMNbÜʶ’T…„5·V£àƒh-m1Yôpg9ÚÆÁ£�ñ†$þ*‚°jרõ¸ +°C >ˆwº–y ³\š¬L×êrýWiZT]ÃóFˆKË™]Ÿ§G3qª¹¸bQ:8KêsÁƒ®!ÌN.‘µDK¶µ¶œ”çÖH+-S*]R^ZŽâŠ‹ütÙZ,G?=ëW®1jê�"Kêo+)Õâh …$ïaïpÞ¢]³¼˜8¹Cs�kyºi> +k$�ƒ�ÞÞ«çGwÜ�mà÷Vœô p-ªWjœ�’v^4®5¬¾ÓËRͪµ/Sõ¿š6‚ŽNÛ¨Áí¤ìC$ô(r fÁÒ}-X°ïÐi»•5ÂãV()€Ž½Æd,)Ï^hÉ~ð¨”õ•ð…Åu ÀÚéSò0¿¢Ñl³C±ƒš±m÷LJp-«ƒP pÏàz¾¡J+\}æ�¥¿dïDÿ 'žè -PIÁ�¨oCÐé1¶É}±ùmtš;Õ‡¶Q¹¾¡1àÌ=ï1yï]VÚ*Ó¨w¤¸øQëÿù#ÁØáùÇB:Ö¿`#fÿ¼Z€ã1‰Ué½…Ñóù°Á/Bo½ˆ3é]F9–á'åEº)v%a S+ûÑZÛdv^·R¾ãBt›¡Æ ýES“çÖÆ½ˆùT€/~QLæ�©I\ %Ó*«L®³‘õûÀ`~9¨ëìü_I4¥?Wj¼‡2G[À=±´$Ÿ*2“ šªÄ,þKäe-ª·‚Q(�+€ò�Ò9èt’Ng3®(s]–îUœf�vßµøÕ½°ùFõ›ì.æI|[f؉ßÛÛÛëõŽânz[ÿm4a:\mÅ«kn¾^—0ŸoüÐ< bV háSªÿQ}¯)O©EšHl²XT¤Z“ª Y-:R!:Ñcµ¶âô¦…€ë‘¢sF•KP^x;+‘'L°MöÐðo¼UìQVò�hm´/) JrÚúÙ²?{ï†ÐÌñ¥A¤Wtˆû´&�nWÛì`Ô>”º_¬œwÁ>îÍ1ÝQ ™qýZƒÏá¶h›X�)Ke>¼m²¶M:ð—zàÔšKä<}é^|q/þ¨vNðµþŸ€Å~,[/àÚèËD +�ÅQpN @3|Y`œ×Q1hJPÒãz5ÞtºÎÞÖÊqº$¶ÑgU˜Å9­8¸ª¿8c:ykª¦Ï-Û²*˯ŸC°n 4@¡¢ðø+VhÊNP_ +àb©4a +ŠŸþ´Ö3‚áË­t­þæ¼Å¯ÕV¥*x¹îoý¦J8=ýjµÄ‚ÿuähÎ1„µ¨\;†ÿ‹c´:®ÅST¾¥xˆ¿Al¸Î8*Õ¸,šîäé|·èà9 ÏFœëaÄ[‰Ý/Áz«Óëý†Zÿ§ßÙäa¶ž[ »,+?#GF"�lñZãš.l®Ñ`¾9)1.gÎs&)©Ö:”(ŽÊQ+˜£ÚÔ4@ã¦Ð¯{Om ÷hTDäM +`msss/ˆS©s(ÖôY�\Yp +À©Ì+Öü†�Ç+Paµ +ÑF+ó÷PÄñ1°`¦UøÒžè³²N90ðu¶|æòð°ÒñD\À: +˜0¸þ +W?s +À¾ì×�gš@ ° V¿ú¾Ê¡Q|qt;¬ò!€è¢ ¸NƼ}ï�r¾ÎÅŠF\ï]Žcз³+„•$9þ†þ!ü xKïb40ûû+bº‡½Åk¾©н]* hCtHTbU¶V›QëãØæ®Ùëtz{ÉJ_ôÓPí…ºDûµï¼©]ÿŸ&ÌÖ +(ß±ì`‡´C`*@¦yøRa�V‚t^\T€‡P8S¯/}¸Du�viuØ>^¢"Í�—ˆ¶/WÜ4…&ÔïIêu@]Nq­A jõ8ºDÁ_î¿4ÀE¢€Æ¦¤<Þ(ào’þŽt_'¬³-£_dóÉ�qw& 2À‘€ ÷÷•;=1i�WqòGh¿%" ±FSžZez�u­Í$“ pí&PÖýàÌæP\ϪÕW‰}&µ´ZdêµiÁ1€ïÛ>�àV•¦DÐUBzJnßæZG@.@”,ëF-¯ÚSw �$…p* `¦„*+þ®ü[�Áf <tvæË0ïè +�4(–äoÓàÁgw?sA=¸6ÁE,h*Ößp÷g…0´;ø�<Ó'Zæ¬$œŽÆõ÷èÜïÄVJ5�f`Êí Ònœ&m’=0ÕcŒ":…ªCxa‹ý¹¯Å»ÖåÀÿ„õÿüÑçCücé‰ÿC @‹|¿2€ã +à Ë{ƒ¬Ä�8Þ2²ïÅ`)�ÈÐË ÜÚ²aë{¼Ò•Cæ¥ÕÊÛ,ÑÕ4£bN�±�P¥M{ؤï°þ×û+ÕVÍ\£Á‚À¿ÖÚ\í4–‰Ì®“µE† +À«óÛ<ZÞ+b|�õº÷ž´Ã£ôØõ0@1ÐàÎ1;ŠaäÑCóh ÃýÀúµõ³‡úá�#ÝÞÅ4ÝÁˆêRô'öØG+¡œL©àÜKØn&¶u¦ÒUbv¶ˆ�±ö³ �9ñ¬@9q²dòàÆ]j8îóôZvtÁÿñ*@?Ü“ü ý£ð—0´í‚²õ(bƒ¾rÎa¯Å$ʽs^i–ÐO%“¡ xñ�‘Ì–"„­N ÛMÿ•4 súïŒLn‘Ч` y3%NÕp¥S†vÈ,r…(öˆ¥�¼�[ôãG`•™™ÑU‘€`-¨uˆø¹žÓfú}öUUükµé+µÊ˜s Aް5^³n€Ú4ŽmáHŒÀq¥±x“8„¿AìÊ·’µèREW¸µò°ÍD;Ì`�ë�k!Iƒ†>RzÿB6Ò\·q³¥[©;g�3©ºÀàQ$ùÂââbýfý&ç~³&â3)ßÉ…uéAÐÒ•ëÎÕ£¤´ÖD¯t3­Bëç›AÈpjÖÀ ú/„¯~¸ººöáZ§¦Ç¡û¤Ód°¦™…U^§ Ú*ùJ&iD×:ú1õŸ ö�Vp¶_ úÂÌ +ó`Yk¬Åî#AaâðìŽiÇ5`ºmŒôä~fCŠƒsm'¡v¶4–•q;Ž…óAéÕ»Û:c[7rÖº„7÷�«Ô 1ï(�Ã{?"u!RJ.¹û§ÿ,Ý}—Ü�üOXSÿ|¿/›±Gè{ùû±P®Ÿ×cÃZ€ã1€/¾ðåï|‘ýne®;Ž÷|%€w(oÌûk3Ä$[Ÿ¤avŒ¨TlÀj…qKž5wiJ·¶kGDăm Y°A~ˆ~½T°£dÖVKµ cK“ÓÒ33*»2㳉áÜ«PkÈšha¦ÉzW1é"ƒ-H]ô—=ãZU{ÍÉW(s ¥d¢-á¿÷òÇ*˜i =±º–ÌFq½6YYÂø£}œïÖ³¦ô¯Óg?ÑSðlŒü¶c€¶¼&˜¾Ñ¦ £Ö¦ïÆ6h}øh›*·û†a±oŒ4éùï�õXØTÆ>}ô¹¼ Klá†|û¶-Zï4 Þ“€¼ØéÚ)#±³çüáPÚ¢‹|°½ýh[›®^¿w~_h€BØv×ÇÀ}ãÿøúOÀÿѰ?°îï»V@SÅÖ�È�XoÀ×c_Ï=ÔÖ‹5bÈ¿ÜÓ• t”ñòmÒðVk+MWú*pÖ +a0Š‚ln¦a’2L¦Í‚¬Õk‹*,{± I1¡L‹i€á‰¥ø­ ”a²3Ób³uzõ$ÆýÑEè�>oŽÿÒš€™NÌ (¤BÄËD?–fˆ§*b:äò `bB.À÷.¸²T6Íòvâìó$Ùá[úôÒ,C‚d�fWTHfÝ ýÃ�Ò—nF3N»¦ôWwKÂäÁ[�4o§@»é¹ÈQ™™¬YP�1ƒ¸s²ëjrk&Ñ‚k†ÿ`³*¶S«o–oã\^ŽÜ}tQù8 km9ZµÞCzìµ(ž›®L‹½pf«´-@ƶ·O¨cRàK6Sk +lÚ¾÷ ˜o3U Ùk}i‹áh +…wï‰úÓJÿÁvWÖV +àºyyX@ž>¸ÀЏ�m‘0(€ÐýÙ1s«Up¼ßRX°@ë]!£®”xB|Â¥öðÑTdðÑ•èJuŒŸ?¢©3½ +-Èù˜˜gb»ê�-Hw�Âÿ4ëÿèÁ½!ø ñµCÔ¿ÎüÒ»ï_w à5ðVu�„z˜íO_޲>iú¥½R£¦4@|È$q�4<”2 & a? k tÂó•˜J©9ͨku*º6«ôíÛ �‡i,@Åmÿ|R:õkÉÕLBh Pk��ý@»ûUQ—’ʵ9Lºì?â‚Ü&8 B4[�j3«l±¨ÍX _ О«åÖ±,ÎÓ¡o’Ö^*üÚ"P ²k‚£[¹'›žoòw3ŽòÅÃVL{k‘} QøWçE;Íé8H÷Býè¶ë>骧ýŽiº¸ðÿ¹fµy&R•¥ òt{"q€¥Ÿ.'Õ(ÔùN-EuiÃ@€¯¤!€óâJêâÒÒ² +´ ˆ˜Ì>¨Ï”*Ð3ùöÈ‘±Ç�·Ý-T€áÍ33¨¦~$ Xé¿·}ã�Ťl̾3Í÷뇞÷:íþÉî?�UÖ&Fàk„ F:(*ܲ=²ìÇôᆥè>ä€cú‡[áÒúê!TZÄÚ,\½ûØFæ2…à`k¿bî×f×£“¦‘c~ú:(v2ÀNÚäöÕ^ÅIžt›€=ÂdûåíÚ>€R IÞ"ðÅîA�/LÜa*PÈ7W¤¬¶WÿéCqÕ­�²,<Ð2;âº$®PjQÿÓ0ìý– íõVq/NRLô,àc㮼��¬áê¬k2Êò`�¿Ö0\E”¿2}¥bf¦§…ãi)Oÿí *�~�í2  ÷ò\™2^Ž•Â‹ +þMLÖþ®–¸ÆDo'¾*õ|ÛOÓ^O +@äbs#È×tëtzr ìÞ¸ ô{ë_C¹ú¶¬íƘäùK%YÏ€ 5°òìk3Ì׋l&Éüµkü€$¦‹ŽTºìe¹KqµSí™h3€’º—\jC|J H¦h$%±úf +— �5èY0i +@bÕ¿ÈØë%'À;÷îÝ· 8þwûCÙ¿ïj¬ôßûϲ®B£‚0" «lÔ¡Ó5Ò¿»´ìDœ ñDZá*Cõo{¯A 1ÿ8 {.Écæ •yÿì—OEÐhûP¸46Ä8ú W^ Þ» + o¿!4ëÃɾKS]R¡t”­è‰´žÅîm£Üdö‹ø�G¿?„Î7çèÏðtøk3à6áCû­% (‹¯Ç´¢ýNÆ$þQ�#bö«„¥=ß¾'ŠÚí;öJ°éL`~S×Oº% e‘fp{I€ŠË¦a3kj™±0ã4S¡µÆÃ_ôzRVª�¬}¼ö±¸²™7œfp �˜ã¼R£5+_^EÖ©°‹¯‰ ¨¨ëOPš6pEoA^ë�#ÈÞ×–�¬])_ ¢KtA»ÿ®ŽHÙ|OGYŠe>ƒ·å°ô7Šl}¯·ÓkÅïˆÄSbVº_®bµw4@5ãýgýfNcŸM¦h1IS.@6œ+,ÉEÐ.G’téDáÎ)’åz­"�& K¤©Äòr«:%zU¦åø´[kÏ�t¨Zm%JF úËT ,EQ«/€)z'c*Õ?ß–á%š†YbB“Á_È¿{×ͼ%À. ¢Î‹8`¸ÆÐöl×`ûàñõêõ(Ç”�:�!ìY0j/¿‚AE´ßÓ'Ÿs2×u�Ã�XZ€±”Óö}¥xïê�'ú·mü…è¿�üÝëZÒ2kMè[G°~÷˜aèGÛ÷µQ€ü‡ +@»RõgÇ¡]"bè þè¯ü Ó/«?l 8ôüáä85ð6 +àC\ûVçùà±›·bÕMÜÏj,Êž$áŸDü­ZC0 ¡=ùäŒ#Ë›Jz�: '‰öZ­ßP¥µ%?@\ñc&œ:)kI”‰Àr07qñ"#È—áµ !Ài“i©Ó¼Ùü%c{Â~ÅW´f¹V#V6kµrP) †j®n @áK²’Thƒüâ7½êÞÆŸ/­-)€^¯—.—›•ô¶iÌVòigo/÷·'NöÒXFþ°Ù7«/‘¯O=\€­­,ÎriNh�TC¡ˆØÞQœ5~ؘ˜%%`:ëè�`"p—áþ±ÿ^]àÆÏÕC²-¶`•‚°qÄ`I£ |€íGiDç|ô�à¥/Sr+H¬�”‡V  Ô0€÷î=vl3£‘Nš?fÈu÷i¬äÇ(cÙ $âÑÇì¿ÐÏœCÆLœ +Î^i0îÊ’÷�ü˜¶Æ†µ€Z¯¯Ç†µ§(€7÷ Ìeœsà‹v×3Îö]·à|3ö•NpuwBí‹ß­Ȭ‹x¿€"Å[0€(ºÕ¼•/6ûrbÓÀ�õ§ PñUᦳ0;Ìà€ü¥Rå陪 ª×””â}S¦Kì?«mµ*µreiÉ„D@ n[!H¼�„´˜QÁ—úx‹Wÿ�o!½Nïà7{¯>¯”§Ãoéò³N¯¯%¬ó�þ1ϳÎwñQ¾µµc�þ99åöí¤™\€W=VIˆ Ðõ‹p4¢‡aøQ¨'@;ÃÀ\¹Ò˜.L·°¯®uâJPZxœL¤ã$xýt�^]Îgðe-ˆV—h¤CâY‹wjI«^™°¼xæ^ûÓÈ ñèçÛ6Q–)€í'ÿHlÏNÕ=fÙAQ<@0·®°û˜V@PiÃ3ohóá6Ãë¢2è]�¸.`›=PJ.´ÛÐ;NP�F}ôð=ì)½ú”ù})è»Üõ +€o h¥Ô“` �ßÞ¶tÚëï`t>Ä�{?²~ÿV{Ãy˜dÅ Þã…¦@DgHåI» Úà m~†õ—8ã?¬Àšhê â�ü�0í{V àm*²½žÚ +&Òí2øD·KÁô9SY&ÏzV …ä~?>Ìò½ƒüà —g›õó,Íò”Bšý.ï&én³�gùQÆ,–é^?Ë2F³Îû½íßÙr*@ºÀÅ=è�I'í«ˬm& +Dë³é"Z�û¬’HÈÖÖ)Âúmèwªª5s�X[T¼9wUG‹‰*Âu«DÈð”iÚ*ï Ò�æ�±^–¢Äµ¤o:3¼Qú‡¯òƒl/ Jµ©ÐÆö~–ì¼ê¦Éaš§ºÝ»iòÕÞááA~ø];M²Ýôº…‡t +üJ·8Íöt?_þ1ï÷™&”„Ö­¯60½hÞíîî3ú8F;’+'ç-Zª@h¸gr֤آjXÕ¶ A.‹(HQvÕŠ­�ÖE$)Ú'ŽÑ\vÄf‡‘þžNFO>ûJ¯lLvß«¹fS ò?Tµh¾,X/¬o?xòÞ݇SûPè—Í·Ïcâ€ïàPU°ý`û‰ þUQ T†|��af;Ñ;¤q'À„|�•âÁ�Ϙoô‰Ñy@ë€1w²€ÿágÄtX›Ã `C„ºa îÞ½NLãG÷¥ îÿè>C 8U©pݪïÞ  M�%ÚYr—ÆïÑ´À�6ø¹ÙCÿü9ÛËCx ò÷�=,@µ¾À@Fc¾à”À?;;î‹$ô§¸ëS‚„ᢾç?PºyëØoÝÃé¢6æÃ?&€.@›hŒÖ˜§Fz¡A§õù›É[;è[«;‰€ßû Ž€g5e}BÁTX¥SºN«Z¦z~l¼téÒ%a´¬7�©J™Jôä×J÷m?—.—ØTÑw©2U¾Ì–ËŒPšbC¥Ê»¢Ã^W–� SeDŸÅ[|B×3þü÷k=\g¢³òt¥Ê�bå¢nRãš-:i6¯Å‹ë­¯¯Óß_Û‹×´`bó­7›Œ!ÀˆzPS¥ñ²žßµk¡>ƒp‰Uý–ÆÆÇÆÇíòmãzW$Aç-gÉFL˜šb#k«ÕÚìÔM‚ZÍ  .@)u'˵Å„ÊYokC6?&;W¨˜È•f`.J·þh­áÿ ä•ãÈcÀd Iú°€ý¾G�àî=¹úeå“Ú,[nµBº´Œ`®Í6ßÉ4ÈCR‹¿°Á„nÈÛúôî= ³×fßZ–6@! «Ìe±  ¼B'm<ž +BxÿýÉÌãö‹îëhú¶k—‘ @§ÄûTò_õÕ€Ä` "1RQ´ˆÐ_åÅpå'á_X1 pñ6¡ÿ�˜¿­5úòÝ�dçÿ†À›ûe[b™iö¬=ðý‰ÚÝâ‹a€úYò»-Ù�"uÓ%\v(SÆûÉv~M÷ñ¸™Üîfâ +Í„yj_¾Ìd×’æþË\¾D¶GwxAaa�i‡, Ù¹8ñJâÓnƒçÄKŒÖ}¹Vó½Üj¢Ÿw’dsµm¨†ä/ÍM«Ø¨2 +ÎR¼Ð®* +ûA(¶»ºÊ â¼7k�Í¥Íxu“�Oeåµ×÷ôcÞC¥tq¬¤\Ôjô„‹7ß(ñóìm^º1‡Ýì0‹–åÖmÛÛÛÉòßgùógÏ0ö‡Ï]A\i7ÓÝ<88:Ò�ßm'é~þ{Yø,ÛMþýðÛï¾;:Ü_?ìë1ˆsÅͨ6YIº¿ÎûûÉígq»}Û¼UÄV&P±»×–eAF^¼ÞÍPŒßÖ –ô/µ™Ûn1v"JÈdÍÂGûÜfåŒ*K›ý¼Cæi÷Yw+%`*@ÀÚ–ý×É“ÿþK*=È@„ïÇÛžÊ`~-Ð/ϨΕexŒ¡®bù²ú °+ãü„Ê·�p 1B1q¥r =Öf“]øàŸ +ÚÌ|§8¢Á¿Î/pŸæ¼€ùú}( k~]� +pƒªˆûŒ¬/;žã]½~ï‘©7ë  }ˆ¼'Þ�Æ¡}‘´…Öh1gþO±þW ülî÷­ÐB.0pÜÒë1mA”þTð¦8à*^|´,´Xñ‘8Þªâ˜nƒI�Îþ¤f�µ¢áé|œmjWÒÕ¶ƒAËU˜xK$‹ÉíT6ñZ¥HF,ÀT€±€N7óÄ«ÕlürI92¢€¥Ò¤Ì²L˜Š4B‹?¢ÿZ¤¹«XÂo­2==�" [Õ~—ÚܲÐÀ/Õòð©VPRö³Æ.Œ]œ‰n–ë�âaGÙó¥õ6"¥ÚÉÛý„‘ú©�§gá=",Z¤š¯#͘þ?ñºüy[­­X ´1G\kª®n¦vhI·.ÐHšk¢ö�”3ºÚØ)mVˆ_R 09i-�jµå©M›¥^¯/12}üÑeÎÍ.Ö—^©5i•@E / + R¼ö�¬*¥™¨ÐUIO܉ Þµv†Iœ€{ÿûÓ‡Û€O«\ ð0 ¨ŒY)Ç�o‚€ÛKÁç‘’»ˆ½°÷h›™E®êú0ÓBР(Þÿ�_%&Ê€ƒðࡼŒÏEA€žŽh1mw3 ›wýϤp6He @jGçn�{3ã÷oH=áÆnxhmÈ“œl´�»Ì/`g�,p= Lid€3#Ç�Ìm6“'ONµþW™KA"d þ…x (€[Ï@~Éä8+ðLÿƒ(Ä?^+e µ©ÒK—‘?U4\uáZÚpãyS]< CIØ{5î®d:vl…]+h­ + ð*à“—X +@»•f×P2á*Á[_K¥hŽÖ�¾ð˜XÓÁ~6b›<²ä@=§ÓÚÏ* ÿ“ô¼86va:˜› +¤(/¾•Ŀŋ°·ñ/I0=CØM4ÀnJ'±ùA,Ü/ß(餺a{¾sµo#h-*P¬•_ž& ‡4ÖÓ +æfäæMæW´v«Ö¹¹UíމѸÚ-/MÅTýթݤnDü£ èXÁبÁr£Ñ²8 ‹ª¸é‡å¼-X‡‰R%‰úŠ5“˜Î@`B¶Rh$6o*€ —!”/"êÖ¶_ +àÞ±!Z Ö~�”P°å˜[TÉ] ß@ +sëjžÜ§¶Á2SN [ÌÎvè…'�™]HôûÑÓ'/Ý>ì¤Íú€wpHÉéítHœ§ÝáRë”!”DnŒHS=|bÀÕ1DY?~ à. ݽ{].€®- �ì’•­¿Nœjýßóø?&‚± ¯/ÏFÚenyX pZ @âqu–P‘GÛo"H&îùê ›!…ÿ¢%Ø´WFâ¼'è J‚?’Ä4E•šªÃ&l+G‡bQÃÿ( °}NJº­--»:<Ù± À¿t¹l¥ÙI•Ìê“bf�0['Ã/4\±?&L‘ëG” €KT´ï¤i˜‹h€Ê\P¦šÑŽô6’l¾ÅKןôã<ݤ÷kÒ­ƒc·ZJ  +°—6{=¹`kƒB$…�´öž¹©—=(UL×�.ìâ0Ù\#ítϨ&‰*TƒH,í$tô˜/«ÌÀì@¸µKŽÀ’*i3°j—™ï º„&™Jƒ?øzòPÆQ]å_Ž1 0„‚®L£±Åÿp °üÄÕÌAçHÆ™ñÇøÊƒ–“}] @Ú€Áîn?Àв̶ŸÉãGÛO|f1€Ç�oˆÒ ä‚°¥±—”ƒ¾h)¤-�âÅû¢üÒÛ²üâD¤©X&p!ë­³‡#�˶‘”ÁÕ«TLX5ƒëôƒ +�p2:0dÃ¥ÀdÇŸ?9Õú_½ +¸1óú*p®D‡  ¨P’3ZZ-À™1€7)ÚzFËVí¸—÷o7×Dö%cÿNX©Ð¯pþ;1ÛWP—û1 +ƒ„9üã¤ý•yB¾ +HK¦, Çä'_QÒXk ºªXhNÀåÉér¥4e¨Á¿)…üÏå!`§§eí±ëò�©ì×@€i‚¸V]v=úõFuLNLJÁ¸–•ZP©Û¡ßR oœ€~Ü}6"îšÔ»ÁvÄÿ%²þ�N²%;Ïh9±jM~æåtIØ^U—™B�­‰¿Ë§ú·V]ÒX×_™v]ýçfĬU×¾Z®-×€¼4€#œ˜Ö£ÓKàB.A÷,®šˆšÌû¬'Îy+»1@n¤d‹Žxxãáó¿…ý¾g0º·‚ à‹WÛ/ /É·a�Ÿüã?>}L�á½§÷ïIÜ}삨Z +@L¬2²F+� nâ#ÔÝ ž²åð�ŒŽ ¢ï~¦½Þ»øì›¯» ‘¸/ƒ²’RØ–ígÆa¢ RäÏ`„î]}ï3¹\.C~  ¤öê™1@GÂE‘øÙ£Ï +ÿúÌúëUxä×Oì_¿0€!ïPŠScgö0¡´œ-Bœ�c ?LÜA47eÈ=‘ÂCü¡¾Ý´9A:û ÀMªò£/üGW½FMÒ…o~(h©SÔt<æ�¿ä\Ð)Áì•ì˜Ê1£•¨¯/$(Ë¿z [m¿¥Êe[¶þ=A0…ïDÓ@M°\u#€á8€|C¥2! àb¥¶\^Õz6¿�àÌ¿ÅKîyÞlö“¸†À§)°ùEà÷��@/»Ó‡ˆ p4€ ŒX#,hEº¸‡o¶//ÍqÉfû#½˜N%®.n€ùºô¥JmM +€‹w·B€Ecž§ž!­/õGÅ h¸¤¬^.½SZj‡=køÅ‰Kˆx @x^Han<7Bo1Щ$Dî8Áœ)€G÷ +yÄøÑ²½"â0„'¿úÚó jOéBd €\PB6cƒr¤ð—¿„i¹Þ�úù°*‘N2ÏÉØyñG§©%\€‡8ër„CSæ\HPd÷EE”‡¾Äß͇×õ¹|Ä3˜Äì=�'®#:€¶ùÌâ�îé¬õýX®Ì£ÏŸ>üügÄ4K}$ô�3Cÿ°/@¡à~Ñä­c_|á�}º|?î„M–E U.–ƒÏXFP»³I,´ +÷8ŽP† „ûÊÆE½xAt•—9&¦¼H¼Ï“¯¥( R†ïAÀ ¸¬Âî„–þQIESE›)½$5˜¼^(˜®E3S‘ʺl½¥¨åÙWc"Ú�5¬”ýg§É‰Šì¿TÀäÌRI<ݶVfßø¢Kƒlá›^@<�7ú­5åÌM¤u «\—ŸÎž)�ͤ³¿qÔ¡¥ŸdÃ:Y²`¦ß¤öÓ–60¯ßM³ÊJ®-ÒZËͩŢ1ºÚisžœ•¯8÷` F„Dæh)¨ëáÑ~”A­î½Ðo³/MO•Jå ·ûÊ¿“‘X[uA@W~(Hɘ‹Ð|‡›Ph +PÐL_|ð豀Ǡ_ˆ2Í`ª@ÌÜ ìÀ£_þêWOi.ôèÁ/nÀîÙàÿÿÙ” *Bö– Ÿv  ?ÇøÏ4Fxüðá�÷Ä·Å´V/ý(ÎÃ`oÜÞ–D”¯ {ÿÆ{ï]ߦjQÙš ‘Žÿ v?ÿüÑ]›Nç¡<�í'ÊÓ)¥3ûoµŸ€?Ó—>å8LgüàáÏž>|òðóGŸ[vþfý•ïôH¡ `rýß÷1€!8#ÀÇΈœ¯#Ë4ðô/�g£¾\YvãX{“t–‚ÀTóöüëGÉš¡HZY»‘IP`T€‡*À»ú¶=OÊR>W®„§¬E»1€ +uóC Êtæ5þTUBÝz¨N@-X­VVUnµl�…Y7j-ý¸u$vUÂ? €¦À+ÓKå5œ6¾QáL×3ŠõÓ_Â÷Û»y²¦Œ…°ˆ0‹»ÆýåÑ?*––ðã„yë½'Ñ@O©H°žk.UÖn“ªi•I¥6=DU7ÔÙEëI)P«­U‚5­*„6Œ|ÕѲØüú’Ï,€�õ +–jðÏ"˜k0¬¢\€‰Ò…RÔ^°Á_Š˜Ï±t+êúC4�ôH.€ ¢à' <¥?¦r Ø:êÿ�ê|`e\y[IÁóÝÇ´Úò«_ýãC™½ŸÜ°á·PN]HÐȵúÑDlú.Àç OÐÖ‘µUÐ'1È¿!§Ÿ^Aw?»A; ‡ä’lã¼GdS„+uNÚñÆcö€~Nä;ãN££ë7®Ê³yDÕCé £�óÿ¹ÀNª‚ñhÏ'&ðäÉçŸ?tæø›ñ×7Èuaú±¾C0¬4` 'À91€/Š÷NÉê"‚{AÂ�è—7°Æ¾Ç±ó¼3$Õ˜ >�m° ¹9¨’8M‚ôK™È^85 �X\X:M‚T ÀL‘Jæ  Tšžœ¼<é& ÀaÐ Œn}dê@/Fú‰ñþesÁÿÌ41€sŠR€�g¿ŸÀÅ ´²\Y&8`‚7ˆÀ+3.Ê>ŠõÓ^$êÇ�> +€ëþåæk­«Ü²(!U¥ýîÍý!î^Å­Ìõ¥B$í…œÐ��ça GÉžîk‹kYŽ* S%zR¢D‡¦ +uš®^˜IY_Üb4€@ˆs˜€8 `+„—ÕX) +Ã眈ŒƒÉ¡4Ê;°À²âk?|, kW¨Ã7Û­ÇšÓ(P¾¿5è3ý Ïc%v À€ütµr|럇�Å1nÈ©ìh\A¼Âj×�i�§­ÄãQ0ý‘aç//N\�¤*ÿ½Ä'¬æÁtiÁ³ÎÆêð•“|xÎ= “ݾq÷ê�Ï|;��ì?{j×'òø9ÆZ6ÊoøÅžJ<ÿëþ[ÚöK†ØGŒüØš[;—†Z€¿©/€‰œÎ3_¢ðÂ0ýÅœ¬.{óGþ� +€®µZæo4«a*_V”�$KNQDQfÇä_œ¥aw×ùR¼œxàÿ—$Ó„cRF˜°�…•—Ü,Ï dÝÌ�×—)‚‚çŠÇÁ¬sø§x#´Ž© c Ò°£mrÂÀÅJEå¾RnùÒÚr à-¼ºŸÜéwZ4NÐ]Z[K#7†J+aÈŸÖVÒê$YÖmïe ý¤�P¹·õëûTK´7Y²¹Éc³È\…ÙJ&­ }Âi-3ç'wĺQÙ}›Y­Ô–¬U·a®¾&€Jó²L,«tÐS³uÎp†çO{IH4R�ÛZÑkD à3%¡Ž^&ððŽ�ßíÚ¢=õÜŠ<ƒ9­µ½ÅÒ±érÕð†ôôþêüšü‰8ˆcߣ °½Ã#(�—¶�*ÀËG`t8$ Ç+Ù?$ú§}¥Gœ ðÙgÿ‡ŸÝ¸w]~ï=Y{��À“‰Pæ9p¢�>gbr€éXÊ6#Ý�rÀ¨KÜG01uþ"?JŬBÔfH!|þbž¢¾? +¸Uü£1€÷l}ÌкQ ”ñ?¬à¼À¾eÏ©’DŒ*¥·È¨Dæ¨ç$ë¤-k"žˆÜ¦,6UÖh+·E7Ãj3ÓJf—¤pÞΘJ†Inz=¹³J–çq�æéNÖËóÜTÀˆˆq ¯¿’°‘ôÄŠU®¥H*´Ï5Ž/¬[Q¤D^aDoPz#~0ÜÓ¿›Qǵª ˜é2☶%”XK¤\–¨÷”~ð“ +t*U‚ZT¹ì½ëxŽ$Xoc­–»“gKŸÝ<ÛëDÑj’î¥Ùaœdy–¿ØË_½:|ÅèÌI–æí8?RÚ�üEª­mzTe�³~–¦4(Ìš‹ÙAœ3˜X+¸)¥–燇‡Gý=~9¯˜ˆ_¬ÑÉÙnœ<Ž›³ºYkɦ.¬¥ûšÚÿT6ÈíhaÐuO¥7’1­ç!1“Ä‹*:N¥‡a–ÅÙ}Bc… l�R1|×b…Àt›þÁÑC°¿Mahƒ>�ïØ‡ø‡Ïˆ»=ßؤdõ ’úªÑ)GåÁGE ]¿ûPFñ{3ù´ôw €Ý?ƒþc§e“eÌaòöÝyшAI Ú¬¸L¿Ö Êð1 ཻ�¶ïÑyˆÎƒ¢ÚOì_ÊÕ!Þ¢“‚ïð3bæ� 2®—8:Ãí<3öÂñû‚Ñ�/'#ád4pN_k×}ŽXcðAgšïK\£ð×&_2Û`29—Jß³S4GwËöݨ<6™×ºÜ SüY¿'ð!$ÀAÜD  ¡CŸòª–õq­”qè àû[ûÿËãZª¸ÿ—§XE»|9¼§hú¯54v·õ•òTÉ–i½?;k©ôG» +ò®O3"ÄÊï”§µ?êà\‘ê2€Ø·×?K•p}Qžú�ò¹¿ Aca‘î6s d�Î|ÍkóëMýY Ãf¸Òd‹R4×µ�£,†×®…óac¾¡§R­ê4k ‹tXa·0äb¸4.ð2WT¿Ä]ª”«5=d»v„›Qá™Qµ‡¯{]žR"ëP›µI%�Æ,ktÿt“Ƨ¬§Ïü† SxùàY"~¬bO«;pìÌ.7´ +`÷lêmƒ’°=Ø"­qïѽ|º}ß8„líÓ_ýêégðÌú�ë×ï ‘gô B‰“ É< sÛO~öÞ au[n‚,žpõ@€N …SíLü�*@ÀÝë¢R�™ÖÛB~ZËé JøÇ´ßB/}yRÛè€v|O +€ ê:" g_PòÕó讼c?c®sB>ŽÐ�pÆß©Ñ}¬¸T‚ûK¼$àõÜ’“¿"ð¦š@YAÌ­ÙRįJ-´¤_3¢ÔBñ¯ÇwšU•gÒ„úLb"ƒ¡¿A³~@ …˜þ�ÙWùþ), á÷9)�ª;‘çd¹b1@•k™ÿ%õ�Ñ®•!³Œcã®ècÌžáp§§§YU­L–+sÔ_êO­FÈlZjW®h¿¢¡�òªM[´|«”u0׎úϳ^¸ê ¾ã,ý’&ôøÛÍ^6nVªÜê4í&Ý4¹“ì÷ÝÜhI_v>é.~„qí2‹ržïgÉ�n¼!óŸý¡ßÝv³Û½ÓM’¶–. Ðí¥ÓE;i[oM0[™(_®Öõ0™Y™ž”ŒŽLíŒøÍl5£ m“טú‰»Ä!Ïž[¡²`]O' £F…¤+àM8R w¤­¼ôHí5æÚÓ¨¨ƒ6Y`§ô_v[/SB* +Á€gBÄÜ`OÙÌG÷ž2Œ +@pö +GZ +€ù†- Ã¡:8)‹Â£h®§t�© càa)€G�n(=cz`"u^<(¼ |nÃÏ´ç?üÃ?|N €ÖƒþúùÒþQ` ÆÖ +�À`ã™1T†cg+ÔöBQW�—o!9ýL^�ðì“„–çQª‰FµMD›‘iš°Õ*ÿù‡ØÂ…&S2¹lœt¿‰ÝÍ~‡°PÀ�Pf_—ÌjµPKœXI€k \µ¢ÄWÊKB*rE>x?õÂN™H+ã†Û~4t«ÏiWmŒ¦âe8¿mcDÇÆ&¦ùÂku‹Zé/ùì£  µéIñb½ûÅê±N_—Ò<"�÷Dëmsœ¥Ïû‡Y*Ç«è÷ŸÊe`c*M#�,}ž6åvéÞH±…zfWDGÂ#,Ûb÷««ºN©»j­26~‘»bá�Ú\UMeðÇϰÆ}ƒåºn—<£�›îúL« [X‹£U­á /©þšs?°Ç#ñ À)_cZÄPŸd÷† @ gÿ@9ðà©;ß*€»†Êã À¹bÛ# +à� à!8Gœ`bò Ó;•8ó- ] ¹@á8ðîqàÀ#:/øü<x`á?½õ*ÙQ pl‘nÀàÞ3¾� £È pn à +g‰hàLmyƇyüîÕ¯ +Ü‚Ì:+ä9J4åaÓ>Í3m·] @ÿ­'°c¼^gn�פҡߊh½î†•ƒ®s$¦Oqæ¦"üšëi¾\ Y¢Á"œ³›�¼$PlAjõJ ü_¤Pm™.D†|« <ãEän„HØ]:Slc+Ý�”æ&NÜH²ÎZÆþº:Zö.”�@8j‹á@6é-`]´2ß�ÖŽp]PEȵF‚ü| j�Æ.¼V™._¤€¿HøSùDT£ ùÜbâ‚DüÅ¥&‰ûÒ2p™@£ÄâÀõÚÌD­ÄPÊ\�ÖÉ1`è,�Ü6ÏaY +L +°]0€_üê—ÿ€ (y` +@À5p£`àÿ¸qãáç# Àµþõ.€aß¾^cÄÎg^Ép.À1 p&ð.€¿t€�ëð?¨0Œ; 3 æ¼`CÇßu enyX pf à !à¬VbŽ8˜k¶èÝ +fõ¤)¹²C*’.Žf¥˜úÅ 4Ü¢ëîé à1€…�8ÉœÂyMÒ0d*_êËF§¬E›ÎvÆÌ}PŠ„èi‹ƒ­¨VâJ%b‰ö|ÕYÒ}§–ÊKsúëRG±\dYù(A4åŒ$wæLa,!´3d-!”Ûs–Xãžä«y�—)€h%Jâ´ÓÛjÅ ùCØ_·:3ˆCªEhç˜Êü[U¡Þ™já�ª.Þ�Òçtc76Ì®\_“¨?å2§+W*r€¦VýéËÁ·s€Hp½ú›m¿$7 ¸, - ‰T$ŒK•ì‘Çi´$ÿŽ×ù1€×ÀH À€^¶E +@»ždæ €sþ6pV à¯dp À¹ÇbÞxüäl êþßt05€€q¿(!î?(|©‰!� €¶¼)@98C‚åJEŒ×x¡p³æÇ‡•Y¡Ý*•Y”ETÁ¿GÉ‚¬4þCt˼81€`:à  t�"*ÝkÊ™Á«å¨—Æ.\”�fdà€Ú<Ú°UAWeü5üÛ”@Õ¨ZµÙAl³®©:mdß„¶ÑÒL C?A5£4 +`M9�ÀUž.[[-½Ìc Àð{ªpßâÛI>ˆk™ÓeÉf+³;ÚJ{[ô N’£›A e #£øÑw¯Õêl¥�­^3w¼IGhp}_ìî¯5›«ÍUÝpwÕ¢ ¥BÀ8K­vÓ5�ÖݨÎbøÅü©î«S‰+U[Rñ>{æÖüciiyUµÌØàz3R’[.óAÀç쀀p$hœÎH�¡URö4à8ð.Àq Ã½‘ü�1€»�>?�A@€þê< /À€Üx�Xp4ðôñ¼.Ð ¹Ç!/Úy~�~ذHæG:5p~_„r}úkƒaV¥c®`Õô• ÔÕUjò×þG@C +ÇZ˜¿E‡“×b£ À4À( ð€?)©k”ΠËÁ Zi¬/ ÀHþ¢s5,·À‹eCœ(¾¥ÊW‚Ú•jU[«Õª “m<‡Ïj¹>ǯ4š`Ùµž,ÕDw Y¶þÚhƒþ½þb~#ìóI�žÞ·Qüu×63¹:>7)�7;áиßÑÝÝJ¶ö®ï Ü"7Xz�|øÙJÒæ®¶êˆâcõZ¥<•ÀôsÿõcZœ«Ö}wr7Eëƒ`JÜöƒå¨^�Ö¨ñ—2­ÛøëKÁRܰmÀåúHyÕë„I,gøžŸúý¬€1ì? + €ùh àž1`/@½øÿS àÉÓÏŸžÊ†µ -îÀH `ûu à:q~Yq1~°Ü ·@¡Dð} €ü�(€·ˆœC&UþÍÄ +RzÜK ¾iMqP0æ‰Ý”ÝcgãL"µzAœàäá^®¨Ü³Z'U©†‚¿TÀlEÖTæVËÑMê"ÀB…õ œ,é=Y2@ûÒè‘3¤×Ùê´lbƒ à“Þž¡÷T!æÑÎä(‹åV*êßJÁ¸V›*A¡´²Eì¿Eì? +€é{Ä &iJA¬r§uo8wé_Ýys5Þˆ6¢š®Mw͸` �j0€ù´æØY.ÿ’¾Äudüiî?�8(àÁëñÇ1)ƒ™ÉÒ%{Â>BŒœŽLœÃ§Þxr<žÏ6�8c ºXK¸óyÃOÃîô°T-÷×–åÝÚˆXv»Mœ«¦ÿÝí¤Ó m˦©|¸Ö~lOmÓrÉ™o¤…8ð_�/þË_€]!Sâ�м/³кÁjQÀ÷A<Ø×/ `¸7»ŽÈ  -ˆÒŸø‚z®3ÅÕ´1ˆÆ PMU*î­9Т{Kß4¹)]Æ„y@Ó|é6Ÿ(^Æb"оíï ‘pÓ…Ô¤¨¸(€z’è{©^ ÒÁ>”V8Ç˯šÏ¯õ2³‘–Tò‡è·Ø�$*û�(þDÀ Úš˜ªt¢ép%9öÚ³ °XæÐé}}¦p…/k輤Ö⤵ÉÞ¬\ëˆïkyKÅ)`fu„"©µTBЏ³•‰ˆ"ÜôtÛEr*³¡@ܼµáÔo“»†õ—¨U. b€ Œ®›ö±]8.žuñÀ®3mP Ÿ¹¾5œ€F0?`uÕF†PR1=z–"ú ‘‘—ób€AÜ+€“µZ,À©µ Øø�WÜÌhšÝÚ4 À˜Jù5¯>”³ª;+�-äÒ S*8N;™=F§¬qfSw›Ñju׳ðP[ô°pÉDÒ”Õíºw1ûŠcòä1àÿoÀßiÁ·Pâ# `8¦"\_k ¨Õ¨ƒBD Fä8?ðÅE•ï3^‚ÿE¾&*zÒVÏH)#K¢«âê6K´ØV«—h¥´Àl +…ŸUÑóW9-Àé1€âõnƒ†3ù'd3hlº’¨¢:7a}mŸÚœ�L#ìVhOÏ€zBü²ØÆïÛ·ÀÌìt­2Ë`�2óŠ-’M?ñ×Y—ÌÞÓbý’Zø …“4|‰ÿ£dNÆøó›¯÷ü�xM¤$1F:¬lîZ¬#€qÓË÷p_’-vij+I¥ÌÞt”a’¦}ln¥Q;õàã’*WBS¹’(’ñk�ÆMø~µ:}…îÀxvÊ’o +âÂkuº‚qënEÐþ-Ç ï kÖCtUî§CGލeõ"(Ÿ¹ǺÝDçŠÝÔy˜iMLCi!`”È4m1h$%#Ëh ž$[vV8^ d†•À&)¢ËÚÒ�}Å´‘lí¥Â£ �.M…Ïh¶�¢ä<š‘³þ’¦è>Ý ¡ll5wŸL_û#m¦É†€n²=O©TÅ¡ƒd‹b&ÆLØcÃüóгÆþ�þÿ ðÅùoç3‹Z~ôÇ%c/p1€õ´•�Öœ£ÌÆŸ%ލ¸Ô‰ -×—Vƒw–hs‚JtGùYÅÄTT»’J–þÊyÑM2€æ `7ãNY�⦕ÅÂáÍ+…^È@9IP HDk²²D·^ý¹â†üÑ—¡Áä£5^¦°ÿžÄSTóõÅR¿…°þ@%­—wQè +m~M¶LœÅö~ûÛßZ18MTþö�ÐZÃJ®�hþ§Ÿbcz‹¾ 1�ìtQ4þ?…–✯l¤„.+æsqØuÎsÒ{v;*hCm‘“¦›9½&µ®;»$å*…Ô¢UA/ â®K–¥ßí9¬BØd»U*Ó% nP㋸—| X¨*¢%“J’hE�nU¿RÂêÇ^ÄYš°– )ç® £aÔ@hc&iW´¼óL>ÏZ–ï%­\ˆÿ’áb%àXù¥QU + µ¢' `æ_¯ÿ…pS*nÐ=g£ÙúôŽc¾V×Ýg±[À«{Cà5þ ðÕµÌJó@þëÿí¿ûÒ!ôgúG-€õìs[\ +—HbÍGF¢a ò¾¨�Vœ4–ñ†ÀˆÅ?ù2 €÷§gž†�Dè§ÈšëÍ À|(�ÀÊ£3ŠÜýÓj¢³€œaúµèAÊå²¢v\Ò0�sQS­—TŽu‚LrEY–H‰g d@õ403«%L7e])ê­)�OÀÍØLbŒ50y±$üD´ DfNS�äÀÖ–ø¹•‡°€ÀoÿâKÂi’ÏÃF¢È´†•,ÖF‘x~JÅB?ÜG1°Aå@bLÁŠ\œõWRg†Wt´èAýë‘TJtUÝÄÕè&a[³ýÂùÚO·lYN·=Y·Ã÷‡ý³bùCz{K´—Ýå’¬‚Ë\ˆã5FsÆ4Ñ#–©vx3Ì™`4ÀÖ�D^�Ö1ùܞܰ[4‚J?09;+¶ë°-)@ì:ÄD8—ÝÅè×¥D¤äˆ{A´�Q€91€ ¬sµÐ-nà¼c"è;@-ài1€þíoÿrä/pD6™íO?Ì%ÒÍtFJD’\ʃ¢•…¹ ^9ÓobÆIYH‹-uÓÂ�óän!¦H$ZÕ0Z$íWÅ©ó7�Èi¬Ìí–¢ˆõJƒèk-†M_[fþ/mÑ}·L-�Ì?~ © 4@iK=òÄÆtΩŒ#ß±5E¼el»`B|ž=*¡Ù¹`L6\Iuæ2þ×®{„t:Ï„ó‚�i2À3€[T€FMG,8d£1€5Ǥ +°Y0«Ôu.€V¯º à×ob'c±ÜÿÿjA@Ä)€¡�7”»€cì-…_–nÀe~ƒU VÿoˆLœòñ ÀŒ×íùÇa`ãý1E4¢ÌâŒFÃÐ(JÂj²d +@¤‹A« +�¸Z€æ) söJ²`q +:úr™K––T RMgÓ\J„V¡»J¿~‰™vု9\t[Õ¬C¼BØs„ø3—T"ðO±6LkÝŒX]@} @Saé<„ãbA¹3€Öô¤ÄŽšVN‡¢‹d``©Ðl6®ÍI|ŒÖ@ÌàD�½Œ³“ôs+¸ ÿmè—p� Zq¶ØÌ¸qºÑ ÚMg +|ˆ�à WrÌHª²/0Û¯|+©B i8˜žòªMˆù§ ·Ÿ•üZBº\åH@TMÏ#b`ÿt¼O0€¦gm]Žc:qÏVl2Â:úJÅž[ @ˆa8Ñ4šâd°@Ï^Ú%a¶ +éŒ<ÏÒiÚ?\ø†y–ôJ­ë§ý´—÷󽼓æé—{ºÓRy¯÷ǃ½ü@Ë{{´Àìõ¾Íÿ¸òmŸmiÖÓŠ��þÞ][ó½ƒ,ÝÓùõ“Å8ï§:k€>0‡ìaí�cÇd€p*þõÁ¤ÿøªÔ�s$~¡8Ô@…(ùc'.œø  +‘÷+AM;½8ÚßjõTðôœZ[ñÖ^§×êu2šµÇ=™³¬Q Ú*oWjéWtg•3@x˜'¦…‘‚$*;£¯�Ìh\"=”¬ÅK� •S •¸e¶QQ®¬X‹XN:e¨-‘„ÕI©tAŽå°&R5¦²d´9�‚4Êã¥>“ñµsYš ¯u«¦âK”C`9!™€sNcÒž4‰ä�¾ˆIK Hx€�’`L¸b=S£  Ð'ÀŠgÁqð1j愘�æÔ/@€¤äç;<‹ð �€Ô‰õÕ6Kœ�Þ·_·ƒ”—Ÿq¿,0×ô À¾u‚ÇbF·ô‹è b·F€´FS'-Õ8Œ€øØê<Óq@ˆÙÀ—ÒÍ+ŽD·ì\äWêÕnßéª@Úé·ot³Å¬½‘´7šÝ®ŠD;IvÙ77Úé�nÞí&ñ—Ëñ·)Û’øÎ³¶Šf³%™4Äz®Ò¹¶åÐ47x2í8Ùh6ïèbãv7Û½Öm§í¦^^œû_„¼�— !¯RTŸ&Ú‹í?þÉ»å©ã�?í{uJß|Ê’«W½>�€ü߯½ŠuÞÆŸ3þÅz˜0Ü‘'Ü ›Ä„ O©‡+Ül}Ñ@dº\iê'ÅÀH `k«·“fÝ•ÃüuÔ£ÑW”èæ“­a[ €ÓªÌÖ®èÔ¾nF +ÿxù’Æ}“µFS›U^iëCƒ9««¤ÆR+>ˆ* |€9�ÜDe*ÓeÜ™ n„‘Œ¿%8. +àl�t>-€c®r(Ä–G.•¶F[rœ(€Å œ €4ÁÇÇ€®T¿¸ÚrÒø>ƒþ£ @ÖŸËר)€5; Àð¾ì,Á”N2W›Y*G6�ƒ1€õúk€®tÈЗžȳ‰Œ2€ôKDzÜÕcÏ:¸£€á•` I·¹ñe�¶»‚yÜl‡+a¸²ØŒ»‹ÍæG+ªRmÄáâÊJ;Qš&©6ÄcWV´q±ËATˆWšÍ•äŽRÜa;ÿl•6)Yó‡múkë­œ\_lC¾ðÿ÷"#ä½l`Êë�!y—” ÍN†K¢þ~E�y}Ë}`g©�))iê%ž¸¼þïb ˆ{Î?òâ=n“È��Ui8OCÑ… !�7©\Ã…`Ax }/,„áTSeoAƽ* +Z™ºÌÔsÇ…PØŸ¾KÛ¹±q½N"zÜéuÎ`zqÏ ¹ÕŽ"½u—…Ú›ÕÒ¥))÷‚ÿ›µªŠ½²§²4€¾ u›€\§¨5‘mÕB-µÇˆb¦’ +i3/í t¸ˆYµrYx¹¬-Ì ®´µ@û�Ê×M8`í€Nc{bnºÂ=˜ı]ªÅÌ ¦b°.€)€VoÀÀ1  `Çc\?v-… À€œ7è"4üœ`øF’3Àê\ÊòG>Û‚më$õ}Z à¶1€ÓbV À¹;PÄ”Ö3ý @t�Z€ã1€/]5 ôGMëŸ,ÙyÙîÆiòkñÒ££?½ì÷{6‹ä°ßξÉ÷éŸý2ëwwe“Òg±È»Êh&ç@~A–nôÿà–óý~úêè(ßûKŸ#d9ݱEö³—/^öï,nìʤ‰°þ¥;*b +@"2nÀ ÆZè¿jÖÛþê[ËBñ@°<åx (ëCÂÁzðêeú9êÕò”ý‘¼.˜0;?þ£@ÿ;|Õ¤¤¤¤")Š™ÞÂÕ¢~ôoª¹Âœ  µÙ…F­z¹R¾Ì¤]#bvðÕw»(€$ÞLRLÂÜg3€Vbãˆ/€kn®’W+] ¡mÓbu�‘1^Lyü!:C •Uoˆ„¡`/%7�ÈæßÔ +1€fåŽô�lëµ³V¨”'Êð}r•Ô+Ç„ÊS@ç7_ÿÖ1€V¢%€^0\1/$ �¾� P0†eÆü bþd�¼ÎZ>° °(¨‹0F©‹ KžH‹0^²w1ÿk"N�RADåD‰ÚY­µ¨LäžI2ÿ¥=Vëq®_›wÊÜ-6RÑÝ—–Ìo ädôg‰¡ë¤·íQ¢'e;9±¬�ôÎnjE,—ß.WŠfji¿ÛÌMO¢-ÞÊ“ýØJ1ŒVœ7sÝK q³å¦ÄÖƒé`ʬ–K˜f¡|þ¶?ÖÎî &ÿ×Oþ^/½‰KáÞ‰ð*›m/�K@ôÇÀlËmVÙ^NU`­í8…Õ—ÉŸ’¦Ðâ¸;2"à(À™ä�Åÿ&.Àý'Æ„þï��]¿à€2€ž‡,¸�ð `avV:@ð/_¾ì‡šqog_ýÅÀ¦T½€1€ß<ƒP|MF@+ë¨Èxм}œŒÁ*žÌ0ªï€Vêtuªz£©¤•` @0¡³" @û¿Æ:Д§K¥IÌ à¦i‹‘Wf +€ÖøgÆZ�´·0@W¦d/D�/b�ŒÄ>u +à�µá ÀÅÜåx9—€Ô^�ø +��Þ3€ÂPþ4<>®KHMÉ1œÒ�èCY­K¥É,ç®Mz-¡sUÞöp‡`ZåŽàW'AÈÆNÆNÙNè@kÊÛ[qÊsÙÚÓmõ·ùU²²ï¡ŽpK)€ºÿŽBéÇI1— +¦ó%jX_JÆc`£.ûµª=²Å •QFÈѳgãÅ£ÍÉÐ0±Œ9È—”M°+n À¾‘Ó(vÀÐÛvsâÊQÐ 'à„Xe$‚µ/]òùx™¸xqü€ìÿØø•J¥`5€œ+À¢pŠû3Šç@4D�'Ë—}ƒSˆð×,Àm€n§gßžÉÒNSeÁ½’õc à" +@zéÊ€DÁ¼cf½õ¦ÄÝQr¯F€³ôlc±öÁª€™í§/©À™—q@?�À¿jIï� @^Á'=ÏŒså\+%Mø0€¹e1:ù›°�ÀŽ)€A-À àx-€c–…×3à~ §Ä–Fbæ ûh @æöTP[*gÇ€ŽKq™iZÛÕ| Ë/j%Ì'§Tú|Ðy±}¼êЯÍD™¢Ïé0/Áþ/kQ˺�Ûñì¨ÑjKOÙþ;±€˜�o`î…œ…ÿ­~âŠø—¼,Ü0¶¨ ºÙù|Q‡ÁYˆ¿­gÇ[‰ˆ„Ž‚æåK§�¤‹f?Ô�ïèoÂ#5ñh£2ßD¸ÈN`Ý@Æè#ïo[Òâ1 ` +À¸÷i�¾Gj$ƒ\O?s`š¸€þŒ½#è_ÿÞXI +ÀÅ0©¯1yÀ2.€ +™À$Óñ@˜ð `Ç)n´cÙÙ1€ÖsÝa·ø‹È¨¨W®W„H p‚|¨³ „Üsbxg2€Ë•ÒÄ @‚8¶}T +à 1jþ,°%Ç•w¶À¿à ¶8+0dø¼NŽ3€ók¸˜�¼‘,KŒ0€5� `–Õ3·ƒ”—·1€µ�±É ^ŠE·¾n·�FúÂX/u@½J´¼iç80{¥EØ¢d)NkŒU¶¯ZÊŸo1‚b7":ì�Zm¥ˆKì> ™)^Á6ùPO&ne.z˜vW1X@™{‡i[e’f‹.FÉãѧXåà âZpu®Z‘‡Í¶3Rº +\ÿÍM:ñQ“Oó=Ã�Ì2±@à+Ë?îXûwwâ캸¡_`—Ð +í¥·­/¸ý]¹n퀌X–§ËûÐþú…àþëï ŽÆ¤çaÄBA_ðw @\`ÈÊbƒ€ÁàÓ¯ÿ`.€îÚ€ô΋ b7U4ŒŒÆª¥‹:¼@çĀʾ4’J14@cX @dß1jFc(…Q`ëýNÆ´…m¨�†Ð¸%†ò1€A-€.ù¶�~Hõ¥�¾Ž1Y¢µ!}ÿ®òwµ™ú÷U�i¡ xÕékSÓŠ¸n†@°ä‘}¿Õ*Stàl1‚ì¢õ_Ȧ!“ÞÖ˜iF(ðÍ%$gÕø¸.�~ àìZ€Ë£ tRA3Ù�’›eQKxT6ŽS ~×ÖR¬|Åݰh`wSË8.�F¼¥R"t�·¦4¡oûÔtƒXá…re’·»ÊÃ0Ïo«ÕéÛ’ÀÝ$,…wŸdÆñ-½“ÚR™¶¨à: À’dËë['ÉÃ]¿PJTŽ{žëI„D¨8¼÷ vø·TÛ<ÐF?Ø€7~¾¹ý&nAHE´õG± ʃ,ËÂèÂ’÷âñ/Þoâcý1ûrAÀã1W p‚ÜÒec•Ë—a2þº5á‚ô\ `Ⱦþò¼€)-ÇIóv´2ÊTÊftj*éB$1YøÆMÔRÁê :UF­eÚx,p*pJÄÅ&T-à@"oO¥AeÅ1€sc÷Änûðç'éÁív[€öœWéjŒE¥Ý¾3Ã6 éÜ\\ êêwJ~(ÀœÀTÚ^—+¼üS�yÝtÀf™ãÐ’i¦2=93S�×*ÚÌ:%ÊËËI#J6½5Ö‡Ž34¬F¬”Ì¡f¤†­§"ÎýT߬U§ÌôÒ\Êc e+‘ àWŒÊØ�ýÓ¬!L´P—3¨`T‹V™öQ—!�€&‰éY};If£Mø‰k²¤sgh;¬ÊîØÅ ¥ +åvìŸíPô×­ J�‚?nõz™Æ.MÚ‡*a¼éŒ¥hÉ$«kXÉfœ/ˆ%ö�¼œˆû»ù2”+&+¥›ÊŽE1Ž¡ü?¶š|ÇÈ�¿Ô�aWèÃÔŽ*€SÜóeð¸/ÄÁlÌÿ¥!€²¢Ù�£8Ç>¦�Øþ¾À¯§^ºxAž¿‹\÷ ÿ�ñ ã—ÄNÄx-ð(3U‰Ô­dAj· ÂE `„dÉÙ1 ÕHQé}Ù>Œ76n©plĉ4sOæ2a0ƒ�ç`\J|æÆ5\æßµÛ4N"IƒiŸüvüo¹=!ßX¿†­LG³Ì[›Ê ›Å·âUe/o5ŽŸ[6o­ˆ-úa `Ç€ø¸gÓ'Þ +¤€1V °fÌ# @ +À3€Ú\47U2€:ª@jA¨@uWÆD +ÀQd éÓÚRähJ@ +O*€žOt~Dæ˜(ÐBR§&6'�¡êA, F4*F")9?,`lb(¦R´©4NïÍñÒ•²‹"2:±º�ÈåטÖÝÍÆ$™ÁÕúÎÙ�„ñŠÜ–©¹9K3HWajXn ýBÈ©”Ê–ŸÏXÏÔ¤™5iŠ©«Ç£Â±÷›�ç)ÔðÜÚ¬éÑXéñ!‡iŠƒ­½0Gçë�òŸÔ5Á¢ú¶ø§�¡k�wÚ¶B| êÌæK°»Èÿet¢ƒ°DÿÇ!ó,º¼]ÂB,•ýºkƒØÛ޶βò €ÆÂÎæTÑû,i�Ç7RxQúó’�·¾¸2hÀ£©� õ1€c QÉw °&c_1€Q�¥gÇÄÜ!ô²/ÛôÞ 5–€�ªÒуȯ­·óM,ý LQæ>s=¯}d„¿ý +`3ÞüXÚGp ß»ÿ倃ºgu+ºcZ[ˆ�@…Çý;‰œl*$n¹”ƶÞ*ð‰«pí¤<è|rÐnß.>#˜ Çh‘l À@½2¥'ôθ�#‰”¦>�uÓi #�0Ái¦¾¶VñÍ›€¿¼yc-c^þ„@�W¿SºWZúþ¦2 +ê-)€%ô ÀS8c.µ“iˆHó6Zw±Ê“wibœ•¶ž_FFÒ­J"bÅIôA­Ä&Ú‡«wÅÁ­«1�ƒt£NÛ5YåˆÊõŠŽÍáû^^ö7Öi˜¾è§iÿO‡‡¯óWyÿ�ÆíÝ ‡@� +@¸¿ÎÛ–Ž[ûPé–ì:ÎKvŸ“¹ Û_0€1W àb£µ0�~‰a·>ùôë~UÄN0€3c_sŒã @ö?úP `-f– >»& ºþ8¦F2×—a�*ˆoÿ|çös0¨ÌMû|šæ·ÛG§3€ÖêD™ëí€t�ЦÊåZÌq’·‹Hûx�ráè9 ieúŠhÖ àþÀ;LêLŒÔ`·3‹Îx àû¬­˜ž‘ @ ºÌq ô À´LW˜  vó|àÔÌÜä€x0vi ïÒø¥Kã%•Q±•Q>¢ã´q\›µÞ>`Oý°SI[™†…ÉXd�ÆÆq€dšdœHÍ›?”yZ«è ¬bÇñ’²µùZ\¼f²Ð\ ›6犬ó®4›¡Šòz¸²¾¸Ø\qó«èK²Øh\S„¶Á‚ÖÅóM¿Õö×>‹×He;-^Ó7V0 ¯­k�íNòýš,i!úôF=N_bP6D;xÛ~þùºäöpÿl«}sß8ë-­k h `Ê~äc +ºbþéy¹`•ÿN#Ùwh,rN0€ÑZ€Å`È!ò…�h!pz à7ÆÎˆ¤�0‚Csƒ!.N2Œ0.@‡ î0íc™ËÿøöÏ0”�×>;¸ÿ>šA^gRl2ê„ß*�ºZÀ–«ÿð  ß¾}[7¼ˆÈ‚™åÄÌ�/b2ƒôäu + n1)À‡ËK2ýìQ0\‡c @°®Àÿl``ÐyÌ�ˆ|ßÇÎbȱZ€ Št.ú%°Y’k®32Í$SL�Û?}¤ál±VfœViœJ™ Œp\*]Æ‘Ñjvä„gjÓÚóû¶ RS¦•‰IÎ0¨r¢eß'ï÷Ûm™ù¼�õöŽúéán˜¤éÁï»Ý¬ß•/ÐËóý•LÛÿ�K3Ëü§û tSe…�ôëakžf»ÝÅdŸ)\ž¥ÝnºÛn&Æv»y{�´G}kü×賈‰ac!T¸%1ˆ¾`Ùø²_°o¿,H ýV°³K`G0-bÀ¶!>ýš©ùàc¦Ÿ´V%°+éÓãèaŽ&ÛOàÂñÀh-€‹ŒÔˆæ¬ÿä #,PÈ¢þª@0žu{§0€N€ñ²Nf^tÉÿöèN[–Û27í³ƒ ðç!0?`> û� °¡³s 6°õv1€ÑZê÷Ž1£±’éÊßUFÕr‚¾3ÏŽLˆ›�2†A¢ ¾l]µÝ8`Î9 +P7À( ò0 mW¤eÀò�8`Àê«úz-à€>ŽGJ޹:F$UVgœe(þäã¸rÞâ.%ŽþQ2h¿¥ +k&Ê“\ð„>ŒåÆ+Ü—Zíïø3­ôL}­É&îJib&XŽj¥ò*Ëô'"mlB£¡ThÞÙ{uðêÕ·¯òA:í$Bušîd½ÞÞáFžõxºI׊‚Ô¼v L¨�‚‡æx!,¿­B©Ÿ,NÛ‡)½ÿÔýáú¿¤z¶=™'ù^ h&TãÛoY/7\‡Už"Wy»ö¼N¤lÉ­_ÐPŠT®¿ÿ¾é ›iÜëò³—õ+ä‡�=8=7× ð‚ ý½ãôý +08µ Ãÿ) €Àws @ +à›M�P¼ít�ê¦þÅ”ß� ýø³ÅŽ3€dã¨?d´à0kæ¡…ÍøÎ¦c°f1€¡ ð†v.@-À(8h·Û¥Ë¥ËE-€Þ�8pÊûÀ�°±¨ð.@Ý«€1«°€­#z~@Fbµàæ™1€©Š€eâýHù‘°qbñH›˜˜$(® G%ð ¢µÊæwK®­“”&ËT%Ù5Cˆú`P +¨`¼,¢ Í:håC7ÆÕÊ”usŒÚ`…Ê„8jÙ4²H�ù”µa‹ç �#Ò—RÓõŒTMÊÖHðH½´O”Ú>â}* QÜã±'‡áF³o¥OÅZøge!BCÿ”ëÈg&ºü#Ø€U œ¦¨"¤m¿ûg´ýÇ(  ì„Ò(ôÄûïÿ%à(‚ÀO}¢Û2·ãH–¦µÝ×xÑð[Ò±Àh-Àë1.סÿ#L;€Wb'cŸž­� pþ£3À–Õ0fÞë™»Æx¯1€OÒ¼ÝþËH `”t +@¤«eoY €ÿQÔ$;Ém*›OcÔ¨ˆ)€Åædò@O8Îê¾€Ô«–Þû<7R 09]0mzS à @vznÈÊâöd3ˆP‡¤btñ˜u NxN +ÆF$ŸœdX¥¥¥(ª••ñôŒw~ AeÖyC{!6ïR]—c¢ÿÁ%¢}ãR0ÆÀMI9(¯šÆ¡‰!ÃÇQLܦLH#÷¾>8H”1¨$áÓÇè¨`Hp[^®¹1OhBÈfc!Ñì¿‹ˆø àd [Ì*I}•!ž + ä]+Ÿ žN}@ €„ÓbNØKïc +Àq~kÔØ‹aT¦gæÄCêkõ¨$­`G¶„:Á`Ê&2—_÷„1_EôГPøçGä€D‡¬(ëJ­S]»Y‰uÔ¡Õ‹ +À +"5ýÍÁ§¿y•d‹©ŠÄëO¢d±Kᦹ!¿«4„¢å1k’‚PR¤lY"eÑRIì$�£Å¼Ý<Œ‰B‰ßQFÄáÍÄ4€oè#¤‚Í×D €ŽýDñœÚ�Fp<@sÜjÄÐŽÀ)¤<� AÃ/Ú¥ØÝ‰×öØ¥ ü´Äö;û/M0þZ àô¾þJb¥Ýßwýûé?Û ß¼}[ÛŠV­;í0öÔ¶Zbƒ;?1í2XDZ¦6n‰x‰§Ë °š:i~-—¶~Z=SÆ>síËAôOüçOûêE3M72ßñ™çñ:Á=%Ú,2w:KÑçÞŠS9ðRºx=ð ®/c/û( 9¤ô”2—a?–¹íªsìý³¼ŸÎ˜ß .ÃYûÌãØî¼+ÆV® ±�‰½•öRé?¥�P ¸¬5A5bi€UÇÈ#Íã_Œ™€4€´BI(×! ÿh€¥ÈãÞA�[[•ú$(3˜éHQÕbDb)H´™“0S)]8.c¦b¼@c€"“§H…qÓnâÕúqQvñ ]�Í¿pü^Ø¿B#!¢(sSè%wã$%Z0”ê�FžÔRŸ¡Ùl^&"p8* ¿ù4oe‹îÑoÊ(ðÔô^Ø0`k¥ ¼} ô¶Jjb��ðãÕh5‰w»* –”ÄhþηÝïòö‘ž;Ì/Ǥ,’R`ue'(€.ÏV÷b™H>LEÀÖÁ�AC» .­’¢Ìþ|m8Ñ—¸�‘ƒH »-è§�£z!»äûœÞp�UµÒ/±}ë÷fxÚ´ àÁ×½¿¤q7½�´BF·:i<¿+…«Tzº¹`G;Ù­ËtÀ'kßé‹!HýÈ Ðf”n'=Z<ú®}¸cÀjmíÑ Ýg”]æ`ðëƒÞo^J`ÿeƒÍÐþ‹fÙ•hs3’ýæÀ#™Ûþ:³l£«Ì¹rÏȼw¸øÝwÍ#‹hˆ?>—Sc€‡;g +ƒüœ¯ÛûMÿ0Ì´!iKøÌŸ�0€ežiÍLÕ¢+ÂæØ˜ÕÊ€ +¶ËQ9M¦R’Õçæˆ: Ð/°©SfæêÄÌ$Lò‰°$6_µ< +ÿžt.xéF¾â q” /è„SI“rb£‚C¿=î…oû£7Ÿ{E«rNÐì+p�Ü:Ÿe¹!kõx +/D‚S3‡ß¾6«tE“šc¢ƒø%$ˆ¦œVõïfuªU¹2`'®¤kq#C%’©‰=…BPÊd­?íýó'-id[¹ Í4Ií£ýUŒ¿„ÆÍìÏЗbñ­¤½ø}­]:G€‹JlåÝä�ϱbœPaÁ‹@æpíÅ·ãRåx `›=ܵ¬_ëëã4€Ûèð.áÿ”5¶ãr,¿Åk¯ àÞÝ?·Ê¾/2˜Õ§– þ˜Ïô…83@-€$äš�‰C~!†ƒß~ÝûcÖN3»GÃZ [Y²ðRw“DRŒÇÅ¢}1„––6ùw'ÛXL3¿nÊ]`$/ÝßÎQx”ýyý�1ß±»`ÝåÎþ…(óOzüº·—7sa&ã³ÌeÃ3ù žœ±Ï0óÄ�ß%µÆ¿~sqw÷Y³¹ÑüP +P¹¡ó�Žz‡áÑ–i}Ÿ9éwVÞ^õö²ÃP*ä¶.ò€0¥ÒRµ�P-î5Œ½°sŽ\Û»R[ªL5,@7æfCRÚZ-®´‚?bþÚÅ[~óàg¼qœœœ ]%¸Ùú9¦ó1iÕ +n/½¡ãè•“!s>L%ŒD•YkÚN+°W’`•aTÉbÂvB9éÅ÷Å1ï^P—¡ÄÚó0›c­þÓåÎêòr\ÞÄ+!|Ysçµ`š$ËjH‚$£ÿ‚›[Õ[UT@•)�uÓòÆJqÔŠ©µÆÿgx“Q@G¢'òm§—$0Š¢S‰K`Ö�²ˆåç›’É*•cÒ2RaúÌÖ²1þБÈå‰b&t, +�… +ñà7Øò 8.ƒ+µã˜}¯ bfœõî@Ã.À àŽ˜.!¤à À6H€w È`ñ?Y{‹úÜÑ•ÎSz¾V z:*Üj'¦%åí½ú4ÏîÐ%CfPG\®R¾˜oš.‘rÞ ,þf¿Îî0Ú:<œ¡üôÔ’W‹‡Yçp%gFM|}eƒ/pJæŸþö·½~Ÿ(‚þAú6Ó-ežÊ ´¤”�4ƒy"…tœ"p’uóö¢2‡PŠôȓÅíuþæ� +AšÌuÄ×2Wáè½úºwp¾d•2vWž$YÒíŽ_d¢§dUôù¥�c\%ÕZ%ª•R­2.e‡žgf–Kq}.*¯_âjÿ +èó»Pú‰Éi‚æ–ˆ:BC¤lnÈX +HÝíSš�`n†ÖÈ¿VKl:…`vZ +„C`]£J¬ïòªË ·râšøð9Ö€îC^ Àt©Ò6b­åU)‘Õ›ÖÇZÚ‹> +N¸“²+£%1 ­C›X\´F§¬x*‰³Dµ+¢ u)€ÉéÒØt rQ“‘ ;×m`‰{^ˆÁŸòÉ�¼tQ0ûï]É1 ‡Þ�ë_0f®;Æì�Ÿj×ηý~?iŠ ( ;®Vê)›´Wÿâ hb\Ç^‰ú‰>Øb°õK#âì¼Ôƒëh]‚Üm¢ªÀ,?¹®�!Ù%ª€èŸ¸z{[(XÀ¹íˆ,,èfžqðôÚ]—›œö™ÅŽ;¤{. ÿ`Ðë#â@$jK¦¬ÏÆî|7}†–N¹½Éøïô×3†hD#ˆô›açàƒÌ© ìôzÏ;�?63†§´¤ú๠+>™¹}“Và2ÏÛûߤ×vÓ„«—Q.‡�Þ®'Ìré2»;&:`à}øÌ?Ýëõ’<ì3>¥´…È�èŠ\®…<�$™¶Ú8•q©§Ã`J÷8æYb¯™àR,S¼TŠ¢ÈTz‘œhŒÿÌ´ÓT¥”/I}\ZÒcäÀÆ%) E¡ll2UúÒ�]�ÙÃÈGå(º9ÂË«Vý0­–•ùòRiÉêë”ÿÿðc˜ö²­µ"i€¥å€y–JVÐÓpuÙú`B,!Ÿ¤¡Çk«¸*¾m›§-‰¢JG�):fÖ¾?§ë­UÆ*“ÁZ' m.Vs<m,‰ÃåÞŽP)SDõ.:}4ྋ@k“Qð\ €H!xp@àõCeù¨ Á0½8ìþ…H¬¬ ±z@ƒîTùÒµ¯Ë”kâ£#ô=þu4ûv‡¢é¯E9¾e��¼†}¿Âÿ€~Pÿ=¼~Þ¬"PÔÌžÖÐjvN‘„A®"î<ƒª00ÆÑ^k¯i£¬‚CÜvd%ÛÉÍXºÈ ·{ +R¡sÉf–¬gYzm=IšÑü¼ó§0;�ßßHs)K…ºèô)V»¹‡¾‰z–xuçëVåÇIÁÂ%én3ßqsØ·oéí&ð±aÄ·Óv3˺óÊKÇ.~ÏjÏ$Ð #˜úO›vzÊýïè�Ê`˜æñ(�¦–Á¾3ÍÓò˜ßÐLµ‰ƬޭR§r L!T,×B£ö3x܈�:f”’å9²¬WþC\�¢R¼Dì±Ì„lnu‰pozÀÞ�o™a7¬]ü¢ºÎˆcX^ëËq•™$�,ÿÔÆA Ì­™{BÙ*D{ø%“H:)X Ê�0¹EmDP“jDÄa®(³ÀÆ1ú©ž• %JÏV.Ý©ƒ¸ƒõ±'âiB§”NHÇø›hÅšž›ÅŒÄák1€äI7¾ÅØc¦Êm!�Ž¡ßYbpÌCô·ì�v¶O•Y 5p ÁÑ„¡N8©ÜVë€ÀòC®–¯^µÃK´�µÈˆ +°E} W¸€É÷<ÀÎpÊx'ûx›BtS)åÜ î-8øc¾™mX¯= `¢ÇÒJòæ‘�dî=·Óx¸v³½øMÒöF·ÝÝ]ÿa7ÏûÜò~²qHFñ³–V» U\æ¦^ØOyð z‡Â`SšÛ�i +‚ÓÊ9FO™Ë²+gG•¿Ðëri¬t£�*óŰÛÏú(üþF×2Ï»™ÅK‰•'ñ}wå¶/Yt¤ú^ÁLXͳ¶kKÚMS»Rib8€"ˆ&@Õ É´¶)��E›Mñó¹R- N_ŸZª“P©a æhg‰ÛÑz÷^”O_š¾dµë–ÊÉR-XI®Õ�v°*@å Bcžº[]›+ß„+”« Yf¡Rö_´£>·\Ÿ +dx™@Z¬Á[þâd ñ»l=÷Œ¤.Ͱ܊~ÅÕ gÙ~aV4! >KŽpø‡>DR$ËËòé�35«·‚àfW5F‰�פYÆ&¥U’¨o»¢ûlâêdkk¯õ1O˜Z˜ ”§!�ý8ਘ[¥�‹€Àë àŽú½øˆ²àŠ�ÇÄák+y×ï3G^ž;°6ÇÆUáÓbFðÝj°÷ºx�à´À@9p”�Àý·Åò”Öš*ÁW0„›ÈÍöÎó°5ö�0ÃïØÉWX `ü�‘¾§Ö€ƒSD÷׃j ,{¯¸ö†?a3[ hòð°£Í"ÅÜP (dO �ŽU’ÌõèÜo_k'‡ýüÕ·éüˇý¶�NSNV�hí Ø•˜ó¬›tÇ.Ð<ÖL»k,±Ú€ÚÇš”j¥Ëe鈉²¬sÉ:Ôš‰Ÿa4>gñ! ¦–Œ(% ü¡ôeX[‹�]‡(.'Õ<û2l„ ƒ‹ÅÕ¨6YšŒÖ’,êu,_ßÁÝp=L ÅŠ0@ë¹õãqr~-�2W 0¬¼¦½tg§§ï,fب¨Jâ¦ÍäêˆyšÕýB®áUëøAPÜcÖ…ðKÚ òhvpø—\µ%c@XËR +NN’€“kt(k`jÀÅ´$ pí§ˆîƒÇ�A¡Ó�“~³m;¤ó‰àÒÙë†{=k7-¡B_ÚSKá!DÜ0ùª�~ntÓ}=±ƒ~Þîw Q/šù^F~hÝ$Ù¡#†É±Ì·\æ{ÃÌ;éÖÖA»ùbG™[Z:~wd®2qÛ†’Üm¦‡ßt7Ò./ó®Ë¼sÐÍ÷v”Ÿ’ +ñ›½�BùŒˆ2?ˆ·úá³ÌÖëo‡–ˆ‰56È åÂ’CÖÓ[™Ñ:1€ZmÚYªÑ„W´€ð,#ÌÜeÅà™võ~ S':P—&Ä”~mA£;™þ¸Z[3�A¸¡&K.m!(ȳÆ@ÿW¢² P+ÏÒf¸6·×"Ç2jôÇóõ õø��¹¸^’4•qL·b¹2µ%AF÷À\²“„v³}ú½­$�Íd/”ÒSÃÉK¢G�`—&Í(MM­r¸|%RÊ.E#I[£½éFeýC‹T”+?è»—Yf‰NDNºVsJúŸšÓnâ `ñµZý·Uп×j¾û‹½ô:v®³Ð³†�­ °7˜I0Ó`KV ÞŽœÉÀ»!ä£ +<þÑcR †û�¸äþ¯Ïð‹Eý~Ï*þ9žü ›„Šýsí¬/ÀkµþòN“þž.ÿ ñJûá«ü›ù‹4ϳÝü«,;ÐÖþ·ù–'Ò^Lûìö÷žïi·C=EÝ».})o'ù>Eàyÿ›þ¿îï‡ë»ûûû/¹¹zޝ^¤½ƒï¾ý.}©~ #äìšíq”¬§Tù�Žz@þy~@æÝý|W;x¾§Ì”BlN{õª¿··×/2ßM’ß)sí±›f_‘ÛŸ~½¿ÞÌös퟾ÐÕÝ9ÌÓ�þwßíöÿ¸GæßøÌ¹r¼®Ìÿ £õµH©Øx©ñ¼ÿ"Ûëýù0~˜5›MCÙ¤7 bÌé•Ôì !^©Ø€92´XêJ¥¼$„c+ ‘øºI_W62´±Ž�ðJÖÞ�š™·¥XeÌTÙZvÓ§"%#uÁç¢$ðóUÂé¢ïêèTÚõ¬êÐ:H4…ö‘¶±ŽÉUÃ^e%�ùÆü|•Òz©TžÂžÌW«óó�p*Ô†y†j–u1ù�ýs£8²ß¬v�õil…–tÐÆ»×U`~Ö¨*SÒt—j�fs~eAóG‘k‹‹‹ný· 6P‡§êõ^¯€–ŒÄÖQc×ÎxcÑÍÆAm!äT8C™SeãûOǬ‚ßA¼,ܾ®ÀºK` À  ±=Øu(4ÒAt- Àq(�¡B`—wÌðëãbcld^€ÑZbþ*OÝ‚†€eQ·Þ­Ò{cñ£¦û»­¬ðÛ ®¬‡ÍÆ7�[§íŒáâ–Ü+\ù(\œo^»6ýîÍöü†¶7æôö:kØWßJÉÒµÑÌí½¸¸qm}]?$j®Xîd®¯¬_ÛXWNBÆsñâ2�þS¸xm]gÔ\·½•ù5�Æbsq£ûŸ6È�,ùæD´áše˰µ¶¼1ÏÞüo®ü£�Ç' +=Î@L6~Ž RŒ¤ã…áoùƉx‰AÛ0ÇØ�9¤+WÊ,ig6^’·ŠC¢Œ¶‹RM1h;‰/—§.—mŒ.íâJÒPÜð:œ¯rÅvÑÞdRš(_’RRæ'÷òÒJœtÅßšQ[~ú;R+�Zë$i·)¶…ͮՔ7/ë.ºÞl· ¬Ý �õÑ9\l¡ßNšq;×–ô«TNž…tËb/�¶¤…AíJ¥(U·»²Ln"–å$É“ èÂïÓ4ßí¢äGä4`µ0V àC‹,bQÂÁï´ïèÍɧ¿Nó~*jÒM¾üu7Ñ:Û>tÄM€O€^¥ù_�hÝ<¿é¤xÀ“ �(¹>~Û¨(ðïZ¼•|Ïh‘«pàRÑð”¾þŸ*wâ6ƒ¦¤YÒNît³ßgù¿¬ó‡]Ý®”IšÚÝ]ÙÓL›õ¸ÒÝÝ4 wóô÷™ž ��)›»òŽtÙOÖ4wµ°“É,‹ü¯Ü&|“õ^W.Œ»²ß™vÓßk÷/»*r–ù.ó½ÞI÷÷³—ß„‡ØU)س趻²ÈXwËž¦¹ÎQ|¾¡Â±¯B‘3OÛ_‰»|%örY’%¥Ù_­V­4´¬Ø §=®¨í´\ÁÍÕϹ„‚à˜>.õ2-b­áü -z¬)½@nÃp‹¢�éG¹¸-s P¹I½¹€žºÙó+pyzÔš\„”iMp¥¶|¥ÜŒæe`nÙâò¢À{D*ýn£âÀáD@QQpŒt™H› Y´ÆaQø59hJ%†O3Q=ûWiŠæÐVí­oT„ø4é¤{G{ͬÓÂcÓí‡þˆ%Õ¹OÍu|Hiê¤p`æ– ’5ã>1ßÁËOÊš,ŒÆNm õÇj¢ß«hÿ>Û×Kßè9,qrÛꎹ:/ÀPÐ7-à,>0wÆ{ˆÝ>¿<måM¢K®àd ` þpðGœ�7Οµ�ñwo™ãpWu™gHWꛞ/±Šy7Þ"³…<ÓÂL–¤Óóœûõ•>;ù7áwùÞ�4'ýuX ²rºíeâÕþîe·Ÿîe;Ô ·nÀÍsgQòžÜÃg4/¢®�leKTìhz ;YãñB qSÞÏ)î5·€þ{ú/I q²%J)¦��žü|ÖÁêV^ìIÇ“À•%LLƒ¶Ò¬÷ççRü±5>8/%±È@�Âñ]fdf5OÙò¶ñ…é3Þ�ÏLYq b„;ªhí‰ÅæÁÞŽÏÜMÅ¡­ú€Ìÿ’µS_§1Ì|w«Å(Ã)AÒ¸�‰ãE¦žŸ (;Ç"8GÐ�}‰¶}l¥Â@øš­õ¿8CP«0dŸå>T¾ñÀŒ|} ‘B9ûÓƒ† •ÚeN&9|]|©Gø€2­KÄtÚA¸éÜVoƒ\|+aït¬m†…òzäÇ ÒçÙBFužSÖ0Àbµh�'JÉt�_R`\‹ âc’4W”Ž#Y³3kzf¹c®@_Zq¼`Ø ÝÙùŠ—ì¿ȉ0o¨‰‡˜‰5@ÊãïZÅ�»iyMXj¨?1~�˜>Fý.ö’z‰Ä–\Ä�ÏïåøÿaÀ¢bŒ æž1& ]ŸÝìÓ¥Àƒ©4b,è/´NH�ºÔÞéÐtÖÖô›¯þ¹É31,R?c²µ•%ñAÒ]hßI’ýÅŒv=±ë´'�ÑV£ìí±ê1 „ÊÝLå†[Bþû Åÿ6´ ýc”€Ìã¾Ç`Œ ¶Ìùf²õâNÿ�_÷ì ˜j„cnñ«Ì÷ˆ Ye镈̤7þfè [%q +OçàtÇ2o¿l|ãÖpå42ýc™„&i ÈpQ£2¤©ÐØ ˜­�Niºv ·Á%®ü^Ô(èH— và…Øv«ô3Õú™^3@Û]*D™è¨s¥`fZÆò`Ž‚“ Fë$c:ºi¦c‚ô/ºÕˆn*­ö½Âäl�$†0ÍŠÝL«¥—tèƒ!c'þs¯c +Ù4€´¨Aßýl&ò&­íµ1€åd‡Î„¢1AJ¥ñVa¥l?²^) +@‡“yw_ö’z—Y³Ä@ŸUN´âÔZ€èe>|å/ôaw2%–Ø´}ìp�0‰¹ä¨�™ÖÁ ÕÎ^ãcâƒj`¯€ÿ€Ø[/ÞztÊPÚO¼Oüs½‘ýalB˜;pZ_»·ç +7Bw�ïM‰ÆŒÀâúÃÑÀ([ü\ß=A£¿þÛW_ïlÉ1·Ý½€-³»Yz§¯}<;‡¢p©Òv¾ÛØumLÈ. ;b}|™·3Ó>:ømYò"ó�=Î@ªß~uðµõÝbŸBn£g”ÛÖó$= s�‰þ§‡Z¿“%­çÿvgt7ªV‹Ì)�âÐÎä9Úçv[ª‚ÙŒF2ïtÀòؤuÛÄ@—Vùô ¾*“3%7c�kq¯íÀ¨49Œ×Ê•‰2xWÚ kÏkËZY:‚[;\(�)túâ ú®W­i€Š€Ö›†9&:±Êô\yIÄ_¦ŸÏtYÐaº—‰×ä$øм“Õ5›ì 4#ßZ#h& hd7F�‰î]‡aô`¯hÑ­=!R^ –H' sö·Âe÷âÕ`¦2Åa¢#š"Öcw//Zã$Ô¹ãÇ9.§Õð4Y¥B5¬ð @lnkðJ»úØù"2;ü8À¼œÐ4Ï€>"Æ uþå�|\”d$`æßÔÂkÚÂ0/0Xö¹¾�\äKØ}�ˆE”gÑp´/À킟/Þ$¢2¤8²ì 0Þ…´‡ÐŸ&oþéŸm P#ên?%µ~Ú!ï&}ÛuÐJz‡½¼·µ•äý¦ ,ø{Ím—áàô¼ ÀcY‘öYV•9_�oË»GÏÐ~r´÷õ�rËl»Ë=o§>sýQæG;–yÿ í3WB ±Zz»+�Ö|æ‹€hœ’yÏ D«}ˆE×{Ø/HšÁzÐåÆ�%û/Œ+õäÜÌ#lOLé—5.ZïÛ±8šö·VzŽ0)0L? ^§5J ¨Äu)¥T:a—J¥pm’ÄfjQ]@«ÌDœ”Ž(!Î`‚(>øíÒ†ë) wà8•YÊQÄ]†b21[îÔ€s²:½¼�|K+:aPb(4ìÚ¡•…t#ÿ˜éNk3¨×ê• Syß·t×1Õî5" Y`%íZÇ,¦�ÿ‘��´Ó€pê# @ë}-@3{Nì¿xñ/ÃÙåÑë0zøn< '_NFÀUÇì_!¯Ãß'&]”Þ;¯‹mõ:Å4€TÌ[%c®-�«àKÿ_ï À³z£èª=ž"CaÜÝ`j@€àGXè¥;2†½½ü¨y´×Û±ÞANˆC“0·u(›`C„RB„Ÿ½,ÄA§±W/-Æhõˈ9ô¯»!p;iß¶ ‡Pî=†…H•ùaòÝ×ZÔ~JQ( ¸Jü±2ïüÉÀ ó^ï@{Ë‚€Ë|D9ºèG;±XA«­Í€ó'sÇÆ„%âYà²�\Ä„™Lë Ô ^hˆÒ$€Ÿ&lHàб­â‹ÿÖ®OÂß³¶ý†Sræ¥D¨cXj×µ›¥Vâ!'Fߦæ@‡&H+b-Ð’X.€eñ½Âí?&=Âìú±§ñ¡ +ÎrÅ�b�û“& N=xXb­ÖÖmBå2¾«ß"…º +Dñøm,ffÿÁ§@)s¼Ôg&ëR¢èÊ—ò¦¯[>åİ�$ + ¯µƒ}ûîÀüõßü²J§2¬°¾DýOŠ¡ˆÕùÌ¥Š) +:ƒ8mîA ì2w¡@ýµÿÒû”̇#™‘È”ùQœ{m’ùo´—N ßìv-�—5ŠðÇ n˜Ðl¶Ó†c™æó™;½.²/<ɘOÈšSÃ$¾¿0X™Ñ²tã‚t…¬½¶Ó¿G¼Þ‘ÒÅg7�~ö1m +@ø7%!©ÍÐÈIPY£ù°v;Í7¯�™;Ø…£A_ t*.O;¥1l¡4*îv D7D�ˆ9SÓA‰n[ŒO� PÖ}áÖØWš|»%š¨' òàƒˆæ­hm³•7ÒÔ­�wZkËËÁÌdÔ ÛWŽ‹®sÇ—ÔUÞçw¤tÐÕxNá~ôZ•º°Dœ2;;ÑŠãµ0×Àç„ØÎÚÝ¢À[B±èåñ…€Hg¡…ÓSÀëâ+yñ˼^Û†ÿ”Õ_ÃÞÅìû‘- %02& Å¸ío%Í®Avê3ź~�0BÏٺ퀃­­£õo÷„j‹ ’ê¶uÉqdZ°=è¶÷´o3éýFi³¹íënˆ¡ eé)\þÇ)™~{ý*åÍ¡ sz Xæ°eÞþsï—¹u—ûOÂAæm9 vb:£V²§ÌS±•ô«�f*O£o(síGéeï8N92'™¼lˆ~¸êen]R•­}¢±IÀÆËà ¬%æhÉØ¶ðé�íI#ûðýq% ÿÄÌÐg 4ïô{èҲߵí‡b¸4ðÔ¢ÐVƒîˆhÕd0n[}àLÝÿNOÏY.’ñ‹¯í†èþa=n ÃoÄyÕ˜“=¾õÓ(ïñ¨¶œVŒ©¢%@�z’ƒ¤ûâ·9K:ܵ‚9™AÐè/|ó‚¨û)Z˜õä,,ãÉ„!�»âv[·[µë9‘U±VFiëUÒ&s‹è ~Üó5 L°ãN gúgµÞ䟔„‹:Œ´G’X�2òðrb£þ®±ÿ‚è›4€K[Ä úõAÀcⵃŽjÿL\ž?vñ~÷,¼þ`¸7ìÛŸ}¸Mo!º|±${Hºtï8lfý½t‹Ö0´©ÑFšÕèÝKÓ^神¿zµ÷¼·—QáÖÀ, ¥ƒNvßeéQOiULò½tïÕÁ^o¯—îeÉz;³!råKå¡ÏœGJæY'ï7sí§¿ÃÌ÷v:‡L{Ù7ÝüÕ÷tHeH# —„šްó]wŸÌw¶ÒÎÞ^š÷lê§½^Ò¾“'©å­Â%êaƒK�¹ +1«õo7KúýÅ<§»’™qì�8Wže(›0gßË´ò¡Ð—N·¦.2"�ÙÑJiœv=.�ßy¸'qSr/\;±}n<Ü•`Ù:½¦˜Ã›±—Ðx A�¤J¬C”­O’×§F=¹·Ä:ƒ¢«ä³›Þ¬4j¡�nAž%Í4Ë_¼ÊRZgÆIúÌæ•H™­Kw©™ôèKq�çýt—�Óg´îå>KÒ¯ÂÝ4ÛÉh–y@ãÀuùò•öGífÞá6c¢ù¼Èÿ@€þ…Òvu‰N¨Ÿ3¾“;¹×´ û°’ÓbŽ„öÈ_—0“´›¥±òp}Bèl„8ÅT.€Áÿ +À'Vª¢@‹¼líÈ«À¼Äï!üÿ5@ÀaßÕ8]p¼€»MoÝ�nÞßÍ÷­i4÷à›&ýnŽÅÅ3á·˜6�Ù¡žN¶¿ +ÔG‡G‡‡Ù!E&Ïò] +Žž~Æm»m¡†Ò”æ=šçfù! tÖ7¿$ÛÝOÓÃ~ÿE_·}_™'–ùnÞï’ë 7oówýýDÅàNÚO¥-tØü‡Ì»íï[TœŸu)Ä ™2 „P4€wÎ’ `x}?z;¼ûS´ĸóq?~IâÌþèVkþ70ÿzµð×ó³·çÏ�i\[ ›×Ö›MÁ C-39³=ææJ¸þC­�¯@/ºÎxY?ZüHOµ¹Ø ×Wš+ì©Õ”�•p£Mâ�Ö›óv³9Ôºï�ã>|Q‚Âæ•�e®B§‚×l®¸Dì^ÓöAæ|È\Ç]\Ô.:¨ÏÜUÿ7bý~¤�óJ~¤"«Õ:];„Kf¡ø6¹¸�¶eμԺLËü£ð#ú`ê¿ÃÄÖz]ÂÞ¹Ä"�³|'ôìÑÚwè(DÇ!×ÈÞú¯•ïXc.ŸÚD+�С‡¯ ë;D7­Ôs>MìðnÛ×~´'¹(WF�9]d§Òîî'éïÝMÒZ%ZÅÃÚ@cæíìý\êþ:òðÕ¿Ñ4ÝÛÛ×w·™Ð¹öèðÛÃd7‰¶ßÍö_f]Yn1�à ÖHÛîe/ÍŒÈåJV£¥¹HƦ¿ÑÜGûÜÓýßñúÝ~Ú;Ú“eI’iæÝ;RÎgÉq eZ¿*Jw†äÍ ú˜|%ð,íÒe×ɯ¸ +™r `|üÝ«nî�ב<*4ûZ_è×™Œºø õý~R`¦roþЀÕZa)�ý«ñÃ÷h;×ÑçmDw¹›îgùw‡G¹È=rÛÙ¡žôw¯2ý}÷Ý¿Ño:ÿ—ì_~Ÿ%íþw­îÙÿ&Ïž¿ÄÊÊ–¶“ýÝìÛovÓ~~ptøê ¨£‰áíüëÁ>¯óþ¿î/&ýÝßCve¬ÛûiWOA'�õ¿ûWå�îê@ý.™~'í2ÿ7zçÚòÍï²ö�Ã"ó´ÿ/¬¶Ì÷åTìïþîèå¾|)Ý…Ó­Ý/“ì+_¥üCÿ_w»/³ß‹*�yÒÞï~Iæ*ƒ‡>:Üíì¾ÌˆÌ1û\à2�û^ÛË$¾5òЉ„TA¥4áZ\�²vØ'fRøÞòÄq›‰Í´“<ÞÞiuäîw"™]ó¢©T¤«�$_ÌäÂõZI¼*?O„,¡—Re¢Å­Íêø¥l�°¶<Þì0îq€µ4¶4gÉy1i€[œï钇͌+nF4‡çÊo9Y5d9q6„‚×)ßð ¢#µ|;ðŸSÅݧ†6ÿ4nýñûï~ψÿ˜ÝÇJE-@c¡hÿûVÒ¼·¹ëÌ“ÌÓ�™K\žú77tÞ#óKzr^®~ò)³5¯XËN6“¯¾ê>—˯}ãd¯³ÓÿöPé6c ¸<ï.¦»>½¤MPÎ<™²µ“Éîzža}[Kò&ƒ|ãè“O:ŸŒô"³š@Ÿ¹ŒÉá^/͵Gœä�ÞÁŸ^¹n›·µo²ØýŠ?&mös™'*¡º¼Í4Ùìd×þ@Œ«³¥œmÈ ?f‘îŒÐrì]¤‰Ï@¬Y�UÛÕÊÓŒ»£mÎÁ†•ã X¹âR •J¹R™š¸¬-²LØ?¿cïXPKEŒÁZÙˆ‚µéé Z“Ú‘¦˜¬8ä“ÒtI›…zÂ(™¥Èu² CPºÄT_>íq!üé_z QQ”HLL×xi9Zë´À Õ¹ùÃ�!’6ÓL`Õ¿}À§;ª•.úLéè/ì¥ÉÇò#[2õq«×ë­âÿL—¦£ÖÇY³i :å«�—˜G@�Ò Rð}–8àjŽÇ¨8GöQ‚¿ŠyÂõœlÆ f´¤ÐÌ«€sÎÕ4Û¯‹ô(�c/'tb+øİðvœ‡� Àü�_Æö£ü{$à¯óm„iSQá½cä †I*`AwC!ø³ž1[ô ú]¾r˜îtz­]WháßÛòða°#�nJô¤v¬¾�9Æž?[L‡Ý0|%>MÌÈÜ"ý22éznjg«Ã9?ÆjÕ&¯vMi·³3�™ÇIïK´OoO§‹ö1àNR›Q#}@¸nË[™£¶1¶›5úÂzqåd¬/Ãbx¡™ÿ×x·ºÂ·¶TšCß‹¥ÊÅ J*MàûêLÐ…¸V™,ORí/-R¢aàä$í„´ƒÖ]¼è«\= Ó3Tûù†ýâ´˜dw;“Q¹8&OŸdõeˆÀÌŒ,?øŸ`˜â‰‰šèÇéöŸ–€£€Æº#‘ÔF +@_À,Ç]Bl¶¨2+JúM=ªC‘‘*Ù¼&�õvZ[n~ +ñ„e@E –øÇê¬ý ˈ؃Š\Kø�¢´f¿?M`ÿžœŒœ‹ÿ8¥RZI\Ëe>èä�å!6ʄտ‚¸Ò/[3ø80`ˆe‹xt#P}Sî�Xc.€yßÿ¨�Mß�¾þ2ßNèè``SöÃö>*{ ›a°øô“3@¼µ#°'Ñ@žš€Xô¿`úÉ€8h%¿^Ï»Ô2a„QpðÏix°ÓJv¬üIŽ3€/¥Ò=�wÜ�|  ÆQ—å-œm7Z¢nØØ¢^û´ÒD÷ `îÊ®“0¼P—&P¿Cë]D6Ö,¶´ÀL©$Ó6I/à¯7£v"BüŒ0X¹,¬—EÊ“—K—¥ +ÐÚ`¤ÁØ…¥×6æå¢%J@¯ZZo½zìDŽ çÁÖ™ ."@å�ŸBÈZN—ƤèTàÌž 5ï6‡v+Òáj¦ôÊÚnjÎâ†ã º­›q=ÞKöhT¹1Æñ{WÍ*�j±÷)ÝôÙl1x \*újÅ1Ä +�ó.´7h¤!PÄ”g + àÔ€;ðY’†R.x·ÈgeE`ò!°ò"HJÐqzêàÔ·[@[X-À  û¸„þ—C!ޏe€ù÷çX}þ�xÌ~Øf@ð·6þþ*ßNh ©Û¿õ)Ýܼ-°ãŒ°ƒ!ƒqSÑŸ‹ìHëo�Æä! @§`©cRìÆ<új`¨€ykË™ºÌuÌQ}²C+€S@öå—ʼ—�0iK¦}»‹É1úaí$­ŽNø$Pθž †`0Óf¥%0³ù`x¢‹\„(–¾a�Ä€u!’`kð€>(µšCwhwpט¶À4ëe$qÆ›ž�¸ÞÆÇäâm�´Ë u4Bsp|¤4]›¾('ñ4):áÓ*w…¸:í÷–uªuZ:`}¼Ð +h«@j¿ ã^ËõÍ�âU=~³Ö´òŽQÅÅEïÖÚf + “Ršl}Ã=SÅŸ²êR*1 ;Jݸç‰POäóoû(cǼSºôBòÞО»r'r†â&ö¡Ö{í}Žï!°_–FÞî‡cÙ]’`"pƒ}Iw÷߯/Ú¼{Ñ56O`0;07ô¯k‹Uä[ÉÖfÁ +;(ty z 7\=Ý2íe”ôvp ƒR=×â_›=(T€‹€B2w1€–‹˜vº ÌÑ>[ù~Ó1kzæ"ñ  7ÊPžljÛ‰@̘T^õ½‘ ñ�=ý1àÒ2ì“r­45‡:¡tÆê(bbá%úäXbÚ”D3êcҙ悰Rû`¹üéÓ#0em ´�¥>.+ã“3L.Lã·g¨óÿ¯œ¢6LÜÍpâ€+-`óöÒ70m¯ä£ZwÓÐo ¥Òf›@Zö(Fè–ZŠ8틈÷ÿ†8jC·=Z’�R®EÍ8 c'ëE ÷"ãÆ�6J›Í7)ÎØ”'>dÖölÉCF(þ2¬(TÀŠÃ2u•J(㈜ã¸õö œ=°5g¼µYr’“Á©x9ù‘åÇ °Š@ð7òm…þPzž[Ï�l%››»0™@›p tY `À„�\Áí‚à À\aP(-b=ÛqFxƒBÚp0$[,ñ�|rf À3ðA@w’Úl1€Âð™ŸÍôÑ·rö ÀãÅÄu¡Jh” i�Ð2ÑuD¾†dc•9”ÙøXÁq¹Pùç!/Á‡æ;@t(ùÎé@×ÏMÐG  ú¤�Xµ 㽺/öR÷ ž·5ÊîE£e +"@¸Õ­Ìž§‰|²Åä Ó{NgÉÚÚǛΨT–ˆăP.âZ•UNðì%ñ^ó� @¢�OÆ´�ýÓ$Û¾*ÊM»­ø—‹8¤MÙ  ¡¿o8Äðð=þ €¯A’co�ÿ³ÀÛ A@ê¤\ €«ú«ÄÇ„AÏR€·ƒ|ƒApÀˆœÅÌ(bÐC¡¥ç‰Z&ùÝÐ0èÀK”O‘ù(‰¸è¾d”¸ÀŽÕŒ2€˜žM§Öp§2ïø¼­` ¥Î‡w1@ªdgÅÓ§KmÀn½õ5³¤—µµŠƒ ï p¹d�€˜„{ÒÇçÄ*†Çö½ ü´¾ƒ²À´t�”Ë)d¾4FMàœR:�! `G@“(›w˜«èT±›áðKâx‰õ‡+A´–®àÈJ“ÂÒµh6‹  MCîV'Z[5]«uJdÍÇiͽè1ú¨A #½L-@¥Š¬{p (3T#c›è? +嘧áB}žÿÒ©™ï0š‘\}ŸùÊC®-áôž�h¿V’)Fè0È<¯ÒäìR¬³_àì€ýgÿ×ÞúèX’ðö#‚slz‹Ø=ýkdH„­@@úµc`ÐL¡pÞ.€ pµ¯Š€’1€cF˜&ø‡ @øsµž°É\€�¿0R¿ÎÄì΀ôŒ¤£µgÅTPß‚(W-jg/âé�7ëª%çŒËÈkͨ¥-¸æ¿Fw Ë—õÅô‚ÖúWп 0¾ àM@jBÀl¸l9ßuoAXâ¢32aº2Í”ìhryª¡#d8MìfÒl6ÆF *´a¬-A$iØÈWOoã‚ xé¢}1iýþ㘸,,_‹z$h€üvØN[­�üU €¨«è¯[°8b,Óo/7®Ø +ñ‡8 ýxdçÉ:Äñ€NÇ¿©^<퓇æ[Pÿ@1к“hïlÀ4ĺ +ûwºHþf0€¿Ж‰9Jéüõ‚ðŽT€cî:þ*Ùˆ›z^[n¸1€�Sj ƒo(jä1m}½€1=À À}+�_*—+Õjuª*�6¯2c‹ÕÙ)FÒeæ­J¥:ÅG+‘ÙjC¥u¾Ú˜Å ššªèÙM”ÆË¥²ÛZ­6S–ZßÄvjÜúÒ¥r…´ädr�4.Ýluª\á~<\ +‘QÅy—Ÿ°Ñ@`•K¥iAz�Î5qúÖêwrò²›âÓ¶[+=�ÐÒ˜Õ/€'¡:(•çl<`ñ‹×±,'Ð\/û×�²S,�OŸ¢4Lü£0iÊ2 +¤²7ü2ŒIûZ* €¬É³ä­=êÿ³u£b[Ú²*¨Ó|Ç‹Ó$]lï±’`Ó}é(4¨T•MÖlË·°ÄÇÄ̱̺èGœ­,¤ŒRz®(æx ÉÃ$—¦YS  4WîÅ£Jb1GúÁçU¯øûÚñ?úU"1ìïiïQà—ÿ&ô#t´·€¿Š¿FÜC7#ìÀm‹˜6.Œ%t®°goеrŒ˜Í/Úxû_0€a掼#ð_Ôm+ML9¸J4fç…G½jú�gXÝòTUøµ RÌX1+ ½*•©É©Ryübùrî)‡Sj!C{ +�ã¥IšæèŸÏ+�¾(KCè߬Ž"&®„ ÒãÅÉÅ1Hÿ¤µ0¸šL”¥N¤ô1=qxÚ�P¹VÈ”aÀI¬/OÏ�î(4€MB ¤Ý¸ AeR€ó“õÚ]ÚÃs'C +@.Ú©rm@¸ý÷Îä€l0#|62ýb-ÍbÆIkóy–åâõ›òøSð–Š´£$øQ˜/ú` Nœs@-º%pÇv~M ó(‰ M±Ïæ¾r½ûÙÅ5 xƒÈ`phk,àš°dâA…�Îë×Çáß©ƒ³Å£{P pæ»À¼>–”?蛿M|[ wj�˜òkmõz;žœV p¿U 0R à€¬Úáµvb.sSbܸ±K"4GÀl üF«bÕ)çÂeýžÆæ¥dá+€Ò;å‰ËÌÒCÀ|5=Ë —`Ò°85ïRU«óP.]:Ñ™žà~¿èû„¹Âj@Ëßš ¯:‘JU  kd;[Kç*‰ø¾Â² 9(c6?ÀÀ¥�ê‡ë ®y¢ÛɉÏ�X:à `¢ÙÁÕ,IZ�Lc„AM“E:Þ úí¦L³4D’èiÑ@�p=ƒîw¤2ì?*€z¤��þbfã-hëMÅpEº0†~j&ƒa[sãq Öä �ùjœ6ÃgpΑ¥pI�Þöµ~+Ù›‰ÆiÚ€Ô&SZJ8À²ä�=!×n�ÔnŸsÞ¶YrÕbZ Àh¹þM2.£)Pý›@ !ÐÙµ¦<xS `P pz ÀËë  E÷&ë=3þN¹äpÈôTó 5GìGÀe +À½˜˜×NVòËåwÞ)‰Øaè›SW ÜÂ?f^)à%€™|¶ @‹æk@è‘sÜ®_”±u|Û¦õÄROVæÊ%fìMéjõ•…`I—`· _e�kÓ‡Æ b®õ~Ç´ËDÖ0-Ò¸Æ,ä\ �&+åZ˜ð£�Þ½.—KÓ—Ñ)n—“b͉ ²ÚNŽÒVT›¬É3nƒÖ‡‹ûr’QÔIÓ5Ô=-žwš63Ƚ6õDQ…¢CAÐÓ=HZ‡+}ë| øÉ¢ó¬ØP-Λ#CHÌO@U�6†è8�…lXG® ¹ý6’†]qË‹Ë8LJ# +0˜'ü{œ�¾�‰ -ÄÏyøçKÿ%�¼�ýyýmZÂþÚ^| @OõœZcž¼)0¨8=P¨‹Œ¶À÷÷`¼äú£ê# `W `¬rYH.¬µÒ bÒB°ÜƒÒåÒ8]騬tr~@röñ Šþ‡ àÚ”TŒ;¦Àå©ò´t°>ŽýxÜí®MV¦Q>‰£ó²ÁU©‰cöz¡Á``õNJïøeç3è`´èþë|Khoí¦ÃÓÒP鎩€‹KïÿþŒ¨´��-\á�ÇÏk φҥï\–u¿;ˆdþ¥Ò³œ~M›,¹ÝÍ_ei¶—ý)ï½èg[éW‡yª=èKÿª—g{{ìôûiº¥³üE~t´‘õéî§ÿ==ç$%q–Å Tm4»tô¤Ò?Ì’,ÝÉú/², ¨“s…t [b Àµç{ y†þJÓÝ$é&í~ž?wò;ÓéH¿ð))û��OJ±Êÿ¸íûì·¾œ k +@›?ÚÚÛw <ëíºò±1ýù+epµ·ßX �® Q3¾óe÷׿Þßù¿¾ùæ›ù—ùßÿö/ÿöÝ¿ÿû¿÷ïßýÇwÿñ¾ûî»û·ÿ#ùû÷ÿþ¼µôþãÿeîï–Û¸²la”,Q Ü„•lŠ&J-šr0‚Á/’M˜I£#iÀJ¢+tK[Þb«ã(‚–*ª�[ß9:tSï�"K¹½y-”ÔBYâW’vKz ?�ßÁuqÆs%�àŸ$›U½gù»òÈ5æs®?ì|�µŸ°{$Í5UhÐ@ç`lþ +Œpàz†`…þýþÀ´1€Q1€S)�@º4€Éc§a¡*,Ž É0€sHd1Žâ—ÅÏ)Véc¥»IÖ¸÷<ŸÃ….ï�£} ‰[|GF þ{áRx�Ì6«–Žˆ'¹—fÎã‚�F ÃEøáK8ǧçLñ'�BèU†@¥àñ +¼ÛjEc„jèÑÂYü¨&§3ú¥Ä±M¦/T§çK¥ såR>—-œã0ŸÓÓóóïsXPúÉÛÓ¥¹ò…py~Ž«Óåéùòryn~n�*_˜›››ŸŸ›»À6å>[rÿºª¦Ö6T(Rkå\1?80t®:Ïöø=±Á9!n[7/½O­ýv€;ó�‚GÑ�ÂÏâW¿Ü„ì‰cCùQÚÿî@!D‰li3‚ü˜�ÓlbÌÄZ7�6ùM?�îú©�3CýþÜ;ˆsÃ�/ ø%µT�ªbc~¾p`0�›�ae w´'äf HI—¿Žwe¨Ó?(ƒìa€ÉXa˜7?ƒóÙÜŸ}Aã/: ¸c@lü¯[äOŸÁCóL»ïQµºt ­µ[eŸ(íf¸8æûÈÖ[Oƒ£@VÃF’´’$þSÒ~KÞæØŠQ ŠÐé<étö.—»�°Õn›‘oï=î¼ø¯×/@ ò$ÞŽ·ï·[¢ø›v�ã�7Ø”ûþ6¨‚rDJÞ½_ ࣱ²`£ñÙ±?’•*Nçh�oþð™ŒDQ5j%µ=þ |²=e\pîûì&#Ä�þ`fr°À8½C7tA +óc>˜�Øk|wÉTˆ=¦ðpÐ7É(2*€§ÏÉ^ç°í¯~p ÀøÀ>€Õÿöú‡Ÿ ü–YS`Eaý�£\#_&‘Fò‘G?ã3¬æa'½Kª1F_"ÙŽ’vç²–Õ;^YYòƒÅ\¶4„*ƒ7[e[c–E¬FUº¡ÁâbrbYÝ/>›³ñŸ!Žbk·ù$\ƒ  Ÿ(‘i§ÄÛ,5œs6Õõ�½k3¸=^q)LH`’ßcL�=ü^bH›Ší{©Q¦ïn5ˆ‰u‘ØòÅJÑóË—<ï=,ùÌóçO¥|ÁÌ=/jKÊĤw¶è{¥òŠÆåࡼþ¡ZxàÔ§Ùž�vî5ãµpblr ÿ,Û@‚°ÁjŸE÷ðÿÖ£h¯JØàßtä¼^�^T«�V�S³Š`˜ÀñGƹÇ;0LÌ´­RÓWÇ?•+È)�mÉ7 ë ð—0ˆ<³ºšÌ³É³Äà$ A& ÎØd½ªƒƒ’A¶­;kð£có)´Ê�ÈpYsΠÒö€ÙOfmŸ¸ðÎ’ÆŽ/Àë,;à§ÒeÈ2Ù|0€Ôx ØgiþöSŸ ðƒYœÔÚVÖö™šF6Ó÷'a7ÙÎ-7ÀNù&8j;¿€— Á +ò ÁÌaò€4V2 °h_\‚vü \'»89ú†kûæû—ˆ~zÏN×øŒßQ€U@ÈJë€A6® Ä †øúB”A¡i Æj™jÒÕ*HCŒbEˆÆyÕ±±ÉQ,ƒI»*ÀwAI=Hî”±%ÈðÅÒ°�p»‘;K +àð‚@–Û9‰ê)Ç!;s &¼É%uª£R9ÀP%•d¹-e ƒZür²eumWxÍf3AžÒÅ�ìøBUÌ Ç «³3à=žVoþøwáTx™ fÇ„é$1 +¹‹œ½…4ïA€ô ü{ŒàY5®5Øj3,%l$À��Ið§×¯AðåÂTxíûjnŸtˤ»ûÀS*òÒµîðÀ?KÜ/{w±À±¥òýR«�ìRÀ•ü<úámÆqâŸÄÀvÅOú�@ãC‘ˆIsGõêj€Ú[ÖÕÜj“Î0h²�K Í~@Õj0eÒC¹á³ì2D2îù£—äÿøÚÃÕaü|ÂÙ54äŒK£ +L U~œF–Ö_1€´—’LÓ‰ƒ>¥Þ ËäökQÅ÷E‘ž tF°î”mŒ'ÚiL@pØ.s¨� /`¯> !ÿðÚœÕW“Γwò´"öÿ¯qóSƒ}ª; ¶‰¶êÂ!üx‰¡¶È’äõ�5 •ŽÂtHj "ËOaU@3ùŽPÃÝo:—ì?FmqèÇ’@Îóp«ÔvÛŸ+î¼³¼¹-Àáøw1€»Ç•PD–?` S +É¥}mÉ*Êxû¡Wd0›†�h²y‹3©ÚåáO 3@ž|¸ËLÒöë¸Ã6‘ ¸ãÓX„w©D@'BâóQ¨“ð\Ä2P +é1i¬™½¥®º2ˆ³ÈLH’b§† ÿ0ä8&€;œ…6ÑO”ýBImmK„.`m@,�b¬7Øc‡¶#þ¾'ípî“v§µ×'ãµzûÏßï}oÕtØ·wÜn·“æ½{°²ÕËñ‹Ð¶¶°¿ý°ý§NT®íý¿Ø“ü'´Û1G“Ø{ñpçÛ8Ùi?ÜÚk?Üét’½åFœˆàk&þë_;¿ïظ2ÝŠ@ß#9€üð/8¡IÍá/[)ØBÖÕ`®ÇKŒçi·¿ÈS¿Oþ«ug›849%à‚€dÒ€ï[ˆ ÐûP H€ùón‹Œã—1€_  Ç•8Àï—^ eÏY /�–°VÀþÀë à—c%„#{¦…ð¡£üÇÉïsCcùÄä"쉊Š˜ Õ +ÇpÉ_Y˜­¬Œ'‚ÊJN£ƒÄK+Á’_(Ò•ð`÷‘!+!¬Q¨ú;X0«Á®àþx€Ü�Yy* ”ýüe€ãÙà€å„”áHè3M†@Ë€Ø Éòø©c…ÿ�Ÿ`{¸’2÷œq922F5’2VJ‚ÐþS¹d€-܆+A§„�ö|ëJ-,Ï—Kp…ÊAxåJÔ€k\mTËËÕ2–aØŠÂjõÂ…rX.×X“·ŠôÕå°5À&« 7ªaí2“#ýÝèJ#jÄW°ÚhlÏãø•FP&=¹ÂѪ5|jà ˜ÔÇ2GhÕ0m œÃAHªeW?èiÃ{¥ à¨RÖßýq‚LS¦Ç¶TÛ`wºÖ$}¥Ô@,…Û ¸Í£Ä ž +¡}ØÇaž À(†6°Ê»ü|!ކ¼±-€ÃûIK¼‰hKÅ‚ý à@ à¡F2”>G[^,æGýbf¾Tò +Eµp×X{ÈÚ£„÷9¯„ÃçXÆ>·èÿ“WRÁ7;Ýa+Ù÷xÌ¿Tö‘އô-ƒ9V:8ÍŠÀ¼‘ï³Å�W*ÏyìX™ö÷ІNÿÆçùpc] ã=‘_Ï–?Òý1°6šÁìbŒL°ÈCðßÏx#,³ €À„1{6iÇt»}r9#Õ�Á +>Ó~ñ½R™x9˜Vj—/Qt7j·µ ØÕ¸·€qàülH¹Üh´¢¸…üS�Ôâ¸q¥ýsêd3\®V.‡ èŽÀõ—ïÆ0=p9Lý4V1oz*nšVA W�¯¾yˆ›NÛKàD߬¹GK«à&RRU<ŸÆ&3q`J½€ �ð@Q’<+€qõ°Oªùwëdÿ= +ÀÅŽ,pp?(Šì/84ÀRí¡fH€‹ôiBí´¾ÈÓ¤î°EªæwÉ/© ˜�\a4—ƒ•Ã&ÐÊ�7Ür¹DåÅà=dù"`$:N0²EV©ñ�þRé=( š;Ä!ÂkÏù^wƒ(ü0ÿ¬E‹§u(]XXÇ4»¾þù矯¯sÝÉçצΟŸá*»�¡èÝNÍ`ß Þðµk×þ}affæÚ�70müûÍ ®]Û¸�k½‡3à†›u�Ï—û\ëUˆ:À1œa:'#F{M’Ý$Žžuâéì#\ã8ºƒÊo×Ê1벆½�½íË夽ݩ^ÞŽ`rãèû$‰¶‘äÇ j'ß&l °Ý~”T9Ž['iÇp’„ÃÄ=¸…A# üÜD-zñ¢ÓnEHPâ YîàjÐ% þa+‰ÊeX¤cå3\Ý1€­{»bßá´ö$Ú{ÒN"<¿ ~AëîÝoîÞ�#{ƒ&%áìÀ›5@ßQnÐàïûØdb íÿ7)€7´pÿØ!Ò­ðV¥¯2€ýõ~øa„âÃ#°ï#,„Y^©‡eº ¿¨_—D‹9ä^Á÷Ùqõ¿°Æ rìJ‰µÁ£Å�p§õfQ=+Ó*DÙÆŒ!¥EP‰‰ $І† +—È Ø÷…_«><�`Å9Ä9žxÚW"Ì_¥ ÿRX‡ÈO™P‘Œò‰Öf°çüÔç×ôu(€Ï7ÿýاÀç‹� ]m]äáÔ)($ÂÖ•˜x ü�¤ À<€”8ÿ„: ýï•(3ÄkÕ aòÁêwð„à ÅóÕV­×aFÔ®¶ö8Èk2ß‚ ‡“Ðfž;h¢Ñ„Ùñ?ÐͽÝߪ¨7}8¯ÚØí¨:A*ÉL ðìÈG±?l—–9²Ûq’@¸‹“-0€(ScýPi$mVpÀ{†ð·qàÊ7†%Êh>-÷ÃÅmøÚÌ Ü­f÷ÞœÐVÿG B¶é1Þñ¿©ÀbG”¸?ìqb1àÝÝÝ'POŸ>}f-^¿zý&Z€ÆžgÐl?}~(Î ÀúO]ažD6¥±JÃw~P*“žÇXà9Øjö¾OóŽ<­ãLc�¹W–4B®\¤p�r^§�aZ•€ àqö3Ô ½GW, „·ˆ£|¨�c‚¿Öͯe€Sáî}J%ä©þíÀÅ”èÃïP &bƒ¿b)€~8„ €C‚ñé1‡<Ãø3F òbsR�€tõT¶[pðôjܘ¯µczK®úä*¼þ2»îr•�êõöŽ…Õ8¾W«pûiíjÛ|Æà0 þ³\}ø-–uUÔa|qQß/äürr!îP=¤-ñƒ�p¨¯ÔY3ž ÞÐ'¸…c½ÚbßDÉ3§Ž�x:éDU ˜?Ö¨þ©]Á'º¢èoQˆ‡h›1mwáœ.RÉ®ÛáÝÿéîí�:¯DÌ1T0ºÍÏ÷O¾£ÛÀ�ý0 – Mw·w°&àc(€ç/_¾zúê%°ÿ’ZJ@ÈÎÍÒC €õƒ8ðÿDå@uÐøÙFTés3ïz~=*hû cCÀ,�çTWÈÙCŒu«F� +ÙIMþÐí½Ä€5ëyažŽ[w8«5\,†L#ôãêþ�L3'c³˜Sˆü 0À +dFæ°Eà<]€T@€y—¬¯óAä¤@ àR·€BEð61€±^ @ e†§L, ˜|´£_7: AEò 0`‡@I9ìH4åq»Ö_kÕÆv¹×¢ZµÃÚ<ñ= Zá²ÐÞ®5öˆn(ë;Áu98Ø„ßzQ®&¸›Û²V?Äg'Ÿvó`µÒ.¿AйÈ2‹DÉ^G#¾%q§T�w¨cXÓ9¨~ßÿ}~0ëÊhZÖ\Û)þ�A_à·ÿ#%À5Ö-îªÖáO1À1m¤-!ýÕ1mk¹Ú¨Ý½ÛÚÞ~ àñã§OX ðÕK:¢\R P}2zÒ?aòÓ ø©;!K"2‹Ò¸Ñ +.�°Üèœ+ g‚<"?ç8ø6ŽK°½,”€ï�V¸ A¦g–g€Lá`!šË•KEk3 +° °‘_.ÇuÀ çù�6 Eèo’‹— ðœA0sð§ˆ8 /àÀE0€k¦døeëëüMCÇ•@, 2p\ €%OcFèyn�¯Ë&Éöt# ƒeèJëˆ]fEI;S©·«w¡ÈÎø5Ã;¨q À^¯³ÒØ?�Z¸Ç}:¤:´4ª¬=žóç{íÆi :jܘè‡|Fóa¼Â¦VGL±)€1(€nPá0‰:Iu> +­’c læ}©.ˆ^`*0ÊÀ'„.ä(@¸ëHßanèk Ï@ß&ú£t°Ê,ã²ÍÏý�ï,Ç´P± >‡ÉrP«]i�ì>xðèÉ£Ç�Ÿ½|NØ¿¤ + ò¥ÌçÛ§:`$PAÁÿö“ + ³ÂlzjpÐÆÔ#.ýÅ|$ø‹Þ¢(Àš¡s²úx�øYoGµ›Šô ZYbB¶Ç‡¼W8=0 dñNDÊø8ç{ŽŒÑ÷ö½œÃIZ’þ¯v €SX~qmÎÛ Ð>ƒßߦÈ@¯ àÂ�ŸÏ\œ¹¶ù»#b -â>¿ÊÆX +@&j"ì¿©¿YçA2 €çuKÒ‚·€X�4’dº¶ÍrçpK@fáÊGªú»ÊZ´�xÞU™©QüëmX‹šêˆ=rÔH¶äÈ6¨˜S ¬Ø†@œ}Ï5’¨]¸Òì i«>ä-ÖduÝ —c(–î:½ØÊ2–¤1€½ÎVÛ�ý0‰âè»ê|£m¤ ü+¸oó½¥"« ØkÓÅŽAß”íÄŒp'ê¹æJþ[€‹R +@”“ê*ØÝØÞÝ}°ûèéÓ'�Ÿ<{öì%œrÙи"ø@úOÚ�kó59*èʯ�7YaG¦.€÷³iHa¼~^õÀ†s¬ÄËã-` @äW¶Y!ÑK Œ�ûçò/XõÊP"¸šç±ÀÕÕ%L¬V!Ø©)€"®1é±Ä@ã$¸‹ê=°x/œ'Ñg@/�¯Sk ‚ä/ÿd ¿ßÌxXèj€õuÇìyðDž_©Íœ`õJLätc}®‡,J’üšf²;Þb�}³�íú‹ZÂ_ý sô¨´ëŒvµZ�«ÕF\«}/Ãú“4ר=4G­ñ'iˆX ׇšÏy¥+ ›zO_ò ._-Û8]+`+•ð/Õ�O© +•°ý_ý ­ð¢e0_>jŠ šâ Ôb× á7ñT¿T3m$Âod=\÷¤·—æ>ýئö2È0Å4–c,×üÑÿü®rd[@¼º\ .[”dÿ´\®Öj­ÖýûÛ÷?`Àõ¢�^³–ŒänÞuøüá'Æÿ~À¢+?üŠÔ�§›§ÝðPð&òÆèÏ2ï3ƒ�³š/&Ï›Gåã[Þ'4�Á ¦òÇó¼–Ÿg�ˆðoƒì0Ø€$4®¸€ÜR�B�/z$æL'à"ä=üÃvÏ0|;³€EªøF±>€Óݸ63³~ãwR×®‰lnl^¿5`è§Pec“£.À?~p.€€~~1q¯J§'ÛÓ­„°Bq™bæ‹ú^• tà×#ŸtQZg* ÑšÞ~Ñ®&¬öôJ²Ïúý´%V»Zm7?÷gƒ G‚ P€ p…�Ãÿܾüëi›{ +l ÅøB»¯:¸”jûµS½š€½ÀV{ëh  ÊÌ�Vyú +~Q4·5>…oЄ!:‹ ( z@Ú>DhïMº�d¶Ç™E€z z2 àgGm àôñ1ü_¹û€�?~òôñËçÏŸ1@ +ÀÒ@~­ú—tñû ÔŽ?4Àk(„W :•9%�µÂpÏ?zݕóc�Ïö \fzdT8ê“~@à{ùE,Ìb2¿ÛŽ�!ä—àJ,^ž�&?ÀáŸ5ot�‰Ê¥b€kH‰ø¹%kßKpJöŸ”ßQmsöù:x>€z�©€€WŠðï`Ÿßؼ±¹yƒ…‚"P×ád4~S_  PR @J€{¸z|)@†Й01Àf +önI¶»ÓôݸQS§ze(Û}B0Ü©†íoaÃ#ØhÚ…û«È5QÜnE¯·/³#aŽý*-ÀÊ»[í=–ðÅ—«*¤í·¹•»�ШuØ`0O“Ä×eª€&"Ú¢2ztUàNõÏ/² `+Nz1€¿’ÄmWUð€Tcj·h»:}?iü:Šºøï*’nœƒ°1jÛÞ'ùt– +6LhiŸîÄ�Àÿy0æf~™è~W9¢-=²n_+‡ \€‹î?xüàñ#Öxú.œ€WÏáäþ,Èü—@÷«Ÿ€yb_ˆ7Fôs–а&È�ÊØüm1‰,é�/Vò€.i¹bÈðê“gr)ª�',ÒÅ·:°Ãl«�ë(–À°ú”`"?êCDï2pŠ]m1@�£^!\šä*¸@®Ä‘>Œ;ã ûo’¢Ÿ_|®1ÔOº�¨Z|¥Š0Ù¸¶pq†ž‘/ 8Àæ�/¸ê® Ùȃ,ü ×X¾c)ÔG/`¸ï¢Ÿ+£¸K‡�î û Z +Ør6ì1ްqo_çOÑÆI³}ùE\î ßt…Ç·›lÑ% )Ž`ñ?ûYb=€ÁɹpÛQÔb£]|Üt€Å+áÇ•J{9вA¿Ì”tÀîígÙÀ½ä»xnþЉþoŸÜ�¯Õ’A@" ¥â*:@”bcßdr88£=‡I~@ @QFe—¼®o·ýù¢?ù]¥È–áùgÄjW îïÞúŸ±àÉóg/_Á `! y¼ÚyÒ}èÁ÷_kâot¨ ~úÛ�?ñû·Ÿ ÿ´ÝÄ7 >Aï^æ¹t†…¥@#lж[V§é7hƒß/ú®¼@Axc�ÍñqЃ%vŽåMøÜ\N#òàB¿bR¦á5–¼"ݬüÑ«r„0»÷‘1ѽÛ,úî òé,•®©ÏŠíÀ|@ Ÿ2€QÖ +b²‘¿ß}âçg)€CÛûϱàþîîã§ÐÏž>úòù3Zþ—€7E•€2`P6߬?\U`¹äo, üñ'zÿƒÈªÒù\‰µzá ¬õç�ë— @ €y[`µ8ÁÒbKÀ+ä #ª&SÍz±0Á@¯x Фô‘TP0È.öœP1@±‚+Â箜=ë:à5møéˆdTG�d @¨g×ÑöN{ +àÚÌÔÂ5˜ûÍ߸¶± Ðÿ›ÓT +½²€}õ¬5 àï–ïZ +@Ð_bKη{’œX —qVƒ´b€vÐ0¿? [.Ù( þ+;àÛzÑŽ¢ê‹˜eÿ?M8q-Œ£Õp¯QM!ò”ÅÄ6W¥€^á”ïßo‡« �P\¶bÎ+û F¾ì”ÃÃël÷û@¯-@ø6^nô8NfŠcÖ7¬m¸ ÿI-•R”Lc 1¨ÿÕÞ”Êá àxan�RÑ)ľf²�ÏŸ=¹ñnrH[€Ë²ñœ_>rªÖj�ÖÖ|ðäñó§OŸ?cÏàÏžQÀ ãOן4ŸÅ‚$¦dù¡Ø �»R1³Í1õ`»'rþG’e_ ¡f>úÐÞØ°Ž3ÌNŒ¨Ô~�÷'IÆ #ê­ —6”Le„8{ Yj„CtQ?XeAŽØGüã˜%"U‘Î’EHäÿóÛÏÖàû³Ð€üD¾QÿŠþí†SŒýù®,PkY pD=nêó¥ûcV _ í•|“˜1†½ÆŸì€.úfýE5|Ñä�ÎücQÜLvv~ÿ0Äž]n•_àX)Pð&Œ.[]Æ;Iò + ÙJvXC·oíAq�¬€bä&ËÑ ØêVÏÅwÈ–àI G¢µp¯¶Y²¸O¢dk +`?ÈÔø÷�/7¾qF¿OZ¢-aÜúϤÑjEðnRá[sbF_XຩvûãLt b�Og©(¸õ‚“I» ù… @åÈ¿@¦ßEz1×à³7U¤6a=€Fm—UŸ<{ÿß`À«×àåë—û+¨ ]jÀÜ üÓøñ$ôM\v† �x9Ü›´ÙŽ¿Ë1éO†…BÞã|°~Œ5Ì Iûbà‡Kùc¡øPеÿH¿û¥'ü2ƒl*T�P“È“``!â5&Cð* +&˜ˆú6ëê†`ègðþ¨¨ì•ò… Ÿ` €.À5z¦´Æ™à鋨5 BØÿ9­©=²õ˜i1Kµ@_kÀöÞ^§Õ�üj„ ù°Oj­Î6v¶[Ûüí$fÌÿõbïa»óp¯ÑøM 6þ¬ÓyÑn·¿ï|¿—´[1{�þÔh´âïÚI›½Š'�N‡í{Ø¯Ž·áÍ7ZHÔŠî« Ä�d;ÙM¢8ü$làæq߃BŲóˆ àa6@M“�l}6º`#jµÂ¼�êîƒF{¯óÈ"¾´®ˆp=#=3ÿF€´ý‚44Ì,Ž/bþ «þ<Àb™R§†ß Õjí + Àý�ƒý?{€µ�_;ëØÓè+ð’D@Øõ£"Ò*û׉µ¤äÇ ÜÂWØ�Ü +›þx0ÖbµŠ ªìõ½üJ0€EëÎËUǺjí—“5 ‚Rž‡JlÀò¾‚zÕ#\¨Ø"VÏ?We§al€€0 Q×  ôÓYW ¹É˜A,—(à�bÓµZPðÚÆ¿ê®À©è•ª„.°žéHJàm€ñ…n À¹i  ûX=5à”¹Díbkàå±ü¹bQ£x”æ«¿¾|™£{\˜Ÿ¯^._ÆZù7U¤k„ø2ñ…ùòÐå*<÷y8×­__®^Æ +ΙV­ÛrùruºŠ5"�coœcï +%xç�_×´³O‚åjy^ãŽàæÀ×û†‘P|{€ôµèÆß|–ØÈ'YÁÓ…Sz¢ùjyÙÊ´M�(b®•ÀãùtÖ•~ +�z šxò>0 + "Úhîü»Š�#D¿›h Bø6b +àÁîãÇOxöôåK(âÿ‡×/æ§ãoöŸî€Œ¼€Î=p ´¥½Nh‘OcÆAXÍŸÍç9ˆ‡þ‚0Cs8Ÿ<ÿ¾Ógΰýⵇ¿îl>‡ä9L…¡a¦ÁTPc8¯À4* ’âƒ�x#ƒxT8¸O-æ=&Âe8›�ÆËt“ µHuÀż*1àH#^º^©^‰£X^Û`€kŸo¨"À¿+ e@%�z‡Ä¸ð¿�P+šôJLdê8qd``ÀuÃCyÑiw^ÿ¢ý´�K«QÔÉ‹;Ϫ�–šìgÉ^»ý'ØòÇ�GIÒþsgxk·~f°·÷´ é¼x‡�½½ö£G�ï’äQ;þ¦½ÝÚ�á $ íöw¸Ì»_8—töž¿¸¼Í±8œü§MLu/nñ–�NNú�þ=¬iòNû@)ƒ€}1cIü—ýò°³×¹xÔN"q—Î ÷/ìÙ;ƒàíõÅX Àþ´®ð˜“Þz�ôiz7i]6B‰˜[pË,°¨Þ;}43P¿“ìk `öýÍ¢þîÿTžT2(Ÿ +à; äÓ8€é‚4�RµT €–Ÿ{¸|·C7`”(E¿-- tÐ"CÏË£äB‚<áqÀå3¡5ŠêÄ?Œ¿(ïáœ:a'Ñ4ûÙ0üÛ)�(*?rm�¡Ãá³�ã‚qníU“o, Ä]²Z‡ÊQI¢h^ºž¤'é�¤1€,ØßÀÅ>Cú‡†ûžü6~¨.PMÙ@Ñáù0­Öí�™¤ +`Å ¤Ü%ü÷Ü*åm@Vˆz0ìt™¥›e~�è÷¼›tëà…®:p¿•„�»÷Ù%Ø£ÇOŸB<öüé˧,¤Ø0¡„5ÛþÐø3øÏ•¿É°FA<ÊM›†Ô +€ßA�ÜÍŒüo¢*z0×Ìß6ðvÎóΜ <Ÿ èÃSB +°|^~‚!>^ +‰F`K'—Ù½(q¤ ‰Æ)‡Hê$ç_òЏZŠ¦Òˆüšr2ý)ùï:,ä$“¿Ÿ,˜°°03 ?à〦¨¤ˆ}naaÀ ›–t¡¯Ï;Æl³ØWˆ™ƒE¹ßè/o LŠŒ [Iiû²D Õ�S!@×\‹šñ^¹Í¢>Ö|Øøõî+I4ð3fµx{ž-yqx @5íìï¸Û ´Q Vð +F¼J“ n÷Q'i)ÂV\ÕÍSI¾KþôscP '©DÍ{;óxT *�åº%fzgTü¤1@cSªÃ7{ÁÚ›ÂÞàžÎLìXßìrùB æ�Ñ)\ÄöËåÐ}~™è¯{é¶ ­YÖÈ `�?Qs`u úR-�Øàå39rþÕ.ò“è? -ûoTÀÄþTŠÕÑgvø÷&—`¼áî/ÂzPCŒ©Ëo YÝc›aöâeÖÝS‹A1X€7°ÎðdP‚`Ua V1�ò |�b…ãqsË€z°g€½‘X]ÙÌ>§mg+`ÓTß2xíé f®¡ÀðÏ,8 à8ÀçÔŽˆÿ* ÐÍ{1|S5ð3jê·"kf o$Àá�" €x¾¿ÈáAÃ8¾,úFïlº  +G` +€…õó•;þëu(€tÄï´ ˆ¢y¶ü#„¡‚¥I¼µ`gï” ”b‰!«¦†@Œ¸è_µÚ!8&ÀR€ÃcÆ’s2 ·¸ €wâ(�úáúñ)ø! +ûÛ¿5` {�ý<ëk§C6¥·nvß©ƒþ3 €Wç«îJ¦~1 ðg¼‹¸z°éon”•*»kÝ}ð`÷Ñ£GOž?…xõR�Šîß/éP €þ+,ø#TþlÈ=¯úÚÐÙf¶4nžg††e–øÞ$ûòŸ¤í8U @°G@¢è/P 0g\Œ—!þ-¡7ÀËWëvˆ‘1&ð–ò‹¸B‘b‹†“I5wÃÐöÓøüóÏØày:»Þ+Þ·–ÜNƒ7 *ÈèøÔ\Š( -p�< Ç\ À6õ9>ÀÓ€ØÂmdƒ€0¼.€Œ«Z)@•9PðIµÆ1|XÒ‡„QcÿþíVÜ)Gqu¦ï'oó_wÏúyÂíêž›³K�ñ‰•Uöòçå¿6»Ýþ[b˜"v,d²ÕâÍ-·ÁÞ_Àî8ª-@ˆ¿Ýuä7‰â�ò‹”¬X‹e¾DugéÔãë ß¡{ÅØgȦð•ëKÄ»™­`¯¶)Ð8s” +@!c3¼º8€l‡výBq¿ämÅŬý{|»érPcM »Ût÷)ø?+?{òò©ëäÐ~ü¯€øØAúÏà?fì¬üÙ’Àøö0[Æ¥…üP6ªK¼Sƒ£À?Á=¦.AiøZ1€QÿŒ¯b@6%Ä·Õ�1µ1óihN&Ô£”‰ó¬Áã�¤ +Y@ÿŸø°4 Ÿ/V/Þiú©£TÈ>×þ=è¨~ñm˜è�PGaí­b™Rèƒ^ ÀŒ~×ÿ§X0!…ˆ†)€ \ ç¢+/aL«9 (þ·âmvÊ­Î*hˆÜnn9' èÀwâör×®®¬$‹c!®Gß—÷T‚(±‚xL=‡ó ¬�„)ò{ à°zG´p¥`í¨á´ ž³C€;‘çtC�XÐýM4ý¦ÊÙÉÄ៫�îJWöíQb†”MThDq7@úR£©ïõ¶"¦Ößïï[N58(c, |Âz€ªüÜš½€ €ÀúkŽ#PRüZ`ÀÄJ(4ͧAΑ‰jÈ"{þ"Ÿ= Ã<0HëLpÓ5 ºÚ÷„•Ba%?Á£f$D$ Á< ) áFJ`â&üüÄ%x,€€ ã0SACS)±îð)UÐØ@Äÿµ)…ðÞÌpæÁ½|æ¡”@®Í@,|Î +ÁDú> °±ñùú—ëë_\ÛøŸ_~‰Û÷bÆkôCÞX + _×�}è2€ ò!Ü™O'Â߀°2>�Ë`D bRcËý½.Rb°è�-ànë¿.ÿ&zTm<ÂÎO9äîÖ¿>LÔ0ÑÅñ1àÊ�` Uôp¤¾Þ+dRVâOØï0OüDñƒoÄŽ‰Õ@1*€vÒJ¡�Ìï­Qà£b@Q�Õ À»$hMðú°gAµîÌÍmïÊpÈîbWãº4ÄT�.OU¢øÿ² ¢ŸøÖ¢€Cõ»Èòò•Ö•ÖÝÝ»»€?{Æ6ÁÏŸ?}'ô†_…�düØbQ W€y}XøÃ«Ÿè+8üÿø#À†| +à ¨ ™4Ǭ•Ã`i’a@?wzè,Œ±r=Í6 JG(³#÷ûK¶Ê©cçHGÀü«Ç?ÂbxDUüÜÀ8—2F L˜xâmAJøDâ&†vD/¬›ýÇœžE¯Öå nººÀL¼°0ËáÂúâN`uãÚ—_þÏ�/¿\ÿ²ñe=ëïX +`* [ +ÐÕ]à°'�_U1 1€ ŒJ,ü N?|ló• "8üÍ�{Í­­�ïËåêö²¨]€ß6w&©G%[aÝk×v¤`ؘ + €0�¶Ê™ÎD�@š( EBbj‹$´«ßô1€wh  €‚€í¨Yëbö\ú±Æ_­›óÎ`a=ePÞ£x�D:…o�;Ù"€Ò‡~HfÓ€¬£ünu[üyÚƒ™Ríîy¿HðìúÇÞ^jpØ~†”ƒÚ•+w·‰v +Èz€øhx02€×lHà ð¾,?é€âÿðþI~øéoŒJØ>(;5ø+dé»ðï%ta2&'A&½ÅÑÜÀYáŸIÆ=PÞh5Æää8Ûû3ËËHÊÅ' ¡*<Ÿc ±ÃÇ€ +ó$ï9z°~Hå«sáa¹ ˜~eU 2€}â_àszs°ÿ €À<è5¦¯”ùÇ:�PÌÌÌöŸøòËÿ ê}| ¸\ßè‹à7bõM¥pH ¿˜Èwà畊I’$Žbj�`¼ š€2ŽôÓáèàɷɽ{q¼Í1Àavþw¾ø¯{ÿÏÝùÆ‹{1|úhkë! £x Ènâzßw¾mþùE«ÍV@êœ-7£µøÛ¸³·Üé´áIHXøÇI}ZÎLªn¢p»íÀÏ�t:°«ñ·pórçá·ìÇ$jn%P¶êªSù2aí¯ñå‘Ñõï�kÒúD;9GüÅ!îršD_Ùþ®*`AÆþ¡¸‰t¨›þç!ú÷ÞVª +ÏZåžw‘jµÖ¨µ¬?xÏŸ~¢ðãKE¹’8È�ÀÖ[è��s«L�ŒžÊà¾_ÂÇ/•D[ý ,óð DÁº + ÀG×QiŸX:È[•9„XÄ.A Þgæ¬PF´øŸÆƒåþ¥(z‹È3Z`Ó�” +rQ6pûNŸèc¦ +ãS÷]YïS”.€O�˜ÈHëÿ¦0׊µ�—L7ªåòe¶ã/åOç Åb©TfSüyD6ü¯5Jä}]Y¾\­F8©±\½¼Œ-îC*¤YfwØ@œ•«�ù¹9îñKåÒ¹b!ŸËŸ›Ç1¤Ä7�C™ÿ�õ,0_º0?�;³ûAxoŒ˜ pT  ÇZ ~g€vo\㣠+å21ŠWÉw'Ð:@¾f@"Ø›XÈ"@îw'v“HR áAË +34º—Ë2'"Úo%µŸaýMÂ+WØ-(+qxP|ž¿$x +ãOÓ +€‚]¶_%À?]ºÐæ€ü“¼~ w+70t†E¦ æù\at˜Íû1�j«£9ŽÙÉ å†óÈÞjÀÏæþ\-Ïy¬<8”;ƒ4pÝÕ!®ÂcJÄd§ó9‡èx.‡K°£h›"û@.å�Τ1 ¬8ü#?üB>Ë­¨˜&}™˜ôÿÎpiæŒlnîSÀ—§.î×ý rc“ý�otcý  p ïúÿ\ÜïIc6²³÷Ÿío#_U�£$ã�ch·Aøãä»jkoFˆ{öÝðö·Ojí×ɸ ÀéÃlvr¶¾ýB‰ÛIµAhÆ‘Œ}AKOx¸d{iöž¿xý_˜ðÁ)ñ6&:"­ÎŒ’V+NþÔÑÍ÷3€wm �a-vLvódoïÅëÿób¯¿jÇ;ŽtøÆ©c€¯Ô^_ µ¼MÕ}*xénGæÇ‚¹#5 Ê+Ü'n¡£¿\¶ßJœ|w©Ukwml°]õ ®z@˜^½f�Ø `-bŸ.>æ8“Ϙ`† ç +#Ö“aÃiÅ÷+k•%VLóÁÏW½Kã°iJAþ�ü´èOúþbKlÎ.Wd«`š@ø$+MK܃?y?ÙÏ/.8<̥畂%v=8.+A ×,�sŒq\dì@=8wÂV>Oñ�Ô_¯ÌÔ€rß"Þi—×�ŸÉø<íÚ Ü€k €ìæí73àÿ¢~*ëSø©lÞ¸��äÿrl ÀÄé€�¨Õ�Ê_�V޽T.i>HÔ®²ò?רüÿ3Füvæ_°'Ð(ª³^»“�¬²áKóØZ0ŠÚËU€YEƒ"_%o,O£Š+?À‰]©×X½¢þ>�áÇÍܸ"ŸEíò6[`'®Ta° ™ÌýÛŠ7F¬Ñ³ZwUˆ9¤H�å‹l¨PMb<–ö‘FA‚ªª4Ýãc­©F•˜ÑÇzÆ{ã«“À ¦:_ÃÛh¹/‹s“C�«]3i } +6>ü�ÃE)—àZ +2£ˆlhE O@ôƒßJøYzwÅzP! ú¦`ƒ–²A°hÿ¯_±s@�¨Ø~2|Y)Á€þþ8¸§:|*ÿ£øjóC¯œ jBÞ¼Êøy”É&|/§¾Á�TúîÀ,iç^b`iÎøcH@@ �æñžÀEÀ­wÜÌb6q…%€4×\ @„åúwÔêÊ$ô)²" Ð0Ø›·ÞÌ.¸bî Éaõø¯¥¸ï +ë¤Ü!|X@3R,.QX@l—Û*¬ê!Ð5“ò_Ö¨¤Q_‹ÖV‰#‚Yñõè/UPøúK!¾?Á–ôÕ`Czà e„ãMíÆ¸îgØÓ™çX#i)À|;’Ö¨ì«`�é046êõ�å0²+Pëø)ø@µÿlÛX³}»Üp—–à +ß²é3 ’à�*áî‰Á[©µ–íúPVÁµÔa‡¿22_Ìèz Ì-îd࿟Xüq¿æ�Â:=?[ª�P�Ä¿ú�À�lˆÏsÁ]øñ§S@…àb€føÅz2;åD¸ô™‡Y‹ŸU€€uŽ–‰=#Àá €Â€<�ª '½<²˜ðO“‡åHA: Xþqˆ�/f]§vó9Q(áæ‚xøÔàà`_ VØØ–Íþã• ÿx‰Æñ»¬  %²àßpâàsóÖÀÀ> °_þ`î äü‘çˆ ¦€SZ±þ8%ËemSìH©¬ö܇c�+�Ö°JXýÀ=ꔓ¦+FcªÕúÚ[óð8ì2¶¾¯†q³žFVƨ¬‚›;Ië±.€DpåÅÙöàÅr›u‡$Ü�ÇhÏ'k¼Q¸R©Tê„<µŽáKÅ@…´WmlEuS>¸—.icÛI `+úk¹ÑÆ%�„¬®ÊÓ"êëYr�1€™TØÛ�q€¯Ù´F”,…KG:ðá̇T¸ b³º6ï¹0C ‘ê~0{[ @üÛÿñîS™ @½J@à àÙ+(Á�¦žL@•þ^³Q0cy Á_<€ÍƒSEµr€Á\Ž óº ¤åV>ÈÏÃ9d^![=ÿ\LNL�(ø>ˆ ð�~!|Øô�©z¾ã^ˆ6‘…Xê0Ås�À�@Få¦:-¦0pVÖ)ÕsS¸þ ý3øï)x�Ô|«*ìã ›¿#þ¡nTûÀõ 0€ +` ðßϾøâú›7ob'UÀ�R€^eÀ+�îTÝ#²ÜÐÀûOvøWá×A­Øø¿õO‰±(êÔà±j<Ì–2Ð,P‡2­¾× ÅÂ2;p… €G2`9ɉ Á¥"9€'N‡ðНËd døÿM(€&oºÊÑ @û z¤‘ðÙÊàûjÔ‰#á¿Æ‘pˆ~nŠ9´nõh¹õ°{ž*éÍi�÷EpKˆOÆ„†TqW {ñ±w=¤J¾g8Ο6m¿„çâ2n‹Â›-Ì|ȉ¾¿ìÙûAÇ‹þÄìgM>CìàÁÓ'O?aS òÀŸ£ˆð3€ï+Â^Q¿—ª@ÜSdÐa¹<¬¿ sλ”Ë(Õ`‡õpê ¹æ8ôãK€`q©yås,cd¹n_6Ìù´‰vxGå%¨1e¼Pø„d�¶“%îÐ%HiÓÆ5 À#ó7'Àþv +^cÿÔx«yÅý ÿ~ëÎWÀ½À! +àØÜè�ì‹àbxwLøC6nÞ$Ë ì«`¢¶çvRÝ ViÝS ËhSÃð/Ë !Èú:„;!ÞnDÖÄ�ÃçS*¥×Nj†z}«íà]€o§€ Ó'þ?¶2ÎY!ÆÁ¨TÀU°Ô1·¼î`@€dÀ„˜%*ñÿ žB>™ þ ᄸç�å—z €íx5j®óÔT‰@ˆ\æxÞ§&À©€ÂbÞ€\ 2 '°ýv)8ÅIì ÐYm Á�õëb×7ŒÃon’ÿà üSˆ÷È—›n!q‰¼´ysãÖíÍM| PoŽll +ÿý`Ÿ pC À“þ×o’pÂGÏœ2?•L°j¶ùb ÿ„ãu)¯¬†°¸l´Ïªó€,ê4;XâÃ=˜¹H“ñ=lÖ“j”DÿêÃ/vŒÐGBB‘mJ(¸…&îgPM Ô2׌Û%¶Bê ®Ýž�c ûÁÀœ¡A9ÿP:��‡â ÞR$X¡SÁŸó $YhW÷ðË›QS]œé¥‡üRió}¦bÈ5ᦛvZtmð€Žq-e )ú9ã^†[Þo†š†7:±ÀÛ(çÉÿ|asàmö üàÉãÇ�ž¨6ð+6œ\€vŸø§2À*ÑÏM +{åX¡�´D‚Ì Øràyg‰dáßP9ÎÐ\0T²Ûùrí°Å Ááý\ ê.o ÀD6]N€ßm,À>ˆµRõO^À˜‡K0í¡S÷PZ0`à¶ù]€Œ£à¶€†ø=0/ àb_˨faý +×I‹LŒÜ$üSü¯[jÁ>Õ}1€Ë¬He2€ÿ‰ëªc%Iæ£-ŽñÏ-BU + ÎÆñèèÀZ“8´Í+ Tœ€ð¿.‡5ÆùÚ̱$l¸‰ÄUÅa;E}_ˆ×X��Â{àº�Ël‡LYù°Æ1î^�8¾Uzó¸ +ën‰à8¥²Y#…~@˜,7Ø©©œ ,Ý[ƒàR°¦ ÉrA¼X¹N_Šƒ}*n5Ýe ]@xj×°Hr� +•U™ì¤Ä~ãÑâPüó¥Ú¨ÙÐ`P�(ðü9Ë_¿ÖÏ­&À€9 +¢øgV€ÒóTU…ÀÀÁÓ94PÏ €¼Â’Œ;Œ�ëðÏ +�l+ÌÉ+ŒÔ´îÂ-«ñ(™¾àlç%�ŠÈhZ½ÂH@aÑY‚ð�k ÿ׺ pA¾º1k濲7ë6 Ì?0Ò�� ?# Mè£ý1 w‡$FÄÿÍT\�]¸:û;ÞûÚµkŽ ˆ„Û´Ü!n�1v»X` ÀÿÈw@“d.rmzœ¬FpvxN“›J)´~j`°ö`‹Í€!+TdÖßD¹D6YB’„Áž††|²óížÄAYRo~;o‘æG\J£ýŠÔ£5Þ죹&µŽ1ðjˆ+�”€Ô:åFwTâ^š ‹md˜ù>ó££êé�bï¸'™=Ý5®¨l¿ˆhÍ«²€´4%ÜÑ7{çmHøW""þ?›ú§ÂZ^ÀÿýmVÚ}Ì €ÊŸ°9 u +ÌQ‚`úŸ‘ôŠï°ü9;~d4€jABà3Hƒ tÓ”ƒH¨MoP,EË­/£Ö’ЧÀª³>Óô¸;Ó™éçuÜŠº èàç"Ðn6ƒ"(âæ¢ ¼¯tjpã‹ë=Ðe ÉßÒ]ÕCñîÝ&åü\È! àØt„c} ?@ÕÒÇ„(ÅzÓ^]@bÈ×6~ÿû¯~ÿûßgÇ\ÞiF2@f +ê0ˆ€H¸ƒØ[ÞÐ!†õz ¶ò¦©':ĽŒpÜü6®ÆkM �@.À8.OÈâ"Ä¡5ö•Á7aå"¯\mï•;rO ÐIgn+ZõÅPê« õNXÁ w§7Ó¼·“°Íâ~ Í>/‰Ø¾ÁI»ZÝûw[!ߤM@ nYdçÜ8ëÃ;ö.¾±/‹uGK­hf [Å%†˜OtQXj¸„¿îLž&¼à�ÓI8.@ßÖ+äÇ‘ÇGp+‚œ¡)â|‘�‚âŠ_Ècbn€ä;ËO*€Ù™Ù(¬ã?ÇK¶²?¾xÊŒ±ø® €iðÁk¼ØGúùP  @ÀM=±<àŸrý‹/®}%Ðè}&ÓåÒôtiznn¾ÈúØçJ¾jó—JØ�¥FcºV�Ÿ/Í—ºƒõ͇ïW9Ä_£Vá½7؇ƒså¹9Ç|~þÂû—£°Z.Íá¥iÍ–Ê�ãÑù¹ Ó¥ p +§y7lŸ¥QST¢jƒNÏWѯ¯àæ8O ûÏ—ÓluÀ{óÖ�ê´ö»›_Àå9®àt5j„—çË¥ù9ü²¹ °›—ÐâÂ|©|á¯ËeÜ?ŒÛóræÔLÏðe À”{WÔ¡/ÿámsHvõÁ=J*Ý TD?¾Ò61‹�ðlž#Ñ­Äÿ/½iÏ…cm¾Í +SóZ§Éà6Weòûĵ¸øå±Á¤îB°2àãçOž>þLý¼~FðúÕk`¸g ,w@ž€á?ªjz¥©h�?ÌrÈ1óŸ³ùÜ(Gü<#ËÍuWÑŸM˜– qZá,Gþ3�²=�SòþOG9¢à R:­zB¤lÀ!‹ÞÙQ(�¾d€�€1³êp>þ¥nÜ�²OþÔæÆìq àøÀu�­Á›e}11w@"ü³ 0e†˜Pì€øâ‹/@¤zv¡E»È!ù’VP„Ö¼T >âP@ÀWVç«ê2âÊ7q¼›S0®u¯%»8/jÀo'w£»1.[_‰ÂV�cÓËÊxªÀrïMŒåŠŸ´°�dàâÉwš(ån«!áö7f¼1ßhÐ3­í$yØ®¶áö7Û8ñ~Ôjoó†vs÷+ÚO“äJ þ³¾EóUü&p +6WØJÚa+ +£oâ`,lœ´·ç£x{›-L¶…z})øç…dHÚ’×Þðyk/@Ðs&k/°C@ùÛyæÑw�Ïã\�“@.ÑÊ Ë’!y[-¹¦Ù[¬@gpÍ혲ÿgú†õt—mú¥b}‚Y!à#UxöôÙ3U  ùùòésUþeG +ª‹ 9þT?²+€øa`àWl¤3$€çrÅIÙíKãÇü»“ìŸ2qÖˆ+x%%XdwaHx^>7V,ª€ 7<Ê<zr‰ÉÉ Æ}ŒÝ~æ�m'ðÙ°Ç�ƒ½±1µÂA°‰÷l(r<\qël ÀD €.€ÛÞÄ{%þóSXߘ=qýæ1 à˜R&‚mß¼ =~1[˜�þºXO„€_E¼­˜!€«dÀ?4Ù†ÿ¯vÁ¾í“|Âx‹ý«€¿ [`FP át¼MèX¹�†ïGn‚{…V“ÖÊí�pâv G±ÕŒ›íö2ü +&¨+¼©`r¬0„«u+ÔŒã{n"ö%1îDBÁþ‡¡6î7Jô&Z1T+ïE’ZÁ%q°=1g7oðæ¸w”4£5xûñÖÖ^»Ú‰ÖX#@åõhÇõ@§‡·àºÌï2²éâ Õj@£ü«¡žªvåó"þ‚ºæD.+ès1¥ÊB\çîÖa·K;{Æž"@UÁ…M¤ vÖ¢»}Ì +çTÙÚ²ß›Šƒî‰Ç’fM€û÷wwŸ{þ _:nÆ€Ÿ(€¼dO!´ÿªÄ@€YŠ,­D°´Š¬âù{âÇ ãCð XhØÅ>xЛÎ{“~PÐ�tñ)(`%€k‚Ïú8¬(¸4IaŒÀj ãVðÀjÌ8Ÿª³@^�Ó`tLT +�JA­tÕ1°õäU(¼7ßÀ5Ž@[…Ÿß³ÓPøø: p*—£"± +>êWØg1 `Ïc’á^Û¹RžàÏã"àê �U€ Y}1‰\€  ô(2¶pŽgGÇxÂWòÌ2 +*Àí—X%1\·Õ󒘀›f¬¸û4AãÂû#?78œ/Œ¥À÷«�÷ÃЊ�Êå�ÊZc‘|°R­D�åïUÒš1.U‰Xi�%\ðr=XYZ2°äŠ +»�‚×» +@H¶�´Ó`,dÝ=ìV4ßF+Jj!ñ+òRC¡ý_ ë1‹&©b⤬rL– ˜h6Á="ÖSX[‹›QsÏGae~Êì f®`ÂZXåÌ63ÒeÑ.W;œb-‚TO_vŸûºW¤ji¸‰ZPx¾t Ø6Þb_¬èt­ºcÙ’Ñÿ“�ÎÊÀìLM°r@8"„ÐÐY( +Àgÿ�Ö_ˆ) û†ßYKw$?¢VüÅ”L �»®„†z’U÷'½‰qöŸ9>>¾8:î�Èl³NQãO +&ÆÇ'ßÀyq»ÑiÖÉw 9 ÑÈÈ0[á"Ð6Pæ[Øì1à È3 ` `ö8p@dÀ:ì¿Ô„U€ß”L €ýB$à9Ð-È€;›–í%„e9(ÌÅòJs¬³”Ãð\ЇÛuPþ(X&1Àá'• + <ðé/мËöc¹FÈQ�RÌ(-¤R!þ''¨V‰Ò>ù¸f“ÀLQm¶øuœQ +Ôz^JR«~£²D<н$¬sdÂ��îõho9‘.À¾5ìSEÈÚV¤q ›ÍÎ|Ú�©*CT1<¾cSV o­¾�pÛ­¦âÝ“­P/S=Dl×ûÐzsWpÀ‚€3Æz¢Oy›•®ôö`­WpnVüeà¿ÕjíÞ}ü`÷ñÖ`1à3ŽüêåS¸ÿìä‡×ð^¿úsÕÿ‘+Àz@¤ÖO@O„Hv + ÉÛ¸=�®?0Pp ``Ðg�]Üg�A\€q1ö€3¨úÂ8 '`Ò”À¸W|Ï­økøœaTɺÀÈ›ùÏåNŸQ�™S¬` +€’�ÏÞ8’ÀZ› +`J*ôèÅ6ØÀ ëÿ P¼^Öؼ“U©Œ{Éb,EïŸ|R(�p:†å÷Ù4c)&àõ´»Õrü Ìs\¯¬n5Éô�üúV� t  ¦c¥\dI�õì<\*¬®'�º +8« ›p]5Õã¬Õ(µÍôWùxÔ;:DI\£Þ(@<¢ä_q=lÖ›ÿ›`�à\n›·ð)7!À<ø< X_ë°‚{ç5«àÿ T³RæªË~;ɲZK-<@¼»Tܤ`"¨‚®’Sì' àaÿù™™YÕ+UóÌ%¶qüÊE¶K£`a+\ukç�ýgàï$eY=À°±Á=fÏÀÀý“§Ï`÷Ù;(‹üYä^þ?ëúæ, þ¹¡�s^½2ìÿŠ3£øÃìýËS2<21p²�ºóŸ¶±ô¼€kãc ÷æ› ¦—`Mj +ñŸz÷6$õº·™ÈÇF xØ1ùiÖ2 +Ðe” ÉîÅhu» +€ÛV +§\û2 Z+G2€…Ô¸pS*Ýé¹ðö•ò¿€¦þù z\zÓJ} €ÈtâZë@þiÿ[žµªþƒÆ¹FÙ_,/�À°T’0ˆƒj•Õf¼�u~ˆ9Z\8Ž/ù8K‹ßmx¼R¯om�!|ªö=t'€óiß1Uk)ü«aÔ˜ÞÕ½tÄU⥀$ÕFG+;aˆU’pÓ +¡Þ„ÁoÖã¸Ì Ä +LôÑ(Ù¡¸×Œ:b†P¯`²?Œ£>¤@ø¦7É[NpÁºçeëmç›þÓÆó,�cEQõ˜S ìS 5`?ÒÍÂeìNøœŸúg·qþØ=ç{{°Ûnƒê༢xoÔß':±[Ð+WÔ'àî2¨€—* +d‡yÆú€Ô€=ðM»ÿò5ëý÷ ÿÔ R&p†€~âŸð2{®9E8u €€�µ3`þ €qºð²ð.R8¢£4ÿcÞ8ì‡aÕ;Î�Ò(dg{jÆËŸõFGÄÿ)@¿(€ ¯Üñ…ðÏ

5UCÀ^„RÁ%øY /^ÃícXwmíéüVTnÓ»·&Bðýûkþ¶‰ä[«à[QgîœÃg Áç&=€p…|åÀCÀˆib×0O’@kÏ]b>e:�{¨ðuQKHÁ!Sçg`02"Å/!–¹yøÛ«=nÍv9…0óO]~ÒÓr­ÆúwÜgA ‚ìŒ5�ž?ÆZõ×X<ƒÁ—.óÿ‘%€R +ª”;•á�3„»piF›5vH¸ì¡Ÿ`D†�‡À—}ãÐaLGBŠÏî2]ÇALGÉÙž€…ü ð)ÚÀhbnDa€‰\a¼ ˆá_ øï*€} `¦Ë ÿ&7¬À1œtû6QÈD¸tÄ×} eÈ|ªµËrª‹â�n €€®ÚS†ÝFO ЫÔÃÿ!1€e•ú”å ó  Mãx9ø(€#Ü®LN e–T 8±§r‰p�më•J=žN°c ²ŽVad2Z«¯‚ ãÒ¡Ô(ªÖ`ƒùÒ퉨ÈJÛ¼›éS ¤¡h}Ç=lËÇ6€˜Î)8õ­Ø€R±è‘Cƒÿ+@5¥èCÔ>fã#࿌Ÿg€\« ¤Nðå + …š6iî•À61£ëÏ=b¶CÈÿ�@‡æ8’05ßµ,ø?÷6ÜK|öíÁ×íùg�FIOM‘·�¼,—AÚjìȪ<~$ô?yþŒÅpž¿|þ”*@Í‚X@6·¦žÄßêRü~Š‹XKýTœ…Jð`°y\Þ=ëXâ0nƒbHT2ú�d´¼†ç�Z‚_þH¤ÿ Hš¾ +1Ê2&‚ èâ?ؼó…И2ÂŽPs À•Æ©`’›ØÇ+ܾuçëŒHÀ,s n~¥€EqHÀ�}=]4üwC€ÝZ€È­lÀ! @ž OÞdU0¡¢b•q62– ÐÍÀŒU(ËÏ­4뫟V>—/Ⴢ3ìV £sŠ€ý¯T–'©rcK,!ÐÙÁÊÊŠ¾´ý57F…i@èf%„­¿\0¡ÿ‘2€æš\Þ·Ü!ÿg�! )p @øßϵ„ÃÖUûuG1ˆž2l)�W?CН42ø)°¹è† +p  ß˜Yø `vö"p¬¯ ¼û˜Éõùá³ì`q +á_ðw€ÍäÍ» +àÎ&€³¾€¹ß Ð߃?`ñ#˜üòbX ¡ ÀÊå�¨#ذÏIØ(%Áj¥ÂÂ?8õ«Œ%2{Àÿ§p¢ä\~°Ä‰ +`Âÿ*,QOØ5€Hp÷fü1üþÚÇøþå쳸bT} ›)côoôçÓ?=ð©1€¦1€{À~ÊZ8  Zý¤47‡ßXmDÐhi ÀšîgCfï!÷>ÀbE�íçŽ1‡1|…f‡èô 6Àæ¸&cD·}îãA¥0Ñšvk'U€ðÚ£î'4á«* {µÑé<Ö ¡ÒôØCˆü•pKP©mY(ÐX�iÓ,ôÑ6 +få…loÐÄñaÙö®ä'&&HôÇ|¤§ï€DÖ#‰BA#K<>0²§v¾£8K�.¸A·™ŒWìÚÇ ‘žus +Àäöm ›+b@f¿°Ui$Ìpc0Ðë®øg‰a†8°!Àí“8#ƒ“íiU Ðj²!�SÀÿXûÕ Áüüýà_¨`{`Òör4Ëþ"&v ¡•§äåvÀ¸Ì,ͺìÿÒ²s¨|¨¨ÁÒÒ£€t¨�)qŠ1J x7Ð�06ß +åÈþ3€”ìü¹ì—JsPYØöç°=ýUòæÈa°¡V¼ÆtÃ.ŽÄþÜ‹1çTå›~‰æ~4 æü’®„“±�»XýY9|åܹâûÀkp2€³ UÚÃ>_ÛÀŒ¼ eJÈ^ì1»D€ +€ ÛB7±ëðK‘AçÁ[Û¸„ë<žþô[@æþR^f)@‹QÀGO°& †xúŒƒ„©à«WlÈ( )|þ—û—`Ñ€U�kNÔ b~yOh»ï©Ž#49 ÀcGbÃâ¬dZ"E?× |u €Ò+(äü3à gY52èú  þ�ÓŠ¾ÂD9ƒ]r‡ +€Pg= 8ra 'Õ<�éz@ @è†Õ&P:à¦(€.Ô�àÀ¡€UÈ0¥6 þ7ûm{èË%`©&i8(Q1þˆMø‹E. s!‹¨‡MÆû!W>fxp —ªã4@e.’1Xq¥€…S#r5$+uèÃ/¼X| >eŸ02Ÿe¬ñSû8¨•�Ír©ä//8ðë—<<Ý?•.-CA•Ë%¿4]òqr£ÈZ‚ËÁ2_¾©JÛ ásR�*wN#SSˆ”}\ ú ,§ß/¾ž>…w†ÈÀÒd=‘2Àš ÌM ü¹�Béʇ=ÀÞ4Ãú²ßîË—ï zw­o#³Sº*@Z€qfrùìÎpŸØ„?¿Zkxü$€íŸ>{ò àÉ3VzÊдü¯_=g?�  æþ7ìc—„ @X#¾ ™g Àé#° s<0HÛÝG|õ 0 WäU§r,OddÍÜ×Ï[”ð´î…ûŒeØ2¾�ð¦Cx¤ÃtêÔFÿ°¾R@ûæÂÅ,Ö�jsö¯Ïœ¿xÕÐ鬾VõÁº4@ÊÈ„VäP¦ýŠÉx#P§,pþ]2Þ¥Khÿguçl`ó·þ�uצ«-€}Fpá�Ðø8IX?Ž‚8®«®?[òlÅõ(®µ+ FØ“z=æjÌA÷›÷š›;ÉtÂT•J³€øÁÄxn wK¶âøüï]k ô]RþñÍÆ¸Â‰Àü1˜@ÊJA™%T—JËÁG—°> ÔÁœçye\¢A€³Ø÷CÀrÊÊ]€«ƒ|Â,N-S›ž.ß¿‹m¶œBÀ-n*4›Øõg) °¡>$ú±ãÔ°r€D Àb ³dìéÇ} ÐÚÀ[ݵt£w’º +:JôC¤Å»È=¡‰øo]iÝ¿»ËR€4BàSL à)Lÿ³'nˆ WàXƒ ýÇ6Ø?<~ÑÀŸ:Á$÷«3@$fƒ†Go‚9qb‰CÞ¤çÃÒŸC%¹çaØÉ"KúðñîýBÉç€z€ï)¥�Œû‹A°ˆH?9™ÂN!¾‘JI,W< mÇpœé$þ†(€u)€Û,˜é1`l$€ëxÆLï4ê¬â¯�R] å8íWÝ ÿ*à)© p¤ À»µ€XÀ|¢žøÃ6ogë”—K0ª0«s´"˜FÐLt °YžCptà6,<(GpÕa[ËXÿ¨Tº„+Á€r¨6a(ƒ"á”?:wnqùs8“æ–݃‹ó‹ã×>®5Ý�Ó, `.Ñ�U¡Àæ{  *PÂ-€aÖVL@ àœcÖNØ€~È~ –Ð] ›`ïOß?7Mœ_œ©€‰ö)L U M…ú²1îž¡éW ÀŠJHqøï2»4ñÌ/¶¸pv¾gú9O70“½g€¥Ã.,ú)®òÞÉJ°¼Üh]¹{›Í�ÒŸ?}Æ!BŸ±o`6 +zÎXà«çÖ?(+°V�h¿€ÿÚÜ'îi)póÕ`_óF­ýë��³±®À‰C^Qó#ÔØ1*Šo×é"˜WaÛ‚"Öz-}udŒuXý4—Ï{9¹¡ÓHbÝ�BÖèþo,,l�£ß¹±>H²õž„]yBÓÆz +˜à©Pu`iã¼ú¦jí^$ÀÕ�@ +À�à®}ø€ùçG`V�k€àÇͲµà©74Y.ÓQ&*=ïÜ9âvqÙF^,ÁàNS+,×X5¸ÒûDYDÈÏru™Z#(?¬4ÀKÂs°ˆ#0½ïá5æÎ œö`BÊï—}:Ô$ªb@P`�r¢¿è–h/7ƒòÀ£B¿„/�Ç©RýT�†nÂÕJ%8sLÌÍH¢€Ÿ€_�†•" Î= lò—ãa¹BiAíø—XA%uù§݇t�¾v™¹·Ã–¦Ë,%Nf €Õ�Ž�Í„=~B7¤óÚiÇ è.E:Àöj•9¶+²'-Õ+- twûÁîãÇæh˜ð'løò +óϸø_¿d7¬ +úÏh€tY€÷´À{(—÷Î çÏæ +EZìÂØ0ôò¹3¿,94àÙ³Ãì¹ë©Á¾@¹:õb T»â³€|~x$—ÈçßcQœ�š�J�@g°á.Á.|šz×Àçô©¡Á!Š`#˜n\�ý‚(äg¡º )€6B +àƒ©‹ ‚'Ì2ϳÂÁ.à•Lˆðò·€V ^µ(ÕoÈw«Sþû<€ç�üð«b¸q¶à-1cý�ÈÅo`m¥H†}öøÃÉùgà=Žç1 UQŽcVËÁN?`Nåæ3ñép<ðÕ(Zá2Lê•OIÖÅŽä +.K°óWhúÅ€|R ø$ø¤Pe]'¸w‚¸Ë +†ûVÙ(Üñ·£èS¬ÂY[�¿MÖ"öýÃGáS]‰ðˆq7§‡Àë²ïÈÆz¥`úûä’ê(øòUÔZÜg`2.mñÖ8}e%ˆê,m¨¬ºÂ ¦ôk|´0*�|P\4S×Á5¯ZÖùôÜ?‘Ê䤃†Ðxc{†]Ã3H Ãn–2Ó ØI¿8O@WÄÒznŸ¤ó§�'® ï”´ Ýë +4w ïpµ“ž@�ؽ¿Íª?yü”ãø´øÏŸc ˜WzrzÅäô€{X²nù`…=v – +2%´Â°sV‡è†ÍžÌO` åÀDìÊO}‚Šã«$°�ã(b~!ç ça} xœ‡™"7Îá„quÜ( 6’äFÆàm¸«HpX @­‹ÿÙëwnSlÌ^ È67¯*4pç�\¿~ñâÔ~ @ìsGFüǘ0 +Y¸ª@"R3 + kÑÀ¾}À”)øÿ¼=u€)€lW@pûÎænß>Ü2@OâçC%Àñ9�`�Ÿ‚¨„¢Ð&gñ¹û‰ %ì€ñ'•Nõ4Àa��þbX$äxBWÀª. ½H@Õ½¾Gz·ó�夳D�²ÂRF쪄¬Ÿ  {`N0M‚ž�Š3Ù²$s¯Î:!V½,"ŒðÎ0EøÄ@÷31Z~A«,@ꌠÑ�̦vÝY÷®qç\{øµN¨ÒCX0¿"YäžÔäktÀ+Û»wï³&Àã@ž<}òœ-‚ |þ Àñ¡TÀ’è€ßšà  ‹·j +Ïó} !ž¥Ç Q»`¼l:ä©//i¤ð^nrLøwøåHXÃH@=¢«àu²|bßU`é[€ä†aê‘—8¾þ8Ë °�“†ÎÒ2@>Ô©Vvø_€g}�½s +`f¦[ˆ¡�Í[„n¸0Õ-Ø…ÿTh¿„ˆÝ”¸8³~uaá6ÃLEPƒ(ž°~qF×ëâÿ¾=`ÀÍ›] &�çÙè*2—~ tÈ +•„‰ ;NŒ‚@ñìy¶¾‹Z‚_øö úþ䮉|Ó!]ÒŸ `%@ál`�1Æ•b‰yçcK Ý®5y@ €W™¡8À �‹À9O7xˆŠ' ù¿[( sê¡Âÿᤥ”Ù!øÿýíû»`Ož<}ôŒQ€§Ï¡Ø7àK'HfŸ-lŽ=„>°¯ê.á;Ðo5egiÒ)#Ãc8_9�c{@+ý1úïçYG8ƒ—IƒOŠŸchïÔêøp´L$À!zfLîÕ%À3˜Èân{i€��žý§Ü¾½�õƒ¤Å€7ׯ­·ïü‘HÏ2ÎÈx‚ÓÆ6€ÿÍÿ ¤> ;sqa«Dîïx"5€»Öô°}„pó&n%àÀ‚c'ë]ð‡?àÉû`ÁB•‰K—0Ó¢¿TÃ.LxÁ„€¼X#¸� Î0€óƒ/6° +`Á¤Ü2¼`F!GÃOFžóüsïáf™Éê»5~ƒZZ +�î _Ù _³³¹Üiä>ïzy.7PØûëȈ·´DžGon¡BÁ2õ<‹¯Y/\5P Ö@⊇S10gcØ÷Ïgc´ø Èï§. ²€3€ꋌ +ÐeØrÌeÖ‰÷îzzÄa«ªHÕ€MfÐ#EuwNXÊ5*€í»­]ö +ÄæOå˜ýþò)½€gp  +4l8Uƒÿ/Ÿ±jðˤ +°‡!ANzRÙ[÷VÏúdNðRÇ�‹:μ@nÏ>ü�ù½§X+¾AVj‘§à½Ç*Àììϼ /4HÀ áå�9H°á àúüN dí?ñOp +@õðÈnÿñÙ~†˜  0ô§ŠVûÎôSÆgoIð\ÞvVÕŠY¶È{tño`ªŸlκ2jíÀ�Ť¾Úü<€ÛÂe*Ý~Ñá æ\IÒ ÙòƒâÌ<4Mÿ$;å€weÒ +Ð v„}5RørìEµƒÜák°ç±¬°Ø®X£¿jÈzA`Û�š\ oIãÐÍxÝ|†tÓ,È8rj?{ôaë¯S¹±�‘ÓŒñšèå3yn\‹Ü’™Á±'q×°â|š^Ú¯] +Ø¥p @@  [ɨTùż} ˜vërø±‹Ø7—€z ã@˜��•¶œ¨”}èiÀä<Ø%xüôÑÓGì Zà% ¯ÂÀgPR bÏåõüŠ ¨F  `´rõ"Àz +@+¦õ‰EÆ«¢sŸ÷]“ ÷·ƒƒ§‰ZÅÀ�YÆ ë¼•<á�a !Æ + x£Žu§î ïúÊ#žBºX3‚À.Ñ­{â±c)ˆ;Þ=ê�Á^ÁÂÅl?Þ/[6@ R rfÝöâÃò¿Å 8”eiEÀ.0€SR°k¡ð¿qþÔä§ô`ê¢�ü8)Ÿ¸øËA­Ñ¨±WÀííí](€Ç¬ +ôø Ç +|úôé³g€ýógP ¨L€}ê*tÈÇâµM¿r@#Ô, ‚Ð¥.€ ö1>�jV†½ +Ĝذ@J$oŽn?“ÉÒçàÖó�ãú\e0ÇÖLGÓ­s… ˜ªuLu”~1Šœýwø¿ÿýú ¼s2¬Þºýõר¼½�.¿=Ë6UG¨Ën;³ ü; +0'`ö* ÀW·� a¤@—š=þâ—ÝžŽ%*pèßüC_€ZJkê +þBϺeæÐ;N¦Ïr@ŸÖÝ¥ëVÃ’nc¯L$ôž_ À¤ØF›ûôb ø“‡éÁQ³T`ü±‹ ²Â@Êl…,¼9L ôõ¢Mì¬ +®ÇÚ°9 +ÔðëôòiØ­E˜Ž;Q.ðx9<Ÿ?g‰$§OþxËÄy–�ð;ü30˜2|¥³p}€ýõ˜z† +€¥Ò,„¹*¸õÞXwt ¥H¥œüFq°=9ñ—ËÕj㊆¼ËàÁ“G�žÐ€'ÀVA¯€~¡ +X5ø%”ÂK @hÿY€å6 û6��±ÀÞÏEMÄÊð‚ôƒÀû é±Ùh‘– +éº4@,�΄Ð×;ýœÇwÌËJ�B2<„=liL%Â>,»ç&† ; Hp%vA @SÏþ+oõ}6fa›ؼJpç�_ß¾u»Û"[¿!ü[@ø¿É:ÃD-,¼œ‚ÖQ–Þ0Ц˜YèÙÀ€ÝŒHƒþ76n0‘*>€ó`ÿÝx`¸s_øïc0étê}/Àþ8yÊø+èï³? �ý¢Ç�‰­Ç +Ng$�çBŠ>+ëêj‹~°Ä£üðuÙ?Ÿ²XÚE¡{÷I6%¹æ<±H†Hà N´üš¨ ˆý)°R¾ëç‹`&e Bîfìß2ä[‹ ÝŸ˜”ÙÉ0»¹k ë?zòäÑ“gì!Tý„?UÃÀ—O?×€!l(ÌуÔ\Xð§.pBƒ­{ñ¸ôϨ�‘¿HX�Y$�Nš~ÐÐ)Tq/¾xÁ\NóÃ8K­”È("X}q_ix=vNn�T$ìýâ½î5Øš€9s9ûDð§™wø€o¬Ï̲þ¯¸:û`ðöÆìÅ©«ÎYOy€q€ÛœÁ��èRW€$¸k©/±[ÔTSëºÊòïÏþU3a}ê<¶Y¿X€Ï0«zÅ|Pú¼î–*€¯ðÜÆøç8�»3/ +ÎÃåt±\cJþ[CøWåMáoá¾qŽÃ(:¦™–ò­°ãâG8.Ó˜?¤¡ŒWWì,çÂÌš‡H†8æÝ'+Q) ?Å«{cNa�%¾8W,+ôW&ðÐ~�ÂÑ‹…ð‰Cxñ¾zù"ü ’u&ÁYcªAÁJþFÖp¨TêõHc‰”�ó@:ob5‰dmÙÌ1…MYú +ˆ¤ +ÀJ°m@Pw¦Þ–CÿÛ:þY‘î:QaŸ@ÕÆºNAèìªNðã§O€°—P +²‚ð«gÏÙY0û …Õg¡5²Z@e$É€"óx¬ãǘ �C¤#NXhØžÑvç¸�-!ÿ1£9„(È^† +¾ÏX!Ë kUf¤kÊšeT4“‹ÞbŽã #ÁˆâDH¡h¿œTYü…ëT@™úæÕ¬˜aaÖ€t91ÙU * ÀàÌÎ,€à¿Äÿæ�›Œ4�÷ƒñ3耽 ‚°Â&lþáf]€e€R58Ð à¹o90ÒþÖTøS%Xgœu²0Àã ÌèøÈpn|ê‚Ç%§O»÷!±DØ�]*cq­©RFuêƒmz Œâ4v÷±TVœ°Ò?AäÁxSí“$ê8ë‹ON@4Ü@… 'ƒü*WŠ / Ç&&£¢WŒ&¨ –VÒÂÌIlOŒSùA;ùK$ìÔpÇ=É>q0¶ÉÌè1ùû0ô›ð¡pÎCobD¸¡¿« °Ëq¬ÙßøŽâ*[�œ0 +^¹'àŠú$ðÁšÄL€ þaÿÙ+ ¸!•«pRpqÁ¨zF`�gäì§] °¹y�1€õ�ë_ð²ºî� œ²>uîöÞ�ØØ¸z� +�i¿æ# ÀÅ�tC ¿þoÈÞšŒ��X›’kþRà˜ªÂü/úã¬(mÂ걌ªŒzì|éP™p]µRØA ´4;va0v„õm ÑƒC2,Ï#þˆG”U+5v=ºú+šX­—Ÿ•ú9èÒ5²8¾Uá›29Éz +ô@&`×—FWX±Y‚]´ò� ,–Š«‹Ô¬1ˆ} 8H¦@Å?ìáÌ¥••ÕJ½Yç ‡Ðêœxà[6�h7üS2 v_ûqÜEöŨ\ @õ âýÎþ;}`%~?ý÷è'%ðèÔ¨x@ÿÿÑ®† +~D ìÃô3`Ý?ƒà àgCA•˜¸¥œ–n‡‰ W>Ê©~ªê‚ñ&–I\%Ø ÑF2ß§0� ¯²£V†'@˃,®Ã¤”aÖü@Þ†`©@ψÑì3­ÒóîT=üà ¯Óγ5 ÀÆzVÌìJ`Ý�¸™QŠH|±qgcvöƒ™u�vB—ø§Ñg1ÀúEï·q“ +àÆÍ/�0á­;`]`­$¸]ê�ÿ·§6±Ž~8Ã_�ÿž<|éµÕÕf¥Yd{"‘Ýn®Â_ qþî[„Ó,aû1àX€n#•¨��ˆ9;¥$ô¿] `äíÞD†Ö­�ðœŠèâߟ˜,ùù}¬ù‹"ÕEô¼9ULÂYKþR<ù¾9÷¸;« C€ ~5.(PÁÏ®ÿ–="A@¿^¶^s2nÒaê{1&dÖÙx‚0q—�,Ìó‚»Eþ�ý7§€ò®~Ÿ˜ë~bâ—ýå*ëpxÀ»»¨ ä�=òÉú³‡0@ØJÞ€VEèÐ%° K'Yn¾ À’°à«ÉÚvg»‡e×Yk‹t¡À‚~w\ƒ32Å®®Â(ãã¬ç«{Õ§Xç@ב;ÊQDp¨îêê ¥Ö9§¨2öã yÚ´Ú†Ôٮߴ  ÀÌ,è:ä›ÌÎ| Ð¥<³€F¹ñÀz†0ÔÇÓY�ã�€èº77¿¤jpÉnßþ¯:€'Åc˜ Ð ÿ¸=­u§f…>¯¾ +Tâ¿¢Á *«k¿ýms+jÏ}®bŠî!!G׈֖«19z¨fÄ!õD£ðÔ×p CpEóqUÙßP øõ¿†ñë'Õ×QÝ�}@t�ªƒû Â’ +}oØF0`IŒcΚÊ®—Ùt‰ D?éW—‚Jâ…í¨œ0ÍÒâbÈáJÀ&ÈàJRùÀfXe¿¢zšCEX‡p©z*èí5`¹çxÁYÔŽà,…üœØ6çïPäw¸ðŸ ”|6¨ÕVÈž�ÀX%˜U‚?~ŠƒýÓÇOŸø@>û +xÂOAžÁ+`É@*t9 mªíÏ É9 É6{û-N´'7ÆúÝ$ïOÄkxCAp&02A5�“R`C1ÛUÄwÙ¯¸Fì’½}�ì³ÿ¹á_ \Ÿ]¿yûkUXgëÿŒÜ¹ÃÄR C¾¸�ËB6¯±Õa +@žåö¦ ¬v!.ÏÊÁŒPܺssa–cÛ)�ÖȆØ�áÿöÀVOb Öe8®XlEÂþõÿ×Ü©·ç::°šDu ­uØ{.›ÝBe„Uƒ¬`»/p–ÌW¡Ø+i«,%wïþåÛ$ü?8óSרþ9ÒþW‚¨Ä>>YEŒÐÙ÷ýJŠhrýrú^©DŸÉaþƒ-Ÿ�ˆ Ïg‹%¥"¥!Š‚‚\Ä_ °Ö\mîa`’>Ì÷1šræsó‚Ó,`1?Ø~Àž¾€ü—è—ˆsÝOJæJ¬ ÈÁìäþýû»îï&»�°“Ð'Ôt0{ü˜�p +\‘  °÷àçB>5ƒ‰{PŠUôƒÕî¶Çšà`]î°D)`X¾¤60Û^n(ßGNÁOðNû?Ç T �‚ÏÐ6ƒ¬ hLb|^ðĶ …@8¢`Ü_Þfûì?^›áßLðúÌ—dÝR€Y ´Çf€p2€º  KhìŮÇ€¸8óåìÃ2€ +€56áØ¸~Ý)‰býЛ 3ÏÏpÕ)€�¦f®3ˆp‹á0€Ùuˆ{ð6tR@}™ Àh§‡ÎÞ$sZMi€Å€ƒøÕ›õ>» ’‚DPì`G ++]àx@2ßNóqKýo„@›ù�NïÄÕηP8ÇŒp7úŸŠð¿’ÌáÎD¬Æ0 €!ê�Àj +B¢b•Kaä_Âq*€  û_©$U¿Í ,% Àe¥@h rê«ÿ ÞŒýŠÃÆ^¡Zª>nÿ³©Àz—�óÛD×=N€ìUå +°§˜<¸^ÿíVE¥v˜ÌÇQÔÿÔÞÒi¦öÞe!ÑÏJ—¢ø›Úûðè‰?\3ö‹�¸Ù|˜Ôþß&/ä"]Ø÷ð�UL•$ˆ›| +_™³~²¬9X€°Ëx¬ÏŠ�(,—Ù±!Wv`úáZl…~ü‚»È +Øgˆqj¼÷œÏ^ßj†|øH�Åpù¢_ÞLåÇÿ „Zý…]ÄV—W®pt¶Âìþö6HÀc€_ÁHØ_ì?…EƒÀ¿ú �C�Š{N +m½(@nĺÿWo$ ¦€¬I¾Ïí¬šÀ†ÂãykT`ðWt¿+´#P ¸Ï˜7ž(꺮FÒaÒóÿgØhÏPƪ82€[wþx¦÷öÆdsW`¦¡@ß1€´À(Ön’Ä“@¯PÌ€l¸KSn²fÍþÆ�›¬ °Ž3MܲL àÀÂúì³ØÒ=Xíˆ +àðß­pèÇDT79¸…“dg:õf§ÆPN`šáÔÛ�öV3ÞJèOS¸n|¤ R Ј~5ÂVã×åpX_ZŠÃœn´7^B± ígfï³~ÆÉaþ TÚåølÆKtTÈOôÑ&P œ ^4ª£—Ãd­^_ vâ"ñ_IÂòŸCr 'صb¤.sÌ"CkÍ� j+So‡ïcSýãT„`{‚Rò«Lý‚ü­ûw·1�<  Ûÿ„¥ƒŒ °™ÀÓŽØÀSG A5À#€£�Š{N'À)PX* +èåülôC*‚‚Ü“Àuwt\À¡@’³ÒcyÆÈÈÔ‰k)ŠË«ó±C$cÿgúí¿ÀÆ­¯ï°½Ï-p~:tP Ð â@ü6ˆ@WÁ·Xÿ:Ô[âÂ7Ø`ÃN6.^\'“X‡§ˆÛB`žeöbÊTe˜¤ @µ…(7à̦ +€Q‚.`g˜6³£‹þ}²Àgȼò)\€•Õ¤ÔB +z +R°ì{a¼C Þ Ãå Jê/Áž:X„¸{öŽZìЫÚJÊår”°ƒÐ|©B´w®¼¨;Ðgä3Ðè‡ÎƒBð‰+�cÄ?t !§Á>ŠZ%ܼ½µÓNFãX + +:\RyQp1œªâ@VYT- 6`ÔÂ3â{ðYsùáp1 +p¼üãÐO1Üž�p¨…r5 üÙ&°ÖjqŒ€»­m†¤( À%£ð +ž÷¬(`C Ð%à¸â&î1%ŒÍAº1@s:ïî¨ ¹»ˆ^@~øì0Œ÷HöO‚yÚÈlš4„4€;.±R4c¹áqx Lqø%©ÿÀþ¸}‡ÃþØg>H5ƒ3�Jh�Yv$@‰ˆ½�[æ@]l^·‹òH‡=ðÄù¿¤àé\@¬ŸŸýâ&¯a €nÉÂU,67¯ €@\»àú2égÍ5Ã4ÎZÿ“ „•úÀÜ.Ì´þHEI-ns<~zü+ïnuF$@N`E~ªŽj$Û­÷çKçÎÍýE + j·ÿGI ó‡‰ÎaS¸5'õÊÇ•%¼(6RðÉðÉWhËY‘Á$ŒŠ `“Ä�é¹¹Ò\µ'«,ŸlGÕï±à“³ÊV¢h%XZ\¤(äN�,…á§«k;• +�ŽŒ�ïÁÄå†>éƒ46þ±?^¼s':ÍÍ˵ªu + Új|—£¨u  0 ààa, °rBÖ~ðXñP�TÜc:!áⳂ+óÂHëïu… „$~8ç�>]°È^*$Hä|¼[œµÏ´‹j¨:0Ü×ÈQô_<nÿi�M2yàÒårx +) ªžÀ ôÛ�a0,¿u * ˜]ßür=½êæÍ/ᬳ#Ð û«9�T‰ÆìÔ_@�˜¸îÏŽ@TYH·€Í_'ø#@&@ÛDJMûY‹èJªzW¡¦b2òw¬&µ¤�EÁÇ‚„i¸Ç|ûjØH¦“0zÔ®–§«Ñ7ÛaX '½ +'ípo‹é¨zö †ÒSOû¦¤7ë4àrÿ@E¯ ¬Ð¬WVhÏ!!èGµwËó¥j·¿IæÛÍʧHÒŒËj(RŽMe£3ü,  û +®p¸t WâvŒGš(Œ—ðœÐA¸õ'0ùP2póÚ“´“Vù7Q+n%­ž’6|ÿý_ÛWnáùðK¡÷¾KX ò›è3è xK^΋;;1´awâmÜ߃Ÿøpðf÷õÖ�€ù?ý˜í NÔ®[xWj¬¤p À¯Å}p�mvÌæÛD{`úïb ª€µRq�)¡OÌzO›˜ÈŸÒ�Ñ.©|ˆl�ÝKú“yuìl �`�ˆýÙ14<=�>’ü³ê/4Vx/Ǧ¯wôP9,þo¾º•ô)¨€.à"wîl(@' s¹ÆhžStë/Î|qk�ý~àÀ—ðê××YðÏSSpðÝ}oz¸Rß$¸È6ô!¡X·2FL0¿OJJ¥ééésìƒ!_@~™ž.MÏOO—ß/_€”Jóì j~n~¾v¡<Ï�ù*–óót:R\À±¹ùòoÊ—/_®V[óÕéjµ\®þ¦\.�sÌç†r£¥ùjõ×8¹\¾¬•’«qrPªÓó%£Ý•!õB£Ñü4è_]^àÌö6s¦¯cš}réxT³7È~ûO÷[Kc¬�Q·Ù~¨¤–·7..lÈ6 *Àƒ¨‡aÈm(€;·ÖÙÑ𗼃ߺýåUv¾n `êü?s/±þðæì?ÓßgÉÄÆæn΂p�\¥à^§È*T˜L6ØËí(jø…q¯7À�ÃvÜj`V4n|“$ß¶Ãí?ÝM’mØàí+�X2l(yB;¹Ÿ$W¢d4¢ æ +P Å�Zß�ÀjÞe­�š>âàa:3 +²†5…xïáÝØãu\þ, �n àòÁñ|;ˆÿƒ‘~„ŒNn‚©Jž_®V9Xøú�Z­Å5ÆZ�Zë +„ 2à\Ad@Ÿž¸§tb9q\a®�€ß“Úë0ƒýŒðØ_•Z„±«'ÆïúJÔyè€'XÇ`\q Û]H*j €{!]*îÈQÒ�ÿï—ë Õ)ØÇ}Pw®³V/„ @,Š€=¦ +ˆ�ù`À �€€L�¿È½T@7¼~¨ê“›7om^�‚ý¿:{õêP؋˲vh ü‹¯p÷LPjÛê.° ü ÐŒ®‡µR»Jè„«uxÊ,H’�o w`)‰Z·îYÈ 8g7:”z½¹õ¿^Tï)œÏ˜Z¥²dQv¸dµªª¯­Ð,&ÖZ �"P3Œö%µp©0>=å[qÝêîVµæÿîÌ'öH¬”Áa¤ ãjUBút¥lÍèæó>~rTcèÃ#ÄeƒCp}`×±ØÿÇ*FËOh2@¯š-ƒY°Ü¨^Vû@F­hPÊ@"$òñmხkGäà¿O¸ðî::6Â> Ën]$85¨Ú‚cŒÝ1Ù82.²Rô(%WPõ~¤R×ϧ÷ìa‰ZØ”Án¿á§_©•×øßÜX ¸™U³0hÀ‰\ü;b!-ð LØ$J7ÜM0€ 1“[·o/¬_¥øÿL]̸ +È)€Û¨ö_ €MØD à6c¸NV2$BIðIµÖ¬x­¨ú5Qun›aõ*Í>l¹>Íf  å ùßomíȾÓú³è?ú†èW�àCaê€ 88Ÿ–ó@+°0‡p… ¡>�¤Ž”æ*ñ_ÿ¾Á Qñ?r0Æ]yI)£öÖ\;jJ¤¿.? ‚¸º,°ÂaG°¿gþ ®Bñà Ž,bw«lLáPQæ8R2¨þÇüM"OùD¾2îÆžA¨¨-�~«H.€‰>W¯�ø-j…+ R'pAŠ`âžÒ‰ + +#*èçp]0ß…�á´{)Bø´> ;ÓÐÈ�°ŽuIVO�°‘³`ÿ!áîÃ/|kpŠÐûŠŸ}ÓÆ:Ü{c0Û©Àú@ + 0ÅR$¹-`à&±IðÅMšìÙY0€Tð=p>%æh ð¦nÜÆ©g¡+®®K@à’ë×Å.ö+€Zw¢ð¥e[ ÜY2€’_ŽîÎY£¿�kM˜x–~CwàîÚÿùß[q�H�c-¥—>@Ú8™o³8�€t–0F`ƒør§Î\*šCgáóifO™JÀj�dRÇÍ÷Xp 쯆Ÿâ§ñ×á¼½h9�>bbÀœõ€Í°ñ�ÅPò¼b;„‚q; .¼…ywñ¤CÓýõƒËÛ'$ E�ìTb÷@>´Àry¹Z-3$PwªUYašn`ÎçôHWpÌq0qO™ +­;pkàæˆ}؆¡vÆ&$A†{–]©¼‘¸xðßµñ@6‰Á0É·§8ûžr‹œ×sºDã(öoÃÆoîŸn¬ƒzÓõ¶ò=•é—®®l@œwA@bm^"Œá�¦®³o_æ­»ª€(€u¬ß¼0•€¯pþÍÙõ/ש"X7ø6»›ü®Â•¸ÃGÂ%f®3p@°¯]›L˜ã‘ùYZ +d]šó£p>ÁN­ËÀ§¹o�éq½þß[,ηÓMˆ9¤‡�”;Qݬ0›ñÇ‹“þ’�TÛþ¾óö‰¡ý‰ñÁ-Ú�°>Ž ªæ*<‘JË·å=<ƒ£áN;¬Ä .õ1n²òb%¨éü|50 +€<2Âþ…ãêÑM�\x7ù¿@¸Ì}RÈ©Y  4ˈ ËUÐ�˘©’ +C8ËÕËPÕà‡û¬MhâžÒ ›ì°~.5‹ç^vNiÐæ,wjHλôƒ>9ñ Êà‡`/Lô™„úÁ�)›k|ÔupU;ýÈiàÐ{›¡÷ýÓu�|kßç0J1è›lܹ5{þª€¾¬Î+*ÐU×I fg/^‡wxÏ.¬“°ééy칑ÚcHUrw†`c õõ/¾ºÃš@Œ\�a= ã\ÖX@–Æ@ï¨ÙK~Øò;„¿íÜûøÛmílEI+þëν81ÈSXýW\"ŠVëñNù!«þ¤õ¤LŽrKÑeÃV÷´ÃÄÁýpÙ‰£¸UÆ'&A+cI—àô¤üBþ´z}m‹EÿõzÜi\¦«RaZ;‰ +l0LCq ™8iX âq™æHÉ¢ëÿpC´Xö>1a @Mƒ!¦ü¹²O"5àƒ`�s8A™�‡I °Ìc õ°¬Õ´Û5÷�©àªŸOïž=Q‚;rx/ÁØ$iLJž�°MôƒðÁH d¨×Ë×ð(ô£ì®Vwè\«0äÓèGOû­îÓ)UªÔ‡} ìû¬cFXˆÅ~/ÀjÁdý>Àúl~HS>�<å�tú×ÂUxýìž»-°Á Àï2 +À ë¬Ú$ðË? ï3Œæ­!àªêIpšqüÛfÀïÄñÿùí¿6׈yóž=²©/:åŽ]U*¾7îå&ÃË]l¹Û”�c˜úÃ'ÉV'„ð&­0úl°ìHûjXßj—¿oâ!¸Î�Ä\•z}§Ù ƒv­Çô_±Ã +ž›$€z„ €ÕøHà2Œ“cá̓.ÁaéŽ=÷ï!.wŸ”ä5€*x5…*ПƒOÀnC¡Q©°FMP@ æ¨ð  c©p XþØ&÷�&êTZ>ñ¯Û SžwÜœ&[覼ux ž++û÷´ß¸R°Ÿ ´– +ε«ÊD3Ôɲ…ž @ +aíÿbrð;( Ʋøgîê'@õË[3ç×{üÀÙÄÿHpÇ€*óZ9î 2ôcÂy‹©©)ކה`Óbâ_ñB¸·Ï€Jn¦ +à6•‚I¶›¸%aAÌøò¥BT˦ÀòS¢@èPî%ñA¬é˜‚«a´šÚõúZ§Ün:vÀ>Gë lp”"6× @µi'�|¨›#&vbØl&Qˆ¨@ +}©ÌëÍv¹ÍæI\çsomA4›õ�F™Q�àE ²Â'ds`ý|�Âaµ +̆äaŸ¼»ðÇù‘âr÷‰ÈÖ�ÏvçŠ2 k�P¤ð/ÏaC›€;‹ +–�˜À:À¿¼|¹vDàr5p)�·ÛH°7/Š—¦ÂAºìþñÊ”. É—·K@!ÖHs–Í}t‡ d0ŸÆ Éàب²†ýAvªµþi`àWð¾—W×�CÀÀî +Ãò åªïêúõëÏØV 0eàPüý¤ +`sfvÆž Pçg Å¿1àtjôü({¤p@ € +€wY_ߨüJUÁ®› p› +à¶¡r fþ ªRêV¶³÷—ƒ(š£¿�J�Lˆ”X%ñë&4@DTòø*cX#±Ú™OXûžB¦½V©üˤ�í»Œšù8JˆõµC'àwÙº‡ã“KlÌËë.ÖeÀÝ›íùÄ™¨Ÿ°¹…Çþ-t@;,7Ø@g@ðã?®´„ÇËŸ*ø8¥Ó¨µ Q¸—rœô!þÿøÿ_”ÚX÷ë~À|‚.¤Ü�à‚ë`{pðu)v3@â€aW¶_Àâà a²�ŸD&¦ÖêXTN„37T�îPÏÁâ h6>ÆŸÃñ€M¸S�Å}ß$ì"_m("Ï:9Y¿* ל-u§q+ `¯^æ @¥ÿpÝ /á’€îm²êŒCC¿>˜θ ñ-À>A®~qç+1*€‹Ý@V@ݙ؟ö+þ ø'ðïÐða¶ãF–¶bðZUyÍøÞV²¥&/¢µï_tîì°â>Žüé–pµ¡€­(ù®”ìD›àB“T¢zeirr|D? +ÿtï*¼ÉáS :�›7"æGQZæÇkx¶5>žtëI§¼÷¥‰‡ÝÙù_ \l%Q0·ã¨�‰¡À ,x¤~#8ëEíøÞ^ÔÚk'½n“Ó‰OŸ‘ãá­£G%9þÔ¿‹¸¿öDä ±i €lñœw®Ç ýœ“8Øcµ�0ÐÇT €þ>¬¥Ïj>Z„Ç4¸ál=‚wÅ›ÆÆŽ­n‚…_j¯0œ?Ëó•ˆ3>¾é)ˈ…œç ÆX☪�aœO@˜ 6àæ—€ºr²éÔÀìúúììb+h)ðû;w8p @î4g\ãÇáß`9:¥A©¨¦¨þÅÖlÌÞè)w7¸úKRQ% ð$‹�H]è³ }±øÂyè…ü˜´Ú [þ4¶«­ÎÎÞ÷ÛI;î´¾Q�â(i…ì}­È�lzçP�ðŸ·ú\¸øµ î•þÓ‡ +úm·wØ®h·Ü&Ù·0�‡ùFMt±}ÖŠZ1Â| ›|Τ ˜×¡’v6—#d¾p;еí6ô›%ó¼FT 8®q¡ÀzÂ�F£Ýnïý;o½»®h«×�¸¿ö¤$¯è{±@@_gôÁ¨lC À' Áïc—1£ý8C¿ß&f Ví÷ØÑ?ó¾Ð6gÙ1œ´ùõ©x…"ògá\ó +0cTã¸&V^Àî"Žð0h€´ ”�åI¦)ÀЭ4¶ €©@ê3Nu:D¬RŽºëéÊú,°¿ËÌxÝúìÅ)¶ÞM›øJ  ýäø†—øîc8žeøllvcl +ðÌ?¹À¦‹@˜ù‡dóÙܙÓC6@nV êNsðÝÜé¡Á¡AFfðÛ‹%†yçJÁô<µ:Þ¥¿Œ×]š›g£›¹rñ ëhà‰sXã¶_8Ô+¯im=Ÿ\hø©U«lëST‘å�“JjX¤ïek¤TnL7ÊðªËÕOZ*yø–Ël™„ô� —Ùˆ kåeí�àÑ˸ֹB~ _šŸ¯Õªå°Ê‚ªþÉý€žôÿ_ûŽ<·"âÆ-n¸å?Tì]ŸŒ�pħ.P'A= ¿ŸX ÀÁÞ@Ê„ÿÚåËYà:åB3Õ�†óÚ}æWäî|€ž ç9Àµn‘“FÆÙì{HñºÄ± +<œBmP ŸÎP–÷G�öý±!8¥Ü„]À/4@•‚üJ8„�q\õÍ +`ðH  Jyfü)7à’ÓöÏ.¨M_Èh‚ÿŒSÌ2öÎl�‡¦àþü¨i€”LM™Ó ¸íð¡þÁ °i)€þöñ6ô³„Õ ¨àZŒÜSãÿGÕÀATzø ñ>”*Ž[Ëq/“ l訋�‡öÃÐ]mSŒ{K~ÐôU¦|²be�«TÉ<ûÖ›IØ®ë[Í„#G“ ¬àà²Êøk* H…ªb•5 +ãX¯Ç�jÌ2Ï~á yÑk< :` ¥úŠ{E'$i)@7@S›2€¾1X ÖÝE%,øq¹! �€ÝÀ[rê zÜ”ÇñfÇúl�…äŸ<Û÷‹8C°æ#3Ζφ‚Ü7ޤÃȬÞ1ö É”(€SÒIû§cÀÕƒ @á 21Ǭ6pÿ”þ%Xß_ +1ü‹H ŒN¥ €w"àe%¬¬:€} €ÿÅ>ÁßÀbþ#0î¿�ëê^ÝÚbÉ�qh ^![�ÒèÄâ«Áÿ ^†¥Ø ¯_(²ñ&Þ ™Ù�i|l<y>ë” +§ +㟥÷ÁT«,†¬„I™%�,ø+÷¾ßjî°³sd¤ãr#fýÆOHx&çéÌ‹�콌ýrŠStó59qoVÚÛéWò˜\'$Ç•ˆîo`Y0¨üCh/á…uÀD—ØqŽÉÎ+^�`c|ë ~Äðoð2} àp¨ͬàf Àà/a À)€�®`( uˆsGó)È+ÌJÊ,Nð0Žä |º˜"üÁ@3àèq(¸Ù­®�O )ÛO4<9üjþîñŠ ØãÄÔMoB868¾6$» ;> >VðúËôÇ©À9Û’s¸oü©V› ÝÀà©^J±àfÔãºé¾/Äaî�P¯ïMãý%1|xá.€B2Ÿ4�稲�uÀžˆÊAÌ´¬4ÀfyEê#äÈCTKØJªµÄú'ÈLz#o'|Cz‹‚>_ÛNÐðz£NìýþãÄrïIIZ +0­wÔ» ·Ÿ`)€c}1=æ3çlAIÀbÊt?èt�ÿbÑÏ�@ `²v’3(g1"ëX-"ÞÉé±Ò�AŽúå Àb0ºÛ7o^ÿ²' ћৠèû©0‹è�uóÈ!¥ôYp!@÷<”;·¨ÈþÁRüßêë(Å{là�˜@ à�å`¨ù÷â8ÇNµ˜æø�Wòcþ8�-hCÜŸËî„(‹ynrirrbœ/…Õ¹ùJ1E¾Ñã„0?t’ +¿;WÈ�,.ZGpâaøéððjFp"ö¼´´þßdcèi?�¶ø¸F@ÿ��X¨‚øÕ Éån‚ë¢<½’·¼!¾%¾ª!€ÞÔ¶÷öœ(©;ëï/z±'#ûK²5‰y®½C È€Ë1€IÆ2   0—ò‡1æÄ.ðÆp¿|èÅ R@cå.HaºÃä�1€~Ð“ë³ dŠôÀÆæ†ËÌ)ý À23ŠŽØ—ÇÎ8Ð÷ À‚b€Y¹e +ÀŠRüƒ”ºSW|� €C2Á¨óÏ�¡†�îþ#üÏÂáÜ/Ú¶Þ_ ÿP'þJ~ /� +@ƒïSÌÀí…¼EJg¿qË éÏN{&À'À«úa¿+a`°AœÌÅka°äOVÖXoc0ð¾ŸÌ[ ùg!† ˜(À¤—+ðX»Ú:ÐP/ä9`ý ïψ´Wlò�S.ûž�¨ �@Î9£x)Àñ1€š»¦É²2ñßϰµŸ`ý @ + >‚°Êir¬c×8ãV<|2 Àb}U�{²I†ž2€TIpMYCD +@À‡d2ˆàG›j +ðáÔ‡Sö>3S FÜärÛ@Öþƒ°lÅ}»* `1]"þT/O¦žŽÃ ™œð&ÏyKظÝÿÅJ4¶†£~�÷#¸Ü?ÄN£î…ëÐ^É.ì®×/T´ôGJ=Šñn +““f·YW±®Ž Vu =ާà `r’U‡Õ% k4ƒ#ðYãR5bó!j€  +4U@ïFU�—ÉØÏAo†ÞBôÒ(z_i\gÔͱ_¯�bɰÅ]ÿºNF–ÐèšÝ#êÂú@· ?à�Í2gE5²\wx `ì`¥qÊX’uR1€cîˆÉ:(ú”@OEаü 9¥O(‡¸cÊTÊ/pf ¬£“©…™…xOvb)@ªz7³��|±|}O.€û�ýÂèªýNÌ”s>éçpŒÿlœêל€�½M&B–âàⓆs`k$748M�Só[(¿téÀÄ�ŽðïŸ8c“$Žx>œö ˆiÛ]“¬®®†Qp.¨/Áÿ%ˆêH¶R ?†½gõ¡ +@øóƒ•j°L'@øÇ/bc ¶&>ØPzƒðµé•e^¦ø¥¸wk¯±ŸüÄåß“‘L[€ihº?·ÀewI'ä”*ìgùÅ}1á�ý Žc¹áÌ?þ ÞÉp à  ðËcî€ ìóÌÔE1ùþ¦"6¨ÒCŒ+“P,gpÝðƒ=˜Äff>䇓–d¸O¿Úé)Ú~'} +ÀŸ(yp€ùO)Ÿð‚Â}od¢·À?’l3,&¢:m_â‘¥I€ž[L¤‚×Ð/rß_djÓ¸$Ge@’¨4ù·[Ý/ØÙµ¤oZk²Ï¡(j— +ƒ…qp wqõz¸âºäãj1¨,-XýôS‚2¼yô# + ¬È!l?Ô)¹Ã ¸s±€ç¢ÝùêÛº¹\ðÍèÝÙkâÛæ‰-G§ òx›—Ðöéü¿¯¾NBc½zï‚,¸ÒRå#0€± §² €~¨†û8Ȱ™aï1Cd +té6}1€_̉°>^W2 €.€M—!(̽akøØ͹càÌÔG¨ÿpaŸ…lq9³p•½…Ht?ÐŒªp&Àæ€x9ù{ޢπD^¡9�÷²Ê”h °{%�9çëÁ Ðk«,£HFúO�ÐÓp½p™Ð/ÇvÊQâ@wP¢¶\z~ý#@·^ï¶ACìÙ¬ãæð *aø©8±M�㘷Y +@ì‡á'ì¨ZUq›!›åÇ8ÌPçòrËU=îŠaè0Á«âÇÞ•è½½* +€OèOaÍOɰ·i"5aût»àßK,ûž�ôµ`1`¯V² €˜?ª-€@_@.7æ±®ˆ2_ ‘Í73”aÈPÌ’Dö;ÅÔ„ >„üb ¾÷D +àü>€Ä–L�%ºYÁrï¼I´¼¢:@d½Ùc7ü³øïS©ìS Þ"wšS5$ø/¥bCž�9,vóɲuBPÒ’¼á_ƒìKØÿ_X¤EÕ[¤ˆ¯ñ¿„¢’�Ç{´¸Š¿eG£’¶çUqW îYOl×Ë*¬ÇÄEö7.…@Û¯¿H¬=a§ 5àš8÷ÚŸvˆ€g\Äv»Z�rˆèuàMéeaÑUÔ†~€žöŸk‡1{¥øèîeÿ½Dð:Ù_ +€ïÏ®P ÇÞ$O8gc¬ —aĨs ¯oªÙXÐÙƒ^8|¥ë¨~W®_�ý€ À”¡o)•L˜)�ò|aÊ-NÒCœ�GF§`ôÁ@°B€&÷ý"°I@ à2|W ¨AÌ54ÔK “Apd½ä—ü°\š(Ño_ª³º �x¦À€2î@®$ç"*€ÅE·“š\þðÄb•Ùþ^}q +™?®òíAá¦`tÖ=šõf¼jwÐ-—ëâl¥¬¬T0GÊEÓQ§\e1t…X;Üb¤�*ÀŸ,xØYï„ìA¼úIv„J +|¼¾D'Àý”(+mÑ`ªLšî;µëØíÊ'/.ÿžŒ¨ m pÎ+�ê»1§ ޝÀu1fºŒX €–™‡9Q €AÀ¥<  ¿C €õ iM@eÊ“cûbwî|�•�ÙÙ™71 ¼2³„;€…ò +HÿŒí?W +pÏÑ'Œ0à\“>@�Ý«þëê�ãÄŸœ›þ†–:ðƒf°+{ù\!BWª~ÿ,®6v­°�¬(5A°””Ø?-ì¸8vëU� 2Ê— Åúíø>++ñ½Ce‹]‚Eq3.ûTP%ØÁHÿÚ½f ÝÀ`0Ý.í±qÏ*TZ­­F»á?nÅ�mV^‹BJ‰â½5uT ÚÜ ý›ê£0d¯¶=„qÛ}O„wÜ£çEûIþÙp‹ê úÓHh©8�i|þ.Â|2rh)€�žÖŸß·‰”—Æ¥qÁ ¼Rs²¥ûc*@F5¼¾} ¨Îqaþž¿W øw¶ßd>Àù©›Ç1Šr^3K*.§°2mÄ(øÿ̇ @=-¿[̸é—p; ÙNAA’ÄQ#ŒÖñóñ¯+1e墆 +ãøÞ6ÌåZÔNâz´VÂÏ⨠+ìqpàf…ýøßÖâfÜ•l%í¹†Á ¨…àðK +±(³.NE�@~vàÓhtŽ’?'ɳö²_X ›qÂ.?804mtöðÛãö‹$i7ù¬áN{;iÕ~“$êc '†¡â^…h&Œ�˜é`�m*l0 éhOøjq!›SþN*Àåß“‘¾¶VXF?[ +€|Æ,‡ïí[ë³_Þ¾³1Ë.ª7g¦f¯ÃHüÌ“w¤zâb°AYÀŠ@J¤Þ1 ž(È9°Î]#'Z +Ðøúë} àêìÅ·`ÌL|a–$¶ßÒìäaÿ§fäúC,@ù�{�>aoÀŽàÖÎÐhš&Ås¥Ñ¹ésçÎ•Š¼k.ŸË� -³8ŠÉd´Èã%ÏmGÏ•pF±äŽc3[£ê/úl‰_šæ¤Í ¸*ï™âôtyºˆýìR‚ûîû@`MŽ’iŽSZÌ�Îã +å÷y6ê/ÍÏ•«Ð/ªÕËËó¥â4Ç;-•9Æ)Î,qG¹za~„CJ¦KóÓUž7?‡”犅\~z¾4}A Žw§_—øBHúvLUóít€l>5=øL7€ƒdYá;í*½ã“ÁëDäøzB?³Ú\fÝ„¸sçæì,ÀÍYŽŽð©zÚæÆF]R,­€•`)À! àM1–€ż UJ/ð‹À¾z°ùý ÿÂÌùóê�IR�UÊEÊÙŒG¦2øwB5pëwöMx,¹. %€ûgÀ•8.ow8[I„ª"WÃM/�niºWËá6@ØkOÒîìu’µˆ]w®}£½Ÿƒˆx€ÿ¤üOɽ8¾ K{¤C�¨1à­¬¨„ñt¸ +×Ù°EFñèÒ¹Á÷‚ ’”Ùª&À›ÀÌ÷—áí·K—èí3àÆC*Q§Ï½ª*xŒ +¨$®è¬wcUm-fŸépt¿Pk!8ºÊÎËYЩ²ÂÎê›î±!p¬š+•5`{u•ñ¤þ¬5mã™RT�Ê8T_‹-Æ€Ÿ¦#²²Êö5øEi—õ&BP¿à=ð}ðÍØû!„9—ù7¯ŸÀ'ÿçÖ˜iÎË1PR'|§æð¥3ÑßA^'"‡•˜ç_ž+û)ðÝÓ0CŒp| Çd "n™ 4gbûvÊ8„`óØ€cÝ€ºª;©R€¾€½zûvª€S‡1ä²B—%\:£¥&ee3e pË…©.õwK,Ôè§Oùn €:W@¥;…áÎtl5ëáR!7¢?—ÿ¾øìy‡‘Q)@=†ýü¹ô)Ùä´�Ìž7ûy ȹnà´Vb�@?¯@ +àhÐí÷ëÜõ÷j àð×'·®3È_Œ_™Ò¬* ôoßb\KñOøSô&U + �­ù½S5=�Î0€´C�[=ü íR°€ +¿Ÿÿý¤1*Fò�@9*mëx-Œõsß’M_�©­cí#KðÈ¡&„[%»hÚJüÿsÿcîVѽ™ôÃD�[=0AÀ30'XòƒXƒŒ4¹ŸB³_Ÿ¥µfsmmUu� ÛÓa̶B<ÆûR5@-ð`}µ=Cõ5›8P¯‹>v“T«!;N§è€0øS#SØœ¯N¦�“¡ÞqF ””12€ž ÊHðMÿð² à`)òE9cö�c¦ÿn 0Háofq_[€ý1€£JÞªY Àï9©@¦€!~¿Ü\Ÿ¹xQýrð7ö@¿(gá}i™ +÷êˆ^%€Š2àçâNÖý×DK^p€d%V9à—pbýíS¬QÄ,Ü[ú©°¸�JAèè¥Æ°5h "ÄÉ ‹A-€C¸Q¥Î©ó«¬âP üE\=½¢F*ׄ�A(Á“â^Y*Øáì¿cbþRÚP¸ÀþyBŸ:À\?œ9ê€rÄÝëäDÈ= 9¼€øï™ý?¼‘dbÂ} +3‹œU +@7õˆRl 8M§ àïÒ ¿ @W¾¾°Næ%a?T?ï¿'°Ì[x_– L�)˜3˜5ø*ÿÿÜý_sWž%ŠÒ-Y�hBCZ`S,¡|È¢ÝìàðD² 3Y° & °“¨ +½B¤Š¼t˜4©�ÙÁy¿9&êÅsïSOÄí—äÊV³GÕ(¹vÍvuøô‰ú Õq*ÎíOÐ_⮵~;  AI•@f"‘È?Ø{­½öÎýgtZm³ö)“ôÛıF!æ”üD—„A1üÊz°|#wÚº„Œ&È3%âþêjß© Ÿ¬OøÀaZJX2½�¹xh+ + ''y[í†õ�^æ·êçoð,QŪÿ¬Óg¹„2&æETqÕJ@ü÷×CŽX +ÊëÛõõ(¸Ó +*pØûÂÝàk»òž +ÿõ.(T:`kLÂÁýÛ`xBütâL¥=f(fèÉÏúîT¯ .¿œi 0�˜F¶gþ%+Y�-`‚tŽà‹7з-€æ—+°)ðWP'¿‡2ÌÒ Ö!s³:€½sÞñ KMŒœÙ7øl zðÞYðÿae¶Ô°ã¬b�Ð:�Jq«G/Bï&|WÀG|qÌQxã(z…ü&9 KóAÌ*�½+ùUJ•Ö)®¤ÝÆu¶£�'âÂÚØŸ´NO¼‹öiûn�C„AøëÓï¾;ý¦^�Ú-çÅwǥߨ?DÕ¸}óÝéé©¶~•NxƒR$ÀxŸâêÕiñ»§ÿ–þ§ü—P! waÂòs‰Ÿà@Ó�Ä�× Q÷5 ßSEùl²¡`â¾Àûð1¾Üæç¤s=²çc �¸¨  ·5 º]OX€CõãÖExÝ}¬6fð?Ȥíñr±'… ýkz +@0e°¸¡Ottÿg‘IûmÒPæ¤~¯`=Í᎑1_¼•»ÊÑÁ‹V‰Û›Wí¶èfù.¾ÿÁ�b‰å½%Uó¹U,zk¬é鯨ÚGÁ;—VÖô\YÃï•;ø™wk Y/¯RÃרÅ/ô…{ôv8ðZP©sWG E�²Ô‚læmT8¼‡Wœ¯„Ø'XÁ8õGwjwq9¥RÑó×BŽ¢qB`*w+álXÀ娂jÁãÐ#+•»kÉ€÷¾7u@` tC9ùÛ˜@k1ÞÞ ÀOäùå(:Tâ\ àôZábð뀞dÚ ž)ég”O¦‹Êð¿9ÈÀ8okbÇ»À·Û[;ÛÛŽÿÄÏç<¸  §þ\! 6ej¾®z$»#¿Ý2}Îö€ÛÖÔ� +ò‚é+U·F¤Q qCÞ ©Ð5t�ÿ0€@fÀ�€J¥ö4Œž†ÇÇoã™("w_ æ½µ»•{ >!ÉG +Ž]'J~¥T *óžïͯ|�ó^%klú +ùµ (­�~¬%à·÷øD Ó|ѯ¼�ÿÔ‹ÚÁñqů×p¾ApõïÏâ¸öÁÓc.Ÿ+²[�ÒÊñ1N„³~T«}tÖ*•°6_iµžÇµ +öÖjáG0.>Ž©JÊíÊÓˆåkµãèxåîZ壧Qô‹_‡Åè’ŸF+µãÒq-[ ëÆ ‰HBÅaÄ9#¼‘¾3q‹€õèq á$à“S½¶—q÷Õq¦ ‰á™(në(ñ¿À~J°ÍW㡦 m€�ç–ÈdZ¾Ö§,×Ü�»E:6fŸ|.ÉÛßç@ Â'y� +XQ¥/‹Â56àĈ| +ÐŽÞà\¢>È�¥Û�'6ÀÔÿ" Ú­ÚX‘%+S  +€§óü +ƒ2özKǰý¥bÍáéK ׸7ü8K‹’ϺùA�ëtÞƒiÞ‹×j´írã ÄÏãþ¯¸½Vi?ÞÍT8W­Ã:‡Š`룙– è·Ob˜yžWE¿l~„T]×Úªÿ_í׋ì ëàÛðéi«òŽÿ5$n5`û¢0n=ý Â‡²02v `é0ß�ŸÉh2ÜOÒ'üçìC›@âkAÉGnA?3�è>£€;Ûk‚‹Á¯]m²1ýeŒ“x“¢¼£¿­a¹g@H,@G~Þ×H@êAõTS°éõ>`@‡øn‘NÈÌ=Üaª¼·¿Ç[r� TrÀ¸c$Ç4šf/Ø€u1K1‡Ô 0yøœ8¯rÿÈ€ðÏN0B žLHK×ÂÚÂBâžiê&½ ô¼‹%¶ù%Ç…h¾Öb!`xNjފ7òY ÿa· ø¾WŠJ¥h]ƒöXA�aõ +î†->®KúãëƒòÐ÷DÏ߉~x…kpT¾Ypbó>>«ôNê¡�Å‘‚Ïž¿àRZwƒH÷`'¯¨ÆÏñ�J¨Æ‹L?üz\ ¢wjÇkÜMØÛQ(�“gñÕ�æ�üÈ€î*p´'ñ¥˜i'ÊgLúåÄs;Ñëœ3ê¿ô8€ÿ/UpñS€O³€`äÏ:�^pQc8’üìŸ)x-õÜZ?° `î!9%oÏÈO(1@øVNl�O#€´ß&)€øÏ¯ø0 po>\œÍfÿmëû6<¨Cosà¨v'hÕæs#ùü¸(Í„½Èšøõ0`5 +ç#–÷{~m ôŠðj¹¼Ì¿?aåКÕ7¢b© þãóªÿc;>Ž«HЪÄŰÕäÆ Åº'GÛ>X‹"/5Ïbû&)/€°Üpò–zþǵR}VUÕ‰§Ã¥µJqñ8f ¾ç +¢Êô“V@}ðK¼Ž-Ôz;2`%d퉻šý�ÝÝBÀàåN|)À9—à!¸ Ø©^ßÜEá×€L[€ƒlJ—Y¢ à|ph�:’¾Cýdí’eª�<Ħ×\ îª/Ø'PcO°×åXl¤€i>!vAÏ™r¤} +·uzNŒgºooƒKö3Ði�—»|?§kÏýÒ$òF¸ +Àr™=÷Äð|(b…Ñ³Ïø�½ è!á/L„Öjÿza +üW]¼–¢•R + H˜<#Ä^üóý¨~·2«rÞe±V [ Q„ Í~¹T7Bº +ùOˆŠ•–eb8g (€%øž k—JAÄò�r™ZW~pŒä’à/O±OP䈞/„Ïpˆä- +u`À…IPfX€„ó¢|f�ÐNc·)T |Ä€cM[ÀŽªpîåï+Î_«HŸ0¶ÏÅõdåâz•ìzÆRà—¯@SºË^ù)À^o�ÜÝ@ +ܘu€û3òoš¾#µ¨È š!ùÏòŸ_Ó0ÍÏ”8 Ȧý6�û* ù³€8�¢ò4úA-öW8¶o*~9œ¯¨–©á—£b-b]ü3¾?V*'Þö ““|C¨îÐÒ~·ޝÄ+0 ÐfX`Ã2€RÐz^û�ìú À˜ßëûÆWqx÷¸óñ“¤ + é‡ëÆÕ¨à!õéi[Ê?f]DçpWq)lÅÁ„ô€?\‹Âé/Àÿ’”‹£-SNž,|QOŽíà”ÂÉ…æß–HÂYåGìN9oK7GøÉh q|à +–ÀœÔ}�ót×W‡ž° 1 ñ9Íø_®:Èìï?>ã’TŸpk\\ºÓq¬sÓk­p ?B&�wœ:€OðV ²ª¡© ´T€OÝ +@U Ìå¹ÀÛ}ê×€@�¥ãJÑ%øO”pÏø[&ñ§‘¾ÑJ ¬±ï-ÃÖÅÿ%þቂ÷þ(K óÞMަ?rR�B ¸^X*ÕôÃT­Ó9$±ñGwjì¡cÜu�’ìã§?Œ¼›#oùKàµUÙ ÀÿõªQv5.²Îx/Õ±6ŠÊ¹ <ùÊD%®é‡ñÆ4³ÿ+äÿŠ•à¨a\j‡l4`Çèë”X3Ä-‘¸'•€Iø„úÎp†ß ô¸7kòGc|lÀC9ÀU¾ÜÉ^Ëœ3cï«"SÀt¾“Ö_¦ à‚§ØÚߤÀ¼õùRõ¾·2€îNÀÏâð`{¦Á§äÁ�üÀ'L(*PC`Öœ0^8HT@=.&eªÜ¿--É?@¢èNí•¡³€Dsi~{%¢O^­‚¼~8ª6et¢Dí}ËËÝÈ8°þ3ö °ì-þJˆì·3ÿÌ?,ƒüéõür\Zk�yµ;{ä×îÂú€¦ýƒµJ~d"ðü² ôÍš{ëȰ r3óŒgÍd•WBúÓá{!l Ä¡4v�ûDÑñÂh•¡¼{\"r“u8€Ó»§a•u‚m⌠ê@üGÀJ¾ s²ôQ#|¢‰`7îÄDß*Z•!þ*àŽèÒ“òö5ͯ¾¾B÷ÀÒùNúŸIöé.( #ð˜ì§À9¶ö:€„ü™,€ Eê�Ì\PÀîÀ¢íkíˆO÷…Oܲ þ\C7Ž}ÍHsÌU¤¸…Ðrk„¾ÜgÇú^¸d?œÊ²Z8úC\Õ:"¼s+¡|¿øÖü/TRð¿|²Â +õ´ÒÈ<ë¹€þ–üMüEW åeüc(T/pD�åÕ%8�‹E�uø­½Ä2üvÜGàäû*ª¨ß�¾ ­`ͯ¿ú¬¾¬f½¢'G ¨FÍ0XõÉBHÒ#àq~ êJhO¦<Õ\ö½õ°4�„¾UùAô+~½¢L®��‚VÃzËo±k�,À¡,À'„Ã…D6€ÅæÈoã»ÐÑ~00¦B•ÿkwþÞ= ,ìݹDà×0çÌâþ«Â9€‰<É�Ðݦt¥« € a%s;G_îÿhzfÙå#Ó�`÷¬ ÑÓL@÷¸T=€¾e¯æp™”®óþ5Û{‡p +¸G—þCâJ øBTÅZöÔ_°h0Òá;€YÌ\K€�e¸2s„ýOý!.­%î É% |A›ŸÀ?¡Ö±çGóïAúc¡ ÛÇ¿(Ÿ üù: ù�²*ãÀÿÍ[µ^ +Å áø¥|¸Z +ò·ÈÄ¥JKùïØUîé~Ýì[0n}¹1fñy¤ÿLþ«ÕæI›²S+ÜR–ŸAÏtŸXþ3}(L…w¼*¿ò#ÿa\)…ÇüºbüWôaË °µò<~á˜ï@eÑ So³ôìëtÕ�õcïiÎ &Ü‘Àü??&el ”´…2@Ö’·¯c®™‹Ã¯=½³é?¦ÎG·À„”~æßàhgvfv{§±wz@ºô‰(ß DÙ³À�¦ÿZáºÉCðÂ2빋²¯­ €D¥íÕYëzá�Ø~#€ÀMÚ<[˜Ñ! úQë„pßöY€~­: O€KÓ ¶V²OžGìý†4˜ý£ë£0ó€e¦Õáòò¬tpoLü˜À¿cÿÛêh"£ #]­úSã4^…üMÓˆB0_ôÕk¸JÖhàÇ—©7n¾ßâÀ{Çç8úÅœ–'Î7›­y?— pÔ²òçaP­×ñ¾›ƒ[c?.„ Lð­++”ì’`ÿß)ÕZá½\ + Hà•UÛ+`¼ äO Á‚EöÝ-áŒï€s­%+Ú ¡œ°Ÿo|�%æ0ã 0Ú¾ž¹;˜ØûªpOŒÜžsê»zpx¸CêïÍÍ=<8Ú™™™{¸�ϲÜÑ@7°õ¬èMÿ N¨–€Õ]­_W[&åâ�p{ï`[Ãö¹üHHè™(ìd¶FpÁb¢�c¼3–!˜í[ÿ>ÿcþ×,¤øTÓÈó"å5¼½ë| hÃ2-yrþ¤KÁ Ç<ˆÿƉ9†në^–N!Ì€¯úe  þ�üWÃw‹8“_þÿ0Ö» ï·+OÚ©š^_4!Zõ�úwþ»¹Ñ*€ÌTúÖ«N¼0?x,ÇãU,IðC¡M¼‹+¡2@Z5¿¢' :€y|Ï,Tå´Ej¬i}}=è¼£®NŸ�Üf–€DáÚãÍæØSeÎûÛKꬰ½¦¹­ºHüÊEú/Š;Ž'Sfµ£Hx(ìο13;ÛØnìØsi%L=ü§—&ÿû:€Tl%‘}FÐ×€+d”|-À~v>!wö·qwÝm9Xèo T8…6( ` hÁ÷Ù.Ápqš1· #Žj„«ó‚ÔÓÅÿ2a ç’ýºVƒ‚òï`¤Ç§êß¶‚šÿߦû«6æ¯ß•E6„…LÿëtáX-ÜÌÞo•ÂOø®’m¸ ;‹ß6£0|qAÄÿ �ÿõáûáªï•GÙö§câª�+1D…ŠGJq­µh58@(.g…ׇxÀc†§+QäØ�‰'9ã”P€ˆÌʸôßt)€í¤”]n»Š@�BÀDŒ¶¯gî&ö¾*T²w±Ü¦¾«t‹{rsG›³33 ²ÿ¥ŸØí÷@lOm€­ÙËáè{n€âµ–¿/ÄÞÞá[ BÎ:ÎnwÊVÌd©OXÌH€‘ß±` tWg€ý¯ÓWFVî¦Óq¸³mÍ»‘»‰,|䯲¢mkÞc€àê“VûSÆ‘p×£ÖÉiéxá\}ÒŒãf5ëaTÎç�Áò¼© ?�_…!”%$‘¤0Ø‚¿{œƒï#¯^ U~;ß~ûâääÅ‹ÁórX€¨ ÇÀ.�C�6à¯ç®á‡Í¨I£O2=cGó…àÉÂq+@ÃÛ´âÚq‡á³Ö ¶tÂýV V^Ø +›Q»µëñ7}…»ìm  0rab€|·û1w”·,A ¼ +>”¸#$‡ä‚'à‰ÄÛ×1w«‰_£."�Å:ÀÀC:€6›‘œuÌô©�r½#€$À}ùp¨zLÆ)Ø”)xé§F·sðù¡ ¤@p'À¥‚“Öô)�j€}¦ˆõNì½}éÎÔqŒ|P*•Ü;>mÅáZ…#axÅ"Óm¶‹ ¼Jø>׋ÇÖØCpÒj>‰£¿?®,Daô¼‘|àaÜ +ý|ÿ"þÁ‰<ÇŠd€Å�QÄÆ·8N¡˜÷£§øp|Ôj‘+ƒì÷xâ,Úßâ|'qœ¿šƒ1‘Q0Žq ñqT‰XùÑ Ô¯0Q`©AÁJ"¼HÒñB ~bN¿ŵV[ƒl„G?ÎOT°S;^hµ�Ã΄ù“…áúön�ޏÜ=)OÖg˜ï–à;Ë�øs?þ’s«Ðy +À�<�;×ë™ÛªèûŠ€pñHôÍ ç£ÃÁ!+hm; ÐÇü\sü¬o=GtÍÅüîSÖ è ÓðuÔ0vdÿ??2ø¤×¨! =ýg`1 ’©%@9€Y±ÞTÀ@ÿ‘�ð/SX€+pÓHP[Ãd3�‚oä„Gs£okt�Â�¢?V,±žÏ�qX�Ü5¤^ůÕXnV©üï ?Œ?‘×ÖîVJ~¥ÿ€5 Š£oâÊ¯åÆøœ¨8ЬuQ�nMLŒ½u‹MñïúÇwx��øhpº ²V)�¾qu4(­€Ì+mªòQüƒZ¥Ä±?Fßʳ[‚•……RI½p´ªR©8?ïùkX©Ü­ÔÆüG *ø*ºqœûÆFóó¥ÖjØ©²r7�ÖDžThrTaB«T¿¯ÀÜYÌXà›5Yå› + €§€Á–¯<]@K“[$Svµ³ÎA�R°=3Gð�Àîj)ýÀ™2—ìs–ðÞ‘>ù(œïrê,¦`Ó«—¹‡vþüìëãd€d€ë€}I˜¤``K,>£¦vg2@qVm�=ýƽÛpò§ß}×ú»ö³)$�2ýH·¿BF^u§³È@êEWÈà6g…`²>a¿æ\Ac'ËëÉùÃ@¸ª�B@®0˜)äm†Á¯2·UøÕp щ?™=>c©¿ೣ͙ٙÆöœ:΄˜H±åÀn_Ðaz& ÐÌÞ0 @¦&à+·À…õ>íø#¶{ËöôœÐq ÿ;Ñ,ã”þ;ök9pՅİ ÀÑ *·æÐÕ:>,�sXï]þm~0¶Txé?³M¹¼õˆð٬oÔëQó»»Q«ÎÞ5á³ÃvxçT]ëÑøõG±²ÎÄz.¼ËB¶©fý¤uÒ<­„K×@—Õq3Ú¨7¯{KìwØgÕ€°U)þçV{¾|~ôdì^%Ž*Oq=®‡?Vl¶Ÿü¬«,Ä/ƒVX;[QÜù^€ v$U kõû„ÂæÕÀèÄ—â•­ØÔõ1óŸï`ÿ¨1û£ÙÆCØÀî*‘2e³[ËR=¡~ÂxÖ܆së@hú”¼Œµ³$?ïõ�ÈÅOö·UÀn—�‹Ä‹)f¢8ãCGý I€²³s˜8·7¡¿½áqèj ð; ªÈdÉýèû¤? ò“4Á‡Ü‰g� +Pÿmé´)êÀ.ÄkwÚQð®³BÿjþÇ…QÂS¸ÏO•ëõf½þMIu‚#{?ÄOpæ Ÿóò!Ûú~'/Ýiãp¬óËßq^>{Œ*ó-©À vÚ +7n®âr|²Ÿ7®Ï‚jPü%o<Ï‘‹¢ãŠÕ1ÎÂÈó¿ù_ ¢¹A|ï ëcfíàh÷>`÷¾{ h€p„Š)“£è?° “æcÍÖ�ô\wßÙâüz¸WˆXùje¸¬Kààs +ÀbäÆu›^ô„\3ó‡�âLë?7îëÍ9@*ºnÂs”�Œpñ:‹ðÄÇ¡‡gT�LÿAžE‚�:òƒj#Ýߨ‡íR¼"�­Íve¡Õt‡¡¼Âç9ÔxnÉý¡R€ÂÍñ‚_­ÿìg/Vâoé¿À¸Þëpõ°œÏ&T|m¶J-ɉ˜.�·3æuNnÀÛUo⨳ù`#Þ°ç{‚_�Ù׸ÏÐ÷ƒõ¸FèiŠhäù_ŠÄ¯E| Ãï‹qx´ßØ¥XLê줠ˆ™ö’OT ~wÈž +ÉͰ@¬àXàÍLMÀLÀ¥ŸØÉÚù‡xIð¿±)`Ú+00ª"$03(ЧÜŒýBÆdà,€»°n$àðêþÍ,Àx3^˜œÈèýóoÞÇwë�œ9{Þ©žÀ„áF«Ô‚�¯ëQ«R ŸY^‚�yøìðÏ +l/vµÀ?ú&þNÄda|ü �”âV"#{_À?D€|YÉzµÖ؈jà€!Ï + £P0‡›ãã“SSKËSSËËå ö`c u ŸBÖƒV�ã ôÀÈó¿‘_ˆIJV,­qëir“ý˜ù‚Í÷•˜ÛÙçè8��EÖŒO@Ǥ`·OXähnk@º¢ÕÌ'ðx`=’Ø9€W©0·xž ¾/žÏí~.€shd²ŸŒ�©€&€ Q€Œõ‰ÔÌu €ƒ®«;V§×Ò‡<ÚÍ�ç ¹«ùÜHþÝ÷‘þWð=è þ1GýYŽÓ/ÓõWÓ�Š¿ˆ±ÐÁ�¨€MXxHkGø/æ9’ÃÒòÒò2þîñ2²' ç%óç xÑlšõü¥åÕr5®”êQ F8­5ꣵ+xÅ|€Å{,ÀFök”—ËÕ[Ð-�X“ÁBŽe_ÉPË: �t…‹ƒ^€äaß5§­ëX×:ªÿ}–X4~I0BÏ…ì:Ðõ1³Ø6¸¿ûYcf†Oö3�ŽŽ0CÄÜßkl3^"ùßÙilî‚ûû�9¨Ý§ûø°IÝÍðÔ d¶æævFfý™zo¾–q f—L;躀O@|>M’`l`@18p«A +À,€£|7ta=€h‰…¸/ôðWiÔû�ʾU›ïU¬�®uާÅÊø?ã@ZAØ*Þ�^ÄwZñF=jª'.¥Ã,b *«>�Á?šÇƒŸ¿q冿Q [ ñ LÄ ð4ýÑjJ¼›82@Ð +ï´ž„ +Dç]f�æ +�•gNr#ã¿¿º„Å&.WNÕƒ¸ñË|o2]Y€h�Ý vCÔÉ ;TŒ¨ZÏ9ÐNÉâ”~ vÌ¡0ð 8Ï÷ðr\~thÍ¥[Oúî�™5Åzçwæ¦gˆ‹&Ì0ij4vwvw<Øyì°9+Ó–€ØðÛ®qÅ6ñ�5ÛLèëÁõÆK$—h °ÙÐÄ׿KÐn®ñ K=ùQtS‚^½CÊ0øô*†— Xa°Ï½Y»’Ø3À™mCÀ–ôìD/Ÿ£[çŸà ©¿ízé ?166�„ƒ¥ÕøŽçƒÕ­ð,H¯Ÿ¸A¶Ù'ÿ±·BŸ=…å¯CW¦¦¦næF˜¨?[@–aðcÕ¿ï‡ b"Â÷®QÊ­àÎq}½Z?Á¹×p©4"³ç…¥â‡ ê[ûeò¿\®>)FHX-‰xçN³ü%ùMdâ�=è–9³·Ñ>�i3“o˜è‹ dà?>Û%V1“=ëñ+vý¦\·19€²;|Ÿü…öŠP—â<¹ì²û€m6Tï8dˆa X�q`ÿ§€]¶ MÀi÷íµâ>saKÎmùða_ zo¸B@l:·€¤W‚Kõ30J_,”Àím³ù $ìé0¬!B)�e‚Å +‚ÑŽ@5Î@wXˆ�Pe9e³Uð�Ë +Àuý)ùñÉÕˆëhèƒ5Î@�ÿ'ÌTŸÕ7ÀÞj4á#%ü±0\¯V7�©ÇAX,2ñx�† 2Ó|*€?ÿîõ‘Ür5¬Ç¥Øúðë‹Áß@w8–o½^õ¯�ä~\™ëøAÛ¹qâ•uðé—VKóªÉ¬vɲ\›ËÕj4ߪ®—ùü@šÂ–PjÖì!È󏿝k56¨œÙ;K … +ÃKUM»GŒýéSS€ ¨ôü¡öãïôK;�e-eQ¸+¼v86_ŠG/äŽ>sp°‡<€u‹“q;s ¤ú;~N°‰Õ]8€Ç»ûr€O¶7·¼À>,1ii l³�\sKäÕÐÞ�­-‡Û¸‚YS¥î:I+ÐïÚŽY Kyà¶��{8¥¥þR~Ä KMˆ$è1W4¸zUþ ó%€ø>Óûâ±{‘)ØÞý„òcÝ…€R`9Ÿ³–½H[£°Ä*ò°Ÿ傘cLƒ××[^oy9�ôò”[­2ÆŒJQYa?\‹WNñ+’‹ +P(Ð,A,Z¥S>@ŽKÒ,iˆêõŸE�Ïgy«áDÂËã¼põëáo³žˆ½J°ÂlØÏG€Ø‹œÇ²Úœ?Å9°ÕT·¾ªj€`ýYMÒwïÞ½ +l‘{‹9)(¢©À�¹�I­Å€õû¸`Ý%ýX#Ñá®Â,Ðöë¿ÿy˜^�ÈÍkž;>_Ÿ^HÍÁö�¹Ù¹½ÃÃ�Ùi䆳$Ÿ]óù¸2€Owö�öw�`ì^œécò¹óæÜ-ñB”ëq›`½D"ƒí‡Lägf·�¬Ã~*QìœhÇíÙ…û,Ú»Ô4÷pÿsË�ˤPØ+#¨¤@AÏÀ✔Ö8è£�E×ËÒún¤àS>~ØÙÝÞ…øôy +p�p#þçóïÃé á‡�(É“q>?ç@ÚËžW-ø?ÇB·©%«ÞÜØÐ.`>†·Ùªð=+Ù¨ta<c$ïá÷/ÔéÞ þ&Búý³úO£ŸVý«þR<ögƒ«¯V›1À®•�¾¿‡¥–¸M¨opx5(Wã…Sù$û0žTVbèØ½JåR÷f€d@r2T¤Ê$¿…_§CñšKÓ,Ü +vºÆì2|)Ììø™ ÉÏÚ"‚�òõÌ9s„¾$‹^ úgGÛHw�ÌÎÍl3[�8Òæ@�·0t‡ŸnïšMH\{qÆ)ýÜysî–|e€Ûv Mr¯ ôqøÙeÁZ‰ØÎ:¿{+B¥Ï¥&}aß1b@@÷>à±{¡ªVæp;Jÿwº²’d pÙ$Vk 4ÂÔ…Zÿ:!¥,{Ëåeoji*¿êãu³ÀîÀ–ñûfóÛÉòq'ýë³x + ,Àzu#.µêƒÀ9°^e)àÏ¢j�{Ë'j춘¹‚öÉ Ý<À‘?pòp%FºvÓà#í°o54ÐAÙJ—(7!}­à\uê �$Î0P0²ó ¼l³%7Èð÷œ¶ÐTÚ�… œaÁlÑÀ`«¯>^®À•½ $Èl³ª +8ߘ…çÆfç@ 8€9:€;v~n°ßØy|dÀÊ/�Fâ6ÛŽ·gÑq¬¨O SiÁ@àh} t`ç!îÈÊ0!À“xĘ ég8¥üOã…}‰¸`@Wò��}‰ÀiÓë*te~àÝÌÁ\G:èáño–ÉWŸ°Ü�{ø~Ñ÷§¦–9‚¸_�˜˜ð +�@––ËÈ3€JJY£'As=j->bÔˆþ×óããùÜHÎ[G2^:e9â ¨uNøqÖŸýôI³û¹ÑB©/±X¯\ݨW_¶„û¨nÌ¿`ÿ¡º.nbÖJÁÁèuçQmå9€»†‡Å–¦î#-'‹GðÍÍt¥ýܬ�òùøˆŸrN!pý¤@i±pæ¿8N_ݶø’@ìƒÈ<äøÛ÷¹)Í0�‚ݨ:×þîþ§û�M+xyØö¼÷'ú¦ûœï”ŽÖÃc¦±ÿ·w2 ¥¿¢“ºT0i!àv}I˜#å³E€ì–ÚðvX¸3²ÑA3ŠOT”ÆÂºÂ$ÒÁ·Áà8\x‡AtÚjµŸÅ'˜¢`õÞ’ÿ†…Õzì�ùc¥ˆîêCÔ_FB sZQó´ÝŠZß·Ûѳ'Q4ªûMP¬Úª·¿-µOO¬Ö__´Ü²'ñwHæ_œ~Ûþí·8Þèû´ìW yR�ONX«Ÿ-â(n·Oê/ZµVÆun›ë'ñzó¶ÀñÎÙ�PTg#,Þ\åÝÓ¦àο®TZ°Ï€8}+@Rˆ�r¤.‚ /úyŒñ´¸Á¶bIå`��F�á‚ßÚ¡ºÀ÷ÆÿË ò +/çZ`){Ö€v{;3‹L˜6·1m)ŽÊl?~ŒØ +޼´ NøSœu¶Ê.<Ýž=p¼³÷Õ%Ðþ'û05j`o¸â�E$Qܨ/öŠã…²s‹€Þ‰„?«z ÙÑ´3Ò5äfqÖBf•òù¼W«…áÓhò�-öÛÁ¡ƒjHý'òd;ëಫ� X+…�Wä6‰/»ÜðØ@À…£8Üh·kµ + !±Ç+¬ZäásûîoZODê¾°x}A!ŠÁXïšç…‡6°<Ž>•+•Ðç�¡° +íž!Ô8ð7tÌT½R‹Z§ mH5 +Ç[�ðvŒëÓ�‡µ¯£ø»èivR0dÀ`pAB:“ýŽÀ¢4Sz%ýœ‘ýü^Ò�:î‡ßq3ÖùÃ.àBú{‚ãõ° u|…(D8€`G`4À=�8Qv{¶÷„bÛ² Ûþ2p\=g.º +X¸¿xøwcfnÛeö·»*9æÛLA¯PÒB2Àí ø-ÀâôL–ûštìðïètc:ñˆu¿+,€¥þJ¥T,GßÌ�æs¬ýÿA©tw â8ù•‰’Wdž‡é/LܺU("õg/šž7?_,à‡y6š¸UðŠ· +óÅRínp|×H¸æå¯^»–Ë]à MK++wk i͵ò?=w8ßrkkÇwŽý‰Q +.—·Â­Ïÿ.ö¨±s‚•J¸ÖJX[Ãþvo¥Ì°#®©~­õX[ñWJ ¸Øù[·&pç£<`‰ã�¯élé[’BäT€A&ú’ÊWGn+�×,ë”òsU{ÉH0øQÙ»iƒá{æÿ%€$èÐù%^€ý£Ï%‘Òš¨I0ù7‡˜¹¯*ü ?ÞÜ>z¼¿ ú‰Ë/ÇÕóðÒ`s®ÑX\ú½8=÷ÐÀö':r¸$@3c¸ÁV0S¤,^ ÚÀ Ѓ¤êUgìÁ×tW;#O;¨œ¶ê¿lÕŽ£òTžU!& +ÇwIcëéW-ø÷‰¢Ï>ÂüRúêk¿Ï#Os]ÂBõý„¥o2عŠlBqå¸õË8nŸÆ­ pÇ-¾}ýjÞ§Ùh�ž~×þƵò?ó})spºvú Ì›òÂà?i#o²S‚0ú"l½8�‘ù8‰>¸}ý"n½ˆŸ#Sì +�ájÂöéé?¶Úq;¨ýC3dg¬–° ãÍBøáñ/ÃçÑS¯ +�,PØ àc@‘Ï$»1žëØÄÝ´ž8åðsüH»è‡½Àù¿ïŽÙCLEŒÁì¥_ˆ}ŸA² #v`ggn‘… FÙÝý]Àce>ÝÝÕãÿ¡¨ürxÙ2HÇÜÜÜý¡ß÷§gê›w�ÕžÝá ‹æ#þ z�1«]@ߎNÏÎÍMËt½íÏí†Yj0ÙÏ?óvså^¥SW)G™`Õ–öîñYüºÉ¿[ð'&‘ük¼Üó–Êá-ë.pÃð±ñ)φ +ôXÒŸ(>‹ëOê!Äz•×s9ÜL�Uõ’§Šý¡Zý€ïªÕz¼pê�ç9Šñry�•zí› (¯ÚHÁëÕ0.U@u»1è‘®Tuá# Wel�++²†@6ÊåÍœ…H‚r +0:yšÃôžÌWÚN€÷¢ú(+üá Î ØÂ…6JFRt +wºï;Fî!à +ò_þÅ”>´ã@}›\@Þtö>˦Hôíí]&U�³¬_ª%`ùèKÂ1õ\œÿW;ÐÐÌ-6æ†{/Þžn¨H~��2 +#‰ôƒoF„lÀk3‹€E «„È•µÿœ]ºß™§tîÆàŽÃ�Üë¸Ô^W1yy•�{«½3ñÄz°ÿ+ëô�= ØaìÁH +ŽÊàM6“ð 0mÀ%ø6s;(·›�D†¶*8�>Ä‘Ìþß,ì !ˆþ/ý"Ž>;Hc!4¡ãLéûÅô-¬ ÷ßh€“�+Põ¿ËMަçãå€,ÀD`¨÷ýéÛsûÿ`GU;`´°‰Ñ áŸ|´Ù�› ‹³*@²ŸÎg¦ØÉjv"œÈhñÏç"[Pj#¥çc²²9̼ +y€´4XBºèç9ú* ÿ—‘Úûå“"«Óø°ì¯êa\yÙã("�€©©ÉÂxÞŸ˜GLŠ�v$µeä�²æÖÄ âßë; H„ ÕjØòþ¶œ¿qS= -'ü§‚qfü¯žV*Hþur˜¯:®û~Ø.1v�‚8ðæèõBÔÝ Aá‘aà€Òn—š�qé.â› !0‘àfj€ö‚Ù»-gç@‹@`n�ï¿ç2E»Žê}¿ª€ÛµBÀÔ€dúâ@ð¹`Ž`ÏhåÀãýÅÆ§�]­5àKÀŽw^¾ hÌÝ_Äë>›üž¿lÌMß¾oõq;ûÛ<¸{#èÝĘÀÞÀ]8û±P¼-àæHú4åO¦,÷5™´¼«äÈO¬AÈßÀ_b Iˆ¼=4¡�¿°s¦·TPjû||†dÒÕ³a’Zö— Gd`Y�( WÌG„^þMË]ÀX]} CÏnˆé@(F囹<²lã‹ã`#$Œ +@ænàÓzÛ¯Æõ¤“º’¼í1 Á$PØNˆö…Ï(Þ¼áá3kT{,€D $ ±ÞlÌcU| ZËÄð{š!hOÅPýo§ ܽS(áÿ÷¤äÔ8ÆwqÕÅžW(”G+ˆ€ ²8Ïìâîž­¡Ç€»û��öçûŸîîl™ˆoß^ú)° g¿�ô��þÏ]ÞŸkÌLÏ1 °·ÀiøGèÏ`à&…~*Zr¦XA˜7”`=MnÁ)Ë}M„Þ•Õº§jD…9a’Ý•¤`¹<‹ü‘ÿ±5à.‡üsd²AkþÀw­n©^aüæT~…u ñ•xˆMæþˆeä “áJßé\@þ>*FÇ!š¢Ø0ó�“˜«çm`ÂZ\zÊ ÔåvÀÎÁyö–Ôü ‰+/SÄtÉÌ`‡¾„!Ñ�èÉ”Z’�˜y–ïËГôØàØbãûÛHëIö1fhØÔlÄQp,|N€bA'!x½@ d´ë #¾ƒóð¯<íX=€Ž`‹ŒÈï²Û3 ÆOrjk{wwgç‘9€Gìी8z!^Él‚ÞHÜÉðEñ}Ð;Ͱ €Ü_ÜÚ?âÎÿÆ  ç;€ÍÍE$ñd8Ÿõ�·”¸¯2€ý†ºä™t6Uµ·Â>Q€Npñ‚`ÌsàhïœðOfØ�)ƒôæ(>–4_‰~ÓKbШ,ÜC*ØzÆGcÈxKcKêËZÖ�!€ ŒIù{JcWI{r­¬ñÄ!PäÀ"£&ÛP[FY¨R9ð|Î+ T[óqÉÎËÈ�&„yÿueß?ª´X.€kÓ�é +QòJÑ@#ã‚'�À§–FK—¿IáÂ�� `²-às÷tä<¹í`.aú62ý*ýS! ~g( Ê p= h;Á÷澌ý`Õð ä¿KÂ_q’8tp`'ç5È@ö?Ýßž…Ø·2€m>dÀncûèqšp©ú% £]ŒWy +4‹˜�ÏgIßà%vš�Í¡`÷G:¸½éè!ù2Áž®Ù7€E { +ÀB€Ð?yˆ‰I~–ÿý€îj„6x¥¢ùJ”!Õ%ŽÚ€/4>î*`ÉÏÃÃ/-Ãâ+E]�[kø«ÌÑöÁzp ©0½xy dد WlŒ]ž c�äŠLý+÷@ôH²}@oé™� ¹ÂÔ$2&äª�|ò°¥˨G$.¾#Ã)Ô³à¿Ïë� >�ÿï" p3Ï«óÛ´-]j¸€H p@x÷�ÐóK§X5%˜F²ÏÝ ·ÇRÀŸr_«¤‘�R Ì…Âù{P&ç:¶ÇsÍq^—Àqz@ÑP��¾t€{’è¬dõ€Ø¨“p|{ýèrgÄñ"€›º�©±xßòúƒ–÷çæ(¼Yõ–ÐoF#zHYÁŒè@ñÂbÌsÀRýNQà fØ�)ƒnPéàn+b¯zˆò^^�sù j5Ã�}þƒÈ°¼„Ü=YdˆÚkaTߨÐ.¤$¿ Ù,Ùd^À÷—&‚y&ÈÖ�æb$Gz¦8p/y”wú¾Ù*FÁø W,éSkùœ�{…õfüd%«T$\®?“àï¡0ŠB\b£dUà�¼©qÜy9j³¯2î×ä¦ ©M²“ÇöÀ9Î Ìì[%òžý0 ™ú³àÖ€°Ãô*ýëS�óÊvœ��º¯gÊÀ‘�œ±0up7Ç`“eû�ŽŽv;0ØY›/GÑ‹Ðå²ÿ�»Ò S÷E–ôã­*?–�¹™ÙƲ€‡–ÛûL€ «Lä¿Fþ+Z`[W 3‘åYþŸq¬ìf E>ë×ã­žö–=¿Õþ*>i…AÞ +Ð…"[ÙÄÕp¿'axqÔ�8Šš­Vü¬„ÏžDaüëV3z�kª4áa—Ö¶oÇ…\n¬PxûfnŒeãf T4Ñ®"¼òž·à*žÄ~À�'¿n=ÁÇ*] »6c6õáéÃÄÅW8‹jÎŽÅ�»F~¸�K.±}ÃMïYÆñ“@£—faá�Bထk£`m¬Ë8àœÔ†>€ð’â… zÀ\C—H-ÀëWËåV€lp1çUAÙ»€ñ0\TV¶ñ¥Õ\„à5ÙæËÂôBœqâH‚‹€à0úÒ�Åû˜ú.çæfgÔrÿ¾ú5úãm1H³L[@"Y£-àŠøþªu +ª@fÜ{ö€�ÿ³Sü óq>rç‡ îÜ)Þ¹311qçέ±kW¯]»vuäÚD¸ƒ÷;c£¹ÑQŽóÇ]°§v/–øå�}ÔF_·°#…‰Ñ1îÄÝ‹ìñöÍÛäoé·ïpß¾˜OØünþÅ \äU^/kâÏÉ£ÞÂEÜQ«€…±‰">ð‹[ÀÄÄ&~p «<À-¨4VĦ‰1Lxã9úáUþ ÚéÎX,R0hæHc,È_&ød~¦@i¼sø€_ÒÀ(åç*éÎ=¾o@®!œç€$ @ÐIÄ_m:úL0Ãîxl]AêpUséS€Íä)À>€²/§:ØxE°ÉÄ‘¥ýÔ(ÝËþ{–‹®1Ð'Ÿl76‘ Ä“ñÍ7ú=�f8S`£9€Vf -ñfÝ¿,ÿÏ–à_W=€è)ŸO9Àîq|ÌÆ´÷Tá¯�¿<�¿ +Ö¢{Eï]v¦†„2Š~ɺÑÆÓ/bì~·Â§_!)eÛÚ¨~�¤µÕn…Ñ7¨q�7ê…Ñ/5zp{ìyµp 9� ‚!@¦£§²}æºû€GŽ�?Dú\¸žŸ,,•‘6[÷aµ0nÅÕ�°K?eË¿bß±M"MÃ1’y6ä ŸÀÈTøV¬°ïß0¢«á°@S,Ìû0r×{ïdQ´Àè€áL2 ¼¼9€Ûú—Éý{Xd½øÎ'r˜Ó0×@/À­g@Ô¯–؞瀄ü¶tqçÕ�:€Ù~àó£ƒ ²þ›Jk?ùØ9€Í-åv¿_xµ2g�€`­¦øHîµ� ÷¹€™Yk¼7@îScö¶÷-ÔƒLRã/öÛ²pÀþäÝ¿& ƒÿ¦«ÇÏâ_azƾþX1Xá@l§ñ5ºåÊD�£ú•˜ÝöJ¥`=Ôø`@Ø ÝZ,Íã‚ô¬F+±,= +ðÙ|p¿¬ûùÜ�BaœÅlË,§W¿Â¡Ã½c¹IŠU‘9Ža‚×ÊÌó//—ƒjy°õ¬†* °‚‚u¾£‰c>Ú(¼yÏ+‹ì�Ý•¼Ï¿wÏ„¸€pP(0¬È`%ä$3€ +ÀÄlÌ5 ÄP>ñw Èo–ûKŒÿ x8€Ñ±nàNöÚp® +0ò¹è}Æ{z€×ƒk 0ÃÊývl\Aê ö +ìjòëÝÇÀæ&»$§/;Ö8ë:—ÈùE€ÀJi”ç7 èú qP�ˆŸìm«�ôç|oÛ…¹!ò¶‚95!ñÜ”º¼ú §Srâÿö~¶"9E (yEÕÁ ó)¨VA":V*°%¿ø¯§€| _Dµ’㘕çS?Ï\] å1ªÁ:’Ûju•²2Ž�b|,Àmƒ¡ã „ä%7¶Çô+¼¶¢ïWÃe�—ƒsƒçAPŒýå%¶TX^U1  ª3ÀÑD¨ê?Þ»E5uÆáro°¥ïÓóÖ=æ-:PHt �p!F.“ÅJÀÅeÿ­ 0`Î[ èÁ�>šàhß· Õ” (@& ¸ØóŠÉå’,@ÆÑ0QŒP;»[8íã£ÇÐòwÇ \v¬!𪠫‹p2^p+ÙÏêgؾÏzá“Ä8ô wS€‹XM»bg@î�òžÓ§lØ�s†WÁ…�Ypæ-ùÀŠæµã ÿ]ä¢%€ŒËûƒ`u#€€SýkðÍp}•!ö–—§¦VÇÖõØž•sMnB®/‹ãáy +àÎÖ8ùYÎqÈñ¿PàóI%ý>gØi¹\­‚eìHæS‘ì+|ÂçUóx"Òñ<â–FA‘,QjžJ’×¹efÜ�胿·“2Ç|¢MàªÒ¨~‰Ä^¢A{€‰2è8€ïƒÿlvÀX`ÉϹHD;ºøójP¿ÀÛðùý€eH5#¾ÝýY€Ç¬$ `¶—˜ìXCàU˺à<¨€U�Sô<èîÆE +}ë@ç  ›¨´Ÿ¦ +€À¦X9 ð×Û«»SPÒÂ_ñKì>1÷V.÷&kÞÃv8€ ¿ðöM¶†S.½¯¬Çþ³£ tÌz€a©ä?‰×Ö'dÅàú:û Fžº: +ÿÏã¯Wë~þ + w°Q ª|€8H„ûOb'¦e8ÖZ,xù‰‚_ö–g;X­�5’ËÑ­×p40\¸OYò«XY¥D€Â¼èÏaä¤}#×&p›:P É~ª=aÀ�p!&2ƒÊÌ£�ü® q�Ëà‡d¿³|áWT…ÄàÀ|¹°~M8  ã²yÖÊç=¯s�Àù·{€é“脳Â0 ðéî.€=„]ÞèXÃàŸŽß�õ€Ø`ç!gF`°èDS'¬Ðw` ið=iÌ©Ëà3Ôœ%€¸§.0@ÒZ€C'äèÂÚ¸ÝRç;V‘� DpÈúWÙìž#}Ðf—ƒ:ÎM-É(C_-[§ 7(Aȧõƒ_!Ïu>|Ž\øV!_ð§˜^WÉ{`É–—�ì/þ­@ü§`ÓÒòªÚ)¬®¼8(H8Á"€Iøäh®çÞ4 øžßáŒ@P(´@_½Álò6éÈ€„¦ â;&˸O|ÝfM@nŒC‹ ¯Ÿÿ‡ßÊ.pàWqæux:€£í¹]€°8H€O»€*=ÖÈ€’!Õº ìPÃàßÎTÈÀþþæÌ"·“¹;›[l ( €­š]V7‡À+—l6~47Ìd]2éßÿ$« õýÃ=«ø^ÐǸ;�Qß�e­¼Þ‘k dm­¯T}#—CRH Õ+µ`bÅ›``ž¹on#ÖX †w[² õ\&�y ¿N ëö¼Ñu¸«ÇÝ囹ë7næoä®ä¼¾^guݦ‘½Œƒ}Pð&§þ˜œõr#ôȰ÷ +û (X@–òyjŠ[(º, +ŸV½plɲÿŸ}@àF’r¯ÀÊ£ù±·liÁ�…„Áeo†>¬²5¦ +‰E²'~ê@¦6VpHøµãÈ ÀðeˆÀàÕà`ÿ³CÀ¶ì¾F—8L@cvº¤Š@[ ª�Zî3@%Â58®}xå§C[€ðÿð?Kÿ3à- E6N.ŽppÐaÇLÀgtvsû] fËK¹7®k¼tðºþûA4Q"MÄ>ìÁB=¦éÜ;ÐS€rP®×ë-°ºN€Ág1àòÔ’?–<Ï«‡þÍ;ºÉÑ�Ù —¿× }¡ÓõE¡`I6àM\g>vO-sfl_ÆÚ%ùüÂäTþ”Ƕ2Ý{5ÂŽSË>¼ p‹ö¿`5 ¯"D»Ã‚ÏÏ�‚ü˜8‡9ÿŸ{‰ ãȾN€É?ׇ^H~L¨@ìæ_«›ZÝ([g}a½ÞƒxÄ_îêBvw.áé/‰W/Ø„�™™»ø½…ù„…ÝÀqßàÒøn8þKøµ9€³ +À?ì,œ @ýÈ +€Ï&}>øí©Û¾Íé•àx¢Ä"@ vb=× ¨—¾ÂõjT—ÿ‡”Wý²¿² %€ÝžZ^Û(W׫죾:®À£CàAêîügáHxþh$ǰ6Y‡ LiLÃü8ý”biiT <Ç,"´ÀžÜ2Žù82(ЋŽà¾ßás…ÔBp_s>!üŸˆÂ—qYØS[STzi°*`ÖðAø!¶¥@­-ý—õ€L³p¸†ïO^ý)Àææ��Â_øn á˜)t—™OîÛÜü‡¨tMî€à4¸+1·ÉêV˜F\³‚yI€_ è…å? ˜fÎCÿST�+mV®­³àžpyƒf”×Uò>úd•5~Ö«õPàFþú•‘뙈s` ì‹qLyPx„Âü<�‹–Að©©Üª¾à¨ä“ÈH¸ÛMª5 Ǽ?%`‹Ñ üˆJn/€û×À|JÞ.ºá‚ÃåíY…sk´Ù |MsÇ}¨ðÚ Æ]nâFî♠οlïí õ¾ @&Ü­| +`,½˜�ê;tûŸ"÷O·H~¾áæ$ä?’[š~ +À§à·°ðh <À…ï†qÿ¾é„�Gl°ƒþ,0ôô§tƒÇ= ç�p.ê0Â�¯Ö¶ÍÇ«45JšÞ�T•�ÿÕ„’c:j¶€»²õAWâðrìIµ>måˆ~y¹¼<µT Y ¨À!°SÐùu¹A°ýûB´î‡|žD'èׯçn°`!–æ“߸âÜ’Acçob 6»ß7óÞµk>Xù CùóÞµÜ5�e‚^. 0l*ü·Ú@£Óc£#ªÜó�Åÿ¬ +Äâ~+øçc@þ@s®«O@Ƅסl^ÿ �Ž__9<øC)�9€«&À Ù¾µ¹Å^�å>µ/AEûÃÃs¼†28€Y¤òç½Õ@Æ|Âû5XT")6¶LÀ0Yi�€¿š•xþ½½‘ð8�ž?iEáÓ',œº®Žq +8«ÍF<¿)†5å¢0ÀÆèE;jµãf‹-yž‡ß}}EÍv;Š[Ï^´âg[A~l4aýóÍÖÉÉ‹mìyl +P¸‘»r3|=k�DÑ·A­é‹Â²Êú�˜»±-òÌ�ð +7Ùuiž ¼ªä||Ä’òU˜ä£šÏ6å Þ{åÁ,½wÖ_ëXÒþ�jÆÉ„C‚ ·c±žüaŽpáÀߎø)ðÍmìa½j7Ê€ÛîªóhIE àµñ€ܯ `˜LÈ—”P\Lº<ØOο³HÀÇ<»Ú ‡‡ûçÔøÁÖ΃-sä?`š°åˆ=,1‡Ákx +°¹9†Ïžûž¥ð&“Ê•‰`ÀE€ÔO-Üâ4K$]°÷‚|p¶�D¶?¿²P*z ¥ù‰œŠÖGóì@¿R¹[ªÔÆJù±[lñ»À¡µJ+• Â/9~V¥t\YSÝ@v·ÏwKübÞcåš84jÝ~­­”J^{a[áR¥„Ó³Ý}_, ®Zžü ÎrWß¼–y3ò32£WhÝÈËãgW¯æ886w~ë*†4Ÿ¯&é;óûœ¸sþÿ þ”‹A@i?Ù<­a°´†€ïinrÀoÙfÀê�ðü «ù£^BðMÆ( _ ¢p_ЛÔ9�é–ú»´×±�Ÿ‹^í)ÎLrS`@°óà‡bMÀ#ˆóJ‚Œ×ÃÂÑr(¼°9Žÿè¼7æH)0ïµÇ}Cßp'éùg:€~ +à˜O%¦JØZ!²Ý‚‡…lBÏq¿Øðí|~Ò‡ÁÁZ­äqDÐ"6ÌW*+•ãøym-¨ý2ðkQëo5—ÿ.áøøî/`*+,0,?äPžlmVò”ÓÈ@¹B¥R¼[IšñöÅ„åíÏ"ÿÖèu¤ÇW$®Ú¢ž[ ›~ãš“€éùM3üü�‚{òWoé�O#8×fnÂà#uð­·FmñVO=…„,€ ýFÉg„‹èO¤­�eÿù&ýµë­>8¨Y õ$u:4Cú•A. Øû–8b÷G"‰À§—öRžgQ 4IîtÆlB�ãßÚÚzð€°/ šÀN‡Äë¡áh9^GÀ&ø�ŒþyïÙ¹mÃñþõ·|’Nê.دõu·” H²ÓnÇV¸)‚_"+ŒXÃ{� è?|Êú¨Áòð›àçi«Ý†á¯Û3?ŠKìŒ'Ö£èëvøáqˆœ çÀ¾�êlò…­Šzó‰êêN4Ãfó”ƒùEѺ¾ šåƒ8(–˜õpúÓpáày«*"Ì_Á¿r�<‡é&' «y^¿`5&ÙbHYÚyî�ùÔ»ø8‘Ë¿�Oøá»ÉWXgÄù”ÂrÀŽÕzÀ_e bÁÂ!ƒB�¦¾|˜¸3ûŸˆ3Z®ã[×øOû©*0C9Zº®ãdÜÉ^âÂ%@�§¦;;�v&ÃNˆôtˆ�‡»÷9Ò�`g{úv¯€€Ž[›TðèÑãÝ�G*à%è^††±r8¼Ž§›sP€‹&UT@caQ_ÀÞ…^Œ üÂ͑Ҩ0Ë}Mî€8€×ÑçYP±��i.ŸËYU`(@.¿ìGa½ÕëayoB 檂?«q ®,4l®ÄÁ=–ð±å ›íjø�Søy=·G2{Å ZÈZ­^ +’$^%G|6ù‹‹_a;N¾ºº„Õryµ°“bÖ:àNÆ•Õ *ò£š6ƒçöeÀ›|+ïaöbuSƒ†\@8($Z4Ì�ö,Ã#õ5ÿg8 ½¸ˆ�/h x¼Ä0pze£” R€l;ŠÆ¼HÓËMû87ÀÁÑÞÜ&;Åå÷û €u ÎB@pŽUw¶öw· `[—.)‡ÄkqHäáÎCx“üïe�çLHð³ ïù�[ ¹À,û1õwÊô8טp ^õWà®��¦ãKÚRýëzh©ªçm„E·ŸÀC8€õ øÀgý MÐ.E®|Ÿcíy&PFªëËyùõ7F®ä½ š¯,d ÿúBGï œ˜'¯H¶UŸ�€ak{¡UÅ7ìª4 7Âz5\¯>iJ€p=•5]wu#^¨¨3ÞÕª …›x7_(‡ëk4†Ïž°Bc.  \b1{ý@jþ¦À’~ +‚/hè¬É¿—à…;vI²ÆÿWð`�ïA`�‰¤Àø�Y–ÛMj‘ž8̉$€ƒ1áe=yìN*m5°_p>€<Òc@`S§v)‡Äk)èËøž÷žî>xyЀC·…üÀF"]ÊôñävLj(Â=Àø$€Q|°‡”µ�C:�|2‡Þf‹¿p£ê³â, ‹ë +áÆ†žýkÜ_ðë'Üø$¨Æ°öAÙZ"U�‚_ß ¨NØÚÎ6*6>ª ‡ `ÿ WËGÈÞŠ©K¬›ÀD?âˆå1¼FXÇÅé®@ûzê³AáÂýhÔ£R�Œçóιë{…b¾à³¼›ð»�á œ. 0b ³1•¨9¿Òq?¬`/¬pg ;Ò7pØ�Tz°eðèñÑÖí FAÁ—Æky +0Ls1îþÖÆÁÿq˜Bü—äàG3¬ €ŒïEšð'!ù•À}:t·4X@`4Èä¿ +� ðóÑ<­¼!ª‚cZcÿ`é0za´²qö +ÀœCÁ#ë°Ã:À«»[À‘£R%\ᓃA �ûi=3'á:†oõŠpò©7LQ…'XÿÉzð}°«àl=ˆKk°Ü ÀêKž|\\ÈþM° úf͸€p S­Án°•Ïáø¬Ïñ>m È7h®�åø™¡_'GK³.:¸³½@ý]½…/瘂Ú2ãRد‡Ÿø2p¸ßh(.òxvÎl1ö`C,9œÇƒFà À.ÞÖxs“=7]¯Å #ûœ3H +¦%ŠOƒ�´ç7ÉÒÚô€Å9> Sœ•ý1|>PÖY©Ÿ©6KÉóoŽä98ûó¡"¦ä,(Á'HBVØp´÷ý�¸6™þãPËÞä³Dµ,[‘ýª— 6 á Ñ�ƒ“ŽPpv™ ê…)@¼À@¤jˆ€Œ€´Š…¼ävÉÆý1¨cpòß‹nÁS@ð»:öëVM2� ˆ ‘•É8xl}„‹øoä´À..Ë�o)\S¾ÁÀ%�—ô¤h¸“½,õ'ì™§C”‰`GKƒ;/Æ"kk2ÔÄ=(k5ìI8N 0 @`|ÜcwPÖ~°Å2+Üùt;›°õCO—k:ôZÊ6Ù%àÂÿÄ'¢%…/™úƆúÙ€·ø�ÀÕ ÿ»0Ûßè/V5€ú€`E‘$Í]…4äÇúF³Z^ž*Lú¥ Z‰7Döj€ä3Þ[k‡Vé8Æ‘XÚæMIL%üòRž­÷roÐ[”_”ŽÉÛŒrô€ì…Äô�ÜóÚ 0´*«�«í…XmÙ*Áù;ŽG媲wÒjXKÇ*Ã"ðzKžwüv±0¨Ö›Ð¶jýägÍ,\@$@(0ć5æ¨?ÂRþ”ûI! &&ó´ØWYS̹]¥'Ù.Á¨îd/Qÿ +_¾ Àpæ)€½Ò˜;ÌÄ—ÞH… Ñ�ÇÛÛ™›Ù9„H(‰Øl<Øy̧| È*@8ãîÖ¥Š^± @˜`XÀK¿Ÿë/ÿ㡞ª> Èï^ýƒ�´ç7ú;¤U�;ɿĀGëþWš¬Ã£/÷îžvv²OHš*‹J̰’L~¹FQ«YÇ«ª÷üõ¨µÀ)Q 9kf¯I1ÑLž ZgåàÖŸûðÊ!û #UjOá!½nU˜ðj�ŽûNa}y¼{çQ´qô�pCô7ò³5"ˆÛZyÖŠb\®€…�.Ê´D•p—ëüô]%+\¿Q&ŽáyÅ� �¹1ŠNZñ“'­Ö‰ÃßàíÂA^LTU5`ëüeò¯Ü@"ËþñQTw€¤Ï8È€ôäv§ ÀôKƒüg €|É2’H àL?¹¨5,˜!’ßXîsp0\BƒceK–t�­;¢ 㸆_Ô~Ý~R߈ë¤ô$\ !9®T<æ ¹Û†áq«DØú•ÕP8ƒ¨õ<~ŽCÆa!_X +–‚®΃�û?];mÇQÜnµžá’ZíftüôiÜÂ×µèÃÚ1·µpà¨}ÍZÎDaoEð?ø"jEpÿ§íöw-H@. R˜°ô›”7@‚+Éw   &ÈPz—Ø€7‚Ë׿Rö¿L€Á×Ï\ª>�ñ[V@eÌè€û ö�aö@ƒƒÊ°C�Gæhv¶v·œ ?½šè°`{ûáE“*>?´âOÚFÿÁNÚó}ï@?¸£wá3þÉÌ|¹Í`­$ÌFT÷ϰ°°P¼SäÚ-žû�7ld ù•5ns=ãÝ*b/l,-ÔÖ*~Ã!Š?¼S|‡#íÜÁ1*wJ•»üQ±81Q-XânÀ‘u<2GZ`mâøàîÝL6랇 Õ*k•… *‡„§ÑÉqzÿ/ ¸ûAéní\ ®háƒJ”ðõÂÝJ‰²pw¡ôÎ +ö¹[Yá­Û�/oM°Þ?ï+k+++îh  + Rß²öòùÌܧô·ŠÀfR áCL´YlçT~Èz§ @QÁ�íò°¸ee€ç•œ#â?f®€ã¾{M»¸5$íA{9ž"´CÀ2˨ÎÍÌñ$�ÅÍÅÆÖƒ��]à-0ü[œ¯ç)ÀË�dß,ÄðóCå +d ÖöêØn1B1�QîHî# Àç­‡®0iµ¾N^§§§­0j²*ßmz>_8n·_¼hÿö»ø4¸åù2Æñ)‡Ø‰ãÖß×âÓï~×úï¿ £§íö׬ \ÃWO‘LÂ;·~�„Û`ò'Šaô<<æÀ”ØÅ�À¼¶v�£qGœ ÷¾ ^O€#óy8ø\9 þ] ×kP˜ó+}iÑB`Ø2€C +€Õ¸bÇE@dfd£Ó 7 åõêºw}„Oë¯ä9²ÆO›'ó_ÿ©5ÁÎsY©�|V‘´¿¨ Ÿœ£«ŽK} +Ù?xy•=Ï –øµ!?ÂBÀ+ù¥Ö|¥áH½ڇï+­<9 Ϻ€V¨ê‘ºÆ�Áüj¼ÀaËø¤µB.Ÿ8]ø¨ôßÁú*x.þÛƒˆry™üÏ�—!õŸBþë·ÿä˜ïà"C,M8 BÈÛ[5§&jŒ´Ÿ}ƒc¢ëO³úµmC°v€Æ…‹‘ÀóK:TÇì—ÎП÷ +â;‘áŠöÙ-¸ë™j»±-ÐSñŒØÚÚ䘠И GÊ!!˜›i<¶3ÉK0lÀ… ß1 r‚�_ñKgÌ€ÿ½/wø.P <=€)þ†{±Î»é)üÁ–vù%&©ý³æ·Í`ÌSŸàK¬Ää2ŒKa‹Ìq2Ïñ 8D¤J€â¿·4Æ5«ípÈJË ?.ÖŠ_0u~)ˆW¢6Ï ¸‘Ÿ`›;>5 ’� õãù¸¦~NÖüµ0ø+ö…ÏZ•ZéW|ŠY­³+#ü€·�kfÁù÷W¯7ÿæ¯ÿæÛŸI1R¸€ppü',�9IAf�õa�:˜DHh˜Qÿs\ë8óË)€E¶½T@·Am +@bù;Àq_/^?»ã7ü)ˆˆŒ�P �GEÎdzd@ ` \ÀÎÇT•°“ Ý�ÝÍò,îíH9$¶q…ûsÓŸkøSxÑ ç†ÿ`eCœaøÞRF UÒ£¿î—;zäTp”>V«ê¥çc ìÝÀ¹®¼1r}© zžüìg/êфϊ@HËáñaàóKµ0¨¨ò�¥üJ±@J\7 ÿ½©QŸôÔ€•bþ v7|%ßúÛZ©M@ÐààDQ)üˆ'•Pc ôÇõÕ;z†p*À.ïÇAë ßÿ�ãÚ)N¬×›MÜý:»2‡àŠ'éüŸ0kòWß4ÿê·,ÈÀÂ!… ¶qZÔÈlòš¦_ +�–0ÿ?ÊšÿÆx9|OêóE0€3e +ç—ç¿ØYç•(q? 1ß*ˆ YþËàâvq€¡ÞÊXld © fZ€…€³¤‚ÀÀ£=Ìêí’�¬ 4ìÛ7,œ ÒØä3ŠnþãË×äøÀà°KÜæû¾²ŸìÐíÀùèà=@¸³àà Á1‹5b)Ûèñ:Ÿ¹W«åu²ÀŸBNýÊÕ+#7<ŽÜñWýÓfõ Y€’¶³f RÒ’±õ�ãš3Ñ”�2�„I ˜´ÎÅÝçª xÅ»uÜ>)�rï4¹> c{˜ú€Úæ–™ÍPïä®j¢ÖJOõ(€BµÞÄíÖÿ©Ôþ®UûŽÕ�`þ›Ê2à‚ñâPfœUéš/XÝ  £j’ŠC“)Ì.ý'XC:�/,ÅW›!s¬L¨“ñu8Ù:…€Hò8[p^&@l�“ÕôÅë穌¼C¼ëõ!GG‰ØÞÁ9p˜aÂ$°õ`k÷2 �uÃOŽ”CÂàöL£±úïwiþ2ÇÔóàþíóÀ§8ppt9`êÀ(!\ª�º/8‚ÜÇNsx³€ÚûâæÐøþòdny€7rì¹àEóEO„Lg—ýy{éUýõÝà#V e"îòþYº ÀÆø£>+üØg6¾r}4W†_9å/x¬pt?‹°u7â@¦Çg^¸2;g¤‘H§ ¥( +×ÀL� �}ã·•vÜ +ÃS@ÿ‚àɆ²¼<€ý0ŸS­7ÿúÛ¿~ºÌ¿ƒ ˆ0uÌ*{ÇF¯Z @‡þ\íA|~¸Íº€n_¹ä_àñ^ƒP@§ à“ ž ³Ôdèo…€¼¸«ˆ^=Tïûf¢¯˜�ë°Gÿ€=¥MÚã`qfš�8€�Áü�!¤#.³­M>öí˜=$$÷§§ç9|'K(ö·3 +0\ÀåçÏnÞþ‡pÁMè= S‡Ä0 Ÿ5‹¸úî 'Lì×pås#LƒÀ +crÈ@òS¾¿^­ÿögˆ±ÀŠÚVW}ñ¿úb¥D%9�H + üX :’NA>(ÍGŸ}µÈ� +™t´>`=§+ÑzLH +ƒ—aÀò·¥¯×*QT©À,@ÖõÓÿã¤þ"¬�² oî ]Ð�K (¼›jý§ÍovÂúN¸€pP0�©clé‹€aø0igQŸã?2ê„ÖÀ4“rrØ�-€†}Çè/£Ž÷Nd�— ȈéBŸš€V\öi b=⣃ €ÆÅ7€Ô< €s‰Ø¥íîn5¬pØ÷¥à²·gff;ŸòŠv�yÒíC:ÇòsЩ8p¿,ð5‘Ý +ÈnèËT%;€G)󓉥‰8¤0ÐÝ(¬FÌ û@.7rÝ#ÙëÍ�'AyŒýë§…íªr ÞƒøüheN4ÇQ¶®}·°:Z kï„¿XS)À�7rW +##…e +@Ì6ƒçÀÈÞí»Q•€…Šy ZŒK%Éõ;èØ†IR¼ÐŠk¥ãyVûÓ[j=‹¢o£µßF ¿vêas�ã™,« €U ªáÆO›/êÑ×;‘ƒ ˆqL¶0úêUþ¬ D|¥÷ª @X2À™~((„ÀO çKƒ„뻞œçÎQ¢[\¹e®N÷õœg ˆH ûiüS€»÷§%4 ßÙôHÔßd¯ HÖY¿ðRè�Y›Y„àÿÉòŸ9ÇàW¤O £ðG|ž m+ +Ç^¸h1j…€ØO£ƒÈ{;GG‰é™”€ØS€EäÿUÐ%È÷ò�˜à +ûÚ»á­"}®7›ÈG�••Ò"«ÍÁ<@�VŸ€À (f î�­7 ÀôÔóF½{aíÎݵ°T +üë#¹Â#ùür‡•¶¥¿1Ø|´â&Sm +€*³ë‚4íOžKDÑ‘ǩݩÔŠ¯¡ ¿[;>E⛨ò�Ú0ªÌÑ´°mQ®à³Œ£5ÿëI5jÙÉ„ƒÂ@`ZîØ+€¨€°B@‚QŸù$öiù¯j@g@#Ü醇ã<4À^Ì É\€�ýʹ™IDÂ}½xW–˜^$u.Ϊ2¥ÿ‰l³B<¾40›:x}ÖüàÀ6ÀÖNñõ{s#ûŸ.NÏ@æxCøcvñ·¥Ê46/œ@CþTÂ.Àؤi`˜+Z\s±» rŸÚ?œ� € €ž ht À:£=yÀ§0oä¼òO�i®ŸÂ;�­v?nZ•VŽ´" +’{ÎÈ}N`&ØT¢¼Ñw½ÊÓpáî‡í¨îç¯ÜÌ�ä98xVNC×ÍÆ�‘}œVZõú““VÀz²&¸²ãTŽ‘ÊJøE1 +kO?z§�¶b$ù߯ ß°á›hí;6eÄ +teö ¦�ÂXëq£^ožüÚn¬ ‡ +…Š�ë>0Γ$NHwóœ9• fʲ EQ@_JûÁyå^Öˆþƒ@’RÒê/‚TAÐV ÀÌ, ø ÀâæÖš~V|ıå6·ØÈwh8j>�ØÿôþÌôÌíÛNÜM;ìA~.œ¶/œ6U’8µ{08ê; PHö@ß¹XAÈàýHŸ¼éìÎÂ@ËÏqÊÅû�d¶Û Ò«#,:ÒŸO˜C?¡¢1p™°¤NuðjWÂ= Ô%¸Ynv` + ö‚—pËK^%|^YðÃ8(äù` UNõ �;÷ÎØåöÝ–êût*d×~Ò09fxüÃ8ð+¿øºr·µ[íÓö�V‹M +ÛqðÒI$`CÀ€‚Ê|\Ð<õ ãÅ.¸€p`aŒ1Õ€`zäSf4HçIwñK ßDêøJ@ÐîtCC„7¸\4àü2€A þcÖ§ €w•À.Òê‹a‘>ãLè :eü·à442È£ÔlR@1d†~9jX \ÆâÌÌÜôí¹M–;²h´K²Mz^~:õ_X7q}òË£ *ÀŸòÆ»0t½a©·;@/|Ä_·*?¼{ü›Ól¿(�6Åûf¼ökSª|š~ýöFžµ”Xþ1’×HƒàÏ c +†©`úN(Lä2ä·€Šû! LçÇÔ1°ËˆþÌœ)Ðñwº!áb"`ÞŸ0�ÀÐe8‰èпÛl±¸ŽÅfçNJéóS`7ßÜh8Ü¿?=3;=3³ úóySþÝG�ù4PüßÁºœ!á¨=T¸ß˜™�C.€WÅ»Îâu5¢°¿âèË/wXæ!Üw¡-ô—}F‰ ÿÍ�ñ0S°øXtÏ‚¡Ž`7!÷ïCuX² �MU¸ò8bw;>ɸrå�ü2³ûUdž£x"@BN@þC)ÂÖJpa­ŠoÙ„P„ƒDl(À~6�ã7paX{§=�Cz‹ÜU�läÆr9jUZÏpZ³ }áHw7n¾‘+°Á"¹ +³2"ÒRð!ïûÌ×Ë‚<-µ¢ÊD壈ý”×ãR\Çq«åòqøB¬fí$º§q†Üœ)Qû2…‚ATí¤âÓH•Ê« Éÿã3E‚åð2 [p¿L¸©ÔîlC‚„wf 9µÂ9 .ó ‹ÿ¸~^Û5– ïø2àu;씪€,À!é‡LÀ ¸O€ø˜`Ÿ:€S" ð =ÿ0/wëÃ�M, Àš@úÿï=dÜž¯ˆŽøüË£mG€qI¯�anQ‚qÃöé8€àfÄÝ8„ê“ÿ– Ó!ðœÿÊÞ0é!{Ía¿=#Hùr¹Bð·1¾ ±SXd†ÞØ”¶ý⯛Ívx·rÀŸ¸Õd· q+Æëô¢„ÇP +K‡}¸ó�Žyˆ0j…ùÜ•ë°ù¨�lxKíŠ=0ö�¿†”Þù†Fô¹ŽuëÆ´-ðÉ r,^aT†°0’�$&T, i€0aÍ+¼­Ÿæn°£"õ…*€sà… ÏúAH`á� ãÈW{AÈö¬€ °©0ëúñ3 Xš¨þ“þŠ!‹C   7ÃùR`£÷ßMŸZE€‹Ê-®÷ÀˆÄ´P�RËÊ3e�öw©(çÀ˜Î˜ï2D ’âð¨ÿ?;3KÈ{öÂ2œŸ7ÛÙk¸èe÷?$ìJÌÌö8*€Ú\w°ó€P0ptôåçû mKåX”Hv3ðÞ,YϙدÇú ðwù¹–Ð,Î5FŠ Å…wì ÌïÜùÁ�‰1w:vÛ1?¿p‡{ŒæGÕ'ˆíU|§ˆ�ï‹¥Ò�lz§8¿P*­à ïàPXç4?_òJc£…âüìàƒ‡q7võÖØü�;8ö‚§ïëÚ €ê×8À_î�ìpôK ‰Vß¼Ê~)ø�#IùÖN¤¬í�é�°§Û’,;À�4ðU-3¹o0ÄÕ Ì¨¼¯“þË�øØÊ‚Ø=˜ XŸ8~2ÐÇNP»³ ‡”÷Y`ÛK:Cê:ä²»âµé)À�@‰½Š%,iç7ÜH°ÈÁ3§gè¥�°CZfX«>üëR0 ྠ{wß»µóàv +â?îÿð°Á±„ôšµÀ6XXö‚‘�Ñ‚ñ„PŸ€°ªÈÉ­ˆó]8ÿ�Xå +�X¼Ïb€l—`aôœ}v¥ü“Ã7óaü˨…”úo£ TZ]~?¨øL³ÿ6ÀÞÈZ·ž¶âÚG§° 4Çìˆã)œ~øüT=†ý +�`²øÑ“¿z·žd×�BX©…Áqÿªuúüy÷1�î‹“n,ht¼ëù·'§Æ …[ùü6¼w ÿ‰øÕ…›…›6 z&é˜nŽs¯›Œû*¡/L° {ŽÂù°‡óåÞÎg¦›.  Žÿä.¯3@£ƒðÅԟŃ,/H€û­L”@¬w@Ÿwº¡ (–Zd\EÀ ˧]> ðÝÊ:ô·,T `xª¶û–Ö÷‡ ÷˪)�9)Àá³Ó3³N�x¼ûØzÂ)é.W@7>, 0H”³s,  `ªGìA!÷w±á‚i›½û�£?þ†ý½ƒÃm0ß^søš·ú€Ñ�ß'P—`.ñÏB<ïÅ—;€ŽXlŒ¸vºÍñ9º¯÷.sÕ@®Pòýhm¡ÅŽBe©—YhãY&Ÿ½ða+Š~[¿ÂÚ‡®ä��yGëÜ£Z OšÅò’õ%Äî>[p4ß¼_Šü{öƒÁÀ9Ô¿Y@îâ†ê,º"Àë,׸þ…Âø¤ïå¸KY”—»îJô°Cá-­ Ì=`®€t�¥<âÔXÁË#7ñvgêÉ ˜ +€• +pÚUH<¶Óâcã e`:뀰eðÛªM€;ÙPp±9›0\àvï÷€-’1›¯ ý- Ð[@ 8ÔçR øìï% ³*„ß\t@5�>¦�ÿ—mß{I )Úž›™›ža›`–JðžÌí|j?w:_å‚t»Ût6ôRÀ¢²Ì¨@ò ÀÀ îÅ—Gû&¬z€}Ì�øÖZ_Õå‘°.{¥hzeä�˜¾–ÏC¼Â»…Io¹°!@9þ0X…`TãZøëú“ä±AY಼ê—׫1óÚ~¹º®gó¬að†²ØžÇÖiͽþàõôŤ©€ @ފ¸tq6!çA¸™.@ߨcÒ­f1šÏ¿u]�x�øÁ»ùÂû…‰B~¢3ø] +r•žŸà9€4ùO @õEwW�І®§‰àçËó_)¾&V`ïܱIÂíþ€ì'ÒÄ0•Ý’*ü ª``WÇíKA€ØŸ}6fJé‰H|HvIYè0! e¸ô +ÀÑûÊ4€ÿ§8€Æ0¿‡û��=�ÆÃT˜B�yŒþVHè�%^b|/¾Üß–ð)ØÏ½#ÁÚÚš{H‘E¯÷Ù€€x^­2CÞ-Àx/ûVÕ†Ï@èjXm‡¿m6[�aX!XrÀæµ~½:ÀKãWªóÇfF8ìÈÈ�» +Ö\ý¡ Ûï�)ò*,LÝLJàôÇ1©äoÙe>.Ä&SɺÇã‰&L¸¥€ãA¢¸Ñ›p +g`L ·†”]}çH$Ìôqiƒ �@Ž€«—UKöÍôÛÜŠ1¿Ð ,È<Hù¿%sÓS@ÑßÝê OO°â€@8:܆LÏv@�>û8q—nà{)Pó±<×¥{v€¸µó ß]þ4<,‰OÁ NaÁÙF±,ÿ�$ 5¢y7>‡؆êb…m@~œ øñ�ñ Æ�ý,'Msæ�R—":f–ýÕ2ûÐg� XÁzð×õºk€ @¥|O¤–” ‰ÏSSËÌå2ŽüÙMPì¤ÍáFä=‹% þ=b–»Nã/E ¤û˜<lcrjJbá�¿…Ÿ„^^Â`¸•§\¤êÀgÌ éŠÅ%·S + ‡Dêì)�™B5 ë©, Ä>Zn ᩤ|¦ Àø PDÎXh€¬�Àùepç<ä.¶ž(olzúOJ@¦šè�Ap¸¸Ÿ:¾ù€`{çÀ¹€T=²*†+¸,©/�‡dïÑþ" ÌX]@ÃþÎì¹Å¤ ö?I†û<9À8êÖ +Í3p €«ˆ'ê\ÏÿU Nâ^˜Àâèè1&¼G@TY¼éÇíÁ8hJŸ(r00/*ï{…qÕ T;¸Î¾ô"ˆ@…¿ûëfÝjôÜ«pf•‚V` +É9X­n¨9ðÈH!,EªfO0%8óbãâÁ(C›`¦�¯WB®¢¼.Lz~>œšò Ò¿Š·��‘‹ G…€ý ] $Þ+Ì«0 C +@ÔuZ0BúÓ¤b?æ :}t€Êþlnã0 AÁñøº´¸²¿¤2€s/éDÿ>@7ÖÏð=I®Â€Ä¹‘l`߀GÛ¬dõ$û8îÇ�‰ÿøÌª=º™ï €ÆŒNMm2ø9oV½•]ÞÑp8�`Ë|„tž=` S°Ê@V"8+ÂwãË/¿<”øò?ÉXs ÑŸ]ë�»Á†)€Œº•…Ï{ÁñB|dŠ»´ÌŠÀÖ@ˆ8ѳƒoášüµÀr‰ýX`R–ÓB¹på +|¥àÏã¼�t0Ö™Ùèöß?Qö|é?SoqØ0 º#á‡_)S°Â×”·¼Š»Xö¼ÕõâDoÊNC!ü;*îœê” +gr! d*Xo¹y† ²ó™ W™#ÁÍèëŒ�h!‹÷K— ’:ÿ,¨–Ì ²¸àû™2»³´ iu‡þ–âŸËèH{>T# f`¾÷à°¿<Ü‘èÔxôøÑã}V°ºýìà2Xt·?¶ø_¨©<ˆž ª²Ã.Ç0¼ÿ!×Ãd8Ã:�‚ó Ä~M¶“s.õ7À,ý§#¾ Ø€,uáËÏ:Æc4iËþZÙÿ1GøÆg°Š0 P +"¯Å­–ø±µ`ÍAuÙ÷â8ú®ùÓNÝ[³«~9bea,òW ,¹‘¼7ÏB@U݇ +ô{QHHô>H¶G%*' ò4X(±T&B®€ÿÀò²Æ*^–‘s +…bqò�çï½e[—Ƚ],ƒRц6ËÀþ˜ª&I¶•p"å»T€ØÌ²>Þ@Ì7 _Yðº£R .§.*4ý°»©xI ¾§ ¡¿«Ðç)Àî9 ë�Y£øðY +ÀÑ qà;€ý�kËÎÖ¥ +Á wóÃÀ²G›3s3àÖùJ31€Õ�.‚nt@ø2N!Rú?D¼H'Û ) +S|ñ¾ƒé/?ÿҌԀí}æ>ßwç››�)EL¾Yx‡dÛû3¿ã<=(µÌ€SËËÊ*TÙ +h£J xýÓOëêWÓòù“{2›ˆ&ü©‚Wæwìu¯|cä õ5äknìK:ûRa–ýåòjyÝ÷§®ó!?ý>€+Þ-âãÒòj8QÅ’ÄrP^– +„¥âšWœš,¼ëM ’ÿå%•+NT8h@9Œ*,ÃRv²pH�0UUÏ�ÀG Ù|HúU€/© ©ÐJ^ +\´”PP»³] gû{]€:E|Î8Fo9€lÀþ‘‹Å�þv±É �NR�Öp€¸œ™è¯YÈï3€ussˆž`Ùt6 €Ã~ õ�ظÃÔ¸Œ°Wp`Ó®/ßð=9€l)€8í à<Eˆ$Y LŒŽÎ..¾7;­¬¿�fÏðÿs8ËÐÐeá573"Æ:€ÂÌ0YŹL|?<^@é*Í4<€=i¹Þ:â蟞<©k<ÞôIËû…e?ó—§–˜þÓ”Ëyø�+#HUôþ‡ º² ½¯ ²\î;­R…àEðÃU/Ç‚Š“ã? +,ù«° ¼ZùñÊ•s(—ýÐS½æw‹Þûïë+z¥Â‘ä®ðXÑŠâØÂMK% ‡�D\ÐȰP˨S€D§€H!œÀ¯¨z±$Al‡ÂÜ‚ÚNuñ¤xì¸&#ŸçöæfæöúÑy +ÐQÞî¨×Ø4æö?%ñu-ÜÊ2��€Ä‰üŸýå +�‘À‹m¶v†w##ªër `uÿOYhvÚªî?H-ÀpeÌâ\4{,€pä'Ô)Áz¡ä!�€90žÆŸ“¬Àô´c}ÌnïIpÀ“ñá#€Uêõˆmì7Bß#Mù|ÍŸDí§A»‡lm¿ñ¼~=Ž_œ<‹â¨urò,þ݇ǧ§ßžž´N7ZÑF܌ڭ�|s´Î°G·( ÍzóY•†…ãÂ]uÁþ˜ "*³ïÀØ4øu$À­1í·Ôžy×€?ÂY,LßÝ1 hžê·xº+ߟ•‚OøLà°sଈþg€ÝQÏS€Ä ²I€4À€-&Ü9–Áÿo·o›`€EÊHv¶¶8l(D ûm¯®­¸,8ÝÂ0ØÝ?BªL`Àþ#äK¨�Ë´rxsŸœÿƼS`ÜÔ)xgÀèÂÂIHÀ{ÊX.€sÇú²à3œëGœà*°¹QšŸŸH`‚NýÃ�¹ä•ŠEvì¡:À•ZÔø›Ú(_ �1«•ÖÖ*kµÊÝJe ³•ReůM¨:¯ÇR=pº¤:†:ò­R¥Vú FÊÞ*ý^w) &]ì�J ‰5Ž?? –B0ÿ®Wòæqàr0QóJ+˜T¿ðJ·JEìã‹¥J±ÌC‚Àz áÖ-äLæ½ühîj®0�;¯,àLk]°ËO`a@�»$/?¹j<,ÀDh®mY€80²c�‡$�À¢u +ãø¹oP½Ëøwç.(pÀb{@x+è("™*áÌi=€.tþt:8ÂöÃÃT ? þ!‡ —@öȸ,€àã}Õ’°ôÞj<è™ìÅíî;^U" L¸à‹'^.ˆís°‡T¿“®@_Îw½ô–±mR˜ž�ûÖ±_@Žÿ ¾’w�e)•°Öcü2 ¢cådªëåñyŸwú-#ë�� ˆ³HÃË­ˆ¿Äæ‰*'Kš-~¯èòÿbúŸ.p| +(à, �8€Ž`˜ó`šï€óꎋ¥F F΄�De>}¼¯§ö`kks‘\ï™ìÕ™ôoX€Uz[Üùù…±¿{ô™UÔS€£½Ù™Xòà…iŸ `âvÞÛàʲÀqŸÓÀÄ"³�ÛÓ‹ï-Z`dÑï!@êö­ú1€¿ê¦{H¢i“� +Óé+4ê¬ú¥V5à°™tÚ¬¤jýȉ#»Uâ“z=‡“ÌS}kåƒßnÜ9–¼rÄ_Ä,¨º5pä ^Yû�΄3a1ÆoÐa¬kÜBfhþÙÃfq±­Î�›(õ“¦òùïs4‹¥˜+%8X¼ìçž—Œ ¤D÷–�]þÿ  Ó-ço�R • Êì)@$e‰¸ˆ¦,€Ê¬0—ìg¦Ä¸o¥ÇayyÊ+·Á>°ç¤^M²“ —_áÀ}Ø»Œ w¿÷@àË2d>*ò㸮2*€Â,©ß_]¥”£b3¬–«õ!Kòª­ú eAüˆ›ùþÊûËÞ¹Ï_Šÿ¾75~#wƒÝ †•8‚nØåÿ� =S ¸C:€~ +�i €u½\DK²tYÐ×°'W +hÂÆñ HxYFp°Ï4QlßÙüÀ"€M8€þSfUáè¯×På,§<ÚÃùÁ�¨Õ§ûs3 êÀš€î/8ºÑ ÞDRÐqÊAÚ4Ȥ >»�è†c}=@�H!þ¯«ž§:û| ¸äÇAéYP¦€|§ª€Õªj÷µ×Âfý¤®s˜€]ƒjÀ`�t‹& SÞzÔë³QýÉ —GöWÁÁ–ùµ5¿ÿÆ¡ÿÀ«] +ƒññ<‡-×@°Wé»*!âøÅ8 Ö«ÍfŒ«mžlT›Ú΄ÝÂRÅ®"@ þPƒ% €ÞDzÝP0¼2(Ý¦ß +f%Á�îEh?ý`(8¢§é>Íú€ÜQ€i´‹É)˜úq·n/D²÷2OT –ìg&sb΋³Sp8.Î*€%ûÈÛYðéãÇ�v?fæßðdîP=3uVõ_ŽþúÉP +°·»ÿˆÅss3êühwnúaú‡Ì U€ß|Ò—öÉ;…ž%í üg! }°=¨ÓÓ‹Öµ+jæúí³ +�u™z•ˆñ°ÏL{}yê:Îö†*EÁ| ΰ¢Œ€9õþMÐ.HY«õ*Gê#ññ^åŒaÕ¯ßZgåûòF“Ïß�»^æFY€JX*ÅÁêª+žï÷¦Îô…jÜkƒja||jjŠ5vKïß#k—èQTWaƒÍ•ê8q.ÅÆ Ë^òaX�ƒ¤€eý§t…ÿ•ƒÑ_ +€¿Ãßgâ?²ÿÙÑ®²s;Ÿ1 pYÞ8=Ðæpà8Î&?}ß=õRàBÜ! öJ DxD ×3·ÇnOßVåNìsò¶£}ЬHê°& ™äPñW4z°”:o9V|>NXBúj$TÍ¿ÖJ­6]7ÜLÎÁp— +”WƒY€)Ï«VºA‘(——\À•ò+k!5£ ¥ Zœy—×�ú²ZŽ‹tã…I+ž€`èâÁSVB®Æpël·ñÙ(#3P­KXTÿ8*ÕøÁÀ'‡ª04åMݼq…¥«Í•J�7“…]~ U3eü 6+ûuaŒüÇ\ô»Í�ö��ð“tâáh¨„²Â>åù —¨Þh@ºå“0¨ €‘ÓÅä@yWàøŸt׸°³³Í"sN@ÐÏ)$ÿcû.Çÿäßù˜ã‚T‡”ì�‰�þ4ñzññƒMõ€!€«øf¢ÿYÖp¤À†®�âÐÖfÀõ³Ëº€ »­jbäÐË èÇ``â¢ÈÅgɘn�9ÞwpÔq®À™š€H‹U„Ûî©gLsUZl1PS–Œ©t,ˆîÖâ Øûj•D�1Åiså0¾Ël \ÝØ¨’˜K̰ŽaÑóãJ$ìÐð,t¤¾PDX «ãù›SòŸ + c1wÀSEOŠQDþWq�Uœ�MòÓrø­’ +)|'y*\òª”€¥›£#Ì­J-bE") .Õí£439a@ˆã®±æ�FUa™8þĪaJž +:YѪ€§J^¶~vnDï-pþ@Â�‚.&' 7RÀOxéÆ9€~Ov-ŽwáÀõ"Ø–Àªø…åÌìϾG [˜Àq?ff`ìÇÛñ½g‚Њþ‹â¼Ó€-}XÔÅÛœ]ê2öKf瘒ºÛ€$ß=R”ĸ~g—n¥· @!ÞÆ-ÝW ŒœqÍmQRã¢�ê˜rB„r¼O�uVÀÊŒO¢ò¾žºîºbU�ãJ‘=©-ÚUl +‘ƒ 1Òö��mu|E,dù�xxË«/ûåeú…õulñ˜µè°g¨<Ãå¡r@ÜÌç Þ$øO¢e@ +À+¹ƒì ó:÷Oà~Âr  Éè®K¥5„­½üõŸRømfz®Ï.¿GUyx‚2Âçþ¢G +ŒvQ%@Và6sü å›a§ŠÁ ypJ‡SX›úw¨nëgæ$¹À‡ä|¢.3€$?€sÊ9]TÎÂÊR¶ðίЪùkW×å°œ34þ쌽¥yˆC’ØwMšñb:0òP†dU÷2øO>=dc€Ž˜i˜€6†ª Èß%É|’Þw-õ Y ”�Îѽø {ü½Œ\ç +©ï> Üù CÁª‘Ñ\2~éCïƒÀ£Ž°zx÷8ÑAɨǾöÌa©ø` +ÀAt,9Å;®„Q!h×�“áA d‚;^yI‚€ƒÌ$u ¯BZž—ÖTÆv¯2hÒa™|®Â‰ \õ*³ø'½CÿNHú¯ãÔl©¤<¼î�6§UªDN láq3;aà£ï–ü0Z¨ØÀ‡Øå§@(gñ�Û`[€¬pEá«�¢@g¦o±�Ÿì(0¦<•ÞZí?ÑAyÇvóþÉ­€eC:€3pö)€ØOýâÉ�È&ÿœÎ€ØÏTž}çò +°M˜¡` @Àd +€·øO €Soß»jý¹-Ýé¿y�wê.T +€sŸêBØ.ؾÛ^2$ˆž2£|/,ì“8`åŒp°_ŒýúàxŸ ë¬Þ=Àz +¯žË›°K°"à]:äÍÁ$äúá¯Ãv‰ul‚ˆ¶€úªIš^† hú·J>ú2;„lüXÍŒ˜¹¸2éûÏJ¾žÑk÷¾8:p¢³Ä Ç¿ðÇKËÕUvV„«Ãœú÷Q¹£! +~‚tŸmq=l@äÐZø�p.ÿ@µnAø˜Ç/…æ:PÌÊÀÖ9…”Ê8eÁÏØÁØ঎0ú;ÝçQºÙ­x`gtëgæb:A¶'o³Zɇ,ègú—X€€Ív.‚€€`À¹ŽË;7»�:Rš9€Ý�)*”`]`¤æät÷ólö_áùEZ@ènÂ@#u‹3‹îÏØuàÿuÑÌÆ™ÀR ¤ûÙ%_BÆ ¨7’) }’ÜâSF/7cÒðãmm…œ ½Å€�ÖøÑlVÁ-¾KFFÞ,x%ð³ú%ð +P„*eC‚R‡'ö ¬Î„WEð. VE¡[ïW'‘@s6²«ÐÿÊÈ·^ Út 8À½F_pXÒ K_øã×ó„‰%ÿßÏVË?.³+‘×éJu5Ì”øëüI~%h•–nÕAífuò¹Üu(]ðõ + ŠY(&ì&²,ˆ…¸Æ€$ +à —Ùïu° T„§EÍ�µÊ38šó͹­÷ÎIrPž¾_Ì'Œû˜sLÖœ€ {"äÒÖ€�ÔŸÓ¨F�÷‰À':€í´“@ * ŠÀ© ÀarÞ™ÕÞô?“ÀJꀟã¨Ü¿{‰[„8Úß)áp�v;`woqÆ.ä|@X Ÿ¸Ì>�]&q£À( ÖÛ»“8`TÀ[+œ% èÂXÔ�D€3G|‡ÀЬe&ÆpfËýeÕ´2é9%��dy^iÕG�´šlÿFwŸrl/þ(&ý™8;`Å�ŠÊpû/çz ãLLÕxý<}§?€4õïïTèqÛ Ö +×”=àD®³)Àî£]ZA}�€Èà'yíÞ\úº¡í–_X”sH�c‹òš¥“Àþcx þ‰ƒ´ €ß.ÎüÜ®î‚ Ùu«¶r�.;È–(R˜æ3ubânÄ"…±]óTÄÆ"Qƈ/`Õ1ß�uÙz.S-0%£_7‘„zì#w“Ì Kó-6ä‚(|‡õ“g 4ŒêÑF×D®(~Sš'±† æ6P¨CM–Ë,)äø¡ëìÇÿ +Ó×jD%Ž)xšqÿ gÚ`‹ JËÏß„2ÕM�êÍh·ð!O½|SüMÄî ê¸:]ä‡÷ ¸¸ \{婺4 C|¡k £vwAð +7 Â0.•Za­V 2“E­ +†NÒØO!…asà,X.¨�e@ƒ„§Cƒ1 1é ;€‹ÊFsGu·Þ;7÷ŸØQß=P@€áËÎ*ËD~eÄí¦€N=W +x’¶Jôurð€å›æ6SÀFÿrb~RÀ²þàeô"–dÀÜ⃟ë9ÃÏ»—8áþ!ëØ9x¼ÿ)€Ëúì �²Õ›Ëé?%èf¼Câ€Ä œí)“†$ä öŠTö’`– +>f~ ¤2à¸oÈ8€´À�fG¿×¾n·¢Zµã(òòcƒÍëŽk€$•¬~µN¿}Á¡@£èéiëøëoÛí¿kµ£�_·Û'ñ‹(ŽžÆñ‹Ö‹v»]ªEìr›Øì¾Öyï*¡ÔÎo E8F߉'ÿe|ú·•vÀ«GR®:7·¢¯"“#˜žž.D­è©ÄòM\8Ð>Åã°R«= íä•J-¬µ¾Ž¾ŽsÊrÉå‚Ͻ¢ÚñÓð¸krqËAá`6BÁ­)  )I&öÆ< áÛxS$ü‘…=@rŒäPÎàhžPÝÖ»ç™2@‘>mpYpFð€¯]ÝÐÝ�ÈÒ€ÈN‡™"ÆŒ€àS€Æt›0!�wOˆ­ÝE¼Y,€—ôdJWôô\O$`³«`‘ +@�ù�å6øÍNK�Í+­-@æ).p˜2€ÝÝ»[[qÒR꜕4ô�/ÂIf_q "yñ“"�# +ãMò@óDõ…¬HêÐÌ/¤Ó;ókw*%o¡ä±G€«¹«#¹‰[wî‹w8»åF-–Š•;ÁZ©4ÏQB8$h©TZ+~Pº[â [Šó¥…ù’_YñŠÅ~6_*οƒŸþ ˜¹–ËåoÍë·<-4jÍßgZ)©ý>~\ÍåÇŠc%œ€ƒ‘â'8*Ç$…qÇuáÅ3”ŠïÌW~pw;qÛÂ|‘‰ šÇîX.à–p×óó¼Í±²¬À~â¼ÂÌm¤£'8è-žžcf,O4€p@ +€8| Ð%HaûáöÇÛÛº9Ý`t‘ eq]Æìî|Ö3YK`öÿñóŽ °ømÌ0€D˜ Þ›`}«A ç~Fìô…k8 }ç?Ú'àêL÷ ÇÕ=:ÚåƒF(Äá! Ýc@¸ž½Å™ä‚.ú$ÛŸ¢³jkI@alÁ¯8Ä·Ë º¤~÷䢞bcaìÏh@V²ÀÕ�@6<™¾ŠÛ€o٣߆¿Ä‘6 ì3£…/}Ï—DÏÚ¿¡´i¤£_ÅñW‰|ñw_ 5Üü ›š€o%U�ýYëÙ³_CØnoj9d~¡õͯM¾01[ßáG*Ûü›¹ëù‚Ï—¾ò‘ ­|/`ãõXÌV|þÇ1Œ‚¨XCþ†÷Øqªß@•ŽY¯�eË^áæõ‚{\€s ÷�”br‘+�BèrW;ôHÀR?«­5v›ƒƒK :€OT‘“Ÿt®1°-™×éΙ‹úx�ñb¾„ £Ãö�ÆSFû�î³_ p�êM»A×ÏÑô4 ¶¢>ò é´{Ð +ŽïŽ  ï‘€ô8¦Ø[i!@ê-.²�l¶ºn9€ÿi�€˜÷:‰�]EÀÝϱÒåÐÿˆmà¶øŒ�Y€¬À ž($I>wœ(›¤ùBÀ8Ï¿o¤´IdbôBèžå¿"ÑŒó;«ŽüÂQǸzj àR"nÁüӷΦú:€æ¯èB&Â_E_tÀJÖ#�Ãq”\iÁ 9f"ybýE|YçÿñÅ%@—l“/, ßiì4¶¶¸ ‚w‡»ÿ§gÁW+'HÞ;Žö˜È +À'!®:€ù¿º>ØL¬¿¥ÿX¨ÉDÀ5ýK–øúAd§Npž-¤*ÎL^º»]\ÀTNàÓ#HÀpðj1§Èò|àd�ãg¦ß¬¿‰€æZIÊ)àöÖ�Lgàšè³¶e±‰ñÆ!a¾–˜9ò=@P¯ÀìGË^qüwpßP: è8€ç­èW`¦9€¯ÂüâÀʱ9öF èrqÛ9€‚Æõ¨õ-Ào;±³?|õKâçÞ¸^(x�w\öWÃÌs~à'UŽ\B²“ëØÝ ¢5º�P ?[4ã[ÖcÂ×q1ò›au +²Šk¼1ŽA4*•Þ!Ì]ärP0h�ºÿža^ XH}G„�¸‚À• ×¥^@� ì‘)x&;ßàùt‡ýFz}r3-�ä_¦  # Fc,ßÞÙb§{àÇ–»8M‰‹‡¼ÇÊ€ºË ãÍ7ä¦vpôçÚ~&ï3õ5uÉÊû@{{hyléiÝß¾ :Ó9€N`.YUy†{=Øù9%€MàÀçf¸Ü4vjÌlgX~Î p#Jó³iúÓˆí–êguÀàÂ^q±Ÿ3'TƒÌþŒƒ‰ŽýDÖ¸z=à+:€ß9°ÄÞq:•ôwÈ…« @Y€¬xp§dƒí…ñt/Îuß²O¿)…—¹E K¡1Ÿšàûd.^ 9$söŽq'ZgÆa�p ¾Ø¨³Ëx„ðN„âG8ƪÇ[çñúÀâV +†�¡ +×ø�|ûM°YEœó��Î8¤¤Üê>1 G=Q$¸ØŒÌNÏ’ä@‡ø=¸´°t´Øz¸8==ÛØAÈÿ­­†R)\îôÖn\bç´,·Ëâ3ž( "?‰Ÿ@—Àóƒöç(XHm¤Ëb?@)À­4tÆs$í,ÀÝ÷E’út·Ý:à`fçÁƒäµó`«�?awÿh +gpd Áâ4,Â0Á[M™n‚Ú¦d£•ðOìz3S¥¿Ö�qéÄ—E?ÆD—ó3:àØß§Àœõ ØqHºYà€ÖïWpÂ2€Ð9Wp’qI@ꪀ']€Y€/èøÍ7}ߎsý "d®Ü,LMm”žê#é�·ÖŒàtÁº|@øÅU ØÈ€_7ëuí 1~[Öù0_à ,ƒ1ù�u›lr‘ËÁ ˜|®‘ØäsJóÓ Ý>„¡ãT� ¡Ÿ™,€4×ùÍÁOX&ýi®ë&˜kI~"ÔdÀæâôØÜ@ÙnÀ od0;ˆOgà賘H€'°“CÈûÆ6iÁ÷ �QU 2?ë2Ÿs}ÐÐÆ~¨ €:%€þ¦³Óîv˜wô()Dúo€ ;h ûÀ$€H8Ÿ‘Â}„@øRëñw¦ïî G'üϨ@"TƒìS€.Pý�£ŽÈŽ `‰?F_y“Ű4æ‡^¡ÈÊprÏ+úÁD!ôÞ-Ü[�ï!µÄŠŒÝ#Ÿ‹Áò2ëÓa»[ö–UkhªÜ*„‡û&‡ÚPÒòs†,€9€À7 {¿÷¹erõ~~Wå%Õ t€ˆð„JTÝ2ÆÂô5ˆLW€íÍ ä�%xÜiá¨HxÖ(Òq:p‘+Ã`©¾þsâê5—°Ä_И�ô³«®: g b0<‰±N@ÁMš3ÐûαdWð³]À`õú9LÊ@�—¤qU@܇8LƒF0ÊÆ”†Ý`u‚sE©. Ïß1ÁVÀHx!û!ÎÀd8Þ3@îS”çÇÙ%bvŸ)ÜU| +ÐqI`v¦¡z@|â¯NAq†û¬ +|t´‹]p™¤¿ ›Îžúwnµ\]Üçá!د¿÷mI‚~{“Õ¤�‡�m§¾·w°�nàî´•r^’ ©È:€ì¸Jþ‹`<ŸØ{ó€{¡WœbƒðŸ +ð¾ÜÖÐ`žWõKuU™w0OXfG‚ÔÚ`\S…êD¡êÿ»ÂøøÍüu€ìP›Ñ¯¿9? ÐÖ㻾ˆâoOOOŒã°à©ýš?xÑB>b0%È€Ä/~ûâÛè;œå×íÓÖµ6Ì qÒ:9ýíI«Ý~vrúâ®à»¨Ônų.í¸êÞ2 ÎpzÊOY¸Èå`0u7\eþ]äÿ�ÐÐ$€ÿ[öÞtÜGGn'½Š f’�Tç9{çWGļÀrc¿ ä`Å€Ÿd+}éÊàÿÓ2äÁ)øÂ%YŠôŸ½±¤ŸÑQ'h©ØŠÛħ­î gë†Äbcp@99l"- œÝÝý¹*�«°.€Y0°ÀÀ®×ÀíÛŽøî)²¸hRJ/ܨ»›>ÜÚ?z|´?;›q³ª)4>áÄ¥%øxÛ‚sWpxÀ´C|GÐÓÊØ£b@G<ä£W\Ä`ó!’ØÛaÄ`tÑFä?Çÿ>õÌ‘Ü{ïb*Náí…þX PÈ�²ùñÂ8؉"6±¯,)@às`_ìë¯�U(:¶ J,ûËKæ<:€ªÏ‘;�ý—Ù�·IIZðmŸ7fÌ£?æÁùÊJ©˜É�ŽJc¬ìSZa% b±øŽj#•5ÿîÊ ++w×îp1ÏêCبmk Ý]¹[›f-!Ö.Â…ÑÜÎ|€÷B\ärÐÿ�àBv,É.ަÒi XáÍÒ2mçž ¯Ì<ùÞgNòw !|g™D  8‡’_2�&Ü€yã?² ˜ìÏ.6v@;PƒS‚­Ý}Xk^ãôô{à<5 ó>ãLÜQÇ|:£¾[€òÌQ¸B*?Êùƒ÷¸‚M\ \@ôƒÑß.j2;=Š—˜Á©ï .«3‚E:€Ç‰0°ð’pÔ×»,@\Hg\âm[ÀupÛtHøXÊ€üN_ô ‡úúˆY§c ¬°zæ¦@ÿ'™|fî…%¨‚²ãt^â°Jâf@€ß) à†à\f€ë…©àíbèÀ�^9Á §]Ô·7æá1Ç뇨¶¯­UFßÈûËë¥ 8f«¶d?:ŽŽ�ƒZÕŽOÛ_·Â¾;ŽžÆáñq¥ö4:ŽZH׿«<ý%¾x?�£5Ø|Xƒ'OããÚü/Bµ{òêqT©/|ô‘«'íðï™à¦¯$ýcÝ~[%]�Þ-ÙjŽü§°s‰¿r,WÓ_†UÊùÛÓY ,^( +¦ ­¿§(°>€Œ`±1‡É*ê»P—Èû!¥º4à3=ûË‚LpGe,¦î€ñ|hÌ7=ÀZd�ì;úïÒkP(Ò¡« Àÿ…ĸ�éS +”-�µfU`ðÿ>ÀãÄl±²ÅÙ!ËúCwo†ÀéÁ!þ9c»’.ñQÂ.ÌàÈû%¡ãô2ý`$I Ö»Á @Ÿz‰`Ê/#Їï;p='Öʈþì{¯» €F ¨2€ŒÀ'îçj…àŒÌ`žf¾ùM÷’xEOû":nW>ˆÃÈ/¼™gG@>î�ýЀ&ÛôÈçWjß6›\iÂ÷‡a¼Á– ®ËòöJô»VÖB>„\PT¾j?/×ÔE ²>8^?GÞ¢ÿþß'`3)“ô±ŽPÀQ?vb'ÚG»ókÕäô[n’`Pmâ¦ýaÌOTÀâK€ç€ýƒ£Ï@ �`ýpsfNÖÀñLµGäÛ r ¦@–¤2ÜaÊBÀ³…ŽõY Ö[ôuã9ç¥èrL”… í§ì2õ'”þ'¼ÖS€sH4€eà@`ÖØH`û¹nàñîÌ,Ÿm²& ë°¢Â�0¥1@Ø –|é n”¥AtT-ñWòßì¡¿²ü$ãløï’„#¥~7ÿ{€= @²Ov“ßÅ´ @àz�_I\8€/ú8€rê�p ÐÇ800å™pöÍ7Jûm‰µß�•ö�@öç ÇqàMŒä|Ñ:{õù1T Z ªlý´JAK×Ú3Áõ@=`Çí•J¤̈5Öö©„Aíµ§ì–(—/…qP‰Þ©±ÑÒ=–Ú  5K,€Øn«ä0ØßE|V± ¾Ôã>)„² uî�E¢\ÍŠÿ€DçÌ4ÚaÿE +pÖ(åÝÿóÿðñþß?~03mÀn¢Å›‘@lÛÞvf ãvvèÚûÐqñÈHß�"?é$˜îèÈDeº€EŽðþ«P`K&ý 4©/f~8òK±œ˜ÕÒß`fº�*€z;²Š@�¹M>Ø�SG [[wà¦qi»¿¹è‰~BzCú‰Ñ1€exX$å�c.¼2H zç�nê§€+N²Àê¨& RðwAn,àà’29€BaÜ9�"¡„Û9•È .èë:e67Ïoè¬A?û +ð4ðòoæü%?ˆÂªšõW>Ú'žžÖAÙjú„Ûí«Õ ]j-„­¸¬QÌøS?8®ü ~îsˆ\yþæRÖÃh¡ÖytHü©@&@UiûÜâö££GÈPXü¹³Ëá“q5ÖäáÜ7»¸ÛnÞf lû x/?ˆ‰ì— p¡ÕçdÁ²€K*'ÃÀÅ¿®f�Zÿ³ ÛÀا&?…È=ºªgùÑë¹,@ºíOxÔ±Õ÷‚pâXj1_ +Š~±=Œö,�€Þ!¾Â‘�|î:;î¡ð=Õ^Ô‡ý×Ò²ŽtýP©„ñaäåGF—a¾½gq(¦ûpŽ@L9HÀÑŸÿÅ_þþ÷ÿüÏÿ÷þð/ÿò¯ÿú/ÿò‡?üþ¿üÖHËî7Ûšhvâ+[é +ŽA[‹ºdÜ$?áúqß¼u[î?2%IÁ¨ßÅKò�PŒN€mÖ(ý1S>€gq@8ª÷‡öp.€››î8€$ ``Î*‹ÿxßdnnZðxgvn{—p1;s·)C‚6@•ÿu?ZéÑþq¢)c-–}Râ\�J@ÊúÌ +a +�qÙqŒ ~0ºþ“¹€©÷”ÜòVA KÀýèÖG¡·–½`m"_æ7`Ê"=¾‡€hg@¨ãŽó1àb™â mÈñËDÿ.ñAäe¶Ã²dâf?ˆ�KÇ^þJÎóÊôøê[PÏÿ)ÕàÃÖÝšø­nŠCÖþ£>ÐÆq)úºu|G-ý˜%¢Z¾ yVá"êIŽþXh1xØÉ³Ã8öw@RÛÒ[»È8¡vÀiÖLÀ™¤9ÉË– >€ˆ +j~Ž °cnD‚ÿüŸÿËïÿùÿ˜ŸÁÿóÏÿí/  ©tøÏúˆh[ˆ�T€4eE$ÒCáfß³›ËÂEôn¤ÑVP’ïÒ}‹É>i­ÐIÆ~–rÏ"!¿–Ý ñ‰°½ô”ïÑ#äõ±û"À§Gt‹�AàænÏ‚ÖNÉŠ9ÿ õ­(Àà²ýÆüÁ©?‘”ôwZö�^µÅ=È:€ì¸¬î“¢0º€Ù…B©�ÓSðÒ[/V8ô–!b@,)KÁXPªT¼P=…Óx`?Ì@Yß ä`Ú@ ½ØÛPJð» ìlöaŽ•òW¯³ @ŸvŸPg]ÿ0hß=FÚ�Mj#ˆmP Bucdñï�ï„m–ÔÂøx:„�YñØ10®XT[¥6?H'Çý,\¦ ÁŸþ©Û�,³H¿4ð7ôÙøS…¢€Ä^|w´O_ÓHÂÌ÷¹8çI¹pxÀÄÿp´Ï +�qîg®™`¬u9$Xº>œzñ=\J/z“?I2 ;.€£ a¤à …‰[ÆQHò…°@â.—©A41Õ§àSi¾„ls Ê×ÕŽé;Þe ¿åMâ`>ù�ãàhã²þ“äÿ=È!ùG¢Ï€Ê(@¢ÄM{e%?’/# ðDÉ4d`Ýê÷RÚu +îhT›Z�רoß:þa…íýã§á�ã§­dã„ò¿¾^ Û•ïh*R8n¾>ôç~Æ0Çÿì‹oÑ=u‰Èä>ɼÖö¡øsÐÿÿç(߃ßÿ‘B8þ² >BÑŸ�’ò@ñŸàòàefg­6@7,¶g¡€‹¶oIxÇzÅb®›xð@üwÀ„@Ô�qUçÕÈðŽè)€€Ät€•Îm=RM`ªÜbcà1Ç+Û•líì#  »8»n™A¶ü3“«@ `éßÙ’ÿ,ºS}ûÝš[å.ö'å z€ë@ãdqut2w�ÌøùŠÖ®¨Ì€Ýu/ ý÷=ÉD)Ñé/½ž¾³áªÕ²ŸÏ®æà$t,ö0Š£ÜÈåsoårWz0B€DŸÌçBZ ÂF¥ p�}/s,üßë|øS_Z‰í!ºò?–¨?áZ¼q¼öÃZÔjUÞùE¤ÑQ‘ ÿ)|œÐZù[Õ"Nàhùo‰ƒÂOLK¹¯kÿíDú.ßmÊŸEèŽþò÷èÿ¯ÿú‡¿üÏG_:þ÷À€™aƒ.Iö_9’ ±ÙгÒIñ¼i„us#<€C…Q ´û´,€eüM²à"þ÷ + ƒ�þ�,€€8€GûüŸ›Û|ttø©²‰˜S!àEP   ;aÒï~}Hø¿Ï¿ËW\0 @·°¿O¤ô?ò¥Ø’@*`zÐë²ãŒ^ïL×so^¹ +¾Šý ®ŒäGFnŒó)àràGñE¼Â<Ÿÿ~©ÏrX d åÀ/Øqr¤¾ô†ädÈz« ¾ƇAÌ®Jsc¤-#c†'­‰ß­°fÖø^Ø{y + ‚�†­�~x°†ÌÃL€òl h­´NZŽü„ˆùo„?µƒÂò ÿ™ü“îr ½£¾-,V?\,ÁÊþÇæÿ‹ß;¶÷Á¿üþ/>ÿÜñ¿[ø Àê +º,‚ô·@™•.XDÏÂ9»$—䧤ç:j�HÎì,€)€9)À…üö)À"d” +€in÷Ñþã£üŠgkÿèhk&qX8+b‹> p õ3öÀzWò‡ôßñ| ..°ÿ’& ;ñ·Og€•ô–82Zú\¹‚ĉvî‹oä ù«7µë ²Œ0ï]ó&ržýÚaœmìXHÚ! Ó�à3º_7®“ô* t&ÀQµ?>‡ãfkÞÏ�®¯²gÒ5d ÕjK%È!�¾¿ ÈÜ« +�ªÞ]xÚÆŽk~å$`¥äÍ+ ÀÝÚwá%2Âá¸ùo—=@ð)¹íRÑn‰WêHãÿlGº�8úË~¹ÿ¿ÿ‹/¿t‘õÀE>gü Þ¥ÕRHÒå®uMWûžqÆ~{wÀm>À]+9°Ôo‹ ç�Wå$ ó‡˜cì·Í³¸tgôd`çÑ# +Ëà80ycfqg'‘ÀÙiU +»lTа>÷•°bQ“%½Ó¸2¾� H’þ½ÀõÀ>s×Sä®çÉFÀý… /1~•�C +ž‡�×&ðo,‘=È]uÛpˆd'[ŒŸÙÀ§éG¾1{qÂðòú¿ó½ë¹:]=HÊZ@të' 5$¢]©µX Š J’�2¬Wƒõ\©I Q«D±Á>tÌÀßÈÕÓ{ êLH“ÿíqÖ�tB·p +pްàÏÏ1ÿú¯ÿ7ÀñßE¾m>@¸½ÕQ€E;¿ÑŸéªÒ UŠè]p‰=Àò@ŠRBzZ¦þæ@r0©¿ËX é/¸(:)ùµì8ðœi¾¾¢˜�ÿsr�w¹7àÓ£G»rý2A6/ëXwŸ�Œ "Û®à¯S(H ï‘û,Ý7?¦Ç9 L½´–¾� H`*ÀùàzŽ|\ ¼Õ_ˆÄ_˜Ï% …kùqm�¸Q€+ÈÝ, “u’«4äÆ ü{ßÑñ�Ê€‘+°Sîƒ@æ3ñç»y.N›rèßÄp"!‡+VúOp‚•J‡Áz À|¼*2Û�™Rs0¹ú+,ä࣭(®ý}ò°Ÿ€,@±0Îþªái  Ãÿª£dâ–n­ó1ÁŸ¸)ùÔ ~vÛþË?lÛŸüñ¿÷ÇüHô8QOÈ:€ ÿ§΂ ;88/à€ƒ‹|ªþ£ªÀ�2€N¯Àd/ƒYY]gî8€º’dÎö}ÀÓlPÿc—ò»EŠ¡ç�;™�ÐT9|J‹qÝâ¾$ÓýÝÇ��ï,ÎY¹Áþ£ý­YŽnh{gö2õ�þóg›8Ncv;qÿº;ª«‘³·Îÿ ˜@6Ø´  è°àCk8rÇÆ\ÎÕøÑì‹îÓIùx¿PÈ[‚ '?5™/x×Gý)Œy¹€äñ&‚ý@ÿÂäÕ·®±ºÀøM>4œÄ›¥þع0é-�æXͨàM’Þ{Û�š,0…í�’O 0#ðjŒ;ÿô»ñ‹o¿yr-7V딄¹õ8fþ?l†­Vëôôn­Eñ»Óøô´}úÝi�ÄìI˜¯öÝø»1GÀúGpOžá7í(dhµåÐ÷ÂÓv·KÑ?µ¢f:WSü 8úÇZ{/åëŸþ)·Ø*6â&û˜ìŽ5kÜî~&`æ�ßK>Øä˜ò;ú[kb¿ãÞ#÷M\L8 ļ¿øgÇõ¾ PLÔ³'~Ô`ÖŸ±ŽsSp½l0%;ûÀ§Ä|%YJ»vö·1�ó¤>çJüÝ +»þã‰ØØÀ€)h}~@!Iÿ5Û\ll5:�’,Òw­,.Þ§˜Û9üôñþæÀâÜæ£Gût»Á¤Ü`€¶ö#å €°É“Ý)û2 F•ýïÍ!õ'Ü @&@¼O%à*seè¯v4À0⯭ù�ïÞóÅÂD~dÅ/roâëQ¬#‘W¦>Ÿå3¼ü[pñùüMoªÎç=f ønb"ÿvám®N¼�Ÿ°_p °ž7V(ÜÂW8ä $E€®õý ´ZÏØ4çéÄÕÜû>›ò³ïñ(Œž†ÑñÓZÖŽŸVjµð˜½{+8ÿ|­r�lŒŸ±ðÑqí£5ìÕâçµÖßá·5vŠÜÃr¿V«=ºðü—Ö +Ð ²_—¢¿"þø=)‰{‰ý]‰¿4 oOz!pxnàYÀÈD£Î¨Ìþ­1��:q`kñKÆŸÕAMç厓Á°í¸�oq±I nÁqä�­�Y�8;0ÿGÈbJç\ÙÚ¶ø€e³î0æ´FOÌ^À>}üÜÇ î³ÔeG¥®`sîö ¯{8X-j9€E:§rN°>”÷w`Ú¿³“€iè9SW>€Fnä >Óƒí;q‰¯C��! GàÚ5Xù±ë£ùÉQÈÀ˜^N üp o,Gs× + =¨Ÿ¿‰= þU|ñÖh~ôúhn”2š»>:r ¢AM˜¸51Q¸Õ¬€ `E`ǸA僠VY}ct‚«H¸Ð9Œ¾¾ÖÖ*@é.Ç©¬­Ü­|´P«­­ñgø ;�*•µ�Àï;O�kkµJĶÄ5UªÕŽƒŠï'&TÕhmm-¨`–À±óߢü€ìÝeÉÊ€º@Lw>;:Wþòÿ�q,ÇÆ«ñÑx›VÀ:ó€XCˆ—Ð!¶~r1.…;NŸ‘늡Ôñ€sò‚߸’+`î®#ã2 ŽŸ Kû5WÙAcqft`Žß0 uksÈõÏBø�Y€9–²ÊlNH°¹9{[ãƒÓ ΜH¸¯5.]° >ØÛž›Ó‡a\È^âøþŠÞ̆¿a + rw¾è²ð|Žâ„~î +i®á€Wƒüê$Ì;Äõ^ØSø¹9 A60‰ä‹Ü Èì¦À)M +Çòs@ŸÀƒXúÏË9(×,-€iÀ¬²Ü�8€ýG�÷`ŠÐà8€�™™M8•}n^ÊP4ùwm'e)÷�À'.Cà!ŸnϘPqݶfß'+ɾÉö3½È-•·wà +ƒS ös…ólÀô…h¹wppð—Žì}ð‡¿Dà?Y î@í �„´€Ø0U&ñqÎNcê4Kr÷€mþèQII–óI +[b!~Ú è’‹Ù½PFÉMnGÁ„`†�˜ ÿø³(Lð…«$;@5Ø�›žÙ�Ðmo7``J†zéOâo€Äça`À À0Aíþ>€»¢I©’HÀdäæz*…¨{³0åç˜þßb_7Xµ—| Ç1û&6ùùœ}àÞ`~’g¸Ê2DV &Le΃‘ü<Ä͈p#ôND —Ч¡ ^®øÔ³ø£»§|èP Ãfó䯚Ý|Qâóÿä @}=hUC| À…®²w¡JÚ\Ð`Üì k¬5ê’¸Z'yí;Íù‘®èí§]ÝGûÚ­»íà{ÿ²ÀÑŸ+˜+¢ô”c^ûœzÿü_޾üòÈÅ 8~Ãó,…î8€d 0�ðŸ¬wUE¯ÙÅ>€|âFð‹d…Ì`®]ÜçÛ9€ ¼O�«¹Ý 0‹ÿ*søÍ€°³ÿøÑÖùq‘ýÿ-ÎÌZ!öÚÞ¢ Ë4‘þËð);lÓùÈ8>�|^0¹¿!å?Ÿé]¹’ÔÆùåã2(xe +€—œ£¤`9”‚µú!D5ƈõ«ÁØD°œ$ô x”Üä[ù¤v‡,]€eÇòs7¡p÷Š µ[­wjíLã=ßõýb%aø ö ëQó¯þªÙl¾8-}óÝ·1ŽÅî¾…°Yåˆ!«~Á«¬¯? +Ç­ìÄÞb§ÁQÕ!óÉV�¾¶AóÞ_Ü`{§Ëì�ø‡Iý¯ +�é}_mzÀ˜yp°ÿ_ +ÀþÛQ?@ÌçÏá8ˆÞÏ4�Ì9¨ +0/gôêmVnãSv^.§Ÿ`äÜ °Ì¨x�Ÿ >|AÙþgp ËØ3Ñnð³KÿñÂN¤­½ðޔد¶Ø+(G!”ëYx‡J°87;×@`n`g{“ +¢§øX0qÑK}Œç•àÃЀ@€@QØ\ûKÀþDÞ`Á~öI sâdü‚jýn²¸Þ/æ}y›TÏ@†2ûÿ[^& “,&ØëGªü91Q(\+â€ü dC ÏÅ�ÿåñë~Q6}½·jȦ'rÀn~*ªÞ…w‘ʯ#q'ûël+Ð|ÑüÙIó¤Ônjàæ|m2Á¦Í«áz»VyžÎà¨i ÅÏ"Ù(î +öY$ÏþBú¢´ûpfú“ç¶Ì¶pô'óH>qº@î!úýÅ ø—ßÿÅ#Àç. +¥°I°¥ˆ‡è¬¸­AtùS(-hüùhpüê+ðüHÁ˜Ð@£<è †¸æ,Ñïd¶>v� ѽŸ˜à%^'ôÇ%/nBæt¨¤°±€¬…•i‚õ;(ühnkn€€U�q„ÍÆâí™ÍÍÍn¯ß÷…Ó1ÛtQÖ@ìa À¾ 4Žâ“ûC€4 àÊÈ}3#ÞRÏ,ËŒËóOúøÍ5 8)¢¦ª ?èîyÖž‚â\Ár�잀ՅxH¶*ôÊåòº•ù�cäyxÑyË7o”&˜¬#‹²RùâI5éãÃW›a¬TÖ¢Ú]$äø ˆþ„UêõŸÕŸ4·Jí'€uøþðÃpÝõF ˜…ÑñÚ9YR7¥o"cSvcWâ~ €áâWŸLÀ9 ¯ a>;(øË?ß§P…3`›CŠíêÙß&xÏŸÃûã…â¹°8vÍ@%�¤¿€óéÅÙ$ª'@ãÏâ?ðÿn‘ØÛSo�¶‡Š v +—è.`•G÷´!Y¸“‚9üW‰†¸B8€-Z€‹÷�øÿS÷GÍm\i–(Jw©D‰EhH j’M”Ù´ClÖMˆI˜4`%Ñ¿‚„L˜ŠQDòHôe?ú¼‡Âw"4çÄ}pʼnzI�v¶›Ýª‚唺fØÕ¡®þ ãŽö�é_Ð?a^îZëÛ™H€ ¥š9GöY $‰ÌD"±×Úk{çÞÛÎ ÌÎnÒ Ðl7è66·àÜ¥9.çžxáB€@ãOͼ@ À®G Ñ ?÷ç|héÍôÄ;þ t4î@Þ»és¹Üë¯çò¯¿K&xÛ`1_Å;lQõF˾·þæ¯j_(¶ÖÂy ÷bïaÆò3 ŽŸ¿M"¯3o\V¿||0ßn!wG¹¼çx¾qo•JIåü€ÀjÈ1ƒ×9kÍ·C +€Òb‚·˜ÍûÁZû ‚²+ãÉ‘2Æ)ŒÌôçÑÿ}˜tÀÀ.  \è¨ g8€�ægÿì߇ï~ûQ³Wb oŠÿÌÛà $%¡&@<;5¦ý'ý`°4»'B÷Bµ‘±ØèX݉|*~ò @6îã¿€‰@¢ä½½•�ô6Ѩiñä¤Å’ Nšuþà7ãþ œö,ø?3·ÙÜ«ÏÅ1]€»"gƒü¡æn—ç Ç¸&ÔgLvA .ûǤ@J¤½Õ€‹pßäö +€ˆ›Ÿ€ÃW'!ù‰+˜Å@^Îûþ4ï¡xæG©ÅÇ0—�ËM°ÄϸÁHö‚*ÄÊó€Üøì)ä¨^U?›Y¥”;~®–׫GUãñZ·7‘öj)R]ÀzõJl"¶Ú Âü‹Q,dQެO¡.)ÿoÂP  9lƒ)�+�ïÀà^A�2Í�½ÓàÛ¿÷þ'@ÉÙúÛªóu«NF ŒLY €'àÖ +x#>÷`Wåÿž +@|ë­-öV [êCüF«‰„û á�þnªú¹%ΰ^½U@fX1˜|Î{�é3û‡Ô÷š[x�ÀÏ•ÌNθKr&D{ƒ^Ïr/H€ Às`Ì'°RÝšüÎÀ¤Á.½ó^ÁË]”€¿žŸ»â"ó£™ýÓ$x‹drà­¬‹Þúø�vÿ3x_¶¾�€‰ìëù×q +À"¾�ûr —ÍŸ�µtÀ&vóÝ +Ãòí”ØyW¹ ‘Qöw€û¥ƒÊõcW @àx�¾ú A º®Ð =€^þÊd¡ØCÒ=-ÿïÁ@`ìObñ‹�>;voýÿYxŒ¼�îþéßm mö9Ž.äê´6°¤ö@HÖ[��®Á aý62¥°-B÷$`ü_bdØÝ½Sk¤€Ÿq︮ñ¶K|1ˆì‰ +Xñm¥9k„¼ç��f>¨-Ôq­ð²�‰€E€Æ»É@ÎO;À®óœà!f'gjŸþ_0ð‚Q€®¿¥žgLº ˜÷kþ÷Ä4¿pB +ÌܳÙ!  _ôr¬¿ +ö*ç�óp +y¼4ókÅð2ÇÒªŒâ“¥¥o…ýƒXbaCE/ãAS²Z†"òì³§Jz0à““ëGÕG^ÎfüÑJ°R ¦Û�ÿ»†BÑ•7‚´^ÄEù5v̪agù›pÝ”Aª‹` hí‚veõó€-ýU÷t¬|yè:ËdÕwxÖ€„w2`¯˜�hÒM¬RÏNóþÀ»�þå»ÿóCvz¿ÿðßµd\«ÙØbuöX»µÁ–@|³©è CœÏ .Àh•†øÜƒµ�¸5€FMý•ÇÀ1Ƶ»ñ_ä 俉€I—9Ó ÅRåðl¼ŒkS¯#·C³Î(ò·0רN9€Æ=6d'`P@Y€Ù‘£÷ÙËÄsc/X Ü¹3gð`¼Oôw +�ªìˆ2ð‹Ãºµ‡$ö +ãŠñårBÌÓ˜ ËpÈç™W—Ë~˜ÅÚht}…Ý�y+^që¹+͂ʞ—ám�ìHˆmÕ…à™OÊæA«¶(ã× Mþ³O�2òõj•ùvlÞ*uW�ÍàWØC @¿xRxƆ?Vè*yµ¸ás`€Çn¥ƒ£åKÊwÛœâ4i�{ãCå¤;9üîÛ_6‘Rå’¾c°À +è[(lÔõTß3¢?¿Ü‘* ñ¹rŒ8ØÙßÝr°cÀóÕîâü‡šSâ›�#?`t´œöfà@EÀu‘† ¨ºS“ŒðC*`Oµ€¼Q®F#M`p¤žé"r$/x1�4f^ÄðZ¤AêÛt¢g½1,fÓ]]?ƒ€¾wMtkÀÿEÆ ½‚¿ä«k€r'7í…—ý€=‚’Ûåb†‹ÖI�çÁ:ø+Þx~øÞø‚p„;€£ ÈM¿Ûž>$çÉÿj«uܱ¶=¼³Gú²®~0ïgœ_ÿò^ª­# àv–0¾@@ÉÇoW®'ƒ‡+_Ø '€7’§&˜kâWq"‰Néið£_ö—¾û§_~¶ßdÅ·À’1Òn kÿGÀsƒ£äÔûU¼�ò5XT¯o`"ó6ð¬³LÑswÇrkØöŽ BÁS+÷ |{»Ëÿ~�Ì»¨£±ÀáDëìÊT$­76f‘ÅËðcEmjò€�j\ ×ï`¡±×\˜áX@Ö#`fdJ^àÌG�ÐëÙ ™T·ž–îlÍÌ>ß8Ú;X ÀzÛ�ýxYŽÙ7²ðXŒÂ¥ñ‰ g\ ØÙ§!�ÂòZ•œû²•ËyêO£¥ŽúØ +ªëQT>аÀ˜ŽFÈ­×C(Ép¯ø‚ ´±ûÎÂñïŽÿáøÙ©ó¿ÿæÙ“ß|ƒ¯^ÉgÇKR9ÛëaõË££§OãD#öÙŠ¢Îñ³ö“gÇ!oûoGí/[Ñ£¨uttô¤=ë<}¶|üûö¶>ŠŽ¾: +«e~s«�óõóyüÆãJ‰· ¹.GË—Ð{dRçÈb,n[È-†È}Ñ^ô×[’èÀ>v +øÑg¿ýö»ÿJ ø—ïþéÛß"÷GJÜi.Ô�MíÂ8Âw€{‹”ê¨+;J’ A�”éÓ\8áðVQjµu»M +N6")q>r!“罸ïº{tÎÎã€ç£Ù 9˜= +Cœg~ü ˆ*j÷\æèÀþM6¼Yò±]†�h•7‡øq•àà[ó†âÿ›?þljC¼`á~? à/¼B®Pò+7o~}ó3GËÓð¹`·à“#£�Ÿup&Æ;8q�œÿ­ã +K)–i(ã·�wö?ûå/¿%~ù‹Ïþâ£=eEpL¥»ÿ�}w×9ò.¦â�[¬ìÞ j«ÿ[`#ÐɨŸ†º'ÀNmÞüO ;u@×Àž¯‚c¹CÌ}Š@ ö+ !1¥²þ³vC P-C„˜3€cИ›a—€É-/P þ°€DÕ]ñ³pçNmf†59rƒáØÞËüõLµH,@¯¸Y*•VÁ]úõñ �Ÿ¿Zð¡dwe .y¥R¡Àô–=oõÓiŠ@ œbô+ð1¥ PÀB…�ì¼¼š¹8D?¤)çQ´|Ž ·Sh3‹,�Âv+ÀŠ* 8‹aðÞš9l˜Í—¼×ó—òðØ^p½Ë#œ�ösFOÚ_õ¬à±ÅŽDíN>iÃÊÃécßyôÕÓ§_uŽ�Û×+x=ùOØË¿ÀžÑ!V„�aõÿá›gO;�öq%øæF!jÿ +§ËR�Ÿ÷Âð }Øù¼íº 28Z¾<¨C'gµÁ -L@-€€êq® É€‰¥ÎíIÞÑ€ÿìÖØ0a6›s·ÈÁ‡áïAtM(1³SPÌVŤ}·ë¬¾àì ï㉀si6¶ï€lÂîn­a‚ìš@5·px;¢`ÍÁÚÛ\tùE% ^ˆ�\Ýò”¨®À¦Š +à Àm„Ú~Xs{$—ÔÙ# €ZããÚ&.9Û žþ˜Ó�X À.ésQffn1fhëIÙû!ð#äý}1熌P Ÿ± +n)s!£`!¯Þòßo‚ ø–ç­”±áŠzãs�{­°>`ÍzèØ@ˆ«ðI1Ìå/Ÿ½ÈZ€€CñÒ%œ ý3ÀÖ{ëa;ç góŒ;úëlߣ:¾€ãà XáÕöuŠÐRŒ?tí�ðýªñWâåð¨TùŠQ@ +x× T¿µÊ»0)8Z¾<�ßÔ€^@…‰4@äëç;%:Òp—ôßßwA·«” €ìÆ`k£ñLÿ UÒÐ�­íºûeÿ–¯RúÐe¾MöM 95@_.PÃŒòS}ؾ0ã§ô:ëwÌ!å∠ØÄLÔ7þ#ã'ÿÝ [Ö7ÞÇgt(Ìšllóþ_85@`rÁåô§Ìëm¿¶”e-€)­Ü¸ßb;ày£$&?�Ú¹ TÍ ¼©:—×Õâ?8.UŽØÜG¿Á� +„²Ž 0 OHý5� Ê GŽ �ÔnÀ}•ƒ£å˃uìHÚK +lN€^èq ù« ñúãI@": Î\ `°¹ÿp@i®Ö‡? ‘•˜77[舄û¢$ÿ·üš9njjÞwÌ�'�4ï:€}|݈i€NpGÄ1,ß'õÓõ€=ôw¤ï’Ÿí­Ó°½6åûM°h÷̰£` +ÌAÛðâÿìä\m»>€ÞÕÁoŽ0;2E�8ý¡ëd"ð¢1]L +À¾®ù©àÿ7{V Àqýþƒàø<}íäz@ÌÛ%ö*þ³.`…ÜÀúOý¶Fá&Ôy—¿Ö¾²ïuON‘긣à‰ÖŠ+Q¡P¤ ãX`fúV1 ž�ù>tÕã\þâØÄ’W\Á>Ìø±äX#È»~ž­Q•ü+î!(­z«:¶ Ž—ƒöÃa)^^þ +ÀjÜpоPp´|yý‘ó£@ àôÿ(XƒçºäwKHfdZ<·'iè“£A +pÂÔ6>øà>oI6·Ò™Ï»!føOÙ©Èv]æÛÔlnã+)zûM À.—¥&l kv•øšT5@Ÿ0þã%®B¶n…‰³p�E},ðœ¥,llà�ææPÜØnÔfœ¨mƒqS³(Ý’`p’‡ÙÎÉù?0 ‹)8[è™fÏpŽî}P €@ Ü?v®Ð+_u×|ïÒO$À5pËøêyϰÌ1¸�ß–­Í~tÁ>ÎØ †Y2·)sŒÀb1ðJe/�REìpæô§¢ô|ÖÃ'Ó* +5§ ÖÃųA ´@ù°þ¬Âà„˳–¬®Â`¹ÄGà?^:ÌúËël €³‹Gr_Ô…£åËC×Xù_oXuA@†ÜR˜&ŒJœÛi.vN ÿVd¼“rÌýùTZFjîFáÞ`­ãÂq‰Ú߇„ùñd™“}7ЬÝùXàY* &>y1·Y*0ÈP8ý9ÇyK0×à°XÊöRI)€ã…²Ê’ýBÈ2:€™Y– ¶kt4(àcßÚì$Š:Ê)s»NH À]M À™ +À+6pJPtÙMýí0»0<äÂ[‚Ð%3×,à€°Öf- 3ø·Äoª]ò±í Þ™ws0m–þ±B¾/(øAþÊØpÆš;pf@>tAØžÎ^ÈL,â%7̰Ed€%�€™w»Ô> +Ö±Öøïd‡ügmÁê –*aÒÿ†ç-æ2Ù¶P³Á4-_˜ó;ÈP *8â÷Ä(‰YRã<~’d;Lk“£¥I*À�9 bµÿp'îΦV»uk O½K[€mæ§o8òŸBÿA€gA=âwòëš;»[swP1þ Lï8¦µ*ý |S:�¢â?^8'­•¹']O9Sa`š@Ðv”…Ù�úö^ƒ�å›SŒ²@@9`kï4¯Í‰óÊôcðÜ€ýb'ûl ¨wî¸"€Û% Gö�°*€8Ð�!³Ê†¹w°Æ¶€ì €·ôvCÈûƒ(W Øs¯‘‰"PnWüÈV('æ0Õj±ˆ¢ƒ'`àR^¾ŸP�³S&±ül ‹ïäØ^!o= ¸o¥q‡õ? +‘û¯kA´E¼ýOg• tCVàF©ôI©¢ü`÷QžòùLößÀ¨ q GË—‘ž¬w…W @!@Tì�Í*7us{Ê ¬-úw€q1ån!ár²ô'æÍž2ØÏ)†c|ªW>öÒìçÄT�S‘0hînÍ6âsÁq™ÅQhºÓ`Z“r`{Z”éëSâbp�\%»áþ�rMŽÌàc| ×ÎÖX Pc; ÅPÌ™ša fî +0Ë`!0pî €]²‹ص(÷ï:¾Ÿ áÀÓC3ÿn;ËþéTëƒÄB²_ÉCòùE/ÿ&Èú„ýì�à^^-‡â½þ·•àˆ Ø`ÅÚKDÑwxÛm™¾ (æ³—†3Tê §•z<­8Â��°“Ë^¤ð›=˜Z†¡eÁ:œŽ*OY?ÀSÒ9÷ +à•¾.À@Qðž_ÉšÈð\ƒã(ðßµßbp´|‰�$`yÀ$ ëXg�mfo•Ä,©q?ɲ¼ëqÎXmàæ¦9€M6ã2£ò˜b`»?kÀ¯y#Í}N±X¨�ß =Úšƒ p`ýmÎôþ  Ó0¸}ÀaÔ'ý©sQ¾¾0Cð^€mv`µs¸º5�0§?ÌðÿЀýâØÜÝq„ï I`)ÉíÒ…£úXî¯ qqèm€4.Z,ªßE9€'v¿ˆFWÙÞ·«x�ü bì<`9¼ìJ&k¬À‹¡”—&ÆP®–¼ÖžôQÈe‡/]Ƀµ(�¿,þ£(¯À6` ]A€§Wò­qä@ Â!†Q¸áU¨tTx`  „'Ç?*øþ1”â1+_"Äxƒù²Ÿ:@ï¢ z3e½`b¡†Ý:ËÜW%€)€%#Ý Ðl>¼k)7=(I€=ÿQG4ò^Y?éϹØH�û:ÚŽm¬Ù­ÑH`0xƉlp ŸÿÙøÏÜŸzà@Ðp¯˜ìa'$`{3¤=éÇØ’š'ïÀŠ6ͺñj¦¶03953·¡fÌä±Ý>äÀf\Žg˜»:€?(`—ˆ`ßÑ +€sœzA‚Ÿs€n výµQÐuÀöl†·ö¼õ¨£&òÊ;íåö#cB•7~9jW‚°Z�Zj>T;~ÙúÛX°]Pµ€‚ÃÒD&û–âE"|fHξ `8»è[_ ;ÈûáúY:ÖÃGaøèËÎ@ØB™ÀÂønž8çŠþ„ï·¯—žE!9t ??v°.ŠÂõà€Í ìáXùaÜOÀ( u@2à,^ð`hP`r�)?®Å .~’ƒ;ÍûLl¼• ¶s "äƒf’�5Ü ì À¶Àà6@ +d™ox¹‰~]8#ò‰+v››3N®R<Q?ÉÀSKýA@ÀI@Âÿ> ‡1w’;€YX)äô°/æêÛÛÛõ¹Ù¹(¸ÎëŠrKªCäeÐtrÆ×”\Æšùœ@W $ƒ<€ë¨9Ç6Ó¼r=pD?.àúì‰@†ÂFí룃 ùl$Þø¿ + •¨��Û¤ÐAðIú•ð“ ­–ظÝñ¢ð,v¢è(ô=Þ*Pªä5�û«˜ÍÏÏ縆ïç§ \š×œÇÀæË¾»z]�Ïe3#ç‡q¼ùy>—{í9ÓÛ…³§Âüò|a¾pùÜÐðÈø8Ï© ÓÑ“_~õê|¡P¸^XžŸ~ ³«óX�=pÖØ/xso±Miúíצç_ãisŒ_ÆÏÏá;¸Caþ§Z)8V¾Dˆ÷  +AÙÏü_· Ø"�}îZRSNãž$ì¿,À3|²P)j�@Þâ3~‡âp7` A7–Ñûا€s1=á!h6þ-6 3wL¶]Œ‘a;ºÑ_ßõs¼Æ_ +�ÿ½`èÈþÈ} +x 0Ë_`µ¼`{Ca™É:€ÉØÀð(šép}3¾’ñÆúøÚë :€`¿Yc¦oÂѸÀ?Ö+Žæ§@åÓÎ@øÀ™‡èW‡Á!rOvßï¯~p|òEøé•B)¨T¼à×8î|�ýù{øÝ(xÙ‰àë¿Eà0lÞž‡æèéXùatO™?C€¬ÀSYÿ¤ +ÿ|Šÿ²“àÒÛ @úãén" -)ÕjäóÁ>³2™ÙJË$"ÖTOˆ€™þm|B'`ÏzÂüx’àyP&ø¨±@g2È$´Çñõê0˜þr ?çvN‚íâx–õ‹ÿp“Ss²VÈ—Ì¢0ûð) އêÿ8�Èü5Kã¿7ð0€4óm¢ÈðnA?Ìý] §€óC¥4XCGä/Ù0>¬´V¥iø}¾ÚZ°¿Ð_Ž#Ôg «û(fÛˆ[Eï­ Üêäñ9×ý5ÆXçö°Aÿ +ô*Óë¶å5««ÔÌ' «A»¼Æ°@9 ŸüÝêÄ÷©‰ ùA«Êê~k'¬WÛól̬ZIC!Ÿ½ôÕXL%ú„ŸË=+_~æhß–Ü=Bê(@€¯x'hl'IM9MüN9 ÷Á¹Ñ¿›¢Ø8g paÓee&–¬77·6›�XD&ñÓ·ícõ‡Ìÿ·Û|ÝÞ¦þ¤'–6ðu¬äƒß·Ã"À®äèN³¦CSrÜÑùøŸ�À?·Z@·ßˆòni` @äåI~µfïÀ¤¸¾eƒ�˜Ôéf؈/Œ€:„€�,t€®&^,]2Ò8Íà$—¾ÇÌ¥¹oÀp$˜ùKŒý="O¬2 äÇ3Ù;+\ûÏ ¦QŠØŽ>�m\-ͯsIüÇ3Ú <»çVcAð.wıvƲ¬`K=ãÞYpçsÓƒ gpè<¿™úU +ÂvËwaA|uõQtý˜¡=,Z3ájj$ŠðtÞuŠS_Æ“]™ò¾k2´•r¯ýeŒ×P2ù©£åKÄÈÈ9£|€ ÿíÆUÿñ•!A|PG’Bz#ëz€Êÿ÷ïïÝßkîí0áÅ ŠEB´”‹ÉB€|l@  €IN‘ŒñpÞø¸YïÄï"ó™×ã\À 6P!2|Pç͈vx'©flpçÿ5ÓYâÌ`ÏE ¸žà3rûîg 5ü„ííþk�‡É©Ý +$y0ªã�¦ $/À_‹$˜(À ⢠hŠ€#ø™ õc Ðmàòÿ V}w'¼”ÿ7™ñ,迸¼¼ 0SŸ®�!æÈ€mu9ä‹è²•�MCÙ0¨M‡Eo1{éJ‘¼$ •Ÿ‘ïLXµýÅ‘ŸpÔ ¿<¨"‡Ç—W«åò;ئ܊–�À~ʾ•&€qÎVظzœ;æ‘ø,`"ÿ/gF2y6ôo”+Ó?ͽ6 úãÕ±ò%ôGN7ÂáwR°V�, ˜áÇ“þ€Ep�ÜRB‹s%¼û÷wbÜGæÛ— ˜9?ŒRq�S�Käÿ¦jü7Vj¸.nþßÌ2‘Ýßûä-@ü: +7 þàë :äÿö6Sy=åsè‚8úÈ윣ü $ü?Yå§xï` S ðâ§â52È ¶Û˜S `õ²jÀšLŸî¥»Æqþ…c[}ÀÕHúÛ:˜eS�îÿå(~â³ÿþþ¤ýÀ÷VI&V„³KP™kÒ<¦Irb9qÜ2ß¼ŸÏI Ð'Å9À¦_,ûa•7 €ñì»Ä"À +ûßw¡ëgOî|ž/sÁF,8WÚfñ_z$žƒß¿)`6eû 2Ö!Û§UYë‡�«ÕßÌwüø‘l�Hm3pÉ3PzTI"“¯}@@è�U°¾ŸÎ_ ço÷ À0u�[wk} éÈ/ÜoÎÍa#nüA|›s"æf2³Ž?u$c$ïM{ªÓNVn7nÓöƒCà¶f.¹wŸÆ|d~2;µå¸Úh)Ô•m/üÜ”@žE^–°â¿^»’iç žKdœÄ`&Îß°ÍAy/ÀL À»AoðNA@âëÙ]´^xÁ®C—Ë} ¿U0`‹íx•â½Dîç±_üH£þSò8ÇN€Ì[û~%wHz8à¢`5|‚—3@Ѿ¿­“€Ìù[îÆœ`šƒñ{¼Õä¾g¡úÂ�½2’YÌñ.ÃÈg;Æ£Äü·`ø!%­p¹½¶æ£LÁáwÓø“ùð)r�« W°-!Q(pX³ÌOØHWUg`p¬|yøYRèó‚‚jH5ÀSV`d’©CIov!ÎýñDÑ¿ $µDºh~¼Ÿ4iq«Ø’°eþŸCn€¡ì«‹Іì7ÞºŒßñ?ŽC$O~©ßMø8ÍÚÜ�»8�mA¶xvA ‚à½åݱ0î‚ìiþç¹Ðu<9wŠòù:ŠÀa ˜ä?"Áé-ÌÀÌ ëŸe `Áê\7‚’€Á0Ód¬·pz €ñ¬p—Á @â>~¸ë¨opÀ6uÇðçÃÅäúã½"¬Â ¯ÆU�Õ‡+ðKþÁôAÉœ?ç7Ä–ü…<²öñ€¥p™*Ë÷l�ï¯øÊhÉ÷ ¼¬,*hô/Ó~Ÿ w6ÏCÑó3¯ú¼a)„Á/k¨?@õ‰¾^^ª� ++Pðss!ìA«£BtrŸàSXŽ',O£@ç *Žü„£åKyNÐçâ@R +à+Éχ%òÿn}v†7å#åÑìì[ Ã}'ÊŒcp§¹ÿ°Ñ/`5ù¯<š…~æ­·y×-¥vd=1ëñxj5NM¯R ,׿¶›;‚>fKÃp28Vu±6ÎÆÁX²Wà P;‰”íjTŸM;½è-ÀÑ�66à 3S¬¨ÁLN©?!kpû]#A"ð¼À~e—ÿ€¤€`·§E�€Yþ«n�å?©ŸŠ8Þ[è¯tƒwÍ«)\´B^¢ãYA.Äeÿèmî›å—²ÙË€¼·b,YVô‹EÝX 7†¸Æm“›üº^ÿ”ɵø=Öµo潜õèBVXÂÇW¯[ƒ¿#Q«……¶nò÷y^”�¾u„Âÿ:,@9xTþzž÷:¨¤c²[36(©·€puš ØÞ!÷ò‹?;É|‚•€:r@™?[9þƒQ€[(.C¤;ä¿Ëý‰ý}¤ÌR¥íà�—™c-S´êÉ[òŸEþÛÊ^ëP²�Ÿž�n‚wôš s8=XoÊ‚¾b:VY¾¯"@åá û þŸÇ3ø9eC­‡Œüd¼ €ñ„N@€A€Û0Ú‰@A@}�ŠžÒþˆ4žçvšŽü„€¹�c{8~Ÿ�T  ¯G W8á|ï-ÎÈlW Xòn@!, ˜÷Y<ðD�ÿsч\,zàÓºxÈ;‚}Ÿ±�î�õp:Z¡]Èz´ÖSÏs@{~&X¡HãCzw€ÆFmOÖƒ;V?—p‹ÎΞ�ýŽü|Uå$v“Ð Ú½+.(oÏ®Añpì` +ôŸš£˜‚à'±8Cì’/PË} '˜í8€/LôZÔ~ˆýœÉtc€Ba|Ïf_'ÿ¹Ä(•ÂéJ {åcä'8†>˜¾…j0±„ÌX/XË;úZÕø¸ÓŸ+^0á±­¾¶9ÏðY�@pªŸbÕJø˜sµWmñòÃÂß±àá4ÿ´'|ѦkìwÄ÷£·9WXCºVx=›½°‚¤äû Â�òx2Ç3îV @ÊëAÀS…—>Ì|€Þu(ö÷ 9‡ŽÝ.9&ÞMV 5Þ‰é€ñ]ÌO ›€Ha  +mÏËfyS>4@&\\z�Œñ¢\Šð™GÓ›¯£x~Æ?Œ3¾£/ÏŽaŠ(ôS öå>Ô‡Vƒ€GcÍ_ó!þ›Xp°²_ çQž`øù»J^ÁÇOƒ°zF|AÅåþ„£åKh®üŸ Ò`ýYNŲ{‰™{·×ÜOî64ߟš˹µ+ÚS88$×MÒ—�·]jÈ^·´úCŸId>ôØíø]ÀI˜‘¨×7¡(› L%Û mÜpMŽŒf]Àhüâ æØœßûaô—ðì`-ÀIN˜àPF<’›K4H(cdv’wÖ¬% ûaS@BN€“[ÔÛ|^'OHÎŒ�Å/ànu{ +Ŧ]p“ãöóáÀ+Ö#Pº?¡Ïp\]äë^ÖÌýŠîí%9§!V( ÄeüWf믔:Ø+—Xí÷ŽÖ‚ñ²`æÂå0×YYñ¡¤¾jàY<Œæ§ƒœ^‹ƒõlf1Ë?Š0ꌋøò°…/¯V Ç’FüXýOÿÕ<0@¯ZGøûucá®?` ïËü™åû溘ä°\¦Öö`T 9€&@*pç~�Ü�›�0ø´“Ù@%â…´�¯d:7Ñ +ÓÕ€('ùåïñÜÞ¾“º}×�G¦–S€…ÚæìlÍôÄq?Îi»˜é:‘`ýÿm¦ÜßFsÜwÀ4Ç“oubæ H³´ê\QŸÅ„·—ø Ý"_ò¹|þ…cø;8þ!} ÛW06ùïq0Hõ—èÈÖ4VÅ÷l–" ØÃÕí\·½èŸÉâC²Y,zå¨Ô¢õ•ìØÄÒ[EZs3ç,§3à ¸o‘e†¢yocaõÏOy¢æ G`óžµ ;š§�!À‘±!dò� +ðd¾c{¨!eà=6E°‘$ˆæ#v°êù©�W«åáL‘;ù¿Òv5„cåK„ø®o�Ô�e~ðߑԋÜ;éÒ +ЄÜê:Ã[Ù¤¢9&�Y5^LøpÚÀ0 šþ[ éÚü^¤³yœ"ÊÙ")¸§[qÈʦâŽÇa(ˆFú¤€TÓ5Â.:”ºõT_¦6 "¥!rÛuÀcrJ€8êcâCp‹x2"N f»ìPI3h_QȹÃ��É}ù7æõçÖÐÄ +À<¿ñ?àlJW&€w»vqD‡a}Sr|½ã£VÔ~íãBÔŽxpÈÎõ³žßyúôË'a+ °þàYûøK°È˯µ°S«†a¯ŠC={Òé:_�~~¹…G­°Ý>jÿ5ï<:Ïžƒãã6N'jwÚù¬¿Æ“xQçˆ#†ðËÛ8ÏjøÕ7�ãcÿV·�;í¨õ�'Gí*öã�μ÷§}ì|‚s>å "~>?–Çñ�¸A§ÃÁ’ÜäXùáØÞ W`“¿nÖopéÉ9€1€ûxãØ4bÀþÿAd¢ùp7Îñ™wá9Øuçœ8ŽCH~~Ò]—@¦'À8§¬ç‹7¤·&}†w˜\IÝ�@Юڀôï*À�â<;o·we&¬`Gf<Bß�ê Pg-Û²`1ŸL7Hvp‹s ?;ÐËËÈ87 WÞg °Ü_9ø‹;§¶‘ ÀâºFˆAú_Ð4t5 ÝÿZ¸úZn<3}µ°ìÙ-±œ­N—°À[|/�� �çòËã+w™· ¿¶Š ¯æÆ‡Ï�dùGÂ>¼õ)`ßUÞbœçZݦû\,?¥ÒòòuœØraäÂøøøå,obæ‘ñä)˜-{ËË«?­hž×âØünÁŸV(•¦J×yÃÏkü ü}øM™áÑ«ÜêíÂ|©ôÓ.+_"ï³J?6úguÿÇ<JO_-@ºÐ|e\s¬°ÂüÞƒýMã? °÷tú¸¾±�¢}cÃQ\€!@ÞØ�mwR)X¤² dœ9κ1fÚÌ¿Οæ˜§`;"w·?�S�C‰ø|o/b1±Q£X€Ó˜œb?Ø‚!ñeMx£—,É/ÐȘ€ÿÇ97 vÈøÉâŠ`Ã;[ÿV!lK`¥ÍäGÿ$ +çþDoŸ€ai¹´ºúi;ô+…|¶Ãà îþ#(•‚›¬ÏeÇsþcvíÁ’s~ûWȳÃ/¢ eIÞÿà€=q(OT‚°òðq–=˜ìÏCx‹ë^çt®‹²S�s:nVC/ïùkH„73'ÃUÞ±ü)O$Œ‚ÿ„­ÿr{8’_~|Z üƒÊk•ƒO¾À6�†¥{*áøGfóÁÁã¿ã/?8´s+_"Œ=Hø‚t Ȫj†.9ÛLkt}1€½æ}Ž»{‰,å> ½)Íû[ s#±ÇEX€ºkÌÒ:ÌB· @;¹§… Ú“ô$%cûw3ƒ†Ç Þ�ºîÎìm¿ˆßƒ®�ÀÀIÀú›`¶ðs“‚¤Õg'GA{º‘_À.3ƒB=€.*Bö›°õŸzKIÁk–àD€¹¾²~ç8ßœEÙ=qdò@0 €ÛCT ¨!�ûñè•¡á@ OÀ«›(—ÀªU/݃èéÑW0ÛUŽˆB±»1˜ü +Y- q9‚PÁ‚ÀÏS¢ÕÇ-ÌYýò(ª–[¾ÇJöÅ…�ÙÏ%ç9ø¼ý)"7®dØ{N« Ü_ÅitJ|ë#}yëÑQû(zô¤ÕŠ¢uš|ì­ã5êó|XñßEAFCV|Vsy/Ÿó!BOPPàðá +_"�ö-Øçx¿ +LÁä}Œˆ°À€Zj€)ÒÛû³q @Íêu¦ÊýÈj€÷ÕNàG(É:–#çÚø€: föâ??`¨�e…ðtyײ{’övþ¬´Ô¶\ãµFsýHþzv!)L½a™¶b�2çÜ.Û‰y>Äc� +·îÅøÏÀÀmÐŒ-�xa_±Ð¿Ý-,%é9ñaoÄÿŒúõc×1濪^Ü4èÀ¿ãs¯�ÿ¯Àÿˤs¢/¨€Ã`yö޹)ˆÊ¼Ã.\gÌœ±ý x͵­-ùyÞ,ìù×lF•E¯ø¨Ð.cž‘9¶ ô‹EHÞb¿îÖÿ {y¾Ù G0àià„Tw×)°sSý©QìÐÅËþ*¿œ§�˜‚U76�Žðç9OM�ƒvk…ì? �cåËÃÏRñ}{�TÔ�`êåLBà.9r¬è‰°€û‹ØÛ¿»0£L-l�Îj +ˆ¤ÍÄnù?}¾êLå�ÿT†A~X�šŒÙñDà@Ǻ_Ñ-ŠÿjÀœ(€5ƒ]‚zcÁÝÀ~çÂ>@RpÞí!�æïÿw×�ê§}6ƒçŒ4x/W›L‰ÿ¤»®‰{eI@óì„zÐg÷‚z샥b2/ù‹ÆXu@Àž®@;9v¿ ˜q€P0ž½ØëRjb£¹€íu[°ÖkQu�•{ ¶× + ÈKY +¤2«ýÙòGÍíü56èÔ϶HÇß«ˆMâ6χèö`«õu¯¿ E‚SÀ÷uæÛp#`¼j?hµ$l$h(WÍÃôÛ2?PÍÓaÎÏ g½?§™Ž88Z¾DÀ#38)Eªñ¿�)8I‚“�‰çd-À}ŽÖ·— ÀÔ‹øÎ4P`mlï?ÜÖP™(ˆýôò°â¿=¸¼ý¡>¹íJ·Áw¹€$gÎIT§ÀIk ˆ�•bü(~'×è†F.ñǸ|ö þRJÁ´|`JÓŸM€ ®:?Oâm æò²þ8ò ð�¼z”Âmà͇ +HláhÿUäÇFâ¾T€gÆÅ?¾Òëòyí–ž¦fîÐÎ j 8 `Gô'ÿï¸{äÄ샊lda@ þÙãÂðP…U]šÈ(ÖŽ±›�Ë~‰µâÝóŠ Bù²‡d»ðö9äúTfékú ¸V~‡ísÙ28,0Û·Š7 k×¼% +€½{.áNΖ�’E޸̠¶‘;ˆ®Fl' ââÄYß–CYŸä}VaFhÖøËm=4-ʱ��¢bM™»QÃ Ž•/d5€àÒS<*˜²1fS. .9r'bû¼óv¿Iþ[ `¦v—ð�µÞBN�"Àæ‡ï/ÔæHj˪c·Ï§ØÎŽ¿ôi‰BÆëgfOçÏҀ̿„ +àçà­ Á�:@¢ÚR¬Sƒt€€«ùt{º6ÐsÓP¾‰ÖG±Ôê·á$ª3T€ØH•”,^ÿÓ1Gísn+ÐÑ7š; Þ÷„71úŠ=ÀíÙ¼3÷§ú#±ù‹óìçŒäG!ü¿8|áÂÅá‹ö¸p±ëÒCš‡s‡Œ‘#^I­ÿB,—×Pˆ/^Þ ¢åÏCdäàüÊJˆ]ÈpŠM8±Æþ9Ík¨ AͰõ"‹Ú‡{Dò3€ Þesÿ`åÒp†Lã A8aˆsLg€åuS#q}Í� +ìã� Ÿ»à¯ˆòpÃÙ|IC� ÃòƒƒcåK„€ã¾� +èR°’oKMÀÀ{è�Òšû:€ÚÌL½y—)Šæ4G!¸±ÿ`ÜÈrð¹Zå÷ò , lp› -ãß¾­þÒp¼'å9ÕÉq +�@Lÿ„ËCçð«P@˜”°q8ü ~e�àV¶G†Î�œgï)4ü1tmxDáÉ&Z6Øvº±qÁø�Ϙ}/l�òæâò?'>XþzØO8ãß…Å–èõºu–Ä€ý$ ó7é��’ü¡•œºM�/\¼˜¹˜ÑãbfˆY¾=™†xV Y¯´ :€SÁ;Ud­årt ƒÜÕËpôÈEÁ/ËÔAœ%×{ {ÿ|—@î‘êXÃ\¸˜ÏO`I[ÿ� Ðf«Â`…ããú“ºR ßoχØŽMð´#ñêþ!ž‘»‹ÅØŠãüåÊd\KÀr¹zÔ…cåK„R¡#?_h$H J¹XÔ«Á%'@`wI;q¼³¸`ÿAsav¦!@ök‚`=r6^ÿq,¶tù?Êü‚€ÜO«ÍH-ÒÝ».@tWè�ù�ýuÝôÆ.œÛ?L7a� «eü™ÿ3÷O€ñ?/ èÆ8ÁlÚÄ + àE3˜ìÈŸÉ쨿&È€Û�pµØÙQû…@ [ìV`Ðÿb&vc  e +€ïAØ)¬´ÊÂï…U€|ÐöÛ¼–†›[®Jæ Öb>_lÂ#ÐD^3²sÌ�+vó¾I«ÎÏã9àÍ}ëÁÊØð¥lVô—^!·ïÌSØT8†~™Žu8kžÓZ¹SxÌ0Œ�}Hib+ÇðòU€jk›…G­.+_"~¶(Tî²~§„+(ýÊ¥ÄVNLRHT‰€°~€ÕÐI `Àbp[�݇MP�õ€5q¿ëøˆAÚ³î_‹„{éEÂý„ÿî��vlˆèë~™,?&R‹pø½³S LM±ÜRRàdÀ™‰X£¹}Y®( Z2@‰U-€ögEþ32°êO8þ÷Áåü1’à.þþ ½PP@‹À C;(ÌØßÚlµ_Fÿ½ò +ò9€ ÊüiôRYYåeÀêß$ùœÖTÃVØ9j±1]µ†k¥G�KG��ý|ð=>­>ÂFÈ_Ë>»ý®Fþ+*µ;_~ù(d�< ijî…pŸGϯås„; �Ø`/zµW2Ù+Ìû‹k0,°yQ'j·Âõj­G�¢ð ×ùÓXý…ì•8ýKQè—ø «Áú«'qæ^!Žg³™ Y?ŒZGOÛGOÿúIŽ•/?cZë-rF „,òc‰’¯LÀæQg]ÎKÎ"™ìÑã#5)ÙÙ»Wsü§ §§ì‚ÿTñœ‡XíUún €^¯`C†ûÙ vS}€“žôÔ貟OüúçârŒsCx’ÍÎð�b"?‰ÏŸŠ9cúÉ„¾4æ Ü7†®¯’í,Ø;®UX�\ǯ™K…PP@õ€,àÅa–ü'x_ÜÉRï't�>°-ãêuûöI ™Ävvùº»ïÆ�Sæðw™ˆÛ½Paxæâ?k/d2âCÑã/£¶fGGQ§ƒÅ(Ìg½`µPa/ùQøn°Þn?íDëQø¤ÍtJaØ®�MŸ’ªÿ@¼Âb|¼û8,äKa©}|FOy¼(ˆÀ:Xl/¨”V+ÈqBkÍs¬Úý ´#|ÝÁA%`�¥¤‡†½U*•Ç¥ãc|íoðå‡QÈ6H�°q»RbÕ!¾ü«ì�S*|Ýé„Ñ_D‡í踭q‚ØV(—=?r%hóu:O��莕/d¿`ô7ÿoi×è/ 6)˜”:&”mŽ»°§"ÀžzÙã´»Ëj€ýý»5ä)Ø.ɼáj�»D%€”llZ�à`{7³g‘?qØ*4ľ+€ílÏH-0î Žµpðö 'À=–Ôã"{pÔ�MÅÄúÖwžé@?ÿÍDú“mÈz@Ч&øOúÛE愇ÂKÀ›3SìT„s`¡k㙟7aʘù§CÍ{€Ý®ØmÎÍmqÄ45 Ú�ÜÁI˜µ_lÀœß•ÿÍ@°¼|}¹`³ëËËl[È ŸË\ÎMç +W_SƒØ’ïJ«Ó¥R)ϱ}J…Â<›û®¾vŸq97}u>7}9w5Ç‘wÆÇ±‘k–Ëö¸¥Ÿ––±É80mÃòXCܳpý9X¾9_¹¾\ZžÇ¹žÿÉèø8Ï׺íáwò¬ 8»B©4]º^˜í5P„™®À?Ÿ~[[ŸŠ_ÄŸry||d¦Ü²w�wF/ßÄïŽáHùAàjX Ð`š•ð•ü'0W#,›�˜ª5÷÷�Ù°0Æþ=M€Y–*™?°»h>@€±oÆ *ˆûÌñ9~Âά'åùxtŸÛ,ð‹û*¸’?Þ% ÿIhám~ é®ç*ˆýZÄ /€ÓŒ~0ëç &c®Á®fÆëPbêu²VÕ€0RŸ&Àò}7ÍÍ"Ó7ú›ôàMT00 àŸéÁÐÓ4ŽÛá¯ÅмÀ¯ ›<~öìwÇÏ~÷ÍÑ߇óÊÉÃö7ß|òø(¬¶Ú?:>þ¦Óùð§ýø¨R98£¼ttÔyÒ9ÆY1^K•LJ‡ïVؾð ƒ|–ùïs ;‚ÎÀqã¾<ÊfàØž×¯„¿ÂŽøJ� tüìøëÎ?^?À¹Á¡<ÆQÿ_~Ì£w:_¿]Â&<|úäe +�Wz�óKyüο?~öûgíoÂO8V¾L¸dêˆOÄÕä¼5�<Š + ´B(M9Øsiˆ1 ÀÞþùÿ ‰ÄÞhÞ%WInÖlܲû� Žÿ˜ $?žŽäÛu5ž!ý¹�é's{åý$=e ‡þ€±™7ñÙ{ð�Ù,oÀÛðÇ.¼Á¸}lÞßP À�rXŒc©"ˤ¸`¨ nÛ…úíºÅf5€I}w•mšec9P3M',@~9)ÌÌÖTDc @�‚¬•ô8€ÚLÍÀvà’)€‘»?:YPöß�þã¬.¡Ѓ!WÁeX_o­U"C_m¡±j믎þ毡 ó°ÇEHƒýbýúÓ +oÁS=Z©t¥g‘á6oÉoµØ�awlùl¾0º–gh�uŠÇîÛ΀³Ü§"<®tŽÚø6ï�=˜³V‚m?°~‡¬òËy‚„Ù»h8›xõ8³íÔÈ@7Àâ¿Ô5a?&6y%ÿ b|Þ\^J<ƒ€,Ì;»;é"À'ئ×PÔˆÒ��ïX)À]¦åWÿò#óÏpÀp~̨o +Ò}q’7`{ôÔ°o«Õ¿ü›¿~òÍÓ«ÈeyçÍ:Ûó‘1G^fû>ë +Šì$ˆš¦a�}â�uÇ]ý›ÿ²rm8‚†Ï�²íùh—ÚOøå¸Š +À(#YîWY;©˜?¿|¾Ã³òÔÕYPôÙæ8ž?(ü»Y[ï©Á²vÅïÀŸ—ÍP(À_ÿæožþþèñ¯b8V¾L¸„ó_Z ¨ìÏÔ›†KQ õ»¨©'iç�÷#!Þ… �ýrs³õæ2xÅÕ€E€]Ëÿkµøn Œ¡ Ô'qÿ€2xapšVöŸ4@¶c™Ã—¥áÈëÒ,&Òýc¦ ~ìqë=·€l?6ª`î�åó0â´)Åò4tùφ®�˜£/R=XHø/)üåÄÿO8¤x§p[»F~Fõ ¼ðò™`ŽUøCPÐß•Ü�@¦ Îpî+p—)�aÒ¼ß0÷7þS.fóËêð¿WHùÈmŒÀþ€¨ë­£Ö_=m…9Ö”ÃpØöÿ_Ž +Ÿ¶Yù†Õk|�Û°UNȪCp�‹ä²—Ù˜UÏ¯å“ 8 Ñõ°Ãoö2ð4øôýp¬ +|ÏøO¬\e?T€•RP +CæöAõ«Ç«•å/ñ=Ô·�€= ¡yªlv€Oþê¯Þûë§ÕO>á-„‚#åK„ÅÒH,€¸ï^bР I`»Q³Š~8€](ÀÝ»ðw›ØßkȸŒHD–H î`»^ÛàM€l`í?´–€X�ãËÄ›'¬3þóþ ;cFüà+Ÿ.ÙÂ(ãV»5àÃ�T&N _¯v'-À�Zc5^ÎÓEÈa·@;’¾¦º„¦sêG”Á;–Ýc f@X”ÈæD}{ž`?ÀbÁ+à0z€ÈútÖeiîÜ—$À* +°�vÈö¥ ¿ÔcnÎ]¥4ä{"�3ºÔö7“ñ–�·e.aê‚°ž<”u®³ŒR+êÓ罿~ソ®A@–·…åb±\ ¥À/­®²öÔc;!¢ˆŸ_DηÌ[ r‡þ 9&+ªÏç÷’{=aX@�L�àߨÿB¦35S@öùvEÀÞ—[úòãÜñaå8ðÖK±òz…ó-Ò°KÀáÌ[ëÕÖ_>•ôuáXù2a©4•`“€ãqkÌ<¤–¸Ì¨à.'æÿû÷ìÂlP%Õ²»®Fs?%Hz~9ö¤K À +nØ7Åm�HzË÷©b} +–ƒ»„ ˆ¹ ?y îã§Òû§Y<°KNKø�„¸ƒÛYRdW³®˜b+«ä(ȳ]3€‘©9“‘XHð?@‚~®¸F�XØrY¿{‘ŸopØ&^z9ö׺ƒv÷w03×H9W +hÝ×s!“R™�² ¸èO\Ê^‹1„‚¿=Ø!Ô”g;ËSÙ°ú^ëè½Hýz©À +?ÝP-”BªÜVüå±�)AŒ pÜáz…Ö»¥Ž�SþÍçH@]@läøYF5'òK”€bq û–œ+×£G8]AXðý£2~ë7óÏž=žêÌÙlôWþ/aÏ ¿Â†@ÕÖßüÕ_>qÜ)_"Ô€°ŒKÉ×’-KÿH§J– jlÂÇir)ÌÒ�S�{H~{ðÿÄ=bÿÁÝÆ\ÒPÐÔ ƒ€´êÕ“@öÓ˜1  pÛöƒÔçÙ³ìínØ©¡M@Ÿ"‘mãG"û}Iÿ7ˆ}>w" à‚£¿»€àÊ/¡ó#ºšvI‰9ð + €·âÿÇ[J|„` x—£Ý‹ÿ†×é»XγÕÜ›ž9€÷Ùö +ŸÛüG@e]tCÀZ@óVâL †7ïî*¥@.fØï· ü'濟þ—Æ2c—ºèí˜�aPˆO¤Y+W[OßûªÜ¹ÚËó‹~ öŸ·üùmv«­\àÖF|H#³Ræ§x¡hÏÏ—‚®×²ïÝ„ Õ¨ž5áÒåóê üTƒöòûñŒcùØ=kÓKþ#W¢ùùƒÃ +°ZºÁž¾iú� Ç­vpó˜íõ‹«æŒÿÙ±Ì𹌇 [GOÿêIà€„cåËD:•ôÑ1� ûøïúµ`‚É…¾Ö“æ8Ü÷\c@$6)ÀƒÝ$oÕ¶ŸÒ|kÛÆ&‡Án¾Û@1€ƒe H·ÚE¾`›O&åTæï&Þ¨¸„€lïià [R˜ý3×ÇO´°Ÿ{cb É{áøïÀ¢ê¬� Qt´€™kUMH.€ú6¶F®- €˜„*0÷� ràIʰà¤X^ö0å=s –ïq¥{À-™€ÓÀ�´ ÿw�„Ãs?²É]. +HNv¿òŠØŸªø#ÿÙôOìCêÆÔE_-€$@`Qt‡ËÕ?ÿ{|Ô~-B>š¿Æ†ýå€o/~x ðÖÙ[’@$&Ìþcµœwgþq� ØÙ.À `Ÿ�%fèù¼é_×"'—t? €}”2ú�D Žßþúf!Œlàs Ïw¾¬v‚ÊqÈŠ…ÿÖØ9Î>vþ袇mßûË'­ï¹CHD }3°M= 5‘€Yvm(¯¹K@ö®Ôs÷þ}µ`ùxpφ›d +hèHh\‡ªh `(€uð î3ö�Wš²_BquW @Î�0ÿÐO—˜–ö™m�ð•9ü´N¤©.ý ’lfÞO �ðâ4&qN€DOÅ~ö!X§ñ û­`Rõ½è®ÉHN:€71Ñ,Ńiõ‚ +€«îzúû+ç8¶�c¶»\C?¦¸@’_fä�Ù¢T5ý3¸ti,›Å#F¯«GëÁÚÃj]-Þyìä +=´ô ¯�„ÄJF„ç !À“·#ÄÊêÆ#ǯùäNìxyÖªÒÿŸX~Ó»F` + ¤Õ…9€­ç;€ž@éΛ-ÚAkûÝ墸pO²Ô~ÅEþ¹þ9`áYf<õÖ¬[«ýÌŽ·iÀ6ÿ­V„Ý£°róîZ~ùaËFñô8Ž0~´v€�ýo¶ñƒO¦+ÁAe:wÙ+àhe¿ú÷þÍ3ÁCÑ,åÝi�DÐaÇæVPøc^q};NXy:À÷8m\®ƒŸ^§(|T�½°Có4,=ãn[üJø£¡ì¬ôx1Þ{Ò~åjGÊ—ˆ$@ QÆ@&U“z'““ [`¾%¦0,Þ…ØßÛÙÛoº!Âì7x/@bä�ý}Ù|¬kÅÿÚÆf N€ýQhÀrÛ+°zØÀÙ€Á`Äu‰ÀÏbÖMÑ#û’Œ ê0°]úáŽ$£Ð«‚”à@ì‹Ä`/l°ÐÊj H° ›‚@7€×µrHMLR½X-¼Ä¸Ÿlˆ«ìlùˆÑðxÞ›3pp°j·×¹¡áŸdHsE¤ñ­€¸ €BÀØ¥„ÿ}Õ€Œ�+xE'ÎNþu;|‡Lj³2?ï³²��€yíÒã{D! Ë'ó` +À‡¤ 0J¯~é ry¼ð¤}Ô +«ÇÑUkð +ÞûaðÀ‹;±8.ý-ΫÕ^Ë@þ^…+  ‹¦ÁÁOà‚ùÒ!ïÃß„óÆ<�CŸÀ{áxç - +�ÍBGÇOÈv€<@â~4 Š_¤È0óWàÇ: +·ºòóc)Jý`ý%;w¢/¨õV2T Õßaµyœúu.PeIެrÉ+¶KÁ¨º‘ýËüÑäHä ½L‡>,ÂÁëã…O¢v»Ó™v!µS@êƒüörŠ ž\�"6øóã"øÏ/d„"¥Áôa¥T +¾®JaçI»ÓžîD¬„xùßèÛ0&kU¸örí™`ei^ÍZǸܮüO8R¾L(y:¤–Odÿ³³sŽþ““3ôåä¿bpwïÞE ì¿§ûN€‡t +rà9äG‰p™:I�8Lóo +°¡¸ŸJÜV_Q‡g`{ÁôƒÏMËqaŒrÝwä+èì’3ÛÐHÞH•û JޤjÀ3ùŸJ@J ¥.¹7n;ß�év+À)69ÿºøC`QÀ4`ý oŠî +¥!k²�­Òðˆóþ?J^È]²ÿ<™ëÀ0ØÏ2Îð%0B r„A¸àH¶'ÀL»\4€uË*\8ÃØpÛLóë ² O¶U��O¶sàÉŠõú±¶ÆøFè-vöÉ:AH~´ €�ÍmèðŠü—à +^óÞõ½©Biy¾”û»ãnÀÿäD3¡Šy€SB�íëQ›µ–Eˆ›Z©PÄ?ú®p„¯±ýoÐéü”w1•æ�Ÿjÿ§ŸWè !ØRý ”%t8ÞR‘áÂjëi¹œê¬øÐ‘òeBÉ“I^@©T¯LÎ.9qˆù‰):fÿæ¶évöv�û³$�€ �¼�2poŸm8!o‡€ÿL4ÿi@ê« �mð”ßã¿ÈÞ#¤3^Œ±] ßG¿ßãeà|}ý»Àn½u­p¬ˆÁ•³¶í›L²!�>Q €·Wf™~˜çI(Æú=�Š ê4—°‘' pÏ%ÌÜo%äþˆ32ÖÌ{ìΟûñ ð ˆD¿¬ý±µzùa_ ¾Šv†xû_âÀþn €yo€­â -c€%e¨²Ô Â�àk¶„''©Ëþ@X +¢2›ûs3þbüÂ5áj"š~ìGae|$ëwþáY§]:>ÏO�D|Îðù²Øm�š:×£/!Wëå1\ª¤) ¾Íø[€J4ß :íß¿¶vž}ów�Â1ä£Õß=b¥5î�5ŸE,þÐLÖ#ÿé}|ÿ‘óÿ„#åËÒaÌ~ [heR>aR0Soªa^lšÍÝ»wéþ›ÉÈ öµÙ6áÌÀåê�»Y<À~:~ž8ðßcp67G4Òç{tt5G¯äÌ€X «n¾?‰!HDtAÈÿ³ËHCƒîê´‚Wήc²` ëT `@™ÿ˜°ºp"ûGRÌ/‚éò?@Jû­„ÕÜ+ èq¤?~ À¢9€ 8p @Òé.€’õ iìãÏÝeG�\Þa ql¤¸£p§Ñ[€C‡Ñ]Ëg²‹Æk�bm�C}E�Gûbýq­ŒY9ó^;  H¬äøzÔ6Þ—ç©3ž0Â# ƒwÛ¹¿=,Á?ðÜ!_�ƒv'|tê´Ä*ÆpUðæR+:1}‚ßEÕ0È_šÐ?‚’ûýÀ*öA…$:«û¸ôöáç�N _¾ÚÁ��Î==¾ùK�Dôõ2}>Û e‹È”×£¯ªŸw\É„p¤|™ˆ£€¦]`¢ì¥¿H£ÛωY�ü7ª²!�ø¯Ix¸¿Í^ÿíV äìeëÝ#ÿ±¤ñq\¨$¿Š +bÛzÒPø$Œé§ÀK(9ã×Y•ŸëÿШo {y®0F› Á» ~Ÿ—ÊUØ:Û–P+|Âj@:B%Ét²?v¶y¿ÆÏf´¼Ðì£ZœüÑÐyݸgî=sÅÀ¹ó*ô8FÖø…L0Øz˜ g�A/ÿwöw¶»;;;ì r‡°³Ã~H l†ˆ—!—´ `LøIT�x>¾„÷ù‚(t„í°–¼ky�wêµàª½ùT!©`8_áØÁ¸´(Ø�:px½pãf¥âås^»Ó +¢/~}ÖýÀ‹¼˜x’ü ¿ù�˜š·ßýùAq¬v\h\–è (•J ;„~©Ä@É'áãðàúÍÃÏÂJåëNTýÕ;‰~w|Ü>xÊÓÐCÑc¨Ã»”µ.ÆW¾Ëa9@I;ê¸ÜŸp¤|©°”ï è1q²L’'Нœd•€æ=”ÿï¥ù¿ÿ€]Ía 1½ÞØRÖNÐ\Ëœ�O0~a�™m�ô߬m: |¿±u›3«?[Žêƒqn¨Ëfð?)ö[gˆÆ:>aXnàH”.†Ÿ‰¾r< ül$®»ëfB.( +Xë.7僗¹{©ÉóEÞ5šÏ_ÍrX`>{ø³=ަ¡B˜Œúø/ ×ξ»3ûzvdà•sçÎãàJêê‹'ôóù¤ñöÛaóú²~®Ý•4»7!˸ºw‡ùÂükì¼c43~™ýk¼†U×—§KóW_cg†ïêÕ«¹ì8?¿Ìn8®æ¦= ¨‡Ïrìsù2^ Ëì�ãúõRéð§…ùÒ2Ç͸qùì{N™�ï3þGú›àË"‡öKMË× óy­t=7ýåÉJ¹py_[*áTÂéëó¥Ráúòõ·—KØÉ°|ýúüêu®ÅC݇ð1Ÿ›žžçÏÉÍÏãkJó×ùyŽ“/ñÝ@|²À­,›r)Ò–”FyëªÄÝÆ?ݼ#XhÜ»»·ëø;€‡¼[�`‹aÀúNÚ7Y `HJ÷4tì)H ?0£@õÐ=A*A ÆÙÀ¨ë2uûÝF}{Q;B–¸±ë|0Äç`¸](€mƒØ9 ×ÄüïwRÐǺכ¤3¾_¹’ÍMôÆ—òËVzv|?Æ}â�Èÿ?ëÁfè„5sa¿å•s?Îä=”áUB6µÛúèØmU¾ý ¹¿»uÇ À¾ @¿PWöˆ¢¯™?D̾x« |ô×Q'ª´¿b\Èoáj>‰¢V˜ƒÌ!ÿe·àž÷k¹ïM»¬sÉ�ŽÃ :>>怼• Òsuòk΋ýä<«´¬Ú€Eï‹0=…á×Ç�ÎãN»RY¡*²xíÇ8ß”õ?¿ú‡gÇÑÑ“ö2Ξݒµ�Ú�(ú¢ý˜=žýú8‚8xÌÞCž~�3½耹rÿÝ»û69ø÷€ÙD› ÷èÜLb®pÛ€)@ ç¤�HÇ&› FMàjÿâj@›Dæܯ@xÌD÷´ +<îez�ç© +àNÓÀK£¹.“• îÕ¶b�_l!Z:ÛHòjÛ’s±ãO °ŸÜ`I`ÓÝpäJd>¶ä‚#û@ˆ·§ÁQÖÐÍôñkµäœBBBÙ? +` §1ña°+ÆöÁöp—Ðm  €Y @›ØÅvÛ"�何<ÒÅ â¾Ò ¤€•€ •µ +ŽaÜgÙßf|þѹ¡aÆþykßEdk8pvä<R�Ëj`í +GïóÀ6›ÔXX37pˆ‘ÀŸÝhð,ïîîÜP  “L�çæóøøMV�¬"€o�Uä,£{‹ü¼üÕ€`,“yD½–}Û€�l•·Vö�¢yŽä³}Í„F9úW @‹T~#fÕX¤§Ÿ±ó+ù hÛ-®@ü`­ ‹!ÆžB4°)eÀ}X]Š ž å:Þ Ä¨ /y&#Ñ.}²ŒBAŽ“/´Â$(¿pºˆák¬¨x[Ÿ�C¶¿·÷.Û%QÀæcñÆl�¼½Þ¼çÊ÷Œ"ê`‰À ܧlÆüÇS øüS¡¾zc›ñO={òndô™ŸÊó[d‡_|¡8�ÿpsºÅß‹.ùÏ:©@| m+x…Ù!˜9VØ¥N®6ùŽä�9R§²b€¬Ñ‹A#çÅ�n” +ïÙ•ŸîÞA1`è•?2þ_€ | pþüèÞää�uñ`€¸n¸s¿×ìPœ°jÀ3(B§ïp|þªååBÁ‹ÂB„ò~ñtaÔF–¯_¾ˆ�ð««zÏ] ƒjGÃvy<ÎZ9ˆ®²!.Ε±l±,>¡Pànë=�Eæýf¯,þO-À =A�0R:7Ëå1|¯.UV¿º#ƒ¿Þúª‰(܃?0 +ÂoKm•4[Õ^îüfªŸ|P§rû•drœ|™ø›¯#MŽªMÌ-)É EbÖþšræßH$8à®Åt7ð½}:Å`î>·P«o6¶ïQLŒúV €¿A¹?Ÿõv= ê§;Åä4ûÐ5qZá0ðÞÛ"qn7‚Ë:?=¨¢rñ¥s/ÚOÀÇ“®À ìbÇÛ2_Ý™ÊUáO7.†X"J�I‹ è�I3Ëþ¥ÃÃù+Œ sØ.›Ï²aÀ¹óç†G²™‹ë0dîë¡ÔΩä׉~м¿¿··ËˆP °Ÿ˜Ô ¤'ÇùÄ 8@&,// +…ð À¾@Èm‰üœª$•ǶwÏ.Â(y+jñÄ;ÿ=Þ3ÀFDÑ< ¸²”Ï^)úÕãu†IÇ� ñÙãø¿{¡Xô¬CPáQ«U…—_õ‚‰ h‘»ôøveçÌÙq´°]xV ªløƒg¹õ4ðÛ-¨Ï7�Vñ‹bxžëÔûëߤ”ñh¥hµ‚¢B…e›)_*T&F’ÇÜ9k¨ÞM�i8ú«ÜOb +õ :€½=0Ÿ=ïö÷U @@j8@�À�ÇI@×ðQ3þó3nÉ6¿Ží'þCÀWðy¥G,mñL`N¡v €[Qðà¤q @¾>ÎþÝY ^sÙžzÇMédb †ºÔXgU¬LÌï=¤IÒ„ÙÞ›J|×z+þVÀ‚XðŠ5.ÄF8ÎlF`8“ç½ýº‰ï2y¤E8Îã# ”…Z*�gÕ”ÛwñÙ/~ù‹�8"4 ¹¥1Š’ìŸ:ÐÓð�ÀîîC€ ÀM…å TÇšÊ÷(ÅëÇÓ¢6ïü]«Z}d;7<øœ×üµjTx‚#½ü@P=zz†éñ6{¡\Ÿõ€ÌõI}¾äÁ},-.-ýe˦VBÖÊÑ�by‘ + ÇA ( ,´ÚËpìè oÊ€ò“Vu}ý›ÃUõÌ=�ø_|Kÿ*�O“æQXTÐ�%_*~ÆØö¢°–)HŸKµ}0ö1ÿ¹TÛÑYàm€TÛäÞƒfm€t@à!YίoßSý>g½€]ST]`B‚°Á[…N�±•ÝuHëøiHx òÚ¯s`$Àâ + +( UçåÎ +’Ïø=–±»«ÃkG÷Ï!†ÜÕ‹/¢¶¡`9¨n\�à:§)X`‘ì®!µxo.ªä¨$Ð5ƒü7|ï“$ÀT ÔÆ%=åãæ˜~ä"€ááK]>wnx4ˬ9¨‚ÎZ#[cQ]èwŸ}ûÝwÿüËû ÐÔLºCÁˆù1\TÜÅø“–¯åƒ�?yi"_t›¡`í(ÛÃß±ý°ûq­Bü»ƒv¡�ƒÁå¬Äío³úg†Nþ+ó§\3°”wùë/�({€uþ'À% +!U +–åÊï´£°Lðµÿ.O�àïÅ @±Ç,'€C§_àÏHF½‘ò@Å”‘I1q˜<9C‰ßàrfås@ÿ=3ÿŠÞ×o³Ú€ N  #Øq8ÕÙ!Šf Œ@$Túg¿@pî“>€øÌ­»yw¢ç©xôPW?F¿‡ì¢(µ`Y\öÄÛœGµË6;ÅaƸ„µéK¨m?¬Óü˰  `¼'w&˜h8Òéï!›Ì/«Ý’ѵD”¨ÈtÌWV`�¹SÄzÀiñ¿ÂØ_†­÷yÏ…‹ºî )ÂyhÀÇìs�Áµ,Øþc¦šÆúÁî�û»¼ïÓðÑ·ßýë¿þë·Ÿ}¶¿ÇœPE`âìh1'ó¼€}†@ +ü¢wY HÅ7¼¢‡Œ’ +X\)¾£PÿM¿ÃÎtÀøÐv>-·¯¶~˜ÏãÔQ"hýù:;9d¿eüd?v’$`"ë ®‘ß㨹p +5šxûo0i£X£¨~s蛀»ï:œ¤Š]¹½ýÞBögH„à +{Æ  %Ý9;§WÍŒµÊÿY=`¶½½…"ìÿ€•"ÅB�ÐÎ5\SÁMäŠsÌÙQ°ƒð0âÿvì§�çT†ÕP>_…2Ö[PõšÈOþë!Æcƈ&䫺K\'@}!¬Õ1Vn"“âÈÿXRZ€O@gY½ìÒa¦¦À\Œ¯ m‹­ã�  +Ä@ŠÀ'Àê½°Ý™ä�1<9€kÈí•A + +Lˆ¢Œf^ %²a)Í1-Hì¿4xóÞÂÇ(`‘íÿÇ3øF?ÆŠ¼çgÇìö8/ŸËrâL1~=ï@ Røùÿ¯ÿòíoñ¿}F4� €;4}B³Ñ{7 òAJ[pæa8262s4°;1Îygqñ�uoô¥KYÖ^J9ô³©åN.ÒÞùlfÌ[ƒ«­÷ÝOàMìɨ_7þÏ^UçÆ2cÈþ[­/ÿÜ9€¾€9Žøk `€å^Pêu.0Ø$ü¯8J¾\ˆý–©€¨4ÊtÉ™€U–¦éì¿%;]ïý`ðl­y/îdŸn³%à–s›l#HцÉ*ð‘eéäÿFÍqŸN£þ!©�­¬· ôT3Š[€Ì£®=ÂAˆMG|Š—ÈP vâûòB‡fu»8¯m>¯"^0KAÛÊ 0€ÅYÇm¥´ÆVòl0GÒ³åoéßÀ�ɦ{`ÓÃAÄ�U€üEÙ¿néEþOÀŠ@$Æ ªÂ0ÀÈE%›¯  œÊîž ¹O`“÷÷5÷¾%ÿ¡ß}÷í·ßþó·ÿù/æl”Bdþ†Æ�!Æ´Õv„_–÷X�w#¶¤ ýÎ1ˆû cw(„°‰€ºÄ<›}}8se$Ìç3j€¼xÉ×Á¾ˆÏN»À±zC?Xó£Î³ß}µ;ÑW§àMËôùëhè¬�8¨L–6ÀÅzdW€>ÆÀu@ÀÿR è:Í è˜÷ÇJÎÀþ›ÿÇä(ùr¡l“$ÈÂ4kH @‚û×Çœkš�¹v²woŸࣅŸ/,ÀPì5ës³ì9áp8¤-ŽRÈ $P¿°Á[øìØÝ;…{&Ò‘äGöOzóÝI8Þ ΄’€zʸW°›Ÿiô�TðÀi�; +áò~{\ã»Áư5&(o`âÏwÀm'§xÙyUmk<¨SL$H2ª�SÀ•»ÐGœ½%þ›Ïd‚3óÊ +4^¯Ê`?d€e$÷<<ÀƒÃ#äWôÍî»ùCÆ_gîŒo ÝP{'`ŽŸÑ¿žj€´¸4–»‚kÂ^˜Â˼p‰Í¢²WáXè=ìÌ—µñÙºW.–W–¼r¹ÈöŠ8嬚pøjÅE¯€i°�øŒ¾g0…¤i!`Fü� ¥üSI>áï €2ó½&ùßu÷îm׿Ô¨^Ã1AÖÖ¡LRHP(<íTöw1h:0€O¹?Èž°¾;1Ÿ6àx>HRÁ|ñÁ�é¯3`Æ¿ £á@Ýv䞃m€;È,ŸFtè]GëRA{ÄÀê­%�­qW]‰ é%×ÅsUj] +úDY?X¼×¢•õSfÿ?–ýgòäÀ=¬$ÀFãÔ΀–i©c°õß.ctn;÷÷Ño�û]|÷Û ç’(À�xš`õzÉ/­V +Ùqþž~W!K«øÊð™+Ö”ü•HŽ¥ û±N9ç8WvÂMò—*‡ó‡7H{üú|fÜßn–*§VÒOñE{…¨Ý€z3…_‡„ã^qi Û±‚"uW†•òþå X\Zz§X†Œ€% +€JØŠRµ)l÷Ûu'bÎ|?ü‡`¿5vcKqrDzUâíËþŽ™sxG°½Gp»¾½woO‘€úÏë?ÿ°^¿÷àÞæl�›66§Fq¨9”ô7t ÷x@ö"îoÔ7è¸h�ÂÛŒbƒÁÀò|úÿØ�·'³ÖøðG¢!@þ'ÿ6o>Ðýý,p PѼÏćìr(cçð )$oRk•ÿ›X= øŸvÚ`fŠÉ‡Á1¤;òQ­Á#Þ&´z܉ÂŒ|„<¾¼‚Y> + 8›œ©a~¹Ê»â³»ùÿwÛ(ƒ—ð„çG™ÙªaÝ1ŠÁ§®—Í>8ÂSP¤ÌÿÉɤ€]š£à�UW to­-²6–«²ù«üoäXAk`e­ÈÌ?X‡ ˜ ºv€ ¯ÊÃA ®€`àû)Ä€IÐBTYQGþ^ °¿•™2+ö@Sþ×lÆâü;n#“¿»}^ !ØÚ¢Pv �ß`¿ÁšD~Î, +À8?x­‡ +œñ»;�Ý9ÍÅËA +@î’Ì1Xp1�þ6ó|Ìø*+’*¦ÐËÿ~ˆû õË£qî~vñÈÖ¶b®°I@�Lð1ÃTó&Ò e ¶òÍ/�,€ýÖÄ”|IùÀýVvàõ£©ÿ�áaûÙµR)Ù�gý%¤íÌÈ…óçéPð'¨qŸdˆŸrÿ Ø?‘ÿ¿½Ããì½Å<™Ç{(à!X~”U àZñ2X¾ãM“òx^Î/½"Hàm>¿ UÔoÖ¢«í0(‡m¶ÌŽ[O;lÅ*pT–ù½S¾÷S`¢ßä—ÁYL®y¶skæŠkeµŒr€€*8)»“Z®À1 R¾ù3ÇÈ— Æ\ÏuHó‰`zµdÛ#SFYÎHÊ5²”w‰Í!mÜÞsñ}”\¿€Í9n²µ¹‰#r܆íÙ^ø^ó® œc€�ÌÖCáÌlÞXß�,“&÷Ï‹þ”ÎMR0Æ:>t-@ÝN'ÛÜÝðñþƒ€ýÛÔt†0¤¡+¦ºzà¿ëttY%ê�8íì‚ �…)9eJ€;òÿ>î“ôqþ�$-­K‹€ýVEUû�B?À02k +”›È_Êü„·œþ 2ÝlÖ B¿�Giœ%ò,JkÆvw¬ÖßÕôãŸ>b íÔV!yø^Å+­ùy°LWó¾bX™ç-1ª!TF 9Ã,h/yáU|P\Â{ @Ü*´ðü¯æ£°ŠbOÛ/â˜þ“Ö_»Ã !ú \t¯=@!Ç8ðÖÚÄ +‹¼3˨-À?åVX¹Â+›ïqœÎޏ(@ÙòecdÔØO8 äªÜÈÒ¸ƒÞÇ”eN93ãþå½xP¿}gÇ5²Hg÷L¶ <˜nø©³Â@¢Ã5X �ävl¬�ÁbÆ  òc&¾[!àÊ>Ðú”X þàO’hîíîüñÃ�Ù‹ÙCü.`ÿ{ÅÀ®‰?ä§�â¨)50« 80þ3 wâ¾J3¼gÌS ¤”’.ÅvÏ{ /˜�²øŠDÆ�U<‘üŠþ)ÿýÅ.b®r€¿„$;†4ÉzÀHÞ�ΑGRÏîèv? +Œq @¾ûŒ�Ãÿ�@¯8ÙOü•ìØÄ€l÷Ú~!¾'¼^Á6@ƒQÁ¯–CÅ8H(§ˆxg‚ѾUáªåòRöRþÑ{ÕˆwêXƒ°H$7Xp‘›eé—@`À•®x«¸ôNÞ¯\�ÀÜIþ]så"@pÂ$üW$àŒËyßS+ BL×dñõŽéÚR·µà'x°šÎÀº/£(ŠHºõÆžsM¸{‚äbVÎûyÌÙ¹Y±ým¤’ÛMåîަ²?ûu°C›×ä@O=pÒΰ‹µš÷I€kÔ7üÑBB~â~s÷ãý‡ûû?äüöÖ�4о ìP‚®�¿�ì·†º|£¼ÕP¼ƒm‡‡À©D\P¾oà±ò×Xñ Ö3½/à +Ë=Ii©'�“ÿÌcþ{Êû%Ìò�ÿT0Ÿ0@i÷Ò%ÝtiŸ²k0…i–^}5;Χ£¯øß€ý×_PÀü}=-óÜø ÉøOC­^� \XËŸä1ŒÉßqX‡W½Ðo±�Ä{$ÔhÅnú/F”ÊkÅ7ÇÆ&üõÀ:ß< ¢æ,ñZ“æä/Œ¾)Ãb8ž/¾U^B�ÄÏOÄÙ?€€b,ã,� ÿ‡ àt±jb,µÕ6Aʘœp.Àfx8:¾|tS^×J¯Jµ|µe¼X.F !»ZvZ¸Ýˆ³vG,zäþ[[V+fyàf­‰0ˆè|°‰ õ�MòÝ&øÿY +ì²Ó(ÿwäsµÊtÁñ¿G†˜×wAððㇰP€�÷%!:Nÿ{Þé"ÅÐ÷¬a1Ø$É‚«¼¨¼„¼MÈÅHÿ”p€73Srêõ;ï@�nç¿ €ƒ(b +Îå < +­ø �5‰¾˜aþÎ>ØþW&ëd2c(�³ý�÷êðøÎn`úT{}ÁÑßÀ¾sŸ9Â÷ã·5”Ò€Y]<©$£ ý¥LFÜ2ôÈŸoãÅ‚úl0è~I8£ª¡ù†µñ +Šrd¶*ò�èŠïT‹+0lHÜJ7î‡ûE)Øð "%qüEÖ/o°†{Å¥²·b>ÏV/j°¸è—×Éürq Óù?ÁÁìHþe§y§Åpº•ÇÆï–ô¦Z%U6VOHoi7~+î ØA7û3PÇ êí{ì* ¹m1> @“ +°  ƒíŠc#s +Êê s‡\‹¬Øìá?y­‡ËîMŒ·š úŒë‡zÀˆ#vûÿ~ÿáGûûñ�)Ží1°Î><×-7ú.«Tqoº“^€¹€Ü.äøE ¦pMMÿ{ £µ;ÇÏž=ãó÷ÆÎ]ÆG_͉#w[ÿ :æ( +p�á 11 \ò'Æ&˜ïf3©,�úLì9‡ÝV0ðKGø~| èæÿŠô@?&ð(=â¾§ÚøAÎó³`€¥€bP(…Å2ʱ´É((€­ª_^ #vÔ�‚üÄÅ, ;xÿüä†3š›8ý(ÃHß›pù 6ŽCiËlzÒÛÉbÆ÷øl©\ M48×%ì1‘å`*:ÐOòq½kŒ“ÀÅØŠð{,@â$¨Z°TÉU/ ûO©@°_äïõÛ�Ûöâ¿Zïß3@FÏþ“âØAS\€ Àpp@·€%E@z0V[FÝuÆO­ÒºXc¾ƒ?F×@>~È�l¿^èUwÍc;Öéµn]T9€tSÀÑjX¤�®©›e“ù\ ¢6ÉÿìÙ7Äïž=i·˜ôE ‰�ìŒÿZ¼0ÇÿáÆ&&.eé¹yÀ|†,87÷:¾éTpW à]ÿ6 ñ_ü³#|?(º!8v7J¥Rü,ñ'àäƒ|æâ%*�²°×örí•lÏlPaàÂ[þ²We G™ŸTFâ_„9¿³Þb<Ü÷Ø +@ðç¬Ü ]„Áúñ+¯Ð1]à覬9`餠¯‡¿B+Þh>ð||5ydÿW²ëwéǯ e†~œÆð�‡Ç*Š~�Ào_“ ß-µ’ä³ì¬Þ–´µµPÏ ª`°q{Û @]!€{j`@pw:7¢&1�p VÛŒoúcÃù|Êg�ÑÃÿ»À˜—Ä~§¦?èñ.AÇh2ø±ÊîxÜí„è"ãs_`ߟäýñYh]Q<Þ P¤P­€Xˆ/i, SËo./Çô/ �°…g–"�ƒÈ6ªaøeûéï¿ù=$àÙÓNT�m@ÊÿH¼g–$ŽýV�ñ8(à"YfF†Ïó†OÀ‚—¿ìà.  Øûì?³åß |û�@9Ñë ê ƒ…íl6§{ ý �‹’�ЛEkxæbÑ Ìe‹jr"£Å/ã&�äû€y¿Šå·–&&Æ.ŽyŠ Kžãû ðœð——Ic�à2eÏe/^¸8|‰��ñ/a£A\þü%^ÃásVŸÂÇÅKºÌL\¯@G_Îr§^ äÒã\ €à{ªÈoKyH­,“ò�qÝÏåÚP8o PŸšaýÞö’rì ³ûM<�ÍMçØÐb¢6±aB�tûC î¸IŸrŽ]àgäj_ @8ö;@úS4¹í€bí> @ Ó Lgñ_@·›à×ãì»Ý7Ý2é¯ÖÐo°€ÓHªå%/#™©”Ù‹nAyv‰Y`¹ ïÈÁµóÍ?~Õªáïßâ�iX~â•aWþx@\p IšitŸ˜XäÍ4 ŒŒ¬ I"�²e�Úh€Ü‡ØÙÿÅ·'Û9üö ÎÿY pƒ™¿7Ø€�ý8è6@á2?Xž>ÔCvÊŽ7iqŠ^æÛ÷W¢«7ÉxdûÒžÁm€Åµ¨”ó«ŒÄç'²c×VLÿbpî2 m’c°:븀'ŠR¯ _„J2NÈsÎ^Ô5‚¥2a5°÷%WΞ£Æö ‚w¾Oþÿ™²%L‰P¦”äúÝ%ÁÒ(€doA@ö Z¿iíïíí©=¿€¦ÀæP%À€£ª@öÓ@6m¢ý© €ö( tùŸ0Ž„sùu¼B4´Oln|<ÝìÞkî;òÜÞ˜z O †(jf؉°}3ç¶ì /£-ðVaòÏ‘^ˆ‘2ÿi˜@*Æ\Iœ4׫­'OZëÕ xöÍ?FìÌJ°dH ‰"‘âÁbîÅ ƒL�¬ðƒ ÿ9Zw…€óÃF² {ÅË»@Î]—‡÷ï³À��_œæÿÿõ_ÿåúc2%O`àm.È3Òá4ŽôFq€wâøþ£å@w9²Ømm| Xÿi¦K!Þ³ø�¹p‰WÇ/ÃBœ†‘‹?ø¸0<Âàè…a6š"¬Þgi/.Ú%±˜@fÏ‹9ädã‚g!ðëòÃvKC +—ÿÍÀ@å{,ÿL”LwI@F–F�òšÇPeóG§À¡Èð3}”Aüj«ÍÀE”B Æ@ľøÖøÛWVXNXÕs!?ÂO€�a £‰ºHaDˆ‹£?A!ˆù=û×Y!0Ì‘¼Åò¬]¸˜éðü�É£$s�wVá'~¢jW ? +ž÷ãòÉ€#â÷fϽ`†ÀQ¾_b Ï%%€‘Q8€{{}À|�éšÕ€³€ÍA@EØ|6ÅÇ´É. æ`ÿyó¿ã?8o åÜ @p² ÏùÐÆúÄeþ‚c¾�#¤ÀC;.ŸØ’{¦î+£?!üjÀwk“˜ç¸š‰ å9·%‚,‰áÚÅ·‚AkC“)}M€Ò¬‡GÈù�'ÿí›ÿöÄA©H<ªeSJÆ ÿ¥Ì˜:ò+�Çú+0‘©ÁÁ½ìøxîšÕ_Üe� ´ð‹Sý?J{Ïu�ÂÀ_D:ém;\ÎEV×ùIF ñÓB–e˜Ûûøüäõ*V”‹k’Š Kí\ÈîPԈ׀� +wMáUHHLnãâ\bá—ƒ·Jcö^`ö/•?Ÿ×Џ¾¼í‚÷]d½Lf¼Ú„m üáI ÀñûBœ89.�îNç[£¿=z@J&'gjrÍæ6€Š{{j#T‹€15b€mçÉsÝæ#8ú3(ˆáx »¿Ñ`Ù_39Nθï»À6Ü�äÓg¶Ö•eþš ˆ¸4NØÖÄY¿Ü$ åtz�ó_àEå… ù•ýc²O �LIÑ…’ +&…�wú¼IXE–ª-އ‹—§ÿ¿ÿCŽVt�·Hâq ”»”-Þ›(LЈÿìå�ñ|áÚµ'wY(÷Ù*pàM†ú‹F¿Py$,G¶Ûël„Ÿ£âUr9ÒŸùáñ—_? «ÕöÑQµ naP:d%dâ¨mýò^@·ø�\[ÇÕ¨ûÙ5vJß`#üž˜Öéu!‹<9»ƒž¹Àv‘W&ÄÒ|Æ1‹ì©[^�=`{!\A8©)A®Ž CÃcWð§ÆAõ˜œr Û¦bއßb¾³<6Ú‹÷ÝY.a#iSTh4·gG&){÷zÀ~`»6Ë„�]̀Ўþ‘¼®�Ènb€üÆ +ˆÏA$ä›hγÅú€VºObðfýÎ`ÿôÀùw�;·š½Æ¿‹Çm6|ñÛìvx"Ïj<ø™Š?_ñýR‰Ã…F G%•+Aù-4â(ɾÎbóAˆu_¶uÕT²ÐG¹’wÈþF:n°pQ�“@–\ðó™¡á‘±<%¼¼zN'c9Dø«Tðr@]^ñGÈ{árf5;þ*‡/Éa�ñÜeîÛøœ®°€£á÷¦HŽ—iƒ‘û¢+^4'R"à6’öää¬ëô�†ê·)4ó Í»š¨ÛÌñpxÒŸ°`7ú +Æo@½€èVÁT;‰û¦ô8›ì2žƒbñ'¢¿"zŽÎý€¥—Æ û} —÷ ì0‰C§Øë9_7êöaWúFKÀyWðvT> _–Ä|Ö â•-~éHsEs�œÐ¸Z€*�â?éŸa à­ ;6– –ü¢+°c�‘á‘E| +Íê"›³º:€�?Þ¿/HuÒ‡ï~¾Ñ  Y$ =0ç¼?]Ñð�Ùásqó²£ßk¹\aÏBáêU~\™®”¼eŽÊÆÃä÷Uë± CM—c¹5àærÕ#È{/W¦Køl™� ¼ø ¼:Êyf„UxÃÙóP¿ÌðHœÆZð}$;2žÇÚx9ylÁÌ«X�ÂW�fF²ç,$‰à~ÙË&viÒp,üaœ�HÊå¬7˜YŸ€†$aÓlR`øP2€³ß݉{w15÷X ˜8“»ÀÁ(Ž©¶±°0ÇÞR€Ÿá�ŒŸER_ù¿+ˆè¢< '£�h?cÀHgS<�HöyP3<áLl)†�>~>�-ŠTcS“wEs´ãÆV½�íp™Ì%¤@€õöä +"¬ÀW1ߡϠ€K@pü¯2˜8€oþÛÃpìW¸OÀÿ›0çG: ‚|¶èMäב+M䋲ÀÌ…‘áñk�‚q8XL$ï�à„ ¸¿Ê]Àù‹[�-^Õ”`` Ú…è²ó0Ì^ÈNà·p, dë\ƒß¶Ã¯8ˆøQ&�ÃjãsdùÜñ‹Naþ í{ +p¿ªÆ?j?Z—«ð®d �r7a¢ˆÅ‚Aà· Bž·?øÅ± ™ì¢ŸÉñ¦\“pœ7þyålæ·Y� ³Ý4`Ç*{Kþ"»oÂc-7rå½Â<•·¢AÖO`=ü?Þ9Æ ¿O SÍùd†�JâKHØ÷¦~‘J Ô‘†Qvؾ½½}{K#/è–vIØœ£ðv8(8^oÜŽÀ�õü*°GP·Fô'8œ(ç ¾øïêÈjͨ\tz@ˆ'òOž2`üç|èœK�@|Wˆï +Üö€sšõðß‘°^�dVl  ä '€ ¶ðÁW002JK@05Â#q +°ö«× Ð�ÄxÅÑõYàð©{ÞØÿo>;Á  ?²£(ÀäÆéd_gîüzÎñÿá9€û�.ÿúnàZ¨!Pâx¦ Â\àGå²ï]²6÷îæþkääP–ëy§/të#C±Ø)”"µÒ-+àb™—€Õ€ìDp8S¦K›œeÀƒð:oLȲ ã�Xˆ+qI Ÿ ²9?w%›·ÐÊ Œ,òNâE†OÀÏá]×™ ™ |‚Ÿf·÷A+ÙÔÚÅ¿W(—Ç”8,ÚÍZ¶—Ñè�Þ·ë ¸bàu�ãeÍÍÉÀ¨ �Ý��Ë“$Fq ¦þòçT �-€€nXPoA Æj"i�è¢?™¯emâ„ñ5áÁ;” M–l{*úŠä½½¤ÀN_l'á·8zyãRÞÖ@ǸŠ@yì‡èo +€w <‹T^H,Zª pÒ@NÆ`ùIÿ�ý¬Àb_ ÖP=îN0•N\áÝï!²1×[óÙp8_€È^ϽäÀë´³ßØ�r!oû[‹ßK)(atO>œ.­y^éTÀ÷ òu¶ñaÅþ˜— &p<Ò_±ºƒ[ð,AÀv§VcÅÒ’-®d¯�d¯d2×°ž·ðã�j,-Å1GÁï §Ú¨Å€¤�'vh7Çf<1ÏŸ�•€Ì,ã�L΂°B»)P`*Ç�ÔÙü€jÀúÆÂ ¾;íX2p.Û©òpü'�袤uâeôO>ÀdòÐÏ¡1C25ÜB v1Ü·'ñmJÁ�?À‡¸°ûœ6>¨;O°±Ñ€è +`ƒŽ`âƒ�2À{ +A¼ÊD å°Ä—“1€j™#hœt*ù;°öÌwá¶g!ÿ‘êÙ|4œðÂ"x‰4ŽÂÿÈOÎçr£ãy¯„TÍ‘èØFšívvvÎtÿô!,àò?q+i´sþ� \ Ù  Ã’WXThù]dí>Åù%ßñgcoP‹``%î.€ +Àq'è.æÃܲTDÚ0ÆÕÓ`à�Ò0«Ÿ G¡5€`×ûc@™êþ½=9ú\€òFŒ=ٿͦ�Èûg!¤¸È4ph>\pà ލh�Weób)èEòßI ›¦?ž<,Ž_Ñdlëî™@»Ú,†;—ß§b…”pO;)Ÿ¡;ÅP:zkNƪe¢uÂíÜÝ*û_b r·¬î^E&˜˜X‰"¼5_ÿ’e~Ç8¶Ø9Ëüv£63·Åû�ãû†8€_2ù¹L*ò^€±+Ð :k(‘kç$ÀÜÿjܺBØÝž¿æ64€l‚eë+º? °äOw÷ˆÓ© š ¸´6Ê!Åq`i .ÿÓ<iÉ2z|ÎóÎ@dò8%œ?n;~L&“ÂöÄW7t€�ìß»û€]l_‡˜þ$;ù€ƒ�pnîØ™tá”V€¾·–RR€¯@:Ðú›�üï‚á`iâÊÇÿüRE ûá~õÕ‘ øúñoÞÑäøOÀB΀ùwÈfX@ú ½µ~.CË~þâ�. ÛdæêÅ6ùVVPà§“Ç:¾÷Š-”þƒœ²·/¾çX~¸Êþ‹, ˆ—™±@¦&†â…!sáåá—2W¼ñœÖ'V ×aY +¸ÞøZ«ybê®Àºù Û—ƒq”p‘µ{08Ž~ß?Ø…ä‡Ä--ïOñ¿×Pjµ¹©Ù�M²“a.”]IÝí°··C`Á‡÷ù‚·'HÎæ¿É ¹N€Cš«i 9Ì\-©MºÇ3P“¯öVä·6<ÏOÉà„þ]ˆÀƒ ÄD�ëÕ$„oðL*ŒìTCê�Í ½66¶¶6¤ÌÿEž¶@Gµ“M^¹Ä¹›˜Š€ÞZ€1€õ2{Áêsßœ"ó‚ä®0ù�ü„Er1(@f43:2Ûâ§…lõS)¼æ…ìóoØ=T¯”ó‚0 +­!®Œ„_ £jp ¿%RïB6ˆrlônè¾îT8þký,É{-s¹€oÔöl�ˆ+]]öñ]m~¯V3�ÂÛ`‡~¬­á—\†Kñ²›(= +£6>>m +…¡£ß`?«ŸÍIMR + î `£9è¹YWKh?i(¸0' (Àm5R™ÂÊvÛ@?j³41°-Ž-°ÞжA¹ƒ +àh�'zˆš|u·ÞY™ÄuôªÕnÅG¿CâßEêf +>&% Ú/ÞS_bˆÀöö‡Fù­ÍF½±µukÆA‚جá¬Éÿºè�§Î%†;ÏÕ Ö»·š×ë&±�8é˜|{Û/¥î\˰!ûXæÌ¿¸Ï�o`h›�ý^ ißÂ&,‹ç'�€B"Žÿ�F8€�³b¿�¬Ý‚ܱz@aH-}b,�æ.O�O��ŸÒXdÙñËl4ó'ã9¾Œ�«ÿl7>�Ó9¯�¿š»š½<~¹0žËM_ÎNk{µÛð_gÃ�óø‡29ÿòôéÓ™È�Ÿ:?’ÁIá8%|ùÕÂ4Þä +£¯åƹ¿û^ârn§†“Êåñ�Øj:7ŠÏG†‡±%×OŸq&YÌû~0òÓ0;Í sip1ÀÍ͹™Ù Û=72…¬:®@柕MFYàmð¦r¼·7 8€'(Hc>«¦� ([ V `…r�3ýÁMÑGëD ÷‚��Ç¢rül¨–žÓ\ãc¤ì]Å,ÿà(zİ´-pYþÖæž5`666Uø&À‘Aç“v€�²NUïì ÌŽöð¼7™óST p2À @¿€¿´-øTØdXdñª¿Z\b– >‹¯+~Yy£�².Ôa<3úÀò¸'Çÿ‡Ëœøw“µ­~àWºðßÅ;f£#l3—É.y8¿B~™cý” +%¹kT|¯T¿Ê5~©€Ì8_мg‚m±¯çsƒŠ_Yö¿à…�Ê!”ëjöÒÈð¥‚_ñJPÄw]‰ãtA@7)D{+Ï]Í�çK¾7_)¼ŠW¸Ù¦À—âÔðŠçjPá�%•‚³Âq�ušvÙ˜-0.ï]®8 Ž}ß?~†램.T׫\Ejôß5ÖÛ×êÈáØ:7űÿ� ëgðî½mö‘©ƒ¹ãÀ-`Cy» γͦÀ5 +€Â|s³4X°j?§¤¿@ ÍÅN.Š=˜¹õfLHçX˜Aæ þþ.»Á‚Á˜Ih?·gZhýÉ|{ÖÛlQ€"@- G¾µEsÈ…&®Kbt;];S¾³U ?­cˆ ¸˜ñŸV °^¨½íôé Ð*ÕukZgh!ë7¿ Ÿ½˜Ïe_e³V9€œªøtü‡4j\°�Ní à¿þ¿¦j�ZŸPy:ˆ…óÏ�g³ä6ûj–ë ÇÛdñë(Qxmûã0=,�\ó¡ +ÁYù›ån(â +ÖP=òW#¬Ì{¯g³—†_f›<6^>ø5!«›’‰Ð¿¼|àûÑrî┼Ð_a?¬pHkå5±½µ1‚,Gn4p�[ø+yQp¦+íÂÁ±®ëépôû€1Ý‹ UÿÅZæÿ`.‰iPñ™�ÚìiÄ–í€s®Ö.³Í&›5÷în“ð&+’[ã Fm€õ@ŒÿœA ¬�Ì·¶À*ÈièÈPòÇ­$´ŒÍäGg>Ý¡�Y¶<ÕسKÿÄÈ ˜±³˜» î× ÿ’�#%sYFÀàùr²uX˜›Ã.¢?ï‘b¨¶@pÚ½'ÀJoü‰=èˆ^ù¥b988ñQ%l¬^*@ÈÍ䯙ÿsHN¯tãÆ >ÿåvš÷O¿ໟOÖtfÌóº(x#… ¶òտVꎼ A÷Ø(Á +…�7ÑåÕÐ>dÌ�õï” +v½í{K8køù÷"ìÄ +@9€üÚ¨Bfü0W +¼ÂAr„Km{jÌv;Æhe”óZë4pR‹ù쫺ÍÑkæZ¸Ìƒ'àÑ(0 +ûÙ>-vièmD Ì©±I’.lÄ`¼FÖe»°7 :€æm9×HAôJû¶ñKbsøÂˆ�Mf4? a;qܸvbÁ”Zo ‘�ÁöBc®Ö¤÷gþ�™�L4P2Ünœ'ˆfl„ëÁ"ùn‚°…#ó–fò_1ráV<”*à€ì·3Õé�œ›Ã ¡t½;Gùßçìƒ&rf–¶€{÷·ïÝKûdMH÷j­:Á!qˆ%¹�P=i`çaHþçóÙ˯‚•Q +-”ÿ!�;»p§ß HØ‚pm�…¡<ÊÈÉôzÞÏ�¬ùËÃC¯°ß 0e<L\¡P<Ÿ¼Ç©æ®½;Š<¾PPh_…B-¸˜¿’.gã¿n×g�§‚¿õt@²^ÎYûPðƃBe�È/¯Y÷á‹ïHRqÍPðù§à=üçÕÌâ,°]»uƒ(ƒáØ÷+&yŠ‹ˆ¢di—©ŽšDi™r£Î´ +(Èg€Y:ì;‹{Š6]CàYöƒÃȧ (k· _†CQœ ” PÞÏzÕ˜³'}ðp�~)æ—ñL€òr'˜tâ@I3Þë"9Ò_ÌO±°´Í ‚ú&@ý–¶éþk\²€ÆÁ$´¸²Ú‘tÊ:[,ðçã� LÐø¡ÆêD9¢y:Àµï/àñ~JØmçîþž«>s`KVh1·°+ò°Ò`è‡w‹€_¼Æñ/�#û�’–@ŽÿrøŽ½_žÖ!èwN¾¿U›Õý€ü•œ†²Œï�ŸWýüHÉG~ýcÀEPvŒ5îþx>˜Èáì°¼˜_ñGœ¶Îûùœ¥�Ë­/-YG¼WÈïÅEV`P,‚\–wÖl€Cõ’… 6šÜ¥Ê çó—C,Àv”‚ùRP@±>p*k¾óÍ…J%3¸¼¡% xÚ”é0wp¼êŸ2q°àÕR €}Q)Ø�±p�‘P†Ç j“i�¼¥€ 0*/,hø«`ˆPÌØ"ȺÐ#H}Lt&d¼Š 0݃I r—ÀIC ñ†ù&æâ§Þè­ûP›QDÑÙ„€2ÌÕðÿj°¯;�z7§Ø£ pŸ9ª hðîHB€Pû¨¦;[�üoÞp(wª<ñ÷)©ðVèÉÿ7%¸:æÞ¯aš«-¼Ïh¿+Øá¸];€†¬J›ùððL`è…íYÔ e‰Á7À/y…k(Æf¨Ñ×Ô�°/mäsgwç~sç³Ó‚ß}È45íÀcdÎç¯F<ðÿrW•@Õy/{Õc‹D�â’?ZdC~ây#^6ŸËútþb°kˆ»ÄŠ øÿlÖÆú`g<i&ô1ö–Ò�„»&'ÀFto$P´¡°x-¨L…J¡¢è�²¿ÀË )XA¦ïGùµ‚ P£àdÓ +AËŠú§ÂÑïW@¨³étöO/Fjrü¯7,M’ÿ؃´a[ ËÀMö jDÐ�ðä[¶ÙÓdìW8?3«4®¯ÁÃ2üMxi5;p”²ZBŒ×aèø¾«n&@yHÓO�£Ê5]¯ 4<�C¬}°´Í.KíÕ9,8à‰r5›¡@L¸#@�¬&XÁŸÁ“Á�®á|t¿4í…ÆL·‡b-øX%„*Þp3ˆß.ijÝ]:€�[µžÜ�C‡&@žÑÀÜ 7°¶8T• `ÿ»0Üã(µeF3×Js¼Ntxìÿò”z€ùpêt®×� ®�xï Ï°ë<(ûàÏNøãl{wÅHïgsxC\Îf¯�B®BtÒyݹĉÇÞ8§‘χ‡‡E{la{„ãûÐäq¤<öx+´ïÿIàU +…GøTÁ>åÿ|í}óY0ÀVî� +Í–Œ ä% ÛúT8öý�j›®nêISòÕÖ=]óŸR¿Q¡­S,ÐDÀŠìVO¾­N³(T;&‹FPLŽýÎ7ÐàZpôMµ9RöÏz’Aµ¦&"9ª£òÅVi+€ˆ¬=Å$NTxøð�|n¯ ˆþ½ÀäÂŒø�ø€mÀ8cPàÍ1˜ÝrДØ"ÿ‰©¨ï9Ñßè>çŽIÍŒþzò�Óõ‘ù3ûÇDpe@óV­æÀÌ�Ù–ÊÊÈ‹Uès^|‚©ì—®<ÖfFFG ¥kœÌˆÿ î5ïï}ôËoÿ‹ã|þåÙ­æHª~°øßW 0²äe_Ídþ ïR‚ä!JAÖãÝwª†ôüÙ»€Ì4;Î>4|œ5ï\`Ö¡�ŠI²ãì\Œ U­¨•�7`JµJî�üj�ÏÛ]?졸.<¿à?^Á§–õÓNA ÖÙ"ÑG!Ÿ5}$? ¸†™ô(ðÿ S$DÝ Š‚©] ˜ƒtÁD+ÿ[göÃn„HqPÀ;}Ƕ¤°­�…`�â²Ý4À72Q' ÷mbùŸ­€ Þ,®ãadg7¼ä¿=l%À7&Fci€dàÜ9ñJÁ +ðª æÓhd@j÷v�sàî¶k ŽYÀ‰YµÄPOø‹·ÈM ƒØ €{wëÖ, 2353s«v ç�²�º‰”p=¢?Ï–+Pö§@¸‹8 4`ÇÀ}Às)çXƒÕã�ñÓ¬$€íÚT0�‘°(ÖuP_ + [4?úl` ð_nÏ5v›“t ’GafæÎ F V>ÜÅÄ‚R-µcÌü”(Љ”$«fxšØÞnÔê[56¢ˆï²vÉ÷hT)þOM±4ÀLvãp==ð-á€c®üoÌXpΜx¿±ïÒc´¬æ� &àFÚP*tײã(×¼·åJEïnÞç84àý�ð~ì„!ZöÅä™Ë€×ñzuw‚—É®€ÎcYä½™0›Ã’—˜¥†Þ¸—tÎÈäõsPh§XH8:"í8 ¬€ö7\mû£Ã…Åî�IaäÏJéÁ×Ê z‹ ŠP̬÷ü’º,fP»àzò¦¤|1º +áX9srìû€aþïsi‘U × ‹ä1˜:atñ³}�L�Úhqj +Œ"PNW”ÿü¨+PR,Àg·`Ób¶! ñHøOÐ ¶pÆÞMœY €®ÐÉpYô�[�Á’ç€Ä0ë·\n÷ã]lƒ»%{uáø/úש†XÚ²ðvŽ �ù±€Ð˜›s-äøùÿ Àø?Cþ3lh$gÓg�ïí þóºÈØ*FÿÍ8s%�hÀ˜ Pbî�PúÀ»léæb?q1�&àºMèøMàŸ!ûMœQ +Cä]0•õŒ2”€ |“a<ùø±BVù¸Ö^ÊdØF`ÔŸñâBU";16ÆÂ6Y¾4bCK††¸€c@¬Éó8ŸËô~Û׃ÂÖK‘ÿeD¹N¥ð„ã­IÖür€Â@K[ûÑr‰W ÌW´ÔêX8œYôÛó–΂cß +º‰ÜÇd@ +@ÿÏAb0�kSäúøIõX&¡ÈÁë ›ÊjÁã?TÅM$9«ÜàØà³ÍÍt5 3}N¬PK@¢^§ c¿HO~j™¯•DwKËÆ)|‚E ào"õ5§ÑÕ¾þ +îáÞÆpü—8Î7j5{ÕŠ¹Ú¦ÜÀFòc €-ä•nÍÒÌÍÌÌ(ÿ¿µ @nã±Àã²Ð÷–ýãáÄÁ8kMæ”3ã˜;‰À€û¬ß°´�8€t à„ð�HÇ<�ô·kƒïA€ ù‹AU�¿…ɱ"€ÙŒ–}�а.0“¹äºß~óܸ-e‘ŃæcÙÚ0Z„ŒqØ‚ìØ¥12ÿWúÈ�Êå#Xýg~T)»×P(ÓD¬Æ[ñÛË«ê¸ +ø"�ñüãB%d3¬3àØ÷€8Js&ò'f] ùÂÆ9µ…Íq"v"ÅñbŒLÎ[y,ðÆÔì·;½¡À¼ÁÈÔRu‚Ù)Ú ¶÷1Äüge82ÿ:Ç&Ü¡Å~'žç{9Jh3z08Íaq_Hó8—Ê{‹¶ŸöO¸Ϲ âÆ‹ôT€Ù…-Žˆ´¹µµIº°®£,”Ž›·þ´†üŽ]¯ˆÿ[°1Éy Ýülç¸É‹„'XÏU\›8näbÝZ9.+×ÞßÝgú|�ÀAâR1€·S%ubUŽŸ ä»ÏLÔ-hŒ3€]ð²»ÒÌâ°ë??LW/(—›Xò2ãÃ+ ?²ú±1ðþÒX"0r�Tg€}ðp¤¾¡W.Bž1ùtr!Ê"¯};¬–Ëí£¯WýÒq•ÌGÙŸü/ €Ò¶o—|@Y÷(sÿÈc@ €€êpû~p·ª.�Œ§M7·n`5߸ìZÿ] �,vÌg'g•MǽöX €•ÿ˜¤:2tp¦ææf¤5 Ü �HãŒ,r¼`¶°ÝÐíÀ‚À&rÓqßæÄ�Ëÿ¥"°›ŒX-ô¶KÝ lo�¹?wá# F òY2`�yÿë3sšÖFž+Üš©¡LÞJ°åøÎ.Qà'Œÿêz… 8Ñ´à¬?ôÄÌþ°ÛŒŽ^»^r€X54ޱùŸ¬ üî—û€�[Ö/pìð]Àbó‘É é0˾@Ó ÞÃäëóÍ3tøWàªUZÎŒ,j?œz–#šç!y(?ÅÈ�ÁX5 —ÁÞü�øyÁ>‡áiç«ãè „ ¨úQØj=yúûgí£'�(wPè´ZQ+luZíV5lãBµÃNv:×K�;�èè¸ÓÁ¢ÿø,8ŠÀ ”Û�ëÖŸ ǾH*tfðTί2Þ)‚BÄÈüux>Ò ü>ÁòÿÙYö:ÂŽGÌm§@ßPŒí#ài¯Óµ•4@¹¸ÎX`NÓûl0WÛþÖ–…Û¢¸ƒ~¦T G + )Èñ­[ ;RP~{»635Ç|œG„æÂÌ‚ ›ÿ �ßh¼?õ?MÎvù¿uÇ*ÀÒ ä¸¬>ö/*8`·é’•±HÕ¤ñ¼À»=íx7›�º`ü߿Ӹ¿ß¤à|ôÙ/ 0üó/ÿ×ûæØo¨í`‚Y¾–<ÕˆÔ°Ï%òŠp9ðØü6©€·5¿”×Ôð¦“/ƒ€ÖäÆ� +¹#õÚ½ë7‡ÃŒ°;/µÇ%°AÑ:"ï¿}0Ùç-Ø™o×ü¨Z Ö«ëáÓRØ +Êúvö^ðØ\!Æ vœV–©Ö@}à8b‘îµ>Ž}?ˆ(4¦ ’ò ЭlÛǾçF�ÃcfýVÈw‹”@4¸Àï‰@¼? ð&-H/óï �‰ÎïLîˆ@$ÅËÿ|ˆÈ¦|�öïó{È¥Ú�ý�!|8ØÞ‚í…§ÍhG �¸òú¶úÀõâ=*¸1wØUVâ$5`\ pÇøÍ=u Á5º*·’•Ž îZ € ëY£°�å~P¿GM ˜©m7ï€É°+µž¼ÊÛò7­Â?…�YàXJø¼Ýßû_>û¥Ãgí3ë¯Õ @¶qŒ!£F‚õ2ÒT×ÙÞ—ã�x~ùóæ¥ú:´¶û\‚rÔb/'aø¬ð›GÐã£öüüq°Vf=œêßWñ\Îû^ÆËzë&-8¶ˆÒ)àФ±è4$UœÌúñjÇøÏ&þ#WÛW ¡X„Z•ôåÞJX)´¹‡iŒJ¶Üú«ÖsáÈ÷C€cKæH{.¢%Xîh™òŸ=Œƒø�¢öè?Ëœô§�ùo€çd»•,¸ftô Ö¤jì«„$ÿ_W쟬O @�ÛO:’Ý6’0öâŒõÁûPV«Á€VÌA»ìDq)†i‡[#°v “·øãÃuÈ7ìâÜñß­c�Z6omA&'gÙ�H̳Ü'¦ºÈÏ9“•=æ‘u¤ëþ.8 ’Â`f €�ÏÜÌ\³yg—M“¶nÕ(4t›ïÔÞ·>ŽØcçu 3ùý�Æ-|õGûîa5V™ìö;ñ) äêGrÊrþJQn�ƒd!H'¼»G� +àiák®�&´Û¯U:¡ïÌ~Õ¯àûã>û嘕�wФÝê ÐÈËk~™_ þíR¹agEoôF‡] 4B ðõpAáçàçxù‰±‰r«õ^µõ×GsÖäÈ÷Àë+ˆ©²äqw€³ƒ`’õùt|‚%b2;þÈvV @Ø`K'€˜à�$ÆàØ^ß´ ú@Ù½ø/~sf«l=Wù8j,€hXØï/¸% »ÿg”å É�YÑׄLÎmö)ÀLÒW°ukK�ŠŠºA·†@„è¯6€¦� � þ€‡ü°ùÅQ6 L€èÉ�ãt[ì!õVªöžå:€2³÷DLPêhÜ‚Â|´ßø_îÔ¼�2àdPlîÅʺé†ðÕW¸�æ?Q=b.\ Û…vˆì;¢¯ Á-»Í„]µóAH@�÷ßÅ¡qjÆ)àw@jN<¹¾´j€7à¿Â~ð$—"æí‹(`ŒT"œINH +ŸT–#ðê‚_SôòcKåÖÑ{Õ¿t9ýipìûÀêlbƒ]Ðß)€Å6fùA q_ ÇXþ“9£ŒÌ2Ì/ HÀ¤Ú±IКlæI à7jYß 8¶ƒú𥢀q=€˜®'¨ÙëHV³ÿi€'±%@@c àøïà¶"¨ü¡iò±P¦ÏHŒ¿‚�\Þ®Ï kßtüwôÞšM;˜tÀ ŒBâTN ¡å6@|uÀuÑ¿ØèZÀÂÄ4`ýÃ;Øtg¦Ü…b‚)@–Çü¿UsCº7› ïã£;:bOv®Ã$Àà£ý�>€ØÃ–‰p›N3o¶­#uØr”Ÿ—Ü ñh¬ž ƒàI«r¡=Ïe¹¼þ¤TâèÀGÊÉQ€X-y+ËȇÙkP¹úk;:t;}ƒÚõö=o`±¡)x»æ–$àO‚`Å[œÈz—KQµ\m¯<›ÍIø;‚Õåˆ%žöXÊfy»Ð£j«õ—gL?$èÂ4�5´d·"'aä'H-ò$çs”@é@‘_ìW% &à(G( +€ç³ÖDÐeùò¶`2ÐuÊÓµ€#»£?+´dt$N*3~ÛQ$P ½†;AG‹Á# €²ê� eý(HXØæÐøMyûÍMvÞuSi@Ë 05ã Š�ë’Ù¢»¸/ê+¸&FXâQLÄ58ÎåšÇG”uH Žô8ÌtŒ&$À9²¼Gz€àEM@Úô {ײž4¦c´Î‡ƒÍ›Sÿ]*à“±0Aµ3ÿn¶>èó_£hÞ²Íu£‚ÀÃJN¶` Ì ª + ·9·=’øA˜+ù(ª°×6ÂZ|ê±³(N¢äUüë.H—ƲEÏó ´~@AÀŸ¥,€Ý²£‡8©Ñ×X ÁÑ‹­‡TàÑ ¢<Ðu³o0üoÀò}­¢¾¸CF‹) t ‚¾Úè?ˆälÐ�ÜJæÓ�mJ˜2WÛß¿ë¸/¸�b�Úójpq€yÿ”„âh©w¢� ,t÷Þ‚˜œ«I�n™ °VEŽþtÿ ¾SÁø/ga-åàÉÁ6ç¶¡k€ÝÝûûñtÒ¤c·P0@(�8Û€ýÀ2@ãÖþþÿJ€/ìp5{ ¬M˜ñ²k- ˆ + +á« Xž[¾»æ‡1“Ûó•Ð/Çþ|GÐúª[–÷VéØy3î¼ã`ûV9Ûf QÌ%A@è¾|…€ptÏ{Gù«!!h±I0¾‘­�©úO…p\)„‡B= +u{·']WVJÞÍàêo´+™ ÏpÜ6�¼œ1!dþ±úLù+ùÎõRµÊ“®òoxÞÕŒê àC‚Òõ÷ç=WEß[ÌfQŒÀy‚ågL�ù~`U©Ì@9o -ÁCxôYæòJ†„£¿ €š¸ˆŸ¢€r*écÇ7à(è.ä ³rŒà�£»ûJ)‚­¢�¶iHòý¤4 žÆ"Àµ˜Ì¤ Lžâ‰b³X +«Ðc¸c¸x$§©#¸³ �áw(,ÿóͳvë(ácvæ„`³8€[ȃQP5¢D{9 òãà[Y€„ÿõo" Hº]«›7°ß˜«½;»àŒÀ–b€ÝZ€Þ +ÊÜçn¡l‘®HÀ}Èøæ­;xGÝÕìsÿ€SÞDV +AEåyñ?ŠàðÁ ‚£ð½÷Pè¾ôÃÃé¿… °xýDT «,‘{ÞaáXUª? 8bú@°Ø0h*ùl ìåxJ¸�r™õ€0üÑ8;ò¯¶v­P,>’À—Âät簳ĮÃéEŠp5KÙ ,â4¸{ nä½�Ϫ#ß. �[;2Š�¶Dö²³nMä„&•ƒ6€à ¾" '¼gY=3lÆ8 Ò³Bà?%ЉýRNâ>§.\ÆKÔEùxJ€¯Ö÷ãA‰pÐÀö1Ìnùl28[C–•W1l{`¦9Ü«@Ø|ü�i>ŽÎá÷ÎmmÚä¶ãív3Á=`Ê €zÜï´v@Ìûk¬±@–Íw|HÄåób € 6¥ô@~àÌ€OÄX3²ßœ“P¥$Iãi¶ÿ¨ �[øÌ&‡!Ð"…5ý`�åkì;ènùy‰ƒr‹w9 +Ð:øóp|ý v¦ÿŒ˜�µG­*ã†$櫞׎JmDE‹²Šƒ�-Nèï{eŽS*©ÿ«åh<ë‡Ñt‡A ï­bΠÌ`¢WÈf²9z€vPê8ac\ È�e@¢ŸG¾RÙ>¿5.òÁ²�ÈIˆ`œØÚ—·8°j°Ïó–û¿Áúæú¬&ÐvØ_21ì9a™So n Ô<@—ùi ùù°*äþr8)ž´ I“Ï­…÷áæØ +À‘Ÿp‡ôsh ñ+=L¿šÿšJ±OˆV/€Ù³â3g†™Ù™÷•Ç Œ>¦À¨|Ë ¿Õ²<ÕðÖe*ª‡Ñß¿†‘À>`Y¿Ãóc1úb&BÅ�=¿£{wÀI€Oq`»hJ2𔼰2¨EЮs|$›ÎÍàZÃ@`ë›Ò|¥3�ó øßj=y×�ç±^ +€;*K§@ÑþAv:ž‹ìÇåG� �›öÛÓ¿ÒÈ) ?ÌÅQ¤�V<Þx˜GæÓÒ—ØE1Ê�ei_Þ …­ôˆ éɑ2C—þ¶ÈÅJ²wÆ>D$‘idÂÀöÃÂ(Š C8ëA}ò_Ý€±€�ýY+Hê§Øèk�D|6pÆ`)€•)êFr�xoÐç<3~Ä’'Ò7À怳sÍ�OË^õˆá˜‚®)€,€s“©Q@ðjŽ!BŽ£%SÞ,G¯F€¤wÜ€8ÓÛZ�à 8pü—4jâj,ØÚ9€®±¨Û�‹åµò:[é¹>púÝ ô3rq +¹.Ÿ1»³7€tL ¿Ú~ ï+æOF:€ÐoÄûÈ`C’^6À�Á@i޾‰_iK\pÜ'`‰ûê¥q¹¿ßèüp‚¶Z tÎ1�•̉æ†*÷;ŠƒÛÉæÝ‰Ìh½¸ÈÝs¯¹Ýä ìèkŽõ.,8CÌΨSP  +�þ>8g5õ> °V€Æÿ®`- 9p�”)ÿU €ü›¿�v68\ÈóÀàÀÉvÎ,pE££!úŸît˜XŽÓxvµÕ)~»süU yü'àÞÁ|x†OŸµ�ü÷ßðæzâ¾ùæÙñï;OÿÍ?V ‡?­àÖžw~ß Ÿü.lGapÿ.:zöì :~tÔiÿ‡ï´;�Îoì¦û>0¦8Çøòo~ó$*8 Nñ¾ùÇããßµ;¿ûǶ7~ð'Á³6Ãë�Îq«Ú~DŒR´£ ›­vZígÇQ'Ä×¶¿Ô-BžÇxÜyz6û~0Âi9Å?"æ¿è›b-Ù/N¨/�ÄÐh5Á"U"À],`Ô—ø9—(;˜ð +ª�ÓN‰ÀîÛ«íkÈù4õqß&¬'TQ`µ1�™bÕ²ÍQ”Ô Éfv¸Ô»äå8êè�§æ±h6¶ë³S´öâ¾&7t¨üüÖ­9W 4@A”lsl ¤EÞXs5€ãÿ)xk.€~‹Àóc†SbïÏ2` Ïc˜ÿwv³l•ˆ·”ÇÿÝ¡ƒ4*7+A€âöÍÊ*‹Ý¥ÕÒr¡ts¾TÚap†(7ýÊòuïÀ |¬øyý»�¯?>hW¸9œÂ!ˆï”üÒõRÁ/`Õ§áÁÍðð:V *•›Áª�¯©Ü€Š—88ÂOK^‰0 +…ÀcuâOµä�‡‡Ñjáj¾°\º‰ïf‡ß®ò™Œ•((yGí¦¿ZYõ–óÙqlZâ­Ãg‘ï‡ò‰‘ù˜�fÇ�,ÌÎÉÌÅΑoâ>s•æÄ¸ó#Ìý{bäâ$ˆŽc¾Aúÿ\÷bœÐÅíûÄzàdæ/@ŒŒ„NGKâ>=€‹˜à3~àt¨š@)pᎪÑè0€È®Ãémw0Úk’@�è@¦?ÃqN™ýó�cÿÌÌœõ +, @À–@¸¬±Pë ~¤î ª%€ QÇ @�*–8€:{:|ˆüù,0¸€ªÆæ>Øÿ˜çÏ'ŽìB׿ËNNðÖ.mâÅ hup°º +)ð+�à°(�ü_pøðÃë_b“ðÀ¯„$àAØ.<Ž|ñ8ñ±ê›‚å`úM|ú8¬ðá‡QÉ[eîýøÓÇ•Ji5ðñž~yôö§7üÒêÍJÉÇ7³�0*„�WGa…M�y„ + ÂЇ +KÙL¾^ÿâ HN8Œ‚‚†"@rT +œêœG¾H7’=.ˆƒn‘ŒU.Ï%ƒ#ÉŽL½ë¤"âÈ9Çk6üŰìqÌjº•ÿ•0±0 /L ™oru5há¿b¸&|ãyö +Še1‰ý*ð\�õÝm‚˜�›EzVØŠé˜`[âÝR«•ý“)v,€òµ™©©¹M½äÿ�Y(�9n0ˆŒF¦ŸÄ˜õã3<Ô ˆ åø•ýÓ¨/+Ä_ëøßäÕw(ÃÌ�tªÐøpW¢27³ Q�ˆÛ89Ì˜X-€èßL°»»5ÃKi•„]ð,�'�äÿ#ö¬÷OŽ#/Œ>[뼿³¶;Ñá£ö“§O¢ðs(ÆÑqéÙ?† Ç¡ÔÐŽ¾Ô=úG°é|´ž´�¢è¨óU¡ðIø v= +CZ7ò€úÒaØ%v|Q*·££ÇÇ…gÛ*Q+ª®ãÜ[-hˆ¾Žü½Ý®f³þQT(áÌÃ',ŽøøQ7<Þáü)�y6ù~ø©h\WÉßø‡UFÈ…9’\â —µ +ï‹üD¼þ܈˜o +0'� ŠÀ °`à&6 ÿù½ýØóùä„Wã|t$·ÇñŽ}?�nŽì@W´07Ëfi ­6�ôêÔ`=jF/¡2…8o@í {À.ÿç—Å ýz2`ËŽù1Èneÿt,è“�.耕„xýÐÐýæ¾M* Sv])¶·Pt×ÌænFÛïÌ¿$`£.``%v¤7ÛúG:f¸r`òæÀ$@ Ì¢}��ç莇s”ãÒF§ª }`Ï^4ιê¿`f±ƒƒ¾ØÙÝy÷î<ÏóùV±(QJÏg£yªT,Öo–¾Ïó}¾¿ëÍh6ô§*ËØk…ƒ¶‹Õ™YÝñB®²ð¸Æ2CHD¡†ã8ÀÙ<«%ƒ+ŸG¾³R‘„ÿ”HO`«e^7(,—È)A‰•°ÒÀ(× Š>$?¶â2t°\r3`?¸1Ò�õÆ|•‚ývÿñSn0+ª9gó�Zdûø¡]Æà{Ý=Äo÷œØ`]`‚‡:ðx^)�;ÿ¹1¶þSÉU-!�»`.-I +žÌÆõÊu6^4uÁÍôœ¾¿°Xo®,ær•Å> €ý^͆e‡°�¢H~ùÎÄ7¦ÇAYsÚ`> Döf ÀÀXâŸJðsŒÐ<_‘Z +�ä¼Ê›h#–ºÀÑè)p1Ì8Ä9耇$I›ñ9ð“ì×Â=‰c¿viûؘupF À¥ À(7p¿Aãl§ðI³®Á¥ì#x“4 �”@÷/ÈÀ[©”4&ÖÙ¨³å$¿—d׈tl@I(9YL #“:Ü‚yeöth�‰`6]ênå¶wF9€ÒŒ }}â oAYÄ~)¯ÉcéðHÀ •dù߇÷_mA#뜴×T-Îú+ŽÃµÌJ÷¤Í_6ö{øõa³š/âg±ëø„5?˜ã¸¢¾*òŸb¾yÙQ€ _U#¶ïÃc ŠçÕ‘þ¸úLHµ‘ÚÀ*¿‹Ø¿xñ <°Ô‡èÏfƒÖ.f§NŽ|g*0Ën +0#Êž¸Š€ÈÎ;JE‘гeÿ+%P”Àö& ~‡œh+˜Ì¦r Ï,o ù¹ä™R¬ºÛI øw³û�XM'*‘=‡ÍX��¢8ÿ’Bì;âÀuq¹� +Ë-óº“�«é,}w+VùDzÿHX¶ îÜã (_�¨k ÀÌqP‚0àR×V¼°.ÿÏ>ÑøÂñKÉ|øz,¸Ñ&²_È +˜×ín"Ž?êø �@ô�ÿ"<~¬žÅÀßN´‹Å¶2C°PÆbw\‘Gð0s©îk€¯¬˜œ:€ƒ,ÈbÑ�%Çàb2€ä¹åóªJØIpüoöƒ &ýq¸ÇØø¯½ØêÕCøö)Ô; :m$üf< €Ä¾v‹è¥ ¨Tàö—ÙO@×±<� ô~áÙÉÈ€-ŠØºÀŽ<Ž|gd›¢{,™� Àš96àÀ½ê¸‡äš0p†óç'𧙉‰WŠlÄ3^¡†X€”�ä×ìN¤çù‘L|5 YfáÜ¿›ýå°™Ò`{É^íC u +`yrN°¢«8ðø„þ\ê &Eûd¾D  h#öç v”XÃ?ÅL©ø2lþà¸\bM Ò†ã{à%yQ6:þ+ÀâþÛØ–€äÀíT@j$o tJ¢;`€�úÑ·-OSC€mzÙÆ8€û€�°™ À5%ð ÔSv¦À²ÙÀâ’ +�¿`¦�´e;žåºÆÕÝPUêHk��`÷=ÖñÃ*ŽƒÀ +iO÷ãŽdÒãÍyߟÊ%�èÀ(àð‘ÀÕÃÏfC渌„ +°ÒŸ —§*lÛ‡çäVöói9rÐbî…Š÷žÇÖKü=L`õS& ¸dÜ¿¹$Ü +Ó4£nÄþÆ~@ÔU=—@7@˜8�Xž +–ÐP ÊÀ&ÅþÎp#lÖîkÆîÕW�öǹ/(â?ê0›¸mœ ™ rzÐe—äeÆìtÜQ6ãWK 5.œÿY)«¬p·C°¹Yž)1w÷gÈÿ�€ttõwJ-VÃk!€�J^»z$$"{æPÌû»dAÇ0™ðVy‹°H¹îôÁÀ=C€À-Ýå0cgqyü–J€ÐÅëdE€äEÆ\¡—Aq­*Í{Sã›�‹ˆäÅ?†Ð$¸¸–qðÊánøû)2ç¦ ÁJÈÆúü +{Ô�¸˜_Ð7A‘ñˆ‰BÃň¹φ‹sÞB’“ˆ‹7?¿Ö§¦©ˆú‘`ñ ®!:c+¯¨£\À¶t&Át?E€{íÛ´RþÆ­1ÙãŸIˆÛéì�uJ¸½ŠÌµ¤0ØC°.–nÓ°îª ¸vƒN2Þó›û{nÌøí†ôÊ\@‰ÿÒt û7\^�ø�ÛÌ(ß�$§ÜfºÞ¤€`ã~ç¤(4¤:éOþ«Æ’šÂ1 ¼Ÿ8 +@ÆHÐIK(z‰%%€âp:vô‘8€÷Ùn‰pGBRœ`†Awoƒ-+Y¤Ê,‡a€ÁVŸßÕJ%—»È‘þ+•ˆ£nµ^\ {lЋ/”J@Üã&œGÕ›�ÚèA“½sÔ‘ì^€G/x• ç. úÆÅÍVœÞW?2‹¾J0­�/z¢zÍ˕닸+ü}�OÀøæ,×½ €¸@t†Ý$ïîÃÚE'ã €êd! ˜ Ï¥#}€ÈOw•¹¯5µ  À€Eò\¨?&xy.µ/“`”OÁýÅÿiž¤WvO†JXùGš±0$À�þÀ¶;>+ñJ¼�`�ß´Ñé¾cì'ÿ‡2ÝIÇ€'{[ì'@YnÞ»Çl€ÍviºÜÖР‚èf`í['rJ wàˆöÛÆ F°Ê¨Ÿ¢[æ@*å˜`uÆ�msøZÚ ×w~�9€;z–$ 3ÂpˆÏaH€ÁpÙ�x°ñ2tH` cF +‡ÊÔõ|>Ï1zrlüÂT…í鲎ÿU¿Æ +ÿ`x©âöû»ûÑgqÿ ŠV‚èáÓzð°× ØšF}ƒ±Ð=Ÿq|üÙq(ŠÆúnqÞ ß{/8:‡&ÿ«x¾O�æö`êñaޤ¾èGý^Ø„49lÖèêa¯·’¿„½ZÔŒz›�-HÆu�uqÑAËŸãSsűï,`X@z%ܹÊä …ŒŽ2y¦ø]  ¾ú8ϸœ)yçá ŽÅ�,x…)WÔ0Ínˆ’Ÿ7ÿqO5ê»ÅHðÒ€™Qßþô„VH{H~í3^ËHÀp€®Ã‹ê‹®nßÄRÌÆÿ6{/‡ÿg& |‘ÃqHA·n[c€·(üHàÆÿ ^ª iqƒµÖÀyHÍ?Þ<6h«ƒc)ˆX}‹Ùü¬J@€“îtœHÀ@÷C—îyYŠqTÞ�`zä$ÌìµWÛ«oqÌsÐ|[@�ºE +€9€T&^ÈL`½Æ¶±©ãc9?ðªU$™+ï0È~êºh„á›Ñ­ŸíkDÎÀ'-÷=DÙžÆ� ĸyŽ2š€æx£c¿§ �‚µH8Ž}6F˜eÝÿ÷b“‚F¾éGÕ ŠÁ-RÕap3ˆâè!nŽÌå*•ÚlÀJŒaþ,ŽWjóUrÒkø__Ñ‘ïLÀø”‚9pâ¾<@yÆU2úgê�Þæ¬€Y€ÌÍé@mÄõd:g^†@î2�æZôE°™* c Ò_Jt¤%è�ÌNŒ¶ÖPI·‡ô%ƒ @g®N¥�wè†ÏË _ê'­õ�»�{°›ì € -®×-¤»• ˜¸ç/Àªøû†¯€�ïàúª>ñÒKÄ€20ÒàÑ™ÿÎLJxG€#†çðG·Ò<€Ñ€9ûæ†ò˜þçÌÇm::ÿÔPZÌ@Rû½gÓ³|�Ï?Oº¦xž£�ŽOpÒâÅ ŽÊM“…ÙjõÆ�ZíjUÃ~rxO4þ]Cêt¢`׆‘Þjh&ì�äOí?ÀÍb´h!Hnß�;JÍpì—¸0æ L@&) d-zÞB°œw'–¢ó .m�Ó43¡C¶;Ñ¥°-ì+<�cÁ$x¸£6<ÝøzTü& )ãcšßàãõ4–°=J�K@êŒØ’ýað3øK¨rR^ù¸È#‡ K¾Ø±qFÕˆ²éÛ±ž;ÇÅ…Æ_xá™Áðsy?’!k‡ +Í�¿€þŽ% 0��‹ãH0ò{—Î]¸˜›šÂʹ‘SÎEøÇ0+Úe¤Î@èÇ?c$ßñADµýÇ£èÖ.|ýO#6DÀqq÷ïûU5MîGá +¾Åqà_®„áÁáWûùD8ò� 0xeAò‘ ²Œ§ó‹þGòÀV«D`ä—°ÓoEê 6›þÊ'\a~þ¤3ŒO1§©†aà>GY€A̯YU�ÉQ“Eÿ0Ø%Zt¬@�eYvgÛJt¼NÑ¥´ÁAÛ-Àe°ñà]e´K0:HÜÃ-kݼÁ;€-¦ü£« Ž`À’œ- P^]w¦‹)míTOŠÓ€ˆèERÈÑ<€`Î'PÜqG ÀÉöÀû0¿Ñà¾NK€Ï�·˜ +h𙤬ccÏ‚¹Ï¸Mc`~²ñ˜¨ÏOA3܆g¹0§�MÂ9¤ýŸcšâà"þ’ñ€³S.ç/5Fx€›7¿1;��‚V’Züo.û 6V*H(ÛÒ²Ydè­¨ï0Ï_^ ¢ùŸ«!@�EÌ"œc=$YXRy÷ÎŽ:ðÏx>"²“kEAä`1“ (iŸ�D›ÃïÊäÉFôúŠT‡2¿¢¾H)ünÜׇNd²@Ÿ©ØG}÷Á5Ôèo€s²‡›µ_´6%-0äÑä*&”g(å‡&[ä}š Àb“IHÀzqz¦µ¹¾šDmjÝ.’dtwœH²ÔPPµ×!�,€ /<½ñ?Ç0‚MuäÈJ9¦ >vLtßßc­^ìž¡lŸ ‰0¸o€� � ¨Áþ3?jC[Á$Àvç~—‰ œ!倯DÉ!LŒ#�ÂrhpÑZÑûsÎøÇ…ñçmÔp¤¼ëç§Ã-œCÄ>v�Ã�çr/^$Í/^ÆÊHXüq\ ýÒô5Q�°“B/(äí¶'®{Þ¢7ÇÒŒ…Eo1àÀ€,¸ È–rT./¨¢ÂJ6ÓïøäÈw& :  $€ Àôt ÚÕàcìÏÇ~€d'µAWf(îg1àľ‹Ï¸‚+ö¼ŽNª 8@Pv4I¸*¤/<¤H‰ŸÎFU“€�°šÉgÑ‚Øë$€Ñ–&6Ëíøä·ê–ci€9vް pïÝNkfºhMv��‡'éÊ/—Ô°½Å„�¢S ,�þˆü— ¸ºîâi€S“LŽa€9Vf’¨ µÑýð˜ÀÀÌÐ@8ú Q*£?€n_°“8€ûŒÜ·öºJ0À­p³�íû–�óHó²àÀX—lŸ_„µÏåŸ�_Dz`à`ø_änHÆenæqã—s¹‹SvFô¸<À3ÏžË]ÌÏó'�3+ÿšp±Pj~5?Yàx¥ 9ˆ^g}?@!`é`µ±'ðç*4ª40ç‡×¬%à2€ÝÏ©SP5\lž69î� (”e�D¿ÊÿgÇU‡,´­â” ¢uÚC†3�xŨ>�뾂mª!ÈŠ‚:…7þ“ñ‚Óè�Lˆ2Ü3e�)Ðl 5ú§À¶ÜÌ�Œè”­x$a!£-uÀƒµtç¸ïXðލ-;ó(ïB¦§_æ6‚ÜFÜo3€ÚB�p/ \q¾©õ'p˨$À6ÀP|–té6 zRáè šsxšcà�cypÛæ,¡bØÁÐPdR�r؃cLóf‡ñgð/zžÑ?“õHïç¾Å´÷|…d§¡? +œ‚x¨�òy,É|°}jÊÅøÏåYœˆ#�˘§*£§ŠµÃi¸%gû¼ú¨vð­ÉïZ%�UîÕ¼9òÇ1©+^åúœ?T¦¦¦ Z]ð +ŸâXæ ²“œq=_ñý7cÖX<Ž{g¢SG@��]ôO(¾%®�úÔQU2�ùªÜ~��°¦$Ô„¢ö¸ßÈ®eÉæäî™2HêY{@ø‹úøÃ +‚ôûÙLÐvñcŒ–$ðrñå’õ¨›@Ç&\wçd¡k8¢ +mf  8=£¡ÁH6Yx9D³lö›8€l˜Fö>¤€rk­T¤$p #:ì߃×6ÐFßê$@üœØ:ÝX>¡+ˆüAeòYé‚n{Í.Fm(´¸”àAâ”àp´`RËsTUÚ|lž¼ +ŸFŸ~Š¿t™,¾ÍÎ~}ŽõƒX^ôg²ÌÏW4($€Žßãõað(lPÇþ)oÒ�Q²ÈÖÉ>lÁÅJ�Y€ê¹ä8î� X€T÷6Fþlȧ¯ˆƒŒWyª.Ã�™'Ü.\CÕýŒót ¿øìÃ_†ñ82“ H(“Ð9Ìp•�c¾Úü¸ü>ÑŸ¼=Ñ0Ü Ýî=DªV2pd0GuRÞÎ!lU»¥Óútà÷]ü8·`ä�hœùtt꬀·9dì›ûYfµ’o8”…~¬ÍL·Ö +àFt7䘽àNï|üÑÞ÷ö˜#/ÇC·. R€ÖÖQH¬BÆ0‡TæVl|�:e`�=Û¸™å¢fN¢Úc°êÙ©ö\ËçÇžƒ8_*­Læ²€¨TržV˜øF�¥¾V<0’ñreâ:À3cŒ¿O£ÿÜœ«÷s WC¶ßõàD˜àJ`ëñÄל`‹¡Eô/0ëÉ|y|oÑ»¹„à?³¯ç§ƒz=xöžǽ3Ô^-ÿ–ëæ ©'¶ãG0ĦŽYm¿éÀ¿ +ˆ°Å^Dô8{À¾À±‡ ŸV'tÐAâ¿RødoC@²Ÿ@‘¿±îŒäîû’^U߆h·ïv6‘x÷^ °æ¶ŒlÙ”¯|» ÀˆÚ€%R €‰îw JP>H|ДÒûp)@Ûi +v·pu:€½�>Üsñ¿Às3t$¶©ù!ÀM°C `�:e`Áä?R,-Øéòu:ÀS c´ÑY€¹ß­\ xáb÷$¿0ñZžƒîÛöž,¿Ì,=°z21ç|D¿>y`ž‘2SöÞ¸—ƒŒ�çY@\5üc(ìƒî‰€™Ca*,_ó<°��êÎà×Õ&Ü¿´¯Á„–ëÍ›<ïúÅ)Ž|7àû£qæà@y�~SyEAhdP®»mÐG,€>�À€}'p<&Fè–ªç)$ÿU¨ +nLæ?<¬‡)ý¯„gài)H{\Kcº"i×="!ÞŠÂØÍp/ x‚“pì™<€lc@¯s]YWÇ&Çnƒ’HP8,«8RµÖ�Ø/#þãK%ñ4m 0ðä?&ÇzN¶PÕ°¶V„X `?ØÞ¾ßbC\«cÀlù-^àÃ�ö>r´ÄÉtÐühæãÓl@z0¹ƒ2�Àb’æq;©°¨®Žð;páí¤7çã8%”p’€O¬S§*�/Òê3'�½ Ÿ4XêØ^!¨Ì‘Ûʈ»N®SH@°ºr}b1—;÷,À›[˜[ô±5y‘à(¾³Ï2Ågº*@® —¿x‘ýQ¬á¯ç±²©ü?¹\ñ.Å ÖQX¯'º˜ç±Ö@ødœ©LÀõòÛi»»õò]±V`zbÆ @6 îh ´§€8þØõ—rX˜\W¾¿ªrŒÏGä KÛð$»1V˜ ¡Ë¥@Ú3ª8c¿&{B±_½b›vtXƒEµXÞï" 0ýò�`&`2iáÓ“9a͘?ÀÛ+ôÞ»Ýÿ½]œž)®òÖÀ5ØÖå£0 °ÕÞJÚ ` +à~áD€\5þã â•bª,IŸ€@ç—ØâÀ}à˜@ +àã’½J¨ÿ``«XäÓØ�–°›sǡ𱗱¡¬´±ðC$6”†n/�‘쇽9]0Wò*µƒ¸m•ÊÊù@ëú°´±;—s~Á¯0Úe®…„@åñÌ‹ŸóǽüE¶˜óÒpyÄ´¸Øÿå¿9~IN•/Ë5z¥¼üDŽ­rsH,’Ը̂xÆÇÏ�»p±\Št,SØ�¹8%ø:8î� �útøCKÑ0€…‹‰ GêcÉ’½i—‰Ïøzâ<¾+�äûÌàùÜ +ÃÕv[ØAªJ,Ðèx€â?s§±ø‰ j¾¤€e€Ñxê‘àŽd× €à "Nƒ;p¢ 'w¶ÙÝŸƒíqô¦^m8 +À»ï¶¡(ÅÕAcà5圤@Ô_@Õ{øÇ×ð3á?_¼Rë«-Øo à[è��`TÌî:øáÇp)ÄIW +à€e’À-ï ’d5é ú߃§ètß‹wxJö@äp˜eªö@F¬i½›f±tt÷Ã:øÀQ‡•¥³Ê &¶Á�šuµÏB!æ8[Q3ð‚&½zà/âfØ/úŒyÎó˜±x!PŸ!AÈzx#¦fÓµÃ9†Zü³( +½¬�Å‘FB:�÷ÎÖáü’ (@šžæ˜¨—(2¶'…ASÖœž ½éØ5 +€m� }éîy}æry ¨ OáíñLLðrI‘ óýH²ß9€„£XºgÄάÀŒÈ_ÍY;{ݵÒÌô´¸�*€1\“}È$p«|IšÖ`.`R0=ƒ�Žþl |›½ÿ0[Þ€µuXQ§”á? à�JÁX\Lÿ‹¸Ä@2*›ûјG×ag\¸ÉAö:EPà‡{øMüÓÀ^†Â9VLbu%x,€×Dô�2‰—b ëj7¯ªTƒ5xÕ­DX_˜�åìf€ó““™ùêïOòƒãÈ�OÒð3ãòüùÉÂùÂää%~¹Š Ç^ºä¾qsþ’훼¤l]Ÿ…j¥0ÉfÂÏã_ƒÓˆB'�Ä�Ñxýê�— +³³…‰ñóxŒ«…µk×f±œ-\ÅSå^<ÏfÈLµÖny7ER¥ðÝé*¾V(\½ZàƒM<7~õ%\cöêépÜ;°GÊóƒõlµr:`ß` ”È×DêSHPúÀµ&Á]¯ Y0?Àè_" «0ÑàÎæ©‰pà +ö° G›h8à hmÕ€Ô$˜L'ÑÉQrVô2â`3Cz�z»»×."Æ&—Rþs¶Ha{8P™+ã¡ìŒ=g@*ŒÕÙ¥¿sL6+ãýHСY°dYf–[kë%6ÊrS‹Uÿ ø!í�`”½Éë±àÃ��Àž­Tì툼-&ï™JÀ.‡«8°M`U_~QÀžõhhcW"<I€ “nŒÑí¦hxìù#€�Î�O\.°½M1<3ÞüJÕ¯U¼FP`F|î³'>D÷� ÜGü�³k·l×°ócWÃ!•ÞÛ›º0ž¿¾¼xÕSú¶ŽÉŽƒ—Äí ÕªìF_Äûì„=ý”�‘Àk° ckä}—¹€Hˆ,z^ËãÇý~G½[a¿„ y/o…K/�ǽ3:€Íò«öÁ<€ÇvÐoÉwD@þäü/%ôéøÆŠþHŒ¯ÆXË p`‘•H_UЕlv‡$"0êC!ý5;æ;<¯J¶püG¹Ñ#©ÌYÑ!uwo³ PFrW‰i!a?&›1 ¼„]ê¹ç\�ý*Ç,ëà6Ù%˜9€è/¬•å˜åæÀm +€2[·çãˆËA|úÁPpiw(øÍÌ=›˜ïòÚŒUœ[­-–ìíÝã/¥ß'ï›@š 7’q;iÅÀÜ}9lmu$U�ùDôælT +"¸‰êð^°ø7™°~Í«Œ¿�‡…f2 Öƒ•€öŸI¯ìöYù„[X~�©puµI)`Ý|¼ ªR‡7–5 Ï¢77•Ï#�ÎN}v5®{�@ï0yÒüüõjåaÝN˜Eƒª À¾áþYà‘òóðKpA=b±?Ïò*H‹\ðƒ•fÌžǽ³…8sJ8 æz !(ÈH(x)ÚJ(à?Hžð\Hêö» | ðtî¤`IÑ<¤ ˜&p³üNaÍí¦¬$PΟÍɇk¤ý�$s@Û93psÞ~ÿýv‰…á=1Û:Ù&›±ÿ1ã‹ÍŽÿà®Uìܽ÷î½u8€ò p�Ñ:©Ï=Ûô²Õ®JÞðu8 @ðí¸Úbc@eðÝ·ZëÅ+¥AS€¬('^üG¢^l}, ý)y&;Ø’’tܘP=€#Àü’vÚ`M ,œÀ£ðPÀˉðV†á>IWÀšó~ë[€e�I9kÚQ©6ƒ«‘W©^Ç„ Œq­Z®à ‹s^P@Úk< \dܹ̀gs•Å…¯2W©"¾&W�ͬ€3 +uõ÷ïå�žÐ…Õ7ð`4 ˜k“›cÏ"›ªÿR\€¥ùü‹ã¹9\¬þ…#úIpÔ;€íßT’VཋïA¶¤pÕ4 `¼ ò9ÌAS dh¨€Kl³„×N‡£ÞÙC£~‡#Àz½‡ˆv4‘¶¦ˆ€ÜL£hnä7æ0ºw + ¸/¦ ¯Ð]ðJXh/�Ày\XWèú‡.’œwä·5"¥ïÑ<Y‹1†|’dà¸=Ðèt̸Óô1€ã¿�Y^j±�Is�›×[Ö›gæl°Ö€‚p öÒZ­U¦þÉ~¦¿ð•¥Pæ,àÏ=0§n§ì€ @—k à�€ú¤ æÑd@@@Λ Ñà_tƒvÛå–6°•�ÐððVéï�©oCü=˜Ó³*]eâuÞ;wퟰHoŽetJ€iá5ì6°H›L’¸Ø÷ê,3XÄ¿G@¼{!?΢:w ôGf�1õ(øéìåóU¤ß)#d6�?• À^>ÔË ®ªàº~Ö¼Å:�Ò#�35ZÆ®‡=ÓŸG½³Æü¯®[.Àú«e¦ú €+3äÿ `œÅ”$€!ÿ`˜en}’˜I$üÇÞóŽþi|æSÌþ;ð|IÌQ(ó�³²Íqsrü—p�hL0òßÙ÷Þ§`?=ã ™Üٜ샳>l› &P?“ù�€ŽÚ©O`Çÿöúmj&E`´L†9p<@o×ÀuJ†^; ÛZo¯L»‰Á#[� æT +À!:Zí�?‚ˆü„Rætô‰g·Ù±‡ñoFy:Ap¿Ë¿Á¢ÿ pƒ"B؆<è! G€(4LýM¤”Ï�Ë]m™¬®øˆ0�D‡°‡ E®Œs0ÉØOfcm€H„<Çà;.ÂRÀgÏÍápîçYüû�°;b/wáz~P€Ïê|vw,y/°�ß‚KAÀA@·�B©ú`"ž‡°ÏŽBO�£Þ٢̊Çf �Ð?Ù‚ §*:ú I€¬ +Ï˯X¤ŸòÙ䀱?V˜àfí$ûY$È!ǹÅ\¯ÊÚ?ÇÀF–ˆÙe[99ú'Þ@Ü×Z—Ñš9€,ÜÙœ2 } w/úSV9PP☠ȑƒmnƒÉ,“Àæ˜$³p¯8Á* KÀ~Îæ¦3ƒîtAQ7±”ŽÊ˜àbí ÷«ðsÉKÚãïÚ÷¬€>�ÎÆË,Q ÀZ€ÏP ~!t'pŒí�àªÐƒc€”IÁ"~ñ„y®�·L§ï÷bîgÀ³.vÀ(æ«Y"œï9[À]áµ dü¿€‰Uƒ®“wãã2 ‰Ã+õæ¨é 6•\îÚµp‘þˆ4D¡Eþɽå Âk#�ú©ÈpŸ-ºîMQæè!bGô“à¨w6Ú³*0f%À>…@¬Kà¹bsBRPŸ¥ôjßãÚ Üû `=?Ö ”n¸m„¾p'ªQòsÉ}à?ì¿d@–À¹�¡5«”l¿j‹ûƒ™Tuw¶€Ûã@ï«?¤‡9tïõÀÅ¥�w6'ûàLˆùHüƒýÌIJȱ€• ÀbÀ!°¾žµúŒ–A•ÄßÕøÎ<š6¤¸¢ÍXç¾ý±Ž9ˤ(o €è0NgŸ€eKl'ª  X¢ �ö$7OÇŠ­u:/<ˆº"ïvnS‹(ÌxpÔ8êH úû +ø?Y)¨ñ­èã÷ÀÃÀ¯@¢yöÐ)À\"ûUÀYñ®†Ò.c¦"ÞßcÚÛÜ7 +ÿæà󱿃f��ìç¿ÐĽt�W ð®”âæöô ÐÛGp ºsS$è¿>[�=é“£ÞÙ£²ÿ®€€¼Ÿ‘`$„0È�ø×ÓÆÃÄ$’_Ñ<ÎÁW«ÃåŠÌ!àŸèÖ[n¹O zAná²xô4\ÇyZ��Û’Š)÷IrQÖâl:µ<’ÀØoí0ÃN6aÕÎÖ é‡ÎÌ€�•• ²ãÝ‘ý››t33ÌtôÇŸ‘ÕP*߆0ßÝm8 +¾ßú‹X€e™àŠé�,GvâϸwÄÜ>"äå Í‘Ê{§À`ü§(CQÐa>ðZîS/]2O +]»ÝÒx„tX8Ø;æ,›= Õƒ@nâÅ +9 ë]�£ð ÷ø h†Ñà «a?Ä:£ðá +ÖBަS¢÷°ïáü~?zÌ H¦k4a/a<Ïaƃý@CŽD`þ·GþžÄaÅ![!¯ˆÛõ¢0j†!G%t7Çsâ^A8õ?{Ü$‚6%úlEg0×àMo1�çÀ£÷žÖN‡£ÞÙÀú: V{›1Kÿ™ˆ·R«`�T + ~‚ÒV “CÏ&œdñExWÀ䂃ÀÎãjü3ö3€]$7¯EÖ+PôÇ–äbÌÄ}q¶b:nDUÇ_Åÿ”Q–{ŒÈpn¢˜ž±¯�ÀÜ¥·ÉÀ—#¯p·År?)€s÷øÊ”n—YÅæwŲ.@�Ö[% €¬óAhÄÖÇ@ûÛ� <I€“Àíw2€šÈù>¿ìa™÷—ü2V8–@j¤ƒ˜výÜ…K— +ËUvÁ ƒhçQ´»ë5ªA#làà°áûßcY¼ÏÊ@`×.ëæPQ-â˜ÁQ¨ñ�0W¾‹˜7ïáÒµj çŸW ÷à>8üPa<_`tï7ªÓã/y¸~ã=Ü÷ÅÍ÷©EQ5¦Äü, +w±k8�mÐÔä^Ìy|,ßjžG½³„3º†iü9@€ÀG²óËÀ´\öcgë³ýµAV%’°BÑ9�/ÊÓÇ¥pœ%LDHpnàRªÀ;É®¤ƒM14�‰Yú‹é)ÿÇû›àã±âÁ"1Ör û‡‹lâÌs3 µ©˜H +À¸<9€"÷&p\ð·äŽgÿø~3Xù‹Ì~¥h­­[€¢t9 +Éö=,áÀ2Ùj¸óáG€ûmˆ VCØ!À©K ùLöóPê¥qú˜Üé>ÀA¸ð�Î^—�p8 çÔ�ö�ÇGaâ÷ÆÇs“…B¡ÂAw|¯êß:ߨՖ¼ÙBuIIäZ-˜õkÞ¾]SÕÜjµp�5l¯qôžª7Ïkñ¯zó÷ç¯MNNŒ?7^˜­ÖpHµ6Â¶ŽÆUvR?ÿ]=”7�-^µæW«³¸cõÚµ*6³ŠpwÆOàGšo\mÌWg¯½4Ë*“““çùóÕFõ¥ó7æçOøÃÒQïl`}�uïâCu“L@†5²OÀ¬ Ég$ØY(È‚:l¡F ¯ÃÃY±Ï6Pʯ@"”H¬@ÄnS�óWλ4€`»´ÐÊ(þ§ +€‹RÆa"Ó!“ÓÓ·µÎ°o“;=�8sEWÑ2ãT˜€´á˜ È>ASXâIK\m·iàG¯6™:U�`½ i8þW8!Jß¡’� øc;qò?ÈḚ̂$À‰ ÄZÁa„¹�úÁóñºöîiUú'€h´Y3ÀÞ•E~bìQQ «ý³(Šz—sˆ+‘È�âÃþá㧇áµvÿ²ßï?ëG½ÞAßß�㧈å°õL ú £§[S›0|Ç}|"Îg¼\ô£]Äå'áé xïu8€/b/ï… 8¬Ù<ˆ«Qôù!nþf¸ò’»AðAôwÅŸ#¹õã/úq?¬îòÉ8> ]BÍóóùJpÐ�fo¨’ñÉpÔ;`æÿzyíUkâ¤êM€ËÀzÖd-"t|С+YOm8 +:€ ¤ÞÕ!3q,³·q´Ñ™Šþ™ +ñÏcÒ(ÃWÎã<œåD@‡fàØ¨Æ>lïcñ¼ÑÖJRÀú\�çt8Œ£7}פ.� ºŒ-·Qx^ï‰ô·’:€ö(¿­.�ñÇO:€N[ûIM�@ïÜÀuü!ò7 ÿ×[Óp‰è¡Ý`ã"0p<ÀA‚Áä‚søÊ‚Îd ­.  Ô€ìOD°‡5Àõàö°'æ7Ú�À˜æ:;Ï‚¦—S~Ìý_®7ÿlÜ¿¦b÷xjv¶�ôõ/بŽ9„Ì´%`¯{M¤û•Õ‡EÿjèjàU“š£ô!þ[ ÚãSǸ’víGúc‡x,ˆÿéwr�_�`ìïÊ´Ë€0§q?'Á¨ª…Ѷ}„fQ¾óÀL˾h+'®¿äJ:‹›ÐÛ X ¨qAÚwÛw;tWJŽýZ[°`sýX€*ö`RÔÎÉAöŸôǧÀ  SvÁ†ÁVH­~@pÇ`;Óü`õýî3˜kù&d°K„dAâL 8³OÁ=ü¥yA p{ ›·Ù3H*â¾0ìT|^¯¿1wA½øW®ƒ^õæ¿i6£ 2@Àî6�°R¥¡wü‡~p,>Äc[“À}˜kWßdÀ‹ã/V ¼~ÝUñ? +»î„…î ?u] ý–…yNÄÇíÔÉ,²v�€I€JUñåú”ÇÁ‚ƒÂ/ƒZÿt8î� $±Çñe¸s€üW,Ío‚iÔÄÆ:Y <Š€X>ÕùM’´p� +–ë—§‹Æf‚Š"`ñ<—Ì€Ðà_ïR•“+dr׳à�Î^§5£Nz²p§»™ô×ɺz +¾Eô›¤{–€rÛG Õ¹‡÷H@Æ@€�4'pO+@¬-#ëŒ$q¼ÁX¼ƒ˜z)Uã§+8êÖZímòß9›²‚ã­ƒýÝîûª zi`Xàˆ¼¡*6þ"ãZå€_õæ÷ÿ¼Ù«G² Fug‚jM–)i ÓÏꢗ•ûYKÛ ¾Yæ`Ç2Î_9©^Ñ(D×b\™€tÉÓ÷Á5ðú™Á]+ž«p¤oj@|�µ¯[/3 $ÀÀ/®öã]¿ßÿå/@t.Žþqá¸w&ÀÀæÈ/˜8ž3G` ¥ `&`ê\ýÿ‘$@⬀äÇRÜW¥aVvL&À·æ4€à&Åü\d€àÈè`X4@­p`ñ¿ŽÅÂQÔbzFù#@€Å‘}‰ëw*�Š�(.ÖÊè@ÍÚ!¸ tÁ”6»ÁsßG~}péÎâÆÏÛû ›æîvînrm� +?õ„üÏ{HÖäò᥸Y‡£ˆǘ±8ú÷øsÈÀcǽ3¹ äÄþ!`Á²U^SäÏ™éù„Îd´‘{¸8€1=£É|*€N42Ùõ0�²\à7mÚ,®jÿ•`ˆÆ„B³€Ð«.ÓÎ)@uã¾.“ž¦k¤°×X… hÀ]vÚ¥i¼-Ù.†“Å—Ë÷ßél²5¯ÞáÎë–3+ÏI“жÀp¢0ä¶AB'LªŸâèñ;ìfä¥P$ ¼±ÕÞØ¢&Ð-�Ál +Ä“q(É¿×Ý{p[áv¶�ˆn)R~ÆÔ¦‘¸–Í•ÏUÃÞ»À1H $ٛ͠Xßü�µχõ6[‰~ìÙ±K k‰Á,ù »WwCâ»—' KnR?T•�cÓµ‚œÅÔ +»d4àÓ$ö5¡NV‹Ú¶ä!„9,‚Êõ*¶4&ƒðæùš_«`h(Þù¨éCªýøq?ÆË¡¿>Ø�…ãÞ™€ o ˜@ÀR(Ë0€ÿúš4û Æê±Ì"ŃF5�ñ�þ=Ö§ãÞ™€B[– °wÜ@Hh€:�:æ÷Ëò›ûg‡ Ø%AÀ•æÑP2¤r¢µaÀG×,À>í9É>#,¡« _JÛ-4 ½,HÛBÔ=@JuG{œb+Yèm*‰ÜÅsLÿÃt[ìO`Øp eò>kѰçÌËìüéo8€æç‹ËQᑨh…�¤xé DÂ�]m²^½ƒ¹�²¸Lm‘©þ«ì"üµÜsùðàó(Œú\{¬|öã°ÿ1øì† Œ~á… UO¢‚:€\Ë#j7 @Úsì‚€›°~¾V©à +KHµ,âåÎL­|æWáó?1ÙüùYv`­3 s�þ„‹ÎQœÖ_ÀØP’R F’ +x}i@jêE|Q“ØšÀJv¹i0§SصܑÜΰì�„Á=9oŒ×‡®È�,RÀº“’�йÛÂïk�ýÄÝ# 8Óêv6• b=ª@Ö�ø6qìè›´X3MÜÓf@ 2øÑ÷±cLÞv®?€Ä˜—À’ôî'Y¤Ûݽ÷Éÿ÷ÕËqÆ0 ð» @=è…M0e€Àóa bÄúqZ@ ,âZpÀ\2�„{ïq€¹~ðû,È¿–›ðXî~t• üFÂ�u—jŒÒÇŸyáœÉÔåJe¹à×Ùó/XÎâ +â:Ý?ÙïF&! Ë4ÿ�wµ2ÏàWž«0Ûp1¬WÍŸǽ3 _ ÖÒäÞR( 8>k]K[; +&ö©– È%t‚ ”@öG�®öÅ8M²fA≒é4 +v(g]Ž$°´9Ë6f!ÚG@r}­ðŠú6{ŠÿËViónûmümÒð«fx€Réåt’XSö4pΈøNhúI}¦÷•õ�7-À=­� uËÊßÙa£�öí2säÁJKÙc7(ÍšT€ \q‹ RA'æXê�«dÀ}:‚d—x€çf EÃà +°}'eÿwÆà pä}IÅŸ µò|?.¼É>x@nð_•†£ZÀÁAè Þ´C%uø|ó‹>ÒÞž·Oð]DÈ—§k ¿Ö˜=xÏ—�hž‹6 :wKøUÜ(  ax^.RØS°sâ>g€¥,Î7òó¿`ެ¨=yÒšYwˆ¥MÊ­¶jí:ömõû­uV0`á#€"æÄf9»/ì u{{t;w`+ˆ#À8ˆƒz³^gcüÄþ´N˜CN>ò£ 21>ùfüÙÓ~¿váô‘X8~�éý©ñ1hÀáà’JçæAùÄxjGþJÂà_ +½7GzÆ÷ÃEo¼Â†Ó‚Jd]ŽŸǽ3†®,àØúg”  ˆÀ‚Ømd| ƒÕþRâ˸jXstßUbçÈo0ê�wàl;w‘ü‰H1ÁQÅqFH%6ÚS´íl#¿D Yɽ +JÀ«ôÿëoo®ßmßÝܤ8‚d?ñ¶¢p7ÍïЀñx»$¼ñ~”`¬o@K€™lÒË=€l ØVt,þ+åOuÀ�„ÛQ4qv$^‹V ÉxÀ�=”dv?Üë>H€A׆X3<‡èà±ZóÕ+yoÁ_^–ëo†q~öEá‹8Ž>dÜßìD½(ºá?‰¢fØ{Øë…ý~²S€‰üÇÅâHíþ‚øê§A FR<ðÃ(¾†G¡§n=Fâ’�{vüÜÅ)Äß�•ÉJ¨:G ÐÜ„=: bAÌ�- áþ' ¸sÄ«xçó•ë¬�Ô‹æñاÁqïLÀ"W‹3Ø‚ ±OÖÐȸ0puâ +#~uÜ?ØC+àüký±œ�Àé�-ª+àè°‹ïaˆã§Â8 lWÔ/ò›†eD†¬ÿ×}7u�?î´1"½Ï¥»ÓÑ›ÑÐðÃ9âî&óGìm)p�µx^v3r«ë|‡P8€zóTèø?cÙ°ÓWff¦5ãOOžû÷4ÐíÞiµ¶¶:C€šçÖ:¥âËFÖ©Ž;€nRH +ey@Ð¥t±$À`‹õöÌ$í�D¬â»ØA–lìïG'u tb)€wÕckþññ\éŽJR8�¥ª*ð{¥Ê*ˆòóÊÀãç5ÊqÅ»V¸T­^«¼Jä/çr°5ðµ +îwÚì¸w&À°–@áÏø�O¬Ë(pºpÚZ32Êç·ˆIü7Êg¡Â€ÄèH~—[(NÇ0Gâê p3/ÏŠCÇÙˆúŒ)wºïvU À O#° šˆí\¸'KW²ÀÛpU'•߇忦A`à— 3þc~ ðÖÐ>_,r/Ô&Н%ð退÷ÆL€+WÀ}öb8�KéWdá¢m$ËÕ' I±>&:ð¿Ër¾­²s"ê�wÝû®€ ©À)Éh—ït?2°E�à�€ëÿÆP›�­VÙµGnbò’zؘ¯BfµêKØL\›_òÁçZÍ«ñÈjc©Ú¸Šß¨ÞÀFvÂQ«ÎÏ×Xç`�G×pºïU+ùÜ%¯æÏ/yó¸Ïèi^CŽÀùÜädnòEü«ÇÇÏçr—.å¿•;�-y<%ö\ÒP…yC*×òyöÿQñ'ò“*ýç°æØ�›@*â<öáÌÉB+'Îyǽ³€j´7h�΂_ ÑÒïÚc±'1Lá-?áô8ý sçÍØ&¨åèu„Ñøo| Ü�Càf»¶âN’,L +ù#I‹MÅyÌ€ +l2 I€z2Òß=`z!À]Y€õöÛC@ÀeùW|Ì¥ᑼg§^â*«Úl +  Ë„±gÑ`ïW;æÀÚÄ ¾Ñ*SÐ6ÛLõ;þ‹Ä8|nͰͿ#ê éHÀÏÐÉμOåâˆÇæ6ootHÐ*m}�€ûG ŽüÊÜì?{ï ÿ"þ©ÿ—ý/âGq¿ÿEq/ŒŸr @|Çæ¸±ûÿø3ÍÞ£ç�˜Ë†ýÿ€ÕçO£¨-!ÑW¡½G瀣8ÖßhÐ<ÜñǨȋϰ†²ŸCÔnÆÀ/TqÎMC°¨‘Gbx•ïÁO°ó�¢}œ}�©„˹s¹<ŽeŠ„)„SàÈw&À Ê:ûü#ða:À Imfu`Tž¤G5°B~ƒ Šü’�üÇF¶ìq2Á +�¯Ç½É’Mâø©°ã‡�ÍÐ+N ÿÝ_\À40\om‘øjN�èO },$éÃ%p/°Ò>5^¿ÛÞä °,?FÄ?ÀL»Ûn¯·Hدe’ÀWÈ$À˦,àC>B]3ÿU°×½Sj±ZB{¿‘ì5¨Ö#À’ +Ì«¿ïÉ~¾‚ÔÀÜßq9$ƒ<+hÝÙ¶<€òÚût;t)ìïŒ!¦Nš bgýÝü8éêkU¯ê-†�êc’L^ŸE|a3zÈAÂÁ7iÄ¿o6]KAVõêAÐëýù“ǵ�-�½ÊÔÅü‚•.×ÕöøØôF=—Ëç&GüåDäãcϪ•"6ärÌä€á•)˜ nÌ_Ì]œÄÇ”¾°)c}y¢ÂqÂrìšüÙñ‹J'¸m'Ãqï,àŸZPÎÌ‚|¨Ël­+k@WX¥ÇUîKb}×Äç(Ü&€ €"éqâ±RÙ’\3ö}-tôp3ù�XÓ¥è²*àB¦ `‚=�/–t)ãÝcpuöš²Ÿà[{Ój&°—ø2ßš’òÅÕîG¡Å|±ß �N  ¸ÏóõÓ°1 €“±’@† 瘶aÇÝâ¿õó“ðŸf`+uN¶·,b‡ðY€w”¶`ü¯<aà ðÑÞƒ�;¥öƒ�Ð�!¢dKˆüj^ž±leÞ{ ߿ʆ€@½„MÎÍ^¯¯Ž5ëA=ðÝŽ0ÔÙÞ§¾\_VžÜˆêìÊû:@²q +H싎ÿå4NQ>aü…s¹‹ó‡Ã÷Êä”7EŠãˆ ˜ˆ|å"6à |~aabTÇêE‚ðÌMÄd®bšq +ùÎ,¸àèÏO9 +Àêz áNiЙi ­ÙÃ>Y{[Â+åWÊÖ¯âë,¸•™A4[³ékáÈ8l–x…M�Iþ„û©°%p†k:„y9fÌ›¸µƒ…K‡Ì í=o³+Å2l€ÚvÔ#ÈxYé[ÃÀêúª€qÞà„À�c ðJTöш$þ’þ‰“T/÷™8€R‹Lß2²ü��wÀ @u{«µq�à1[P €s;Ûv‡íŒ0lP@‘(ot?†,ì( …î.¬&‡ä2ë0o�Ó£°jØz�29€ñ_wƒ/zøn‡$`5„æg³�iï5Bøb½Ipó¤R€ÀqïdŒ?3~î$ÀÑ·’»¸8•Лa\Ÿö‘ŸŸÓWV%ðòãSƒsN€#ß™€…äòX-Õ‚�@k}½äª Ðû+;Ï`™úüpkÂyvâÇ~|0G[sƒÊ1“]Yˆÿöù;À‘qØ<�§~¥¬<€Œ ÓElf 0âgäiزþÞÁÔȾڇ B•°€ÉfÜݼ۞™¾"›n4%Pnßk¯·[kÌÈ–¸¾öN±RbU+e ¸·Ï¢rñÞ–L˜°ã_b›‘�ÅûÒÌäW`Û €#&G´�8z·�Ô>î¶Jr¶Yøë“DÀ²só^øA’ð›¬ú7ö4=ô—†Á¯zH0Ê'˜gG0©ßŒª1›ys•‹S‹~óó°þ8¢€Œ„ãÞq îÖÇ3cÏʸ1ýã÷ܹññqŒ�»^Àaçrùç*9:†søÊóÆÇÎÑx9ž©cO†ãÞ™ &ÉžB_™mÀ}æ.ü¹î}»Û¿*N;L0Òg_~ؤ!=,ùÝ¡â±à(OÒÙÚïGÆ!`óó0P°ß€Û“Â¥ˆ‰�Î=Ö¢ `Ü(Òð1ß}n4¸!û´©¼Él@)À:R›™$`ÈL—Ú÷Û«­u>UPߨ�¥ÎJà€ÿX-ê€9€|T‹ûÓ¥ Ð6ÀŠÁ„ñŸ :üR €8Úívà8ñÇo1µŸ:ñ¿»}?ÑÆ£à�MÚr8PmLNrIRž��XŠîU«óóAX=\fW!Lسª0ûîh†y§wÅÁþ—Ù\À% +Àòò2.†¿ð Ú_©//.ÌUòS‹A3~r6W׿÷FáLçÆÇÆžy_Î�ÝH˃Ĺ©‹ º2 p>—Ëó3tbìÙ±ò©Øm:Ž{g ëò”ídÁNƒÒuÆþ ˜¹'1ÀËïKjÿ¶�ž€0·ðÊt™ìÊb ¿‹86›á`^!õ¥”€!ïw\€s�Φ‹ç¶T +`3îYìÛîM©à�ü0wY�IýIÅÍÓ3­Í{ísÉÿ”ú€­Ø9 RÆ$€sXãëçç@Çœoos "î2šƒ7ðæ¤ €‰¹ÿœ$`òAj¢³$øJþ§½;й½öþ¿`€s@Œ±mo +P•ƒ}.+ Z©ª»@ù"u¶ÀÌTûð1ÄQø«>�ý& oÚçòõz³_}Lsà]‡«€ôzl^|pÛ‘¸�W€ò@ë‹,“/_ÉW” ˜»@`¦Þeæ/^¸xynÂcþ6¹mLC0ñ¼Çï§ÂqïLÀÂ2‚šMî K£ìèZ';‹ËIçt`ü ¸oj @ '€#`ÃAÖ�ÿÁpd€ô/«¿ÁL@æp憻p½Í>úÜÁ È#; ú;Î'wœNØ;äh²€dwS +~)áë­U¨M ê§â}üh%˜[ ÀO¬Ê‚vÀ=±n«\ji¼€$ "Óë@€6@guÞg`#©8ÄT.“éì¥i)€ºb)@ê>”°K°Ô8 n“¸žß¼l�n™èA5v½…úõ7|´vÙ�ýð«?‡ËË0n½ôg£& +†È{õ@Ð ÿhôD½9Ì�X¸~‘΄_Ù/ ôÆ  XùŸ™)ª,½ð—ÃB¸¸ÀªÁ’ s ‹^åb ‘Ø»æë§�ǽ3Æ/YX$£ÀQ-)�dˆþ€}cŽ€’L°€[Š]G`”û]àÈ8lž`7EG󲇻- Ñ«pŸ„òLF~�©³³÷s/ +X/¿ŠT›¬ót5€åôw@ü,!3Ó·7;m¦”€¨²rE:)Eš Pt™€Ø†€ Œ ±Ž1[/ÉHPÏÁ¥"`Ç q<I°_R D^Ë�g¥Î”[¥Û­ÛI)@k­»GÏ¿ñ²:9â|uniZ±Î¬Àó^ƒŸ�BËÁ +¢5²ã�*@°Fá—½ê+ ô7)±*=õúÊa᳞,@ {Œ‘0r¸6 ˆ¿È¦<‹xRæEà6Ñ­Þ“?§ÿpÒ¥›s••ƒ ×¿ëIµÓ¯7ë‹•©©z3jTÃ÷\jçD8î� ° +ZFöd:åü eH�MPö6pø“öI?Àè¯_b¡5™ƒ ö‡#ã0°YÏÍš€ê O᨜Ài€q#Â;kº-ðÇ8‚Ǻã“; ÝnÌRÊ\ç€ÊÌ@*I€"cióZ^Ñ úgzº�€·²š@ŠþY)�=ìÝ1Û@¥€H…•ØÚ‚ÿHÉFzC¢íN÷]²®í.nÝ‚‘§) v8¼UºC`¥Á$€:è€ý¥€úÁ+ ê°p™€‚ÃR€²U»cE›Æ¢è³tŠúQ/Žú±WY@ê]µýâþa¿ñä˧ñAŸ•à ®G‡O>ýª±{øäË'_>‰â§aøYÿ€•YÛ¯†¸b\÷~ÔŒ‚©ààñÓÃ_<ý÷n¼�ßq|ÈáÆûH�aÜ £Þaÿñ—‡_ÕBÜøË_âOÃOãþgQ?a�ÆþnÈãoàÄ/~­FŸ÷ ~Ð�ÂZm7 xØ)pÜ;`èÊÂ!Òÿœ@øM™uìÚÇL€-f²•¿ƒñŸ‡Û > ¹…*á”âÿ&zýCáØ8lž(j4¶/t�¦,60LÀðîV;b�¬¿f�•üi[’cQ`ð§ú€o·™ ‹îÂ\¹2£ù;L¹‡I€ÔÈp]7å‡è¯?~°À4Ò +¬`~LˆÊSØ:)Ýí®–JV½Ïø?0ð;8¬³Ó*¶L°³í€ ``` ©€`݆`!!°�aŸ€;%öA îgÀêàW«…ññ‰\¥P�ŸŸ�džFcö ¿Q[â_Ãêùs¸N®¼ÞƒÝŸ6jþ |¯iQ»1ÿú�K7j�oïªW6Ôñ–pµ¥¥FpëÑÀ%ýÆ|•´7ŸŸoTAäp7À³ðžÀ�Ú <›5pCãÛA�n@-”æçÙ^(_Á¡K¯ßz}ökà¸w&àÂÔÊ{ Aøby½ÕÎä«ñ—ÒßQú˜`įƒÔ±/?ù%ö‡#ã0ÆÆžÇc»<52v s¸ ÒÀýNg“-€c¢s6NÍœ°ª�Þ”ÀúbYÀ¦’úÃ̬?ç� ¸2]j;@°”´Ñ_K +ï0” @ fS›]¬/È·S:Ûï€|ïÞ)•­‚¿ À €ÔÆ�݇%¤p۴€G0;„¥‚€ûƒ¡Á Dá*—’<†ïpÀ`·fUàAcð¤V w«/äYy^¼ªEÑ£F° .ß vãˆM8hþ4Øõ—‚AsÐ�¢¨ñÓpw7ÜmÁþ>ÙÇÃnD /ÝÄ®_¨4 ¡»Št\“€cˆû_ì"æG¼Gœ Àv‡»³»Ÿáæ¿àˆ¤�G@ p"øZ°»E¯ÿ4vyzÝâ€æþ­Ê-Ïß�ðÑ~­);evÜ;p�* FDª®Âxš)€!ŒüY 0` ýq[yœþÈœðÿÀV9€â+î¤:Ú}\ &Ô žÂ½˜Hd¸®ÛàTþ Iý¿k9±þª +ï23ðî&ê|Cœµš:€+Óß¡¨‰è¡æ€‘>œoNàÊ•$9Ó<0ê,ߎüe4ÝÝF=+@zS&̰Al1(Úœ€È@;�P€dÏ8€L Õy_à€%ìÖ;c`Ì`ŠÂ}ðe%ÿbÅã±ÊQuã¨�ÀÃGú�ÄÑAüøsPña¼1¸Õ‡ÅŽzáAŸî¾¬FO¿Ä³†u?\Á3A� oá’ð§¡æ¸w& €œC6þX 0ÍŠ€C™€$wVÜ'ÀÌwr-9kè× –\1~ýCáÈ8 ê¹]ô/@óia`“ ÇB9‘]IÓ·e8 Ü)Â9¦úÎp’˜�ýçk+µ7áëTo˜ÿC@î3YEF" wãVÖ 6ðRƒ©ÃT@*È‹ £bæö;€ÁÉYSpûv˜l ½‚}üŽý:À:„ƒ2“Ô0ÇÈnGß)Ê 4$pó¦ŸLµ›µ%,k¯åÆs•E楩^@T¿X˜éÇl?ö¤ 8CX‹>k6Ãz=ˆ9j@ +îÃÇçÕ~/z‡Áâ¢ïU–{_>nž–ù¦KŽ+­0ç‘첈•�ßVª_D¡rqs% <ÅÞìWÿÝÃfpp¸RFõzï˸îyH>¨BsþkÀqïLÀÂñ,~&ÿúØÝÄt‹càfs¡�ÕçË¥bÙ5èÀ(÷�Ž_Ç‚üÊ@L’83Ùõ‡#crûl ;b\¸»o„ Ñ)æÓ$¶1_³»‘Û�¹!ß�áÕòÀàc½üjò’D½Òßá;WàÚ©�Èü›ÿÇOM¾óƒ`š@ÎÓ–¹Î…ŠÅÎo¦®ÌL@æ<¸Ovš°2Ïý„Á„@€}eàŽÚ-#âg)�à>@&A§Ó ˜”J¥ÛeÌ� +À  ¸ü›nÂ*&聯¿èAX'tŠnUcŽ3©ÅO©"®…½æ +{ Œ�ÐW‚›Xæ¡øìÏÆQ‚ñeúSsõ'ÿæñŠåÈ�¯:¦8ìŠ��eŽù~\�þ¨¹Â&¡n®&‹µäæõŸUcêCïiC%šÿgï1îm"µ<ª5N‡ãÞ™€å uXj6P‚àðôn2ÊkÉÒ€™R’‘\sU‚!ý‡¹€$>�³Ñëw€ãÝ‰WDQ�Ùf¤EŒ 0Ä‹7á5ëî”~K¡$€&â˜`y {:�s$½¥œ °Åš"}¶ªù±˜Á¢XžÁ»õ ŠÿAæØ°.?­‘ÿ;·K%'‚]HÀLÆèH«»´áŽãALlwù�·Åí©  <]°uŠ`¿?j +a=¨!†Ì�Wæ<5ÚeÚqCµyëË>ûû\�ëà#+ÿÁ›¿X +š¬ãz`?DdùM2Œ|OûÕ¸Ô›½ÞA}ñúb¯Ç1F( iÉãð$š�† nÉ%à//×o@}êpø&à£gnÄÕ˜-þÍãf³yЃ˜`_#ˆn0có$ø�3V 8 ü‹Ö$W$eåe©N!þs¡•$NW¼(Þÿ´ŽcÔˆ•͸Yôú€súy± DÅ£`+¤™€²t4 6Y(O°­öní¢6`×!ÈzÁ©Á¤)M¹½/³*`)51qY ÀR@rŸ2�åÿ°Pï +üÕ,ÐÄ™"} +¬:ó¯€Ñ_€Üës‰�ßFüïòÌð‡ëHÖU~€Å p*I² î5ÁàôŒt lj÷®‚Á«ÊO!î_\ö±Ech�VIExq9°q¹þËALÀøÏ9qrD‹gãâm�¯¾0ÇaWB‡¿/XµÈåÿëþôA¯Q‹šŠÙ“úÈ–\Y†¤¸ÝÖpüã`¿Í'ˆ„ëõæg0ê‹ssÐ�•Þ +œ“Ì–?òÇ’ÅÑÐÕaÀ|3P£zýÑ,@¤; ËRWh¹  U9ø~�ü§`Á+`¿~I\ãPD§ÀqïLÁkJ#´a)0Ã.:3l•Êà).k-Aš0ž èžçŸEþZ8€?,í(‚<†¸€ˆPX_¨BY(». Ùx}FŸ,àðàÔ`L7))X ãìls\€ŒH‰ž8÷Í>4ÂeXJ@­)¯®¿]&�Op€Ä¸…#âL”ù'%Pš€@¬Ï€tÏÂ$ u®"�s ¯S„Dþhícév+#@€u…x®f�œ`'8Z÷ë òÚH $i€DH†¦•üx~ÎKFÙõãpž�$™Ä1,ÃÚ›ˆ‚ùÕíÖ +¿ËáU¤¿W¾�X{ÀøûaÖ$« �íc$´O´'øDŸ ¢•ÞÑ›»„D=Šf£ƒï7{ßW�e|Š�vпa‡�ǽ3qì(û[A™ÐRž¶„”¿ì ë¤3�rß™Ö7ð‹[à €‡'yˆiÎÜX_GºcmýÝMV³GôŽP2XwlÆKÁœ„ýÎЂŒL l+ òóùí*Fø�H¶cª§ÿ +}@Úÿ�d€Å€';úv @ö;þóƒë„˜ï&À‰�sÆûŽ÷ÎàÇ�€[ü%ìåÇF8€¤`»5Sê ;ýú3ud"XòtmKZ”Š/s¸9P?u[È$¨žwa<_™£ýW’ _›Í +ÙMš„K~To.=îáÈáa“‰î„J„álãËÞøp}n™\=�å'"ë �8y·fSÃYÄéA}å!7ƒûËÍ–å Üœs„݇=6>„Hrð«tÿðÆ­ÓîIŽzg ‚Y0æWªSI†å2½« +´8‰F˜L!‚øÏ…ñ߈ÂhW1¿�€ºÁ|A›ÄO#è1�öÝ[_g_Ú!Çüv“a0·/q€ËÄMÀ£žÜWS@ +€]D0 �d£“�v€È™ze¢ÿ”ïÒ8ºG4@P +câŒWðò` ­¨�÷¢æ¸¿é‹å8*�«²WðX"g  ˜Pê>+¸;”°s_`ß�ìทY±Á 3€Ý�ã89€Äœ$5©’¿È¦@ójv4½ÙXåb©ÌE\ 9:ÇÛôm 0ÑV W ¾°5М¶»«üÃÀÁ +5X P¯ÇÕrã¿ÀÂJÝrðxõ¨ñ  +©�èߥ¾GÀOiôç]Zÿ8ê� 0·/™Èy%ûK€éHز†í33¤¾Ø,¶+JO£€ß“¨]…8Â,Ï¡&¨qÿ,™Né³°€½Îöú¸w‹=i‘*Y�‘Ç�ûãqÜuÁ Àذl*LŒUß½ÍØŸü—H/ ÿ±ÐÈÉ� ¼¥¤,ZgŽÐ°ŽßÂß!àçÀà�$gQj,Î`c@“€t²·“AÆl›K¥„Šiž:€—åTÂçò”Ȱè߸ûoçk‹ãôLi† ɤ�°g–àNr$ù’ÇL@ëd¾ +¾„µÙH{§2ÜàZ"ϳðr¨òBP͹ñåeÆöÍö�‹êþâ÷æ<ìþóß®ë]gÓ¾E\…ߣªõ±2%< ›÷ükA”¤ˆ7ýC×ì�ÃûªõtÒŸ£ÞÙƒàPTMAw5u¡Œü“lúSÂøäÿy³c'¢|ÕT. d>ŽÑŸñ§ŽÂ [Ø" °ºŠGqñþŽŽ)d%à@OöyÁ¬çÀÂê!hR®Ÿ&*€uzýéÄt.Äçì»~/~±�rh4à\^Ž(? ÄÛ�2)™"‹ø)eÎ8òëC \g†m1øÚó'“H? FîÊHK4- uR– ü=9mHÚ^cß–Ëô·$À} ¿a¢�ª†Pd‹blr!„ä'p€$@ŽJŽ£g ú¯ü!ãË 1ª°lgG–�ÑQL§ €á!âVvl·ÆÃtÞû³Á6°HÁ»>Ç¡B™N8î1FûÉ_<Ò¢×cïdAxcŸ€›{M«#À›s‡/d +á!¾p«öÐþ³¬ùË¿¬�å§ÀQïlÀEþ6d¾þJåUå@Ö[`£ÍŒÊÇvZ� ¸Mä˜ê‡GÛu¼NÄÎ@Œ¤À1p…\÷”Ú€7k¤É`1ÚŒáþ¯Xÿ²Àø?”ØÞ¾Ç¿ÓiYÄÁ?]… ë çÏ‹…êAÙ®J -Øï”‘:ÀµWŠ«í k + ÖsÅM\³R€aðã:,�hv¤OÁ¨�î�üSᨈxÜ¢pÐÇá×Ò<ý±E`% Ø—ðß’ªY˜T$t20ÃL$Xm»Û·Ë‰h™ RÔ¼%¿Y§¨\§ý׸ÿán5®Á@8 864Wz�Y;¬1’«=¿/€…€««ê¬Ø¥¼JþB^úá²éŽÃQýð V\YÉCD‚Þ<‡ú<âX…¸yðsP`[eöLÀJC,ƒt–À2þ™«QÉç-?±ÿ5¥ŽzgYþ[’vsEÅÆ¢ÉL®c³D;æ�vàÚ°ßB1ÕÀàèÏÃR$\÷RG›JÀ8“&«ëåõÁbt& 9\RÂò¼€¶ŠûzVv¤­øŸÝ³R<¢½M8åpÌà`RŸd½‘ß6¤°¨?&À²å^-¿ªøŸÐ'ë¦è§ø/ò¶’¨€{{YàÕáyÁø”þná�B„”à Åbâ’Ú|ˆî¡8#ú¶»�ø_äÁ˜u0(}ß ¾è`V ØáÀb8ôå’z °Ý.—‘�¸³Ã1Â, 0Rˆ(ö/æ.ωêDÕæ¿`ÜŒ]‘W­Å?,nŠÿ>€©�À_fÇ€+ì-Œk»9˜a-DÙ¼FBu<‡‘ßæéÏ”ЛSïR¾5¼7°V3E°¾áˆï>l² åô½h"øÀøSÛ›ìãë€<€˜Èb¼Ô°VZÅÛd~§ÍîÀU��åzl  £yp‡…G€,S«E@€mÝûà=ó˜õÀ +rP�Dæçço¤s05üš—›ÈWæ«óµy˜oŽö©‘?oT™G¨ŒÀèÆ~@±ÑÐ`ŠÙߟ½±ÔÀñ»Aƒýwø~Øð÷ÁÂ[ #7ÔªU@î÷wÙ£Èîþ pýqã|îʼn'øy~ÿåÜ„d|||²ZkÜbOnŽgÁÍE~�fì7¨'øº»ÜZšd_¢ã¹ç&xþøä·xUz +ÎTŸ £€ÈF!°ÖlEÖÅc˜Åb•4DÅ6W# ÆþàË™õ¯�ø‡Nð#He¼O±yÓÝ›,ÿo™ñ?£crº¤Ó€¶² +Æä8ái¤ßy§ûN—„“3´í~Äw@Ôïè2ÂþŽÒ?ãÁ 1¿Þ˜ÝÍÑ_ +`€L8¾h[â�Æ�9ÉRBJ\qÄçULF•d€ +ê� ÿ�Ó4ü¬¸}§Tþã8€ Vý!ÿ!p ì*”,ßwXñ�6;Mß!›wî´Öä¸áA·]8€ÎqÐï÷?×üøñ_öû7ö¿Š•ÊœRQ´~€e Æï~ú˸È>þCã½CvøEC�¿‡ÁJøtþõ¨�s>ÿwQôQ<Œÿ“ÇH aÇ=$¢¦ïU^»úûö +‘\ þ8.Œ�¿ÀNÀó¹gž{æÜø3ãã9XQàï‹já½È÷𜈺Ù3€ßÄ£FÀM~EðÌ3ÏŽ?‹ð2žË�ƒž| õÎZlbÑ¿ �ĪsEù •„ET\’‘Ñ—b^à¼qÉ}2Ï�©(Â�`,MÚ@ûÏø_™€r|*ñe°p|Ìbìü4Ï"”miH¨ùÎÎ;ïhpà.>¶!÷è­Y6 EÄÍ ÿí3£I4Í P†€ª-+Ï”?š3@¢€½AGN%þm(³v%»MÀ’êÈž×ðñÐÌdи´5÷³†ž²O@s€Qì·’~ÇqOjHø3ßðÇ,·ÃÚRŸÎ™WáQ+Ì”çèßW= qу¬4 +��œ„ñ‰FÌà<>Æ-cã)„Èç¼\®ÀADóÖ1xîâ…Üÿ¦~ħ.ããb2ÎÁùÏpx€sç^ø8ê� Ù Dº»­ƒÅÖzyÿwMd’褠H¶3Ò‚ã¿KqlOln@Ç€·—ÿྠ€O´Z† + -ŽdÐG(¤Êç7^¬cz÷Ýwï9 ˜-¦tñÑR$ÍÉ®à!’?-ÝfBOŸL<ñ +síY @Ù÷’Îk4ŠòÔV/Ú€«¸xŸ ¾#=.åuÀ|Š þì—øIÖBLÎ�ƒà¬+ÈÛvmo”Ø=aÇ€ÙN3 tC:š‚IöÌ"éL°ñ;­i:€-¼<8ĪÀåî/`÷†€©6êÃÛ�¢úÅs—ç’ +w€W» ¦×­/Ž�}ÇJ‚êùÄUƵ »IkÞã@ÖÂïñP\k¡Rñ£Ù†¢í“`ü �ð�4û8‚ Ïqh áY÷)œÏñÁ1E€À9€Ü¹ö� +G½³ ‘i€2%Ó’�K •#*sü´L@NÜçR¤?þ\çVqFt)À©£°Î*@̤0’\-ãƒE€˜±S€¥ñ1�B)€ó,\ô›ï¾Û}÷>Àxžá3Aç^—CàlwJFR`ÿ§€ÐzšA?×™Ÿ"Òlº“±G€Õ¶Î@÷iôÖñ:û›~pÞ»W踟…~ÙQ0~ÆoJ@Ñ‘�v/ìÅ1t;8bËGbÑà�±±“qˆU ™ÇϷʘ%]pìŒÀÌÿ€N«ÌF;p`ýn õå~•z1Ÿ›òTiÇØ|Sƒý�¹î �DÔýúŠ*åE¬Žgg°ƒÖÀY®³Ž+ñ@Ôd÷Äz.?ÙïYð8Õ‡ü~ßòã“ ø`³øÎ�„Ï�ê\¾@  Œ=;öŒ»Ú×ÀQïl ”Éös…l +•Üê’0¯ä¾Ìª%Á°ot7ðÏ(ŽˆÔY·°B 2Üw`D@ + š°| W€ oµÆ¥èhPM`‚°¾ úsÌŒû]<ä ‰Ÿ´è²/mŽ–ãÀ]Î=�¥´ž¨`¿œ™ +`u 8G~£òq(âç¦ðC ¾%Ö™„[²‹' +iþjXì‡~ö}$Úêt@ÚŸã�À€ VÜÙæ¸!rjþƒ”Á�;”@êø¶Ž9Îü–�´ËwÀ~ Àm@§ó`ïX^Ž^‚…Žºþ/2f?ŽåeF!ÙÂS3üøõݼ¶z€+ê½ß`iˆ©Š" À½îvGQÏ]¼pñØÌÑÿ•owŽÿägócyðôÁ‰ /ä.Op8`R�¼W îÛ©%‡ Êå¾õ$àÜÅ.k#†Ÿ G½³0Ý&fd+4: €"aÑ(@ 5 ³".YV[à¨päÏò„@ÜÏ™5X¸E×ÏøôÇ.ͰPß�öm°ìƒNçmòb½³ÙEDß…  ÅŸNó„`a«ÌñEθހë‰pË’0NüÁä¿ô:æ6âO+¼�nI°Q¥^"Þ«�ŸzÍÊ +P…ý&Ù§é£4ô(ûþ(ôÓ5õU0°“@w§lñ·€òØ{@ �tÕШ#€ÝKB âÀ¶š¶!ïãÌDTï5A05ßË�ËÏ‘ÂLˆÎV{V«¬ÅsxmWÍþÙ$ 6ý~�pJ°]‘ºâ"ݯ$@8+þŸ$Û�ü×8`ùðÏŽçŸ�ppàJ.3Úwš7à˜Œ5’Ëç‘v` +À�+v:õÎ5YH µ¦$€Œ+䀸Šá_ëX¸I¥ä‰ö +ÍöK¨�¤CߊÅó•–RLXÿ¯\^c�Ûòú—pð�Î=«Ô—Ø� ªÐºiüðd £„ÌMíîý{pœ  +¤ñ¼ƒÌwSÎÅðwIóìÇã}ñCü§ ¸2¡œ{΀»Ú«å¯œô犽{Wz5´&¿ko¿2q΀³æØx¤¥}“<b‹? ôÙO!ØàHåh9€äDKàAw°³±Õ݃ÐÙÀØã,Â×ûdh~<_Yì�¸ÍfÀayDóï±€Ÿ~áÏ« ÆúÌïÃ×^ÿó0 +«�8 +Ù9h¸‚è +ùjŽ‹ ù€~uç�ŒÊÔˆ©bK¢ïñ(ù‹ 78ñ”WÉOi(Sìç-óùË—�ÇXËW¦¦°7ï�çs/Œ�ýwç/O} õÎRê+<2\º Z¢`¶ö•=8&Π ë$ÜŠŒÿÁ‰”' ÿñǺ\ôŒ# +@÷ÏY ¤@¤˜ÉzW*ˆå}ðß`ggÈÀ´±x»½^0¡ÿn÷^Û¢ãv«Xš)鯸éj§eÕ[0óÁÁv7gøŸ‘€ôÉeL˜ `= 8v—@êÉÆ"�gèÚâ?»Ô³W,æ»÷o–(É©¼b·à{ùû8æ&yö&HYsLíÓ šWË_sÛìX¼£·Û;l"h»q�p=8²^²à蟀4 Û¦Øèìz§ÄXüóÌ×â/âØÏç¼&ˆö£¸¯ñ€âh—¥k1pxx†µ×—ØÇ6{צo‚h÷õÆn<Ž£÷¢0~î²Û½øQtøïãÏãf¿,x~Ü¿�‹öOÈ>ü±‘’b÷ç'.p�µVʃمJa2_ðæ¸ ß¹ur,²$c_ç*Sø|m:¡êÈÖ':Ž{g +Š(hrÁPÙ*1Fc& ¶¸Ùâ&†T‘^�Tpñ¡\rÝG‰äÚHÖHàÑÃÀÈ_ d?m¿füi­sû>é�?ÐHä˜ °ù3úºï¶ÿOßiݱεXèÙ¶pº×)‹ÿC€ÏCÚc²•ÜSP~…F¯: 0IÑTœ¹r¥ÅfMx§â?_qB~~¸« öjØ­‚>�Ãü݈²Ða1§¸o`'u�»�í-ØrŒÖù-ÖîÅa:Zïåþý9wTFJ·�8€½½-%ÚXË8€— +™iöÛ/½T¨V&ž??99y› +XT_š­ÎÚþÙk×°~õÛø~uv¶v£zß®¾ôRŸ�ãYø»Z˜­ÍV žÛ®^šœ8_˜ÅtMs|¾6‘1ñŸ‡Oüáßü{Ï=÷|n|büüÄdnãØÁc^˜ÀþqìÀô"þ&Îç'&ó—.áXìÆBóó )8ÇNN²fÑÉ“ãÞ™€b +å4WË%õH±†Ø÷˜� P@I·�Ϙšð!ÚøO¸¸?#vü�¸¶@ë,`¢ß²îSÊ뫈ýïAîQX»/8 ýM^Ü¿ß}÷Ýv[ü_cV<â–••ŠN{¥<Õ“Ù9}ËÀ=v +) ¬|½ÅäˆýqÍi]™ äR¦ ¤¥Œ±ÀîÅ+�›bÕ>@OæÚ!vÜë §µÊÖÀpŒäKì\€­HÌ3# ½Õ’‡ÿIts(6qÖX$[ô€�íN©…#�ø°ƒØ¿»q�ò¿;öY°Roÿ‹ ÷L~ÑójVe?KµÂý`?„ø%ÜÀ~°ôRƒµ‚wwwQØøà?„?÷£ý(>ìG8(z/Œ£G»a¼ï7ß…þOƒ[¾·¨ñ:úÇý¿ì�œ]ì;ŒÌì— ð.Âüo¹oM䯳Np¥pÙ«^ ®/{Dð‹ø`ÆÊܯå+Hm„ظàÍys ׯ/ä/»Æ@aXyíkÀ?uä; pá0Á�Я"J+¶ÖSÈæÈñ•-C€T8Õ8ò §¸•íö² +`™tæVWWAy¤ùAzã¾9€5²ÿ¾’¹÷:÷Þéì çlnnm" °ù.€ñ ÝZOL2B± ¨ˆ5o—9âMiP²(ú‹ÿxœa ÀÓ&“Á~¸« •V‹0Má„Õâ•+å¶’Rlee³ÁôÀ]i|gÏý½ËNA ¬qâF +ÞR+;Ûå¬ À‚DÌ8Ú*wñn‡óì^%¨n‚=�Aö:tø¶··³�HÀ˜óÃ$òÃGñÕóùêejÐ@…_Ôª–p¯×9ôwðôÑëAü^ð(øvÔØõ?Øõ!!›àl5 šXo¼÷h©öK7H}iu\?h@Y´eä÷Gá:ùñ1øÊäxï}wƒ¡¯ò¤=ÒùÐY©Ìá2—!—òþõëÿ„[‘Pª?Ÿ{q||<9?\r½—žǽ3 0�m`Å—Ký‡ó˜ F€øNüGФ&ˆÿŽê¹NÞ˜ ˜o\Û¹?«.þ—X…ˆøëëkª ÀÞ!àÿ=Žñ�™xç�#‰kèÒ¹GÐffÜ4­Uˆ‚ãˆàA÷ýîæí"ÈÏr9Ž àèÎè_üçº/�==ñüs‰à 0 0_% úKJð^çg@à®2»—»Zúa¼…‰ÀlûÔ�€`3Xk�ä, PšQî›g@µ{-�q&u°Ô‚ ìÄÌÞ RQ¶ïÐP  Ãàׂ7W‘§�Øüßck Ù†šÛ‚0¾úÓ> ü5±¿4j‡Í�µX@úl–Ë⃘# ®(Í­–ø[æ.ŸÌ‰ý¾+fçÇŸÏUž¯,àR²â㊓•pnnÎCÜ’ã˜ë|›cf€?™÷¯ç¡fýåsããÌ0¬„ù«µú©pÜ;paР:·üT ÄgkQ×ÌšB/è' ÆóŒö˜®§'8Ï�Kjø ÒÛwcû0´��Ý‘Ÿ°Ü?[²5€ÕÿH|óëe¤ÿm†p²°›‚Í]Dÿl´Âܸé™V{S8€âí2ãÿÒm>‡ Ð K€{nò?k �´Ï€�âÁñR`:ü€0%L&Îz'¿ƒ ûßzKàèŠd'5¿%t ,Vv:æ¶8@Hö•©*‘KèµlãÝÁÐý¥÷�”!*Rì¶mü瘸‡³™ ·ôüýÚÕGQ� £oÙ«G­¯¢@R¹Dþþçˆà�¿¸ºß¨5µ”‡»ßå¶`…}ñXña|cé�Ýt&•«ÁNFN€Qõ$Ð\ž¨"ÊG„^ñ'n^ËW+õ^àúÈ Ã*¡\ÁÜu~gIB>ÿ-ËÂÂn…íO†ãÞ™€‚_ФÕ�XßDÈ-"ἦ~x í„ì>׹Ѕ¡Pl+ö¡ÀLa4»Þ:Ü‘Ü-êXú'ÿïÄ’FÿZ€J•`>�“xç�wÞÕŠ°u�!žpÿþ=@k½ÕÁ¹,ÇN€Õ×7ZpŒÿ[ÄÑÝEÿZuî‰ÍîhJ>¨…Ù±‘w+ ÛÕë¢hoô×lïÁM¸‡>tÏ +`,L±êDpØx5&Ì$gS€—pÇi¦ÒõR�!€óøA]À6u0î u‡'l!‰Ðn›P& -Úllà¨çðéÒÕý}�)‡x’Äb…À ª"¦÷ÕEH“½m÷ÙÔâa£¶_kÔj}Dùê h®°€_ï/-ÿq2"ã¦"ðíD°[¹ Œ?{1Ÿ[“!ÌÇ/°ÈÿE|òk�÷BÛ†o𠲚~Ø\Pðc»ôIpÜ;@àËN °Æ`ÊQA'f”í`|&˜å‡hŸ´.ú§Xì#qÐn;€UÍ鞌(ÿ߉éϱA$)Ný#Ü# ØR°Asï݇F¸^?A1c0U€Äl–_F¬,éô,œ5%2�"-˜Kìˆ^áx!6[ë€\[ÕäÛÕËv3Öù +’?{)v:ië`¦(ÛÎM‚92¶ecÈàå €kÅ2Û·‹-Ë4@p ²TµüLóä’<€;\âZÝN[ ~s{�Ò Ü™ˆWC³wÍ À"‡«GµF�ö^u|ÂþÕXÝp/ÕüÝðÛamw €Àž lSÐTÇ|A¼äkL!°aÕŠF¸7`¶çM±‹þx­‚_›¼yͯ\ 9‚ p@SX¨ú•?LàúuX¥rL$„$eN…ãÞ™€Ïi€s­v©WöB�Ò�€ù +¦¬Äl„bbL´Ç ÓJÜž8¤M:BëŽý€Òÿš z¢!0™/pŸM^Åû¡Ê÷¶03”2ü¾Ó.±^ù¿îrÍ@ø}\�¸ @®ëψO!H6 Ï»' ?:wÕni³lä4àML¸£  +(^,«þIn“ëö0e 7Á÷ ¨N6çéóW†;ÙRO@õÛypïˆØjs-9€MVþÍ8$¤"ºË0ÀmnŸƒS 8—Z÷Í@:-Ls-ñ ÁÕ]ò¿ÊÌr–³³n¹_‹Bö©õ™Û÷w‰¬B$|i·±ÔúLÈXí¿•�*=©íºz?`&ˆëÉ#øßÓr¼…&´Úh®ï ÿ“-üp!žXQ�ý¦ŒgÕPQ.k0tr�€í#€KoXEj€ÝþÏð²ŒÿÁ—-*€9$Ø:دŸÃþÄI€mâÓòIñ†Ö5 è]•»°zÆDø4‘ãé4�ˆ+´æfüc¿{¸#®Ë?7Cj¯ŒpJpY`¼@Ê>ãZråT»À°¸‡·ãjHä(Ý‘™Û;r¢½Ktn¯©"ðÎΘõ€çpuWcüz•I9Пµ{ŸB`ÝCöüE…/’Ú¾µ›û·ªK»�¥x9‚øä] "eþG~-â'£hÒOáà/.œ0y˯0>.÷oª…ŠWõBÏû‡ý&ë¹X\€Ì]§ÿ_–àL#€ST[�¢@ÀãO†ãÞ™€ �tDYZ…u:€éÖêZÙy€Œ¸‚‰‘¾ª3) 5`1¸Í?23ÉîÂ6·Y¶þlaûñ§0ˆýâ¾³¬ùOþ°¦|~€²÷:™Lî9ô­ÍNÿŠkˆªÿ3Ê:‰`=8+Ó ¬àIlCº‘x~sý.øïq?3,ÖáXÈ÷¡H¸¯iP�¿€œ—àl›�5€î†O¼T¾k¾]-ÏóùSl¹Žð+aˆ$Ì$-™Œo·Årðžñ6Þi±Ð6Pc|óíPGR@®gòpˆ¶á5K¤¨&°¢ÿ�øx§µ!ÆT'Á~Èœ@¯Ve€Daƒ¿z¼ô£×½ ¬~¡ÀÜüøõø«,ëÓ&~H 4{ÑAÉ…7bV-f—¾ _År ”—p`8FNPœ—ƒþWªÁÕððV5X¤Ap€X,ø+´â_- µA0Qà{Á­Cnü‚ ó OƒãÞÙ€ |‚qPe¸5€¨K €¡$c9DwW\€›BàþrHAÚ}wá›°/þ3 ÀÀñŸ�ÄxߥÿÁÿw;]rœàÞ}%óõïàôÀÅR ó\W§­ãòŸy^8ÝØv’�ÒÝEþ °…ÁžIp·Í‰�Ù6÷%ç�%ð;p�„î¸nª%Ö“Ù˜“À^¸ä{A„o ×c[!½_óìö3-­Ãük9–ŠúaàðÖ@€Ùv8ˆÀ½6J@<›öPAäHw�Œ ¬åÏÜ\Éकu�Í|H%…t[-÷hGÙß5:€€ìóûµ0æ�~A3Ú÷fÃA{ž¥¸_=ªq NÇDÿðÿ½‡Ê4ˆU;z‘ùû¹ÿ´â¶øHwYÚ+ùÏúÊt óµ2”P‚(µ×(°|µÐ×ÛÊAF„¢Æe…°Æù^ŽôWC�é >Šd],kË%V<áp `»Å†ìñ6u{í|õóéØ.€wÉŠ$?ùÏ}:àmy-Uàîlí=pPRã‚��á$8è±ñ%Ÿ›Ì_CÔÉÈwñÐ\^^ì_�Ô;§PÜ[‰oFÕæ†54{õåˆcðópï=“ ËVPÔ/À Ã"z°xÄDD•çs¹KPÙûC/D¢äê#¿/ƒû´Ô™e\Â1;¬V�¨VªÌ ¨ÝÖãÙ¥¬Àˆ?ýP]oÁ°3«5fà�AÐ�œW®¿Öe´´˜ › à�(ï²³IîÖŠ£êÇn’h«V˜ BE€ �Ê„@|Oº�{X‘` †ßç0øÒR5€”8¶µþãWîí•‹ø$ÿ�ì˜õ0\pÍý%°§Þ†x›Iæ”Ezc?–X�ä­Òm�^’°\@{ÉüÀ¾f¾éA¯¬î ;cíËE^V5Œ&…Ó4*Ú¹]æð�Ì ‰YúŸ: ÞÛ�¸¾Ý.ΔñÓ;Ü£ (¢ç1b57ðà ƒõ *Èð"NÐø«@» ˜aóBàH1 ¡æ±ÓL— àûµ€Õ桳»ûX[ÂZ7ã•fï«ðÓ vÈö@ŒýÉ6#ŠY§ñs£þ×q K€ÓœÆÿÓR^òã¹ |¬�ä_ô›}?¬Uú|2<§$€ƒ†ÖopT­qÀ2e°O2 +ÀE¿_iü£u‚  D«ÝšfUàu�Ÿ €¡R†s&IåŒý Ÿdº¸/þƒ0Æö1EúèL‚_ 飿@©lKhƒ\ÌH±^f5TÆ÷ î³$P1zêî!ˆ®¶ –p§ô�éâ*íè¢m÷:«ˆ}[,±îvßÏÖv|O$À¾¥°gºË‡SxÜóÏó…d`Ì&àôÙ@mª˜ìç¤ò@ìÀAZ58À¼x`ºÅüA‚±¿ÀˆC²Jõ£p™€– G¦Ê°ÀŽÐY»Í„“܇½É|å %­™ê‡Á'ϱM5.’׫L¶ÿ!î´U€cóÇ C}&Q»_¹„$@�½‚€\Hø}eü^cÿ\õû½•æÁãÿûÒî�§½•`…V=X š+�±ê/!=±|بA9  4á•‹SÔ€°˜É÷ËN€Bùï/Ö{!™Þ‹«5×9‘Þi�*øqµáèæÀbÄò@:€9\°_ýÇ[زÙð¿ÓV Ó숛 ÙR@®×ò°¢˜/…èï/0y Ø$`l°WË”ÿ¬è `¯ÄxžT˜FHµT€‚&"~ÅSÊà +õ[oÝi1Ìo)C 4=ýrËõöùßÿÿèZ°ÚÓ ƒÜ?ÂÀÛz6•®ß… ð‹9 } xR‘œKçèùù�Ûi¸Wy)õ ¤Ì\IÀ0ø Rè÷àlec íòLVð‹Eß�.�Lò˜žoq|9W¸¯}r¼€7J‚cÀ¡©Ü‘ÿ'º{uÛ��ö¶Z­�½N©¨–­Ûìx€Ãøñ£~? +ØyGÀ†@=l®5žFOãFüôéaŸÍ„ã'¿úê«_á¯_Ý}½øôð˧O¿zþøŒGý0Šo܈úýƒƒCë›×ÂÆÅn„íŠG¡w~ÿ¼—á±­o„͸ÿäð Ç()4fcÜ��þY>9Œ!Ž{gä$ÄçÄLÀµöËÏÜW×ZP „tòÞ­Ó¥B2R‹0‚4žwôÇ'Ü¡ýÜK¶�¥&ž6`ÝJÿ`ðG(ܾ'wY@HÛ „’ë­Ö*�6Û-8€uV° ñÿ[ø…ÐÿCæd½ßÝÐd`E€þã ù�.ƒ’ÙwÕqŸ´]žf;ûùXbñ5l °J`ªà4ÖÞ8þ2Þß­ªOö‰i•�û†�08æœX€߀ì@Š-&Ž9�|P + €MTV¼ÜDRp_™€{€.àN—`�PÎløµÚ 0yžeí× +“céÖ�ZƒÃÔªì6xÀR­ÆNø9ˆ6f¿½{˺ã×8^Kö/ÙA¯ßàåª^õÚ¥K…\Á¯bÛ�ê<¶�†Æ�ùÂn-7>‘+° +€‡d£õÝZá*žA%óž†.œŸ¯V¯Í{Õy¿ðzu“WÅ5ϯñ÷\ÊM¼0ž«Öü« wÝáÈw€Ð‡)™Ñrf!�[ÚkÓ33å6Skkl…ã B¥™úØ|A W¯V€\&è’ø$Œ€6»}Z³=ÖžZ™ïÇžFr l*æC0d„ @" ‰÷é¸&V¬¾õVË;þ½Ã ®z@ÌÂZ} ß +þ3 wÛkÇÀiÀ@¼\MÀ!`T�Ô`¿~Çø“®E ¿É÷Ô°¥5cÛ@’ØÖ ÄýðáÇ€�÷:­ :€cˆØøåˆ¬SV.V|ŽbÚ¿±îþ#Œ¾Øÿ Üý`lç˜<»A¸î.Õf¿ˆ¢ø‹~ü( ҇W÷àÁ‘C¨'~pË›õHOä+�7ƒà§á­FøÓàò"�ᮇ¨=ÿ"‹ªž‡X>ÔÐEþ�׫� \x˜ý ±õã«»ˆçm˜ahW#¨Vk�kµÝF@•ð=VÎãÜ]^âT8ò�ÿ qû‘t¶ªÕ‚(g�7@À…Á$?A-°d€EïæñIl.ð5á9¿ó›n3?ùÝÈ6²Þ­0 1 +ö*Þ»5‰ÿ©`À·Þjß¹ÓrôßÜlÍÌÓ$€Bû[Å2ôáCñŸÙ­m±ß +°§Ç]¿KÀ´ÛüJÐoÑ+°YÅ|˜µ `E :~|gâƒìçÛ×Ëù©N44(kažîðÜš±5­dÀ¼Í”fˆ_ V3 @P’ ©¯)͸·Ýî<èò3ÿi€§Pp 9€»íí!íî‡7 çÔƒèðWðÓÑëíûì(ŒûHf“»ûá›Ö‹¢÷v±xxpH‹þòõðßÇa}y9 +çO_Šaô!¢3Üx×Âïæ+쀃�4ž€÷N-¯90K‚àŽOö0 {ý¸p¤2l ýàé/¯ÆŸõx_HÐ-œ…¤GïÖúËØÒôß\Fôƒ$8>?urì;Pd d3e€Ò™U:€âL1q©j�Òv’^¹X"΢÷Ú>â 5I`"_ü·7¸?;rÀ8ÆùšÌpUƒ›o#*#’๮BCô[mur!0/£ôV*ì£ A @&ÿ9T~‡Ï1§CУa~»|—غˆÏ˜þÌGâ+vÙî�ãK¦C'1p¢¸*�½òsCI%í¹b…÷{ï·ýÄÿì¢pZ ÛÄ|SàôŽÊìœ:©ÀI2/™9‰ðíKtàƒ{pÛ}ÜÙhw?L$À ¯ ˜‹ßlúlZ˼sXç zÉŠò þò3êáP�ðiõaÜ\áˆoÖø¶tˆ#DºœAÚFÁgþ»ÛžÖ: +EÜ£�Ó^˱-ïJüžJša)l²…Ñ"¶Q�Í–TñÈÃq† QåXô­Ž3.Rïõþ¼÷0†|ÿ¾iXØU)?``áÒb#¬Á÷#ò×vAÁÐ+°?0·jküÇEx‘‚ÇBðÅù„åä*¼6&;Åy#½V2ü«W×áXÀ *o«Cºúû ÑT¸Q†R�øŸ¬HÀ9€Rë}Úÿ½î½­”|r›=Ï€þn;ž®ŸO¦€J`¥üAî—=Gæ'@°¾jÑ>&o×9¼fk ˆÿˆù•@À»¦îG¤`¿¹ÄNyÛÔ›—‹®_pìÙ;Ûl(Ë3Ó¶@™€¶Ÿ;%`[]üPÚØ°­ÒCêØX‰(:€-Ø©�Ö�Ó€Õ|/Ÿ“ Á,kÿ¥À1Öñ_#"Õçl¨ª€áãZ#>š=yÄüúÓ›¼©<€e»ÃŽÃî00K¬Ÿ Áýà!À‡èD³ÊqXîü¸W¯³°GëááY A­ÝônªùßââÜÔ¹‹‹RwÏáøMC¡7¨°jcïAhK)øcßü†£¥ ûñ‘²ß‚)þ°&Ú˜ÀÊ€ÿ7ê@J½Hw’\ršßÖ§»¿AÒ;q›[¬çRþè7q©Žë¤Gñq¦uÜt?|ëŒÿ1mÏ̪–ð<ˆ�'²ÖíMJP.žçO°‰‹ sÂÀrÔgìOÀ›Î: Ìþ˜'®à“/ǽ&÷ºìG8 5´�Ÿµ‰÷FïuW-‹¿�?ÀþƒÑ¬ +lìì<è܆Pð¾$Ü $8À.ÿ$xs퇹\gª/pïý€�¾Ö0À»¨¸$ZôÃpþ! H#ð¨zàG½X¸4û³o6Y߯ߨ2QÐ Wx$í7Ý;ÉXó/yùsy/h ÁîƒNœþ(@Ep5^¾„Oå{¸3“€¸Æ78dqÐ êÜ-@(xwf2#Áç‚àâ"NÄùtÊ„ÙðîHçƒ÷¤¹ý. `±?—Ü1h äB¤ãú逽Ɩ„ ÖKúm3àŽ³;!Ù©(ÕD€K,¼Ý~ë­·ZP€· )$Êù#fâŠ@)³ò'ò§Ø®ø¿ÁB. À”Ø)­­aCÛ=��σ¿Á3 z[|BæÐð�7æµ<ŸW¦KìÖääWg¬53ZŠ!d€®g2€¥ý†P³?Æì¥N÷ý;Eü—ø]À +ù/�ÅÛ<»ã$HÔ�Á9R¿~ãM1% 4�@-±$€|ÇG{[HÀllŸ$`±h�gÛ0ÛË+QÕ5ò™ßð—Y +û6#±¶ù9; ­ýÚü§p½ØuÌè—KR±v šò-~Å©vÖ(ððQ`.C€§bÒ¤^—éV"6úõëqU¥Í˜8�ž•À_Xª…µy$J(‹žw} +€ç@Z,?ñïûøs ü†¡�œÒ ŽH¬1©Š° �Jæƒ;I:�aqŽúçÓJ€Œåø9 æ¨ÙÈT;àë�ÿüpŸÂ3ëò·ÖàX%â¿zÝ"é@•Y%û©ÒÒxöµMZbœÙd ÍRÀ÷Àÿ‘ÿ°|h÷ܧГàm½j/--¨°óìgcRM@Fëœ, `ªê’z¹Lp�/ØhŽ¡„àfÿ_™È8€Á…õ€Œ˜èÞQ'%Ðs„dÀ?ßÛÛQ›�›HJù¨FÿnwóöV*ìcL@ïÅë;°9E§ÃŒ€;pR-ü ý–1F£)Àkãg 4€P üÚMò4IJ¼©B@DùÃðáÃðI5‚Ö–84ØJó çdDÑ6sß«µÚdöâÀÉ +P»9z‚Á½ÕK�ž‰ÏسSâ—˜EyXm„·¬ÙkRdìÈE/Xšÿ‚O7²0w=qü‚§Κá…§þ9 +~£P¸Í"› €0‰аIþCØ(Û(Ã_?•ÌRã +¬æ¤ùŸ þ8ÛÂEÂ32Þ8Ï·)ýËe6½a¿¬€ÍúáßGð–Øf Ëtô@ÆÿˆåÉ–8°ÖÕX–›%—Þ Ñ$ÀseöòÔG~¬B9ùÃù^Ò‰Y`µø_¦Ð�*X +@ M?å0  P& › ÏM¼e2æ€_ŽïL +µŠ­îÞFIöáØ1ÂüpoïŸß�íPü/àü”½†ÎŽ3ÝÍ2;ýì$ ‹÷쀫¥àÁ¤:�?B’®‚%Ç3˜JcodQg6=@˜ºNXðÃ`À(Uq*Lþ›ŒÆ™ wðð�˜XîÏîÆ~ôû +Uÿãp…€ƒY‡¨û+Á%ŽýO`1‰‰ÜãàQj^ŽýýÒàêLq!ý¨V£K�„5V c¼9+[%„]ì\`ß¡P�Êå æNÍŒ48~£P ªZ¦Œ«„Q®�ÿ‰¸P8�ê;(ð¡3¸áÒ ÿÓ <Áä�päçÙõª¾ +ùoµñŠ„hD×ß¿o‹™€Ì¤Ú¡ €øÁûõ!Ðrñ¿8“€viM!_!Û=Âz¨äÉFþe$ýËæìåûùšÀ{€ �š@…+©8*G!À©¼®{«šŽ;ÇGð´µ³×.*9Ÿ0@UvñJà_~ôîÞ��À–,ý)ăx3ì5i‹i svQê +oÈöÇ.�ðq·½±Öîr¤5üƙ☟"Qæ(¹]óƒÆlð&·Ý¤Ä=Åî8Šõí”YÖ;¼±G_Àòй|UGQ0¯ïâ pˆž%'€Ç�ÄMI€¯&ÊÞM–í×YÙ Ã'³µ8ÚŸý‚9ƒoÔ›+ÍÏzÍXL®ðÄ{5'ð €ÌÉe‘)¿Q(ø�zß.©Î ¨ÔqìÇd|a�Âj`ûË^ÝgÂÿ “t¬ƒ‚ø`‘·´Ùö¾½Erá™" Ði߃sÝv¹;?Ä}LÿÇŸüèG2ƒˆ“)€6’Þ’6DãÿãIü~ïé�Ù¥øª•ÿãÊßÿ~ïð± IÍ? aÖ˜3ÀÔ€çÍ]Î3 À4€£ù)p$üÁV¬ÇfY€¢Â¤èϪµ¦ +´ÖÒ¬®!þÆ}.-ø§Ÿöayà’ñ‰³NpÀ. €È”JhOzÌáà×é¶-âÚf— òr,ãFüïðüÉ~üãý¨•tò6HA~ ^ku>døÝ*­3ô[à¶'Æp"‰’2’åWÉü»Ö.�ȑՎ Vh£ &`D}—ÀUä¯0·Ž;–NÀ7°"ß!_ ^ÕqÀb@– Y(ZzÆ~ ~³2ð)©Øù¾»º÷Ç­ÒËÛWž‰Eÿ¦b;œ§«TàÂ[‰ØÄä[ðH€™{r-œ� ¶<²À²—{@ ¡‚ ƒægêü—1uà‡Ÿ5ÁÁÞŸ|ù˜ ÿq>©M{ßkbU ü &çÊá…‹Ê<ä þ¾ðã&{bDz^„‡‘ø< «ÕÝÙ¾ +*©?¬ìŒ0AÐÇ–(òûªäD 0WÉŸ»°°Ì'ùz8~ƒ‘ŽÌǬ Pž)!<›˜ ðR @h„Uš¸º£ ÐA\ºƒñ™å‘nàWœ�ìÖ�rfÛÁÆûÜh¯­A Äx)€Ë½âªú¬øÉO~b +@ÀøÿG?úñ'Ÿ0š4°‡œ­sïý÷»[Å;¼‚1Æ=‚Àç9šÀ§c�–©¸Î˜šìÄ~.µÆvÌ«««âó•+&hä¿2øÅ¸¯Y 0�ý€4PW´ÅˆRМŽÐî®Éµ[v�@"z_Â?ÿßmѤÀ¦¦¥‚ѺÓjw(�ÈV9ë ¬z!¡ÈÀ|üá‡ïµ[�Š;â±8öy‡O" …>ì:[ò„AØß�ÝíGÑÓ§ý¯Ÿ>}ü8ŽãO£øð«_}õÕ—Oÿý¯Ã?ývã«8 +Û>yúe¿÷øiÜW;"mé÷Â~ìU�‚ã¨ÿùçˆËOÀÏF#~ú4þÅW‡ý¦Wo²©pxøåÓ_=yÜÿÅ—Ovg÷¿ñô3Þ®÷äéáAÆ�Õp7?ùò ÷ÕánأχáG)ÏW"<Æaßµ€<Ž…ß Äy6gK–ø³Œ@9ÖO1—ê²­D0¡ý0�Uà„@$�A„HóÓdþ‘óõÕ¶b&9DaS™¯àÏBü¤ eô'è,€oÀÿ,h~ð£ÿüÿÓ?µ³I �xi�¶j±=�2õlG1¤z(€"``ŸerüvþS$ 4ø®€Kdù?” ™$€^Œ-íW`²OˆP¶ñ?kCÚtñùŸÛ销o|CÀ?ÿÿ´§áà‰Ñ3ª'äLKÉé½Né­Î4`¯{'ëtY—`™¸Ä‡, d)@¿�Îh4jKK^µZÍ�O\˜¼T¸v ë7^ +µ°á7ß›o,Õ¼ó7æJßãŒZÍ�^�v?àY7ækµ†¿T›_ªÞ¨VggoÌV«^mi¾R«M^šÏUÙG@ §ócÜðÇÐ`Ë_¯Z`?E¸¦_e—þ’?_ó÷gw?Ø�ÇÍç«ø¶äÍ{µÙyÜ›7ÇãàŽ¯ÎÏÏ×pÔla2÷üÄw«5VQÀO:}j8~c Ý�ÎL ,Ã�ý,£N¡OBÆæI€rJÆ[gøUò0&iig®1Ëí ÝØa‰í) +˹Y­‡LÞìtÞeþ?¹‡�ÿ×€DþTñÿ�>�ü ‘'÷Û¥ÖæÞÞƒ÷»›–  =²`îa�ÐÐI +Å~£~µ›$œ W®˜­ûÁn,yJJÿQõ�˜˜`@ã ²�£yÌð§ªÑ”ïtà˜â€ÝÛöè¶AÊÓ?ìÜ.—6@Ý=Xüa°ÐiµØ\ÂÀ\3™Ø”åèlSöº´ÄGtlŒ3…á�âpÿ§Ñú…ñÜ$óÏŸ=zì32�èõ(Â!Xß�9’x=ŠoÄýøÓŸ÷û_°Å0› +ïÞ‡ac7 +á&Á.»ó ÖÁ¯„¿ì?êïC3œÅ>÷ÇÀ›?ªíÒÿ‡þRðSÜš7{T‹ÿ2ÚÇÄánâÆHüÞO‰›GKñ£%pO‡Ñ›•üd.W[j,5x‰¯ƒãá7Ü„ùm¶k·å*6ðރk†ÿfZÎö»™"#äw-x¬V’b€l)Næåt0�Œ½ÃzqìÐÁ|ë-öê!@Ø'‡Ý£ Àüƒý@ +ð#À�‚´ÿ~ü¯ÿ5øúÿà“O�þWå@Ì÷ï·[¥Îûvß—%)ó‡$à÷ÜÃ0mâ2]€Ïžü\üÉè�òjiâŠ^§s\BüQ +P.§õìMÛþì5$Ødø§ öe§ßì\àsØbok{ïÿUœþ!` ¶Í,Ö·59€ìÙGIöògc€v»›ræh°i‡ý±_%:&+öº†1öá•"~Èμ�˜Êå¯W<ÿµ› Â`LŠ¢~ J€Ï°÷8ß#Ý«_r�  ‚E=̽è³]6ÕWz¬ô…ŸÅ×®±£á<{óòý÷Bvî1æ*Žƒ·ê/ízöñ°•?¨Î›Þäˆ$At€ãR°õ>çÆÏÙûRŸáGiœÒj%—¯ÞªùŒ¯‡ãá71ÞÀ-” À¨åŸ²©H×6È}&T hµú$ Ãà¼X2à�`‹“¸&*I2pCi ºæ}L3ÀeØC¯Êȶ37Ÿu~¶ÙpgëÞøÿƒ_' +ð“_ÿÕ_ÿæ×?&ÿ‘ø}À'*hSüwq[ @¶yÿ!葳(»!I|>˜±¼,ãó»RØÇ‘Íi®0U”@u2‹þ%±nv¬O0M Psàäªn²n€ÄDÚFÙ·),J 9à:';?ü�ÅéÁš@¤5À6S-;%q”ª�m9€DÈ}þ¹<9€ÎŽŠö, MуµÛÃ=5ÙÂ6êÞÅ\.Ÿÿ.»ßwVŸ�ß<¼õ˜»Ç4;2ŒªO•ñ‡“¸QÕü´k¹î3«�Gv­ å=Îz§wÅéZ%k÷g#e.ââ<¶^£YÜ5—E8•­2òW& ëŸì$3ìPIwU›8.@fêÀHèxy–llp_:ì0HÀöοü3ÀÔbcgoo'qø ŠjUyj¤,B+ ÀÜ‚xkŒþù�ã,€‚¡4@›ƒv•Îp€Ìb6½wa<�[end +ˆÄlôh©ªA0xfX‰_ï?Ä—æÊ2[õ•&&@]ÀÏW—çØÿºHu +‚•¦àÍå~•0ÇZÀ!–8†ÕÈ$À©Ø¸¬CõV© +‡µÆ�Fq`— ø]µß މßÄ~Nÿk `�yÓ*ü³,ö\·¶Ñ†ÿ§p�,H‡j8šðSœàWR@ÿ�É�Lí ŽÀ¡PÝÙ ¢ik«oaºÓ~k äUõÝMÄåÄ=ßû2ÿ�>¡|òWÿùo~ûÛÿúÛßþ—ÿüןüèOÿÔŒ‡oÝ#ÿWY +ðáƒ÷߇�4Æ'>åØC§`5=ˆÓ+,Ô¸ŒÿW‹|~üˆäçºêLÒ€õõé+WŠ. @~3¢vUÐ!á?lC’ HÚ§xÎ1ß&ÒZp_IoÜ =hÝÃß”€Ž$üÙ‡Åé�x§T¾£B€$Ç€ý†HÒ<€rñ¶`É +æìuyK›q1—@Á�ШÔÀaìI,»#�.°îB¥òûß´23|~å?Zá~£?Vš+OoÄ= ¼s5|‹¤bâ +öÄžW÷(?q¨£&Ü}ù+/š‚àବÀʼ‡³Ÿ‡zÖ_Ò qsîà:ΣxZ CÈ}Ö%ªPªXã—ߎŠßŒöG°ÉLÀõV IüóU@ÅkkëŒþ1¹xN�2*]ìOp4!ôg+ŒØËП�ALŸOÔ€cIæ8€kiMÀ"»íÚ@:wC™Ý.Ü +¬ðk1 +ð(À¯ÿú·¿ýÛ¿ýoû·”€¿ú× ÿÃÌAf2þÇ•k!¨ŸæŽ°`‰€þDµ�L ðf’ǧ›Á'Ø¥ýpE:³ÿLp@ÒQ€#ƒq†>@Ô+0À—�Lೕ8 +…Å ¿�)lïýÙ»Åé½±Ñ*µ`ù‘ô×fœ¿Í.À�ÐЊÑLo‰ÿ@k�ËRÞE@à@Šab±‚̲¯Î·¦*Þ<9 ¶ÁÐC¾â8lpGn áac¿g« "~E»<žX©ãX$j~]`Îg£ÂSÌ·]i–ýÆWÕ0Ÿ¿ÎqBÜ,Œg£™ üáÉá�à|§€4—ö‘ü'Ô€€â•H|-¿8ʃH³–¦ñ¯§ùǿߒ£!�3ƒä$-‚·ƒ \µ¢ !SÖ$`áü9e"�Íd6€…îöe} O‰ ,HÛ¼–×ÿÉ'?Fà“Oþú¿üö¿þíûïÿý¿ÿ·ÿ ø/ýÉ¿¦=øä¯Èÿüàó‰­=Õr ¸Ç2ÄϬòiüþŒÿÓÎÀð§ºOmç^f*€îŸ,§SG@\ìÏa�”×KÎhÊBÌw“âu¼°÷~À:úçf1+ýèüPðg{¥;ŒóÓ"ƒû¬Ü�ÏA)@«x»Õfš¾u{ÓÒº2 5ÁeïC "ÝT6 æ+vvÆ¢Ï2“Qû�ºGÈW®¿öݬøËÀÊçÕO1¿ 7ŽÉú�àsã(9ˆ}2ÚϤ€ê…ó~Þ1ì=-ñmWl+y¶è£H©V°é!ïÁ'Â"î§ÑUts®|¶h?¤ƒüǃä­Çãß Ž‹ßVG|‚ ¬•g@zJ€\ã'eÚdt\X‚%œð-®è‹m×Ò�ƒ³ŠW½@A�GH :gŠeFlx6èi•6EY »â¿ àÇý7ÿõoÁ~‡¿ýíÿ÷¯e~cðë_ó÷¬¿Þ}‰gF|âÿ¨$À0Æð(x ›iôlEeÖÙãsÉOîp à/°_–ù}f Ä}©6'€W³Ù&g¦?Ó7!ÛøA¬hÔ¶4¸ÑT¥`¨K'€éé÷ÿÓaÚwZ˜ló}ö& r[ 8ävKüO€Â’8€Žà` ð@�ca¦#Le¨“,€JÅ«ÂxÞMn¸ô@0Dï¢8Žmî†�ñ‰u ¹ > ©n‚ê‹‹ÒíN µ“&—çw ¸C]Û¥'ÿܱٟgWD¼§¶àÁ Uܱ0sÉ?ˆjq[À³”€™äs$|¿¤|šÄÿöZ™-Ê=Aœ [C†G–âY(À Àù�%Ä +�£uìý³Å€Åç�`> ãm’€à¾"&eÐSc·v©d1ß½-–ÿu~ò“T~üã_3úñÿîïþÇÿ;)Àßþöo eüÿÉo~ó÷k:tïïµÙÈ@ÒGדé +aÌ/—ÙNѪâIKMï$�t”A š‹þD¢r%g*€ñ®"[XÐ=³» Ïͨž©#æl1Nîì`'(�ùHÀ@÷?}Œw¨$ƒë<@müM²àA§Uv¹€z÷ ÖÜW+²?°;q®žAü› òSsª ì'õúý8®†1ûªJÚáè_ì†}œ£h_©s9pð_e\õ½ zScêÉü[#' �èžcý³ŸR€¼ûÕžú“@Õ©xÿ�”úçcÀ94X¶a¿€‰ÓèËïÇÆoìöïØ´ª�î××�>%9ù#lb-“Pc Ñ@Áq±?u™ + ,`ü7…Hpß,¨Õ€°¬í•rñ•23*!«˜ÙçÕ&8‹ðO0ø à'¿þ›ß*úÿ»ÿëÿú;á %ð_ûŸÿê7¿ÿ 8̓@àC¤”`?Ï�¿#ùK@úóÏzÿ1QÄNc+—|~ @†ýt8 ÿ%tÉd³ÄÏ9¾–!€­ €ºiÀÖQ@�.°ƒåÞýWÃE´•‘?ÄB‰Ð?ãT À~Ñ_Àµœ؆bìíá°éAXå —ú7¬4I,ߟ7P™¯¾æÅ i=. ©fȵfÜcή¹Á8v Â<@¦‚&sæ@N$)ÝJ<öãƒú´®$€e‰<×ܰ#§Â±ñ@–÷éÄÒõÔÀù+‚Òø5JœWG�TFW ?gòŸ\`¸Mˆ£Cm5¥’�L# @ �ly>eH0­zr«êdZÁÖ9€{?œü:±ÿÿ�€.€&€üÿ1 @’èì}¼÷þÞÞ¦€w¥ö¬Ò©ã°gy•" s" $‚~¸¦¬LKì@0Ïb; �S q¸%¯¦×cyL‚f€ri¦ÕÙaRiÃèÏš€lÞ§ÞÁ$Ì,O¿ûŸ>Þ‚ÜæÄ7 °¹€�Fª#ÚW$`Ué½#^H€õƒ)®€š�ãÒL…±_ô“éßq€½'Q/ ÿ2øïÍy~Ð?Œz�ã(\ ß ¾Šçãø!v7CÖ¾ã0‡ýÝkO9DH¯=~Ê6:ò|=ˆXë¾^ƒ�¨à’¢gâªÖÏß ÁWÑügìú8ˆ¢ƒ0ìÆóŸÄ_ðQ>‹Ÿ²}r6WÂ^ĽÏãø0Škq÷¢�ƒC¢Àüïzªi +\âëñ�ÕTà?å´™ø',Ya�…ÑŽþ ì.0:�ú¦dÍ@ÁHèÏ#gŸŸ|SÏ!G€šß.ø­i« ¬L€-6ÿ‘üú7¿IøÿwÿCÔÿ;L„LÀ_ÿø?ù Øÿë_ÿ&ëc&`d==oŠ$ @Xw%ˆÙ@¯‡ŸÇ’Fÿ-bfÒ DïFÿTìÍädß7Ù/2›Zn%`¦” +€è�˜z‡y;�-vü lÿð_½Ûšî к ™Ç¤+°éKÀî@LJ¬ Ìæ€-z«¤ãðú¶»ÌK•p$!;´Ûs�ÁŸoì.A´”Ï·‚85‚‡~/hܬ5|ùÝj°¿Ûh°²°ªÊƒSaí‘Õ½ v±Ü�j�]ì ãhñ+’õU¯V]º +1�¸èG�¢]l½ g�o�ˆ……†�¸{ÿ–¯ÞIƒûûÕxßn< +ƒh¿v‹7�âÏðäX jK�Zc¶±ËšƒÌEo5jó^nÒÛůÀ–]LÁî­S—ßX“@ü8”°¾^b=  †PîPÖ› ðŽ‚±ƒð8@Ædà‚°Ö»Ü)p€1ùZò’8€WÀ�W!Ð(°xK¡që7¿ùÉO>ùÉ¿†üõù-3ÿ“Øÿ’ú\ÿLüíoÿú×?ù1ÿàGú9�÷)ï[¬¥KIG~Œs¯È°Š4€™ûI€½ü� àôCH|Eï·Ð@ù;dº¼Z6à¦ÏOÿ%X&d£K�:¦ëÕ#�«°�$ÀÚôæú— 5Û|á?¬ípIüMkÿ€… +x¸;ˆã»�ŠÎ=�ÁÌ—Ä¢fâ0çT�¥-¸�ÄìŒU‡1_­--U Ï�ç&ó…BµP(Ìck­ñû�ÚlᥗªUù7[«Ý¸±Ä±bª¾îtè(ޜޭáÞW''+Uß+ܨá^7tóZ7äÍ!45=@u~)À/ÀCx�[7]�­UkóÕyè e¾péÅóžéCV -_³¼õM Ù=j¦Ø`; ±]Y€L°*  Z\æ’«€ý„âK +Ä"…+LaG€çÜÉ£À ¾%ý %:€ÍÎÖ&â¢Íö'¿ù+Y€Ÿ°ðØü3À–Jü—¿ÿóƒð'2 ðáÀžšÄŠ2îi‡À_äV±ò»2JbÍR‰Uçï²(EñŸa×?c¥%’èm6±?·ò2Žû: +{œàE3püw$¢(:üi|Ç»O…aŸ­ƒ…°½ÐçL!`S“C�GÁ%Dï… ¹<’ç<é!®�›Þ{/Ü÷?ñ7 ªGšý&XLÿŽ{÷¢~øA°ßßßí"¥ñÓ0Ô€„ñ~é‘~õ÷ãÃO‘D¹ñˆ�‚§XzaÁw=ìŒcŽø;Á1ò1ÈöQ½Ö×ÚëJó“ÿ, + X]og(ª®Àx)YŒÚ‘å‘vk:‚¡æªJ‡Ë‹Y©‘8²Nô×¢4cYÚ +âŸ|‚d½êþYî¿™àþOZƒòY'` ½§$€ÚÊt6p±­¶ý6Âe ô&‰0,€ýLþ.eòèW¨o8=c<9ÎÈ?�c¾Á²KëH8”ŠLUñº/?($ô°Š˜ñ/ ÀË­m +þ{ä?f8ÖÙ¥pI€�éþ£@ÿæVç~±;`#㺸^«´¶³×ÝÁ«b&! Ø·ã��;€ÛkÛIE`\çH—`ª"W«Urã/äòùk•טmÆKW#Äêv &€Yÿ´òAx«†”ÂHC„¡ovy‹õzå›^>—ËM±?æfÈ::ǧ•¸‰‘¸ú÷l0ÿŽÅv{Ý2‘"±›»r½Ý ZÁÍë,pÀ­¢~í� ê̚ĶåºW™Z`n¡ +*~8Fþ¯……8†ÿa€ç€uŽL` ÔZ]åÐ  +€øc¢A|ôÿø@ø']D™�n ­4ÙIÀ4À’æ/œPÌÈ<YF– ý!e¶ycS €O>ùõoþJöŸ©ÿÔ�ÿT€T°ó¿AXð£0äo °wºŒ±D—“òôg &©PÂ�M÷]€ýÈä§'q<>f˜×YFB�q;5@�¸Ÿ™…K¬³ ¡ËȾkcØtïwXu·TÜ€ÈÚÛï�ؖ؂ ìü‹�ﶦ×ÿÓŸuï”ʈÿ[åÛÝíû]&ÚÙ«?¯Ä Óö:wJ-gì�ÿæ?ä  P°kírë€Å�˜�€²ë?o>76Îæ@j ÄJ³ÁîÕ Á>‘úæ@}:VÅîHsߺaUí–|� Ø ú½º¿ÒÄ^Õ" +‚K! ßæ° Epýy‡ãû1\ ÙÓ·W¹Va{\V÷#â¥ZÜ ùÙqný°ÎK) yÝxàꬔ €*M]f'e8D…§/µâ8ù¿vˆÙì –fèµ¾�?�á‚õ”P€ÁèÏ>$3p­f3àWª@Â~LܤI�$ {61lúÿ×Üûƶqæi‚Þ» é6ì ÙU#âÚÉŠá¹ÑqF}Ö™µQ‘ì²v௩°Z�ÐTàÐÇû¥;“FVi�W‚AǦ¥îBN{îa'³l{ÚxÈnzæÚ·7wû!ßvïp7ôùîò·g>Ýó<¿_‹-Qv’›§Èú_Ūâû<ïóþ­¸& '¹¬½ø—]-¾J ýÍþwý? ëæÜùèöUðÿÊÜ$KVVš ŘºÜx©½À…Ñ�¸’&zu|ü¡`ð ë3)²Ç08#Ø•Ëà·%r&JlK˜€üÃÙì!;Y +±Ð@,È0WS[BLLýS€5¨�¥?ym¡œÉ_þSþ[&”MÐh¾Pž—x¯à€³HQÀä×òó؇{ÅÀ_îq++«M¤–~èØ.4ÅÒØ7úÆÁÃl  š7X³ñDÀ^¾™ÿþ?Sd|«H8(µ–‹ÖÆ�Z•‚Ù6¸V +¦gY hacà!Ðl‚Ìv+ù÷g–ïß 4öO!Hêì¿fEŠ€f°—´Ögõ’’V0=ÅVëíqfªŠ3~zbj@k@Ë�ÉcÍ8'¿N€ÒP~ˆ&’�˜ÿU–²3 P±—�ÅI€¹n!€—(PJ�†SØXB•H$3t÷šïÒIáC*ÐÁ«"«À@5É`ü/¨�0ëZ¥Qaø*à}�þSôgäoüO©³>þèö•W߸z·E@Pgø.@�\÷ÑÄu €+�u{ºiÎñ›aTò3zgV‡¨NEàTîÀ”cã}¨ëÒ»¶wQÎæÊO2ÏŽ¹s]À<ö XcÙ�×´öW«5X€|Ùòí› 9< +Ò_€°þòJ–b› ܰž‘9€ù|�e1zQhÑ)’úæáGå¸A·ÉB<±AækOÇt¤þ‚J¥·K…™ö™ hÏÒo¥3+à=;QŠ�¡`;>nïËwßùyâ:÷ÄQ\Ð *�ý2M²}B)h— +»%x“4‡ú\c¿„àülûd[Fe +¿û,.h¢066 â[ͬQÓnã3Ð�ÿ?€´Wôn2`"PæË¿èðͳÏ-ñß|�ó_�- *] ܆­>%8Ë�lI\ÂGÇó›9t@õºà92ésW¬?IKxõÖm«ü“Žÿ‰®Hf>gFÀí[o\ùððÚ|MmX¸›Hó¼V€kχèÅ€Û_Eý¤6Ø|ÐjQðñ¢@£¿æŒ÷]`žý0¦l^µ‡�‘Ì€ZgsHÏ”GžÉ�ˆþ±0à΀°œÉ¾öëKHH•ËÔñ¿›°š€– Èf@P¸G,æ$t�€ÕfùlØ|í®@/Õ)M~ûà:€¡1ÕáNÍmÑü+¢Mñ�ñú âØv«…H~SİlúYÙîGY¾ÜôG«Tœéû9±íN–ñ?~¾+?׋ìb € ñM%êš$x+Îü.>j�`nD¿Ëæ +Ç�ç\ëhÅ@pV~�@0Ax=+âKh@.¤þÙD� 3` þ‡)ÙA…D"a�ÐÔç�ZЉd + AIeƱ:,˜@„ëñ¿`ÁK`ç_}_üWµ?ç¹Áò4€Õ¯Ü‚„^{�/0€s-„é—Úµ¦¨oÈf�!6Ç €ø#|â÷»ÅGDVdÎþ=•"púÃÕ)HÀÍX;Ü7 ¯h^X < Âê]h##‰hàþXÌQ[dAàÒŸüI€ì…_¯-ÀàçÁÿœ @“yӓرœ­ƒÙpúª¤ ç4ݰÆ0¤@Ûˆ^(ø+€Æÿ—~|û¶ñ¿XZ>² ò3Nî?�ÖÌä§ÓpßðÞL3Ê]sf§§¦'¦ƒGU·çPÈõÖïs÷<€ˆé�cCþ5¢˜á�OM«»b\¦Tš¥¬#þZ­qõrM 1Qr¼€_Šx­ƒÂYùõAѕد9åôIò0Ô€r®² ·XA( qî  y¬ ÎpÙóÊ´ËŠ‚Ü�»Æ30Ф²#–ô„`=ŠURÙHÕ@bSAŒbðÆo\¹}çcùÿ^Pü+@"T€;}ðÁG…á’;•Z-ÖÏ�$ºúäÒ ~ű3£.�p‘ÎÕD›Ç¸²™I`f„š ú‹âúbl´OA'ÍdrqOCiŸ¥{�á-ý›/.ðƒXiZÿB‰`>€RÌ„dªz¹Ž?^´ €R4ðï³Á‚;>j?C ì,h,Éàø³ »8'wáð? à« ¥ï æ RDå–‡:|ó­ÀµÙÖļ`·XS ¦¦•†Ö‹Á+óåwÃ6ço ÌÄO# Ðå?€…Ö̲å@¶fÿH™‹¬mXb'@Ô™`ºµ1nI$¬ÙÐÄñ‰Ù·ÖgÏ´ÞN˯¤´µóãÀ(ž™+T�e€­e€ˆ'�ßùÀ©W 0�ýø*ì[©¿Dªr—GiÓ�}â7 +JcƒYDþLbÙcù¬‚ /ÀvN² 2àÿ{Àùo“®°0à“;¿¹ýÛ;ax>íX¹¥¶óõÀž ˜\9 Àk[×¥<€\Wt£?ˆMÜÊ‘òÈJ*ÀGZâñ6ÊJÑŸer<¯=ô.Œ_=h0â‡X�”Y#IŒ<­´€Hð=ÂØPÉdÊ—ÿª.é?[>ëÐëêàÿˆÕ`ö>=ÑÕ‡`ÔOX’`“�@ +|.âE¨ve/}V + wõ�u 9—×§ÁtĹ¥éGK�ÁLL�¥äÿ]“³­�� O,3“©÷1uP2­—˜XjMªVá4í‡ý¾Ô‡‹¼’`�׊µö:ái¤pÊáÎ˯ Jõ!¤°(¸ÏHžkøþO:€|¶ ) ý¹ ' ÜÜœýÿ Š +ààï¶P™@°©C3¾"‘K=q~ïRo€TÀóÛªÕçªövPöáà H¶§»ÊcðÙß}ñù¬ôáà)‹<ß¹zÍ®² »ØŒŸ¯è/Ð8l÷—c7ŽpWT4¸Pä/¤€%”¬à2‹óÙƒ‘ÂÚ.òä`,Óm,X‚¬?™Ë‘ÿæ˜ÉG}“s·z™ü¥¿Zù)òe½>P›o°*pìÎŽdkuψ«aë]íÉ|$î.ˆÑŸ¡zˆÅ€nXðß:œ¢åV7$œ"Z=XoÓ`O·ÔˆÇh¢Æ�rÏÒC�À úçª]Þî™þ;@Ç?v”ð“Î b…>\“üñ3|9(vækC¸` 10…ć`bbì8&*�_w“@‹Ø5�à8‹e�\q%€k¥ rA NÒ¾Ô,@ÌK8é±ïƒù’A; ²â`¸ +R ÜGLKÐ +„s!D d>‚=W€ÿW?¼cñ?èMާRþ¢¾ó?^Ï’5uêɹ�€ô·�!{Œ �¯;25ݽ�’¿]À =Äô¦+–w�öñ0ÌmTœ»×Ä.©ÎwÙ ëf`©yžÿi.l²êþ¶R(Ÿ»€X{žÐü5_äͺ€qÀ‹!ÀKärµFÈ^AõÊá4ø».+œ`Ì&!¥@ÛˆíP*>�dÀØáX´&`Ã8XœT€±" õ³ì™cv£¸U«Õ70Ë×Zä ˆj)ræt8Š…tH™ßj÷ÓGbõ< À&†V ¡Í¯—ð£‹á.ìÇKü’LÀµh¼C¶ã‚‘@`äÄcÇY±?83¿&ˆëýVjp+Ÿ«¨âéo*€?<¶€I…Ä`µty@*P*D +Hx”:ÁŽÓ‰îÇ 2¿�Im±¤úÜsêWIX) k|ôI\ý'¶>45)àJ8€Oï|D¨ÆÅ€LHãløìè„Üç×åHXŒÈ0€QJ’€Ïb§¸+ø_`ÑÉ_¢ 0â·¯YJ@f8›?Ägž<i€,†"þ*þ-¾Â£‰)�8�». Xx[€L&ü«‹LbǸ°"ºw°B8ÈÎEXÙ7LÀÊ~7vMw‹ù�o[Õ6âbÏî@§Ì|€ñ¡!ÕR÷¢stÄûóµ<@çÔTÀÎ:6Š�)°”|£20· (´À8æ–‚G[JXû\îv7D×ûG~¦3Â0KWÉŸÕõ^;]ºD³ëøu+¼ãt›�€V @ðä2`l“©g¹Û pf~=`,þhœ|9!* +@À"`Ò@Ò+´BŸâ|£l:úO@Pbà²æ]bøîè…qêd +¿*C#EõcÊ1ß <ÇËq x�# +Ào!b¼×ü'Dv @ +Úø˜€3¥k-ì¬ÐÃ~€®ÿ݉•Hxµº9Þ§&$�cλ°…Ž˜ è:ÿƒàý°±È�Ø|x€êJPJXÒu�- +@c);æÙÕ19KÝvJ/©Ù�B½¾ +À‡µFþ³A°øïÀ=à|³ž./®`–o ŽKtDÙº@2¡ù2ˆOÐÄtálÈ%m#zß ÈFò“kÇiŽ“þjGÛ9ÊÞB¦Zß ‚Ää-øiØn¶Ã›>Ó.µƒk`{p¦5{ 3H +èlФͧg£Gƒo=ò ¥š@×Ôζ¼wòxbKIöø/÷ÑboÊ÷�Z3­ÅçÌl‹M�1¦D~i¶µ9ÛîŒwp™øUÖ ¢QÀ¾r§æ×ËËï¨;`!ïè lYÕ°’Í�-H 0*D2H¦8lHz´›-iŽkÑAÊkPÛs2‹´g +À:áÌä«ìü9°nžÔW¯\½r‹y€âvãúßþíßýyocç?ÀgtãDM« + 0�Œ¯6¾pƒ)@"¸"$ê!) €xÔ[¦'±cà® h=`!AÌïùWàé³Ãsy¾lÑ€‡+pèœ1ß¡hÀÖ€H…ã~˜¯Ø#¢Àf�ßZ²C�*àò’ª +’8Ès • °˜Ë+Mt@‰ ëŽ {© � ê9›¬’â�(��`œÞhEíÖÓ`}„)ص‚è�“QÔú1’ËÚ­Õél±—¾F¤s}ãÝv»³Ùélê/ õS½IT-•Z�¨Õ~*(� �:‘á³Q¼ùN§ÿPl_oEË¥±g@ûåÓ­v›?FG›ÿ:jßì´Öîàäí·p�×Ú¼z–”‚Í›ouþbûFÜ~¦…tB4]+± ±7õÎͯlçSa[~â)?\² M^i —Ÿ«ðUVØãiòA3)(lÿdST°ymLxİRk»¬b„ÏDvö�eÐdä˜ XSà^X|c:Õ»ˆí`>©ocB›¾øìåÀF¬¾ €•)zM@¿n]FÝ‹�Ë3 H9›pðýÜ)Ÿ‚"ùáaEëÃÒû‚Wàž8i.s0îk�ÀÆ.8U½~üŸ•ÿèê|áyE0¢¿Ž‚& R@ˆ·tåL¦|é �ñ߀gÄ,xœž¯¯2�öc°%½¹/à4ÌËp“pàè‘£GžÀèq}5>‡:üè£GŽ9:^NÕ~£'17:ú¾Àø‘#=úÄSO=ŠæŸÂ÷ñѧžÀÁ8ü©£8×У:È-Ü‹«lçŸâ3“}†g&?úÄGÿñ¡CGÿ1Ž?ú„ÿøãGø³üy‹‘>¸¦q­À*îô„š9�>õ¯äÈ?zôÐCÅmŒŽy|ƒ“óë€ÂÅÝÀ<&µZ¹þçÙM0Zˆ‚R( ‚¨wËHûˆÝ�’)*a�á+rÙÏ <€¹kãë+þ‡5^'ÀlÀ[W¯¾ç³O·ó_#Rßààà³;¿¹ÍLÀÐ Ö´Ø/ªéb¯TÀùoN ë$wüz‘ž€»’sH�À8ï"‚c?h‚¶Òd†!|0þl°™:Ë!G¯,Äóà= n¹Ëì×9åØ:3Ì.^nBÑ3™Õµy‘¹›¨ç!Ð ¥û‘È„$7sa½|-�¨<=@ :3‹Ø +8i|=˜Y^‰:íÎO‡�ZëˆÄÛÁsG­ë¬õ¿Üê´‹3ÑõÎÖMDÂŒÐÿ¬³µmuë3nï°!ðVV@ ‡‚µ¥N�)==Ðz;z%hm¼òÊrßϲŶ;ÑŠ‚™¨U‚(–ZûÁß~e£Õîlu®#vÇϼÿøÛ§;øñc‡�¨Üܺy;µ;Ø9 +N/—Ž  jE3”‡�áäü `qW„sˆâÁ16&·š€¬€ ÀHnnŽÝ†Y8ÍÍÂï„Q@}´­/L°‹Nˆã{Æø,ûÏ¿” + �„&Š´Ù¿Ïö.n'Õ·óŸk´í‹OïÜV=€P Ù›ö‚v¢¿³˜oRöd¿ÀÓ�VîîûÅxØ<=R\@䎑Åz‘ßÇ·TÑí€"úãC&Ó8ø$Ìä%�¾»é8€—é2ÖB¤ç‰Dº€…z#ÃÉk>Ê•X²ÜpÇ”@ŠÊÑuJâªÚ;¿33ÌN¬%P!b»Ô +à÷O•J?mŸì°Ø¦t*hµgJ¥)¤§§Øæ¯EË?­i4Ó0Ël7¬š-MÆCÊ›(• +|·€·µëý€Ç}Á}8ò[¥muŠôI‹U|™# —ý#�_š±ÿY‘%ÿgxD¬3{pv�9< +rthˆGGÁøè>†q§çW‹»Ñ~¥RS{ Z™ý‚ÿ1 ­§p(¢¨}W ÀàŠ+àDÀ—3Jî÷»µ]ø¡¦­Ã’&Œý‘ þ=«dÀf €¤A„7°‚@€«¹˜vÝ<€…tÀ‘¢twVÔ5ôq¼QÝ >ˆ÷�ÿrž¸ïŠøÍÕ=ìºIsFÿØ�ô'ÎiZc.@}i<«,€z9ÃWìpŒ–�‹—_–X`Ÿ@9¦z@”®ç²ÃU’Xb_A®‰  8< ; A ‡K 6Lžô’ž§Ä”Ò8 P*[Ó`°ŠÔ¹±TjG£þ1. ] Ò1¥Ž�¹ŽÅíSíñ¶g½C¦§ÉÄ»gÔ"—ú,PT¿^½Ÿ •$ôÏÄœI|¼0‚À¯:§^BÈŠ jj°¥ª?¬l€ ™¯’‡3öÛz/@�²ÕIó{Ïák³ »±> ÖªøÐüƒôˆöËù98¶Ä«VØö ê(·Ãƒ«&62�Û=”JÃö2ú?xP¥€Ì\“IVúŸ�ù9²ß +ºˆ Ý Èß×%\6 Ð6î`5@f€,Ììƒt +€Æ>fµåN˜to4þ€ÿÃúb_<ÀŽA8\$<Ðqˆ»âÞY2’Ê †™ÑJ³Ö’AO�Iö’ c^ÎÐÅÕz€´ÀàO_®QÊ?l°½/\@,‹H0þfÄî€934ŒäFrÙ'ù&µ´XY‘À`A€i„%Õ’ã(Pw;ªàÃ÷h"ª›b©ûÄD‰4²îÀƒ7£ˆ[±ã)’2˜E¼­â@Æý ¶N° ® +x‚ÂqöèÏj:Œ¯ãúÆ} ¶÷ù�Ÿ›.e™„]/®�¿-‘±©åíwÆÛÆ/¤EhEæFØž@0}æÇnî„óó+‡ñü®Pf Ü?Ú5_å2(ƒÿ¡—0´îåD| Ö6蓆5³Ã@h7�€���õm•ONމjÌ0(@ç+øàŽZ’ÛXΓý€±jÀu¶ý³Ïî|øáox‚žRÁ¯® \[Šþ<�ðßZ¸¼t7Ê{%û-__ö�´Æ71¨ïñ¿)hî™IËXDˆôKH0V††j‰Ú">_ Îè©wuâÆÛ‘P=>-%Ö,0“o¾T†8›Ï;ÿ›‹ìRœ½y€Ò«õòH&vÍÐ^ ¶ÚÌe¡H{�å8B!hÐtÀ h/ßö‹GŒÆ‹…Sãcÿt¬0Íwù¤ D×Ç×)3,d” ïLÃ6HTG0q†ïíëžž8Î×zJHB2¸?tpL+yQx¬PzjŠ–Du€Ô³~†óðØ «ƒÒ,_æêH¶f§XȤhìðìÝЊúwLx·ákJ Hì9$æÂZ…ÔT)‰ƒ¸7ò“á1 «; º³)€¦iŒ#Yq½"¾Àyî†SâôÌ ù'í‘ò>Èœ½‘;®Žjrvp›y_$™Ù“üòä¿Mmûï>ÿð!Ï�Î�Ø!T(~ +HR^'‰šï¶à½9“cPÉþ0V‹×Ab �2ÿ±"b?ÈY0 ÀSiË$ÄXúÊg“s!@Çó€çêKçwk]ìHoì…´w_ZûÓ��2¹úê|žÅ€r¢y.|‘jøbÊXç õº^Ü\Aòš-�˜ÈÐ 4æÕyˆZ`‡ þ½d”ÓÀT{[¦‚ÍèÏŠ¶�†¬ ؘ€±ÌNö´9ÕÀ—ˆ»ößèE_̾…”`¬4ÞÒ/àBàC\–ØÌGñ<ßj† £€à•1…@èΞFbÄ’¥hü;£ƒãßq†~ÅP Ø¤ªU¸Çªñ®l‰Éòˆg»3¤zhe�dt½ +úÒ’Á>ZÿSpö‡ÝpGŽÅeûÉÐÈiÓý3î¯æ*îYP1`·��‘~‚^øâÓ�?bcÀpnÅŠAŒ~y1RôÇõ‘‚áÂL¦xi=@wÂçCþC)t–qÄÁCÆn÷<‘Ãü ;Vho8;œr8T�aÔW’ž%ºTa?Iç�ç<·À~ªÐ o%+—_f= ¨W¸zNY¿„eöñ=’QŒÎú~ tR$q"9(Eì–àLH|�ü4d3»Êž%gwqѸ’%$fJÓÊÍë:Œ# ÀÅ€gÙÍÈï÷Áf[VMÜdŠ¿QR4;…Ðìo€_m�oDqüïÐɉg +Ç)¸“é6buÆì�¢_)˜ˆßu�Tª!S. >¬À\XÍ–F|- ö¾ +ù9M}lcLt Î~p_Ý+ìãÃMæ˜ ˜ÏbÚV +˜Qèʹ2誘(¬3€U��Ü z v6}ñÙÇw$óÝ$€Ç¤ý@—œ„݈)Í?é¿=@ßDw$Úç'`˜ù ~*Vð‡Á„܈«PçTÑ +“ÝxÒ…}~Ô(à$œ€n¨ëp‡z^8¬qñrX¶âÈòJ�MògEm€f�ç€(ç(˜‡0º·]Lès#ûÑ[ñ©åµ€)¹Ï ä ¸#€€fà¤;|»Àó)€ƒÜ˜+ÇòÝÀæ¿Úüïû ëÑzt¦T‚` 0ŒÝ æ>Ò¸`„3K~¶Æ;ë–5‘ÀOÏ4@aìðÐÓHDLoõ§yÿ/Æ_‹¹wâ<€“ÚÆöY`!Ñ?“4ÛMÂ~<Õ¬�9zÐøï_c‰…Í*àvò÷Ë‚_DJ@ €n`.WYÐ c?wÝ®@}Gû1õ•ÿÏ ’åJ™IXXDÿ 4/cü2º;€ù¸LæNð×à�Ø=bÅÙJ¶s-Ü?â| b ¥8† rp‰å0áØ¢`úãà!Ñ[ +Ðu�æRy$¿Xo,5rg•I‡ÇÃ4Òåt €µKÕ|ù_ÐT.¾d³¨ „ÙPm‡)«ìU´¦P@â]8=u�JÀ¬¨€ô”;`Ô/öó½|$Ë6Ð×À-LÏ”žÓèÀÃØ)€cܰXpÐy«ÿðn{3Š:Qüm½u­µy­ÝŽøÁÊÇë›ÜÎÞÀ[At½ØþÅÏn¶°¹µ777o°[ðàM¾=h}£ÔšÂMlvÞ�œÙÇ€Ï×Ð @ù»‚s‡TÀs‰¨ÎW«à Y"ÀðHÆÞüµ›È`c Z)€-ö;€;$ÿd¢ßÒ̰L@®ñÀçø.¾±ØV0î› h�ëÌ|¨ÂÚÀ¬®¬2¼29±=@´'ý“|ü’éäSÿÓh'ŸÁ¢,30âýâÕôµÂAÄþªèôÇOñä ¾@@OQÀÃàéÈ0‚U€ºШ²† Ìå Ÿç !ÖgŸ‘²9€ÆÒ{ÊÙ—þ—z \;'�µÄ¢Ž7€$@. >SØžPµ––ôc�‚9r^¼§`übÓ €åòM:]°³ �`& ¢ù]ópºÁ€W ÞüPk£UÕ•Į̂�r\P +–™#‰™Ö2ÚhŸìDÁiÖAZ‚É™w*Nž.bZ,ÇŽ>\Naç“û…³ô+„åóíæ†z?\€gbÌ�äå.0`�Lˆ° NmŒÄs�9#þ5ì“AêXŸ±É€«ùU¢_Õl蘠¦�I š›÷øz1ü®;€®Å=µ¯è^ +ÀÕ‚Ön  +@—£¶8•טFšÖ‚™\3HJâ3)é$  ' ©Ó6qÃr±ý§ða+5ÀéoÀÍä?û IÚàú‰CÃî&\êr! òYq÷<O)9¤Ë- ±úÞB>ûÒ{K! ¿ä€„ vl÷;Š‚A?€ÿ¬r„]à¬ï9IÀYhLõu}òT +P:EPr-0� O;4p@ôãŸôZ£3Ë¥ øèᣥÑ'Š“Ap}t*°\:=y¢X¿‹E¾+¨x²ˆ•ÁÌòòÌr°|Ì_~|ùt «µGqôèQÀ?ŸœY>ù�ÉýÂYúÕ�…|{ seºãmž5�ü¯Tª•¹0Ìæì· ‹1x¡™,}jáSKh/í;­ÃçAÖ±‚÷rÚ°ãmF«$H‚˜ÖÁÀB×P蘵ÅyR>™w �æ¿õðaÊFX]}A‘#% Ð%Î}ψa÷•v‚ €¶3`ÄÖ¤7Ÿ —Aa¦ÿ%ôùtÚ!í lËÀ1:›.Ôàü·R€‘\xñ5’òKT€~`iíR9S[ýáåæŒ4êç@ùms¨óÀ”(»`tï0›´ˆýX]¨Î†À&L ¸(ù�ïðŽŒ—0F @IEÿø˜˜²ü·>yÏ&`ïR€w︶> +J­N«¿mu&±â&lAëz á:?í0]ÐÞjÿüæÖü»}ãæ_òÝ �·‘N¸ÞŽ~ü¯£�RT‹¶n^-vÞyçßìëÓqž~UPl¾'XGð¶ªR«Ì-0h +†Žý@œIå €~-'!k=¸X‰‘õ~+€THò«”�†™ô?–=v,c \ßYÏ`Ÿ`ï³@âDs‹ó1eį€Vr+÷‘üæ7¸»põ-@Ügˆ•ðkˆêûm‹è¦åAFÓ]þç3‡\$t¼�·iç <�¥ˆp?þX€® J2T +à�e`¡B¦ŽÄØ‚¥Éb!„h„pÍæùó ¹P�’©¸3+rŸE6(g‘T_ýU=Ìgްƒ²vùÏ¡^îuåØ4ôxtN :{Œ±Úœ�€{‡u9Ò’wï<¯`¥îbàè^ÀÔ/ï†Å6$¨44Äþ@¦ƒ?š�m·¢ÍBÒ;p!¾hÌ&{üö n޲Æ0{) j…ã{&n¿3Ùyë­Ÿ©Ë¿AÆÀŸÿ}¸ü³®å|9dþ?ÓXë î�‰ö$ìÆ@ÐÞÆ@ñ¾»²€+mÉC;¡*‚ÚjÌɪæS±¶–à�bÎaü 7³„´¸ ,BLÕ@» ðÃr¹ß†ïýKy;1’tþ,þçžš1½µ’ùz:›'8” ÈR%–0G4 8Z5�wTDè$ï>ê`Ï}äì] +à¥þ;�ßÄy!�çËá%ZãÑz¡ø42Å*!ðÚKì�˜SÎ.�F§ô2#€~ylè›OÜ8½1yâÏ;û†Sõ+�ˆ3  䋿1ƒ5p a.Kg �rÁgX1UÚ� +‡`Îu�òÐŽð.ò§ ËÚ|ëcŽà1 +²&‹ ‹‹ž;lÕÍ .ÚꙀ´—_k.Ô›K0Ô]ØÒŸ_ƒ”�‰Dáý³[­n)@÷>p“Jé¡p™)ÎL °BëL]ð1o%ú«¸ÞÀ}=ã˜ü8ɺQ úyKXE> 1V)-Ó¬¬](—ÁÚzX]úß~ë¹ñŸ?¹ H€’rŠÓëìtD@Šƒ»+òo¸ðõâõ«mWϘAÎj±°÷70—ì’°§@Ì~´G#üTqèá1¾ðc6/&%¼^ü0® 3S¥§áþãš”P‡æ°8blèð#³íÑw£™›7±ßÁ¹ú•Àÿ´þ`+_ s¤û\®BþÏAØhX�« Îe-sÁCŒÂ¸Ïö"­ŽôžéYðèÕ€ �N*ÈÿÓÐ :dïºL¨íjlÔ'x]U�Ù%XÒ#0³Ý¾„ÍcÌBÖp*€4 Ó]רo @WÆjn²ù9€öêÞïÛý¿; û|hR€\'˜€µô¸ça¾ÐwÊxE¶¤(@€ +Ö†#Ê…CúâÈ�üg„Þu/-À¬­ ‰W{ïÿ¹è uDñ¬A(©pð€­{)Øäy‹fb€x™®û`0¨«O ÂJ¦EæR¿š€»Ô`´¿Ó÷–`ÇöC{| )ŽÂÐÃê¤�oùÚÿ•# ²OOýyä?æ¤i­ÒøÆ�[Ø“€›9NðXôÔ»om7ïNÖ¯þŸí :É|®âóüY:€0¬•«HäF,˜Y€ap¾›°!ñ®ÊæKö UÈyçßÀOÀl@°„V›sùŒ À"ÀÌ(C9 U˜œ·XŸ„'óõáH+¼À\X]x€DR@=õzð¼*¿2 J`‹ES€|Õ@ï‘ÝÛ‹¸ëÄð‘P¸™I{eù ØÛ`/˜í�—õ¹>ÇZ ƒÌstÍ0C¸À>Zî €ìÓX{ àb3¬ Y^þ��Ì0û¡q×@à×€Ô¦/°j—^AÌ€[ 8€%Ö¢ÔX8`ð<ã?9h„,€isƒäìY +À#ûckœu� C�(ßïÑ_.µ(±Ä(Fb¾¾¸ÞÎøäx+¢V@J…‰‰Ç†�½9ÛfþÍÏoìw¸álý +àÿÙ^PþZž�‚Wéž,³ë=öf€)€$ ÀÐîs]0JãwÒ{j–ú�Ò:²Ÿ½ÑŒUü ¾;òŸeî#Ù³ úqÛ=ÌX ·Csþ¢;‰ï3q¥õ øa¹<__ý!ÜC,¸‚ÓAPtÛ`Wå¨V¿‹p°ë�0é­dð4ªsQw-Bû6MX àö†ïâ±²OB‚•8|Ð"j}|prKKæ–X ‡ƒ­– ­×³ZZ»P©\Ks8y¾ñ×kz�p®Šk°Ô{×¼°4½ó¿ž;Ëöƒ¹³ç)t+Ü +5X‚‹0è:0…q>kL÷s»ÔHçİKÀžÀü}! Pb[€þÓS�­Rp‚§Â‹R£<® ×âó¥™Îw:O´Z3äÿø4t`ì[Cýl½u#˜ñŒ½ýÁéú¥Ãù½7èÔŽ¤òœ;€Ú\8_®H  €Eçnð60|¦h�‚vµ°Ï©;&ÿ… ¾lˆS‡Ø�®ò×™øGœÉ@†ýð«/Š<Â54À3ê€(2îPœ//à"ÀÂ@ö +Œ$@X­Ô_[…ÝA@îJŠ® ]RšÛ U yÜEÊø;’» Þ²Çùñ¢ÍÙ°ž ‹)&&ÊOÈ™ þgÞ‚íLös5€çà$PEŒ,óéHÕwpñ ¦V.‡j œÉ”—Þ{ïß¿H!8hD°"Àz¾±Phð-Û{$Øq¶¼ˆßãQØ…GÖ¶;Åþfl �Ôàþæ©°W€÷þÓðí§'p�S�“Qà 2kÌ«ÙÔª`ãhÔn™„`g +ÀÓ…ãP¢QÑ]ýþà|ý²áìÞà¿åö…V�@äÿ\™y ¹¬ÕRH$âP™9.ž÷ê@²§­qø9Æës@y\Ï8ašŸ•I{9À´ê�—¹*>¢3ÑõùÅðƒ>¸Í$@’Õ�ÿõ“ô¤¾!v·oß®T M€‡X�0´è™�áÕ€ìúÀ,( 2¡ÄPvБñ®º_·)ß�;hÒ  ‰M�÷¡Œs9ÿí•c~=6>¹ƒ#½²_5øÝ àVüf^�@ô:€¥µ—Ëå‹+Õrþ¥Æby$_žÿ×^Z{©¡2@ìf�h†¹2KÃèKÀJ_!Å7IBð‹Ø‘?‡´€c^Âüb3~AøÒ_Ô/ Ü ®ÀÈvy{•¬_kqXß1\k-�¿�$ÇuøÔÛÅ7qg¸V2À÷¹ Ñ!¸˜ 6o-·6FŸ(¶NcËÓ°‡Æà5:­{€¯HœÞ€±„rû*aõÉa:ú~®^8kÝL¦údðFXìÃç6ö +ÁX}ˆ9lJ¯½ûSøvðD؇C…í'óI4ö ¨?J\ ‚6Ò´ßeº¶^‡°0݉®øßx/ %[Ë÷C tçÙ‘]H;«Sv ]ð +9J``Áóâ4@ÕŠ]„„¹„V$sÝ<U ²ü öÐÅN:p×®ÖÈHû*«@ Æ¹a­†' âúóç¿,‚9)€ªþóK ùð"sò_z©²ßW¸Ää1õmjyx0¹æEœÀӨ㱰ΗÈñ…Â&n8–¸ Ÿ±º:�òû3\%}ÈœAò�HÀ©¸ÀàžÀ{eØ™‹ÿ;†ø®;øÆ‰6·D­ÀÀ�`Ò*-/mÑ[Gƒ¨ýÖ:ÌÄÐáG�l­—¼’Ñ>áŒýra1÷ ƒ‚S™€À•Ëä°A Á n~¤Æ>f…nNÀª9^‘Ý¡œ¿x–#@mù ¦(Y·{¢¼*ÂÙ<ßÈEäª[Š�ìÞÿýÛ½oRÄ/Æ Z)À]>ÿì³�sû6äméµ&îüœq‘wZ«Õýsˆ‘â¿]£B¼O2+é<Î%¼5pµÏñ4rä6ÇLŒãl +`��º�P8•Ëzè «käÀ@©Y\ª;fã/Ö/®–Ë++õ +ˆÿ7¿º\¯ù~R0"§À‹î‚ ć°Ô€ø` ¾›ÌÀ<€¤C ó’z�Ž}ÔØ#ÀÌ~D£<ùÄ#̘`†ÿô›'¢ˆq=.öD� ƒ. +Ó�Õ +(•¾·|d£T,N^å;ÅÖuœ¨ppì0 ³Qz÷—÷48g¿TxHÙ��ì9pu.ä†s5r‚Ûuõ3;Ÿh�6Îõ�‘žï‚~¼'£;},j(n8„¨²Ó[‹íŒdj&R¾@0/  PÀ8ÛIOÆçtû­ÐÓá¹`kñ`ìyt%ÀÀóâqG¹™1¡+ a˜­²B¿ø�#úÓ0oÛka¾Æw~á¸K««ïý�õ²lf Éo€¬4Ã|ŽÕüÜðñè·ýçÏ"®‡o@@îÁ2qˆ�jr1ÉÐ0h@R€sƒäìQ +ÀãîV¯ }€«D"¿=­S^tñ&)¼œ%HW¢UЫ#ÅR°ÑiG‹§q_Gƒãß8<7"@š×ÿ•“öK„(¼;âˆéê€læIEÿçjµE +@f~~¾>9µZ�vëÑÒc�ŒMÌ­h²óóŸwîaø +Š-T†&ø7Ï?9œ�}u_€p‰Ðè™Ü¤;û¾Á}œþwÄš@ˆ€I¿àÃ^°ÍpĤ¯9€cÊÈŒÌ1°1’cÐ]‘`M@*@·$�”O¦’‚.ÿ!q&àD‡Ù2 ÎU×CàëÁ�­¸�Œÿ]v«8îa\­æ²ÊW)€mÆD•ùqè&µZ3¼U›×>xˆü¸ȱÖ|Ù ×àñR0â,V~Î 7×|ÉÕ”ê +h ^/Ö_Z-gÊ/]dYþ?_«U–þo¶î§’2�oä·iìš«P�À¾§¼ˆ1ËNáM¦/bà�ý!ŒAIjcôÁó” èàþÛxeÛþhŸø‹vûçÁ`bv�/ÿ +Fƒ­ö››�v{½ÓÙú‹­¨µ®ñ5dí·‚V;ê¼É×�]�¢­Ó?™�¹u:pŽâަ×Û›7o.ßüÅ=Âiû¥Áõ`P@(ç¨ÊÙáüÓ2JÀ°ª°B"¡°Î@‰ÐÍ”s¨ÈonÒÚ¢‘T}2Ö!hH5§ƒ9¢?‹ôé Y¾Us$[®¿ Æ’ý‹¬ðÑÇR'¸@¾ï™õ¯™Ÿ}ƃܚM–o0~ƒžØSà�¥aWÔå?’ê‡@fóz‡Rº žòAðð™øFñ_7ÊuþhX²Ÿ¼ÿËÌb”`‰ í̧ åƝóÑÇ€@B<ÌU¬Ò§uH¥Ü,.†/­U‡³Kï±(oíb¥ÜøO�Ä0K¨ X¡ø¡€Õû¸E²>�€Â°£o-u†�è +€¢µ`ü9H€Õ ý÷•°k)€uüq7lŒ#%?sbhhŒ9û3ÁéÖäì +PßøœÆú"»(b�3ÜŽu''OON²ƒ€Rp:(ž;1†+�6¢ÖÌõŸ^oÿ´½ïïO¯;o¿4X  ø‘`µŸp±2`«ù·2݉@  HXxFè$© 4§¬¥1à+ìc¿aEø\bðÕ@ÎÇP`üØý³ý”àù,¤4â,pËÀÚá›(�¨ÿ»¤!°­g&à�ߘ¸fs• / ¶d£Bw–‚.�7á‡à»ø`BP]©=Àøÿ€?~µ‰àS 2N„¾Ögìq¶3žž›Á¥@/Hf"À@µ€x7p(a×à‰Á4ÖÂL¶ñ7ìùeíb­¶ô7�¼þxæ%öÀ2ÙhHð¢*IX + © +H÷Ï.‚´¿)`I€Dý[[µ Àë€é˜˜¸ï¶ì³ã®89ª=4tô¿-N°s�ññÒ Ð}¦…yöØ5´ØéÖL¾²°“ `yùíÑâòò+ÒlÄm�=õèÑÂä+§Ù‡H Ãä=|K_rÏ ö÷ˆXä Ê<‡± €ª‚+¬†=|CŠ“ðZÔN­,£.®³HŒ™€ â"AQ ?Æ$>ŒûŒÿŒþG²êkÕ€™€Hû÷6PŒÏr•ýÇ`VÁpJΟ/g³eœ.¬…uÜ–†ñUqV+àþ‘þ—À'[ž›c" l¯ð"°™m´åsÄ 6•Îù¶dŸ@=éITa�"—žÍ#½KáÂùf˜�3B’©Ì¤H +ÐXkf³çþ3 ¶¶Z+_þ_—$^€¨k.€€°æÂ”°C†)öf‡ àPi¶;ÅãÏ*úLJŒíuw­à½^`·<Äòñû wœý;íw¢ÖØá±Bi¶3/ßî¼�”Açtô.;ÿˆZ�;ìÐøßì´Ýìlµvsódn¿½¾þ³­Q«T€*JH&l,¿ÓiÉ[Üœ¹_œÚƒ�P/—UàoÙ H0z�0¸]±XÒ”À6’ì˜W±•HÀpÞ0%À™ˆe1Ó¥ÿ»IOùºÉ/ ÔË…'}Rÿ÷&sþ)þ›XÇž¯Wà(ΟgàYZ)óÆÒðK’ yãbÀ�ü‡èÅ øð5Þ)NÎÚ'�6ÙŒN¥ù´§s:€À\@j»ðÉX—¯öõ<PÍUën Q©<æïsfíR>SûŸ!áÚj%üõÿù'öq°ÙñNg€üüÊk«+8ü>‹)hv€ÎNô +ØÇ˜Ÿüßw[€®¸ï¶E~î2<ƒí|ë_鑇?V(MŸ™Æ žÁ¥ÑLëÆì,_UXReLÈįþ�¢Í7Æ74?­ª…Â366441»>sš5 q€³¿/àÔýR ^ ò@1=(o@IïH‘Tg8ïIikâBv' +þc„Õüb¿aNA{m’耞 € Î8ŸüÏã˜8àk#Y¬L(€4 Ÿ¿u•­™P‡û;¤!èá¾%>#$ /ÔóLRÔqªp¡¢·#zì­/á—Ä9÷�üYÃÜ\•õöªe°Î>àÆ>‚nZyZä “yŸº5ü[¬Ì·¢ò ä’¶Æ~=:o8  '€|ì �UÌ`ÄyÐS{Ö/^®fÊ¿z¯\~é?­…•ê{/™åÈçµ¥CPMÀ•07Ï>“•À™p6¥tuz ¡9wÿ±X*ךM+°Rp~?m¬vv–Ü5`϶»§+ :^(L³›­ò?h—ZÿŠýÿh�©©Súiþzpã­ñv°ú3…%+|{lèá¡Âéèt1âŸÂgßßS§¦¦œ»_ +œÙýÀ ²ü†Ì Ó°.`>ãÀ¶k ÒѬ€@©¨#ÊB Qœ¼ç±Sò^ü÷`Lº–èÒÿÀ�=ù³-�ŽáôÄ,cŸ§ g$Lÿo}ô1_ü…,’øŸ[v@��h5öüôãÛ|€ƒë e8�úB•¯E¶ m—¤1‰š\–øÏqŸÈS²ê;1•0è‰ý Ûf3‰`Á¦o@Änס{gk€îNzv’�³¬/˜ÏŸM%�P›ËV-'ù•@bg±ÀÌÊå•lîßýª\ž_üë—k•š¿FÑ9Û±ŒÅ- WN€â¾;9\8›? ú³&;÷$«Iš�ry)] +€hT–¸øJêìÙÀ.PÌ^úÆ#cÇÉt³)¥é­ õËõÍYÖ,znéÚ¦pUÁz4¾EG€‹£˜(ø«AÛ¥bd‚Æ÷ûåï8y¿8×·ÁÃËN€÷ $ðgÖ)ÿ„s±à@ +€D}ª€XÏU,²í±‚y‚ä/ƈͰñŸ ~õ€aÜè�T€;€aHÒH–üϲђâÂÕ«W]@ð/˜ÃGðyâ>7!÷µÛ?ûTõpìBˆÄFy!dßDZWø%¹ö«ó,ÓŽ±¨Ž#§ã,~B="¶Q›u–x%'Iî �õ4@EåLñ +| +\‰gÇNHβáÐ6Pàh¤fIƒ§Ô‚ÆÚZ>óÒ¿áu~}™9¼Lü§A¥àÞæÊÍ×^‹ þ�y l/Ê�ú±,Aš± HƒMûj ЯÀ—Ð`L•f¦£`⑇†;>11�sOMÃøOo�nýrs=hÅ&ÀÀW•òrδÚã7u=Ìãœ.µ DC‡'J³ïþ„o÷½ï ÎÞ/FøþÞu†æ`^I&:�D!Q�U�—ñ³hO‚K,å�Pš¬b9À¢ÈÏ0œÎÜÏôc#@–°S0õ¨mÉ[1gð¡ù¿Ð ?tŸ;ÿ•ùuàf  ‡8”³º½yÜ šÀ/©�BfŠÿ=ÀîÚèï�è‚Îâ»hÿ^dé&(j°‡ûNÕУrj1PfµÍØ,ž_zŽy¤!—B<%. BgŸøyé2"ý÷šT€¿ù^ÿ_Fþÿó +@3̲põE% 9 õ‘ÍeŸ¤À(¤�Ðè© L€ý¶8ÕS .0ØŸ°cvOß*=òM8fÌή¯_k• +­_üwH°Fp—Ðü E8ÙaôLG¥§ƒ±±Rðî,’÷§ï}CŒ€ø1�þ‡à$ÃÜH†y²8e�LFßòvÍ(žç!”R`s”“ +Eû¤¯§‰V1º-ÁÍV + …Æ<4Î `îéÊÑÜœ€í� Ÿ#ÀA.€‹à>eÁøo ¼/¨ÂSè< �Ålº±”ø%Å +ðÀs^Cu.?BúS@TñšÇð®{¡Sù€fûí›ýiôÄR}Æì7V«!•ÙÏѰ@ yæBÛªì0ˆ`y�Ñ{åò ™üÊJ� +°´¶öÞø—kkü(—€íå S^¹ôÚªzÿ·õ;€=¥m¡„.aÑ€ÎR¯+€@@Ö|eõîš@zïŽà~nvbè›�|ëx��~×Þê´K›¿XÇ,Nbþ_�¦�$ÐkŠ£ö‰wñ›üQHÀô4.|lè1ü½ÿÇbéÞs ý—`¾œù'þ±±¸ ¥�ÖÄfM‹ìé+|"°z÷÷ÜŒý°£â/Í:¦�œWB/ÿ=  )`Þ_¡ƒ„ Ç«„kI€XÈs›£Ð‰~:Â7}BxÇVó:€,»Òä'ü’bþ§@_F¾òx?Œ»ë4l“fxßEkÕsj’TÐù€J…ògÀ÷æCÄ@°MDf˜4LˆY¿Ps5V‘í•BˆSë Ï­_Z[Í�ÔÙ#H¹\»øŸÿÃåð\¸ˆ(‚ÆÁöÀ×@y$l^Z•4Hn%Fþ2@‚µâ?À†îšÖùÏ„À y^€¬�Àý´ˆÓ »`*8…¤üÄá‡X¸`G€÷­örtã�þÙ,“üL'0#ϰ߰VgVŸÀ»šžž�ž€³ö|_pß'ð�ÄŸÁ†:ëx“õtÃÖä_ Àê´à`ÁR€Üç@à2iù\±¨Ý0‡pk¡Ø±óª/¸Ýr�ñüŒù9�`ÀOü VP ÛWDo¹œù�,@ÀégŸ|ü’:lOGêó÷2ݼI‹ªÓÒÄyö +ì`—ÉF9¶á×1 ]{aÛ4GúÓcR}â£Xµ˜ü/C\p5¸:[O4P$„Ù³y&õ àc¬dÅ & ˜C"È�ÅuêQÏ×ÞãkAVWÙ'Hýò’ž1 úÃ�ÞМ˨Óô¥:Û©PƒóŸ=Hp ~R¦žKÀ’×$in Я@,íÏÐ2Lí^NWx˜pœ‚(©qf6:½¹E3ÄUÿõŽpÍá~˜hÓÿóæ`e(�=v|zvkf\E‡÷gðýVòp(çñÅ u~„õêêy°XÎdM@i˱bˆe`Ä, MU±̓þ¢< ×ZÏÁ²§ i–^ñáÑtíl@†ï TC\Ž @XÈìk.†rLâMŸ~ü[8pž� y:öìá¿(ªp]Ý+³%,Wò~ªdjµœ…—’ôË0H$q6-pJ€ì?�g8qH±È]rB{‚R€‘ááj€;v ¶°Ô€\ ùÉ+#ÿݬ7ë +ÀÅËÕ\míÒêB­RÎ{Ç@[‰¶ä³9€•|°ºÒdë>’ÛÂÈ¢ÑØáQ4jjICÍ�cÀñàyüâcà>ÚpÿAP + +tߢ:yûttc“i»l%aK + pcô­V²urtü8 MŽ·þ^(ÿÿ 6°%à"´¯å2#™yÒŸ +À°;1�¯¸U$†Ðˆ ÇŠá@¹‘þ_D7âr-P-lóÎ+b;ÿã$wÃñn –$HCààS¤íÅo0ü3›3¾‹üi|rçÃÛ·néh°SS—‹2:ŠþŒ«ý’<Öƒýðÿ̘cÁ= ž{\]šÿB惨ٟ­æ» šå¾Ã‡Ø7PÖùÏ2ÂëÀð v…’VÚ ð?“Éñÿq4U +pA–€Å£4)¹Ü“Ù1µÉþ<ÁìËõl¾vñ¯/Öa*y:*Z °^y…8€$röÚ”:ß L`ƒÚ àË*¿±0˜ ¼Ñ=”)V˜ R€¸!€‘qðzû|7`ßR€©_¾û.>{`k«ó³v›5Ÿ.•ZëAЊ:ì¡ï/‹­?¿qóæ�­¨sóÚO7Û�öµÍN;ŠøBàèÍ­öÉh«ss«Ó‰Z[Ñ[Ñú™‰‰§ƒ·¢`æärðŠ·4¼W8‡ï ô"þ/û 4 öG„‚hg-72’a�€Ø@$´÷à ‰`É0™Í®`8U`eôÅ°Ë öÕÀ0¼³P +ù±àáŒ{àÛ &R€O1â„S‰Áêöé§Êüð€øl¼VÉKBH�ð»ðêB�Å é\™„Hòpoéà”þ°¸Q«¼Àž Wê(‚£‰ø_*X# �-{ÕN–4țȰ5`Ø|ÁÒÌßFF²OfåVê5vÚ¸üZ6[®-^¼| +PöF9rŸ‘¿²ã<€ò¢–^däî8‹ýÙ'X.\’àÅJ)ºÿ•ð¬¹e ’Ч5à=·˜œô™Ý0Y*Ož<ùÔÁ‡þÃtôèSO�…ããÅÑâ ·žÇÂøèøIn FGù¦ÐñÉÇ‹­{ê裇�Ÿ8yr´8zôñ#÷5uß;ìÏ"u»Ú½×à;·XƒûQ¥`sa~83Ï€‰(‹ÿ‰pÍ09äñ>vÂ"r&áw^\ü|1ÝæðTb¦ ¼@ŒDu.qwlûpÿ.ür†éØ9CXµ'€ý¸³= %‚,ŸåŸ�‘ØŽ]ÃêbóB˜eV Ü—Ȳòt½¹>Ÿ¯eáÚë—/!Ù“-¿ô?­]¼x±fÙÌüeTÎ/KàVWê89ÓˆÑÉn %ìGåΖ;¬âHÙ R€î‡ŒÅô+©Ð/`3ú³è:†=Ðét–ë{h¬t×ÀzÿÛøŒŸþó·:ÿöæ;[�ëAçúÆO¢�åŸDí�™™É`£õÓ·'7pT+Šþ †`yùÜØXáá±VÔ +6¢ë“l#t_pß3X,»OûU·\ƒšÿuþ¹ü_‡­ÒB$CaBl„OOL@}±ÜÀ¾Š³[a‘:º<ÞéÔl +È]ñÕñ>IcKbÖÁƒ€Û€�?fFÀ'J7ÀÈ^€,h6Ö‡OîÜùðý«Wíø¾þ€EøÛaü§wæT!Oú¦ >#Ì’µ“¸–ö)vÀƒ©ßònи« @%\¨æ3Y¸Ÿø„ñäè¿ È~Ö‹––Âlùì/‹ÿÕ'³¹l.ä›ûVñŸæ!͵KYxþrxñ½ÿý×:žy…¬-¬‚ûB˜�²*°€!Áq–Šéɕ뽀á©�lJŒøL˜ œÀ’¹ÄÜk[€Öú5 {"jGíÙo}cè1HáL¬·;Å¿xkýRù­6¯å Èq‚F-·Zßû^ÚºÑi¯·f§!³ëÜilh¨€ÄFôNqò~á<¾Wø?@êÆÊ½÷à¸ÐZý±!’ +pÄFn…EY’H«˜ð×&Û»hïg°PŒ0œ~îøÎ:«Σ¹aÒAÔÇ^âõ×_½rûC(€$ôw% º‘þ'øj�Ûïüö7·®\Ñ �]]p ö÷Sçÿ[Õ—É}~R€ß.\¤|-î3t¶Ò6è øÁÞã1³bâB8‡“&/Lž0ìÿ/òóø¿æ0,PæêMµ“`!B•…$”¦:輺ª–àöêÅ:ÿ™l¥¾†Øüå /71X \Íû’z/ך—Ø'XÓ€!_Î1Àb€ØÈ'ÊÈtëxÜ�T›Ï“±\¨ÍÃÎR€ýÔà!ƒ`"öZ)@¤‹™ +ÆßŠfÏÌBuÚ«`à!wÆo´ÎÌF7f§qÕÓÓ³íÙÂc¬ +ÌîLƒÎI§ñ=‚ gò½Ñþ½8†FùpOÂ:–CÖ `g’õÅ< �°ƒ( †ŸáP%õ6ƒUd=¾šñ©ïç�Û€Ea»;íhÀžPüF/µ³'¬U«¯¾úÆí?üˆ&@IÁ'Ÿh䎚@eàT»|D ˆ~=àCÐcæ¬øÔ'ÿÓà@l�Ü«%0ô3˜Ñi» + îë“ɲÞ/\�Kå�$5uÚ;8Câ+Ôj @ 8Ä4çS_ØÞ;ÅMRb +G‚E®‡$ïC ¿ýˆ2pǤÀ„À§6IðÑmÀpáÆY#—ÕG<õëI៤ÿÉÔ˜dy^£_Ÿ@¤$k1gˆ×˜7`M “a‹à +ßÈ +//pþû3 R°C� r– X�«¸ °;€œ9ü_-eíÉW/ ï]~�zBAÑ $V›¸?ö ج¿ØdEbË×kÔ‘üWH@àXY±$€9ºZn¤–ñß¾ýÀ]ëpßûk `ûœobèðÃæ”L™>µ5ÚŠf×§gqª=ø¯ :ñÔT¸væÌìæú&迹�(@F€÷q¿I€ûì„rœ|ƒ�åŒÀåA˜»È—U +N#ðÍ1î:•ýiC2ÑjXL±§}m“Χ¾à�Fy6œ.NXjøÿêë·n�*üÖ&]@(w>úðö•ýè�9ÿRôWÝœøãWÓ ýÞØOÀêñ:¸ŠoÂU%ïpþëÙ’Àú:Ÿ\,¬YP©ÕÀÿ…0Ë?§qíäÛ< a�otV!œzÈÞÒ HÕ—+UÕ“ÌfŸÌ.®¸€PÍWWCü‰Ã™‘|“9�«««Icò?vÌ5 ˽€•�2ˆQÇyã<€Ø”sÙù>Àjì+€¥澌÷ì‚©SvUHÁ�Žóp½ ôÏGƒõÙ7ƒYDè…?Db¥eɵè :›ëë³Óëg¦'w@4¾,ß‚e'ó=ÀIŸðà€"�z��î2ÃåEñŸú®ˆ& IlÒÛFÀ1oŸïó­¾Sn!ó®5y�©rÎ9 +ª�,®þñúÕ[ï``2@¦›lŸÓÒon_}�Â!úŧ2xÄoõÀ &Œû!”\¢N¥3vϧN¸VK¸>¾‚KX†˜’àfs9€¬‚ݰš{»Йñc]_ûc�ŠoVspJÃU`QÈÿ<;P ›«HÓ7Ã\žÃÆÚ*kÌ.\\c—/1ûOÑ;È,P=€ªz–°5�ñ)%aÓ/W@ PÎ>9¯U„€WØol‚³�zÛòx¶�a1{ibhè±ã…?ÄSÑSü’o«9²TÈôÔ,ë³­ÍÙu ¶´Ì´‹Nãû‚Óyßà!GŸ@+öþô8€Ì“##Ã9¤ÿ±H@C ÚG`heÜlK…XÍ3Ôr†î†ÉOo&à|ê qD}LëosÆ0ŒþXxõÊÕ«· Hî3à;À9NÉþÛܺòª”CtLÑ•Y1÷ïËtP‡nte´íL¥àµs“ +íCñkçÉgÕ¨"PÅݧ€ŸÿUp>k tžàõ‚¸� + °;@ñ¥€ußÿþóßþùïÿàõ+W®\e×@ïߺÅW…œ»å’ÀÕ·?xÿÖû L®^yýU“'mrz¿€]à¥Uf0ùÏèŸK.1~„¯2†#1`û˜øþ¼,?`�òTY$*t.ãkŠI°Â_Û€ÿË�z8Rfo@¬˜¯XC v¢ˆ˜š€Å€tµ°vq-ÌÊ/\\M¸+÷PMÀ•f%Wn¼ö‹äl‡F½<ï€Jš +v p#µ”0ògô¿ÿþ(;Kˆ�ëìS8€±±€’Õ ØH`}‚á;àä|¦£åÑà%‰›'X +p¸€Ô{©tƒI€S÷9Ü«�òž©øÆ7¶ ëó$FF æj•ŠÕ9a¨¶Ô}Ì÷”Øí¡Í–ú'ÔÈUçS_àsê„ç�™’”üÇó?xõõ×ß À-0c œ'®^µ-6ºòÆë¯þàûò/¡ÿ à€-‚å� mÍðŒêuó⬴Ì8Ï»ÖvQ&›çAÌ Ðit2Ä®p¤²’ÜAÏ qÿ0Æø‚] ¤˜€ÿK½~~éšü ä¨b  Š@æü/kõµ–3ùÕµ.ýcz‹ÿõkÔòÇÂQÀòC&%Ofk*$¼-€D\%qȦAòÀ²ÄÜÿ{‚ÞÈæ@¼Öé©öxÄVÀ׸)Ò»@pñFwÌnG—#ü$.B4==1Q{lè!:€"ÀI¥|îs¸·‚qÞó`P˜ØÇ\f$Ǿ·hø×Öjø¿‰„ø>�¥gð¤Wç:_›¶Ê`Gìç|ê ±†Ç˜`¶#Ïc0šaÅ¡ß?æøýç¿ÿÇ Gÿê«��ýèGÔˆ�¾¶¬õ¯¿Žôÿž�¡Óŧ÷ßß UVÖàü×Ö=>‡¨Nɲk·•Z;j62{@ ª”Ƕ…8'_Á€$-€k`ˆ/€Dà�9§ÿrЬ/dÕ_ª’UµU˜£‘cZ�g±54£¶rùB.¼ø’Nc0þ+€}®¬.ÍçÊõ‹p¬ ` +°Ýày×a…jÁzfú˜î³s ÷‘p=¼ªRá[‡¿5v¼P@ÚcÊ3µm:œ´ç"Õ¿Þj•FƒzFòÏz—`ë÷ƒбûî©I€QÞÿøÒÞRþE± èäjd?‡XX;ä%Ïù%›Š1Ž‘R›5*' ›5•صC 8¡œÀ$®O`ˆ€³Ÿø}¸p_Dýõ½ñ#ð]œç"×3íÿÇßÞÍÃÀÿOƒà’ZÜ‹eeâ9€l·­øïÀØ« Ñí³¯/TFÀíÖÃ7ßúÏ)�v>õ…�@l$Q[%xœéÜ'þëß'ÿÄèsöûü¹Aé}N´%!¿ç"“–ïŽXØÙ�X› ÇWyà,rì¼G�×ixÀžæ0¥ÕjÂôÂÁsàtR¤èê¡ïb'cÃ=su0w±¾pŽÝ¶óoá¿w[’ÀÖ„ùj¾ªLÀØœ]ÀAäíÜ¡ó׋ù/ûÎ^�W–põÕØ,¼¨�gàyU!)íFr‹Û€FÏî·À=·ð’ôÁAþˆ±¡ã…‰ ZG\�hÛP@aögP!*c|Ëœ.ýÙhc& $ p¬0$3qªSäN÷‰{ÊPDnò«~|iïa)„ H²pøS•è“°)h ‚ZÛ½ -:©K¸¡�`Ö» +ß½å¼cE q& ÅÙÎ} €sŸ—½‡ +8çM0â>ÏoS€ØØu쎹¹çôaY»Fä?»ñÆ…*ºï +¢EÿÝ7¦v3Zð:¶Ìp°pAµvmgsØû{¡ü[ð/“vœ «5Hô i”¹ +{Q®©"P“àEKÔàèõsÎ~ ÉÿåL0€5�°–Tz“ú] +€9€<@ä˜ èÍ4r® V +À‰9€ýµà/ì ˆýKQ(?^˜RŠ—'ÛSt¥`¶uZ$…á/`3®åƨõóÒ 06�u¥ ý%Ô48¯þ … ƒñ?YùzsEÁÉòrÆ ëØ ¾»ðÀ°ú©—8Ô •«Èß] Øa0ú;ÿÍ(@[y2xè�ºE«/.œ£Ÿï +À € Íó”kz‚¹ê\™B 32ïIæ$¬\ÈûxèãØ8á? Ÿà3Ûã~ûpd±å@õÀtLÌì«-@ªÙ΀àtÏДÒà”$&h­'ËHôS¶FßáEQp¥‰§hOÃÃÜç Ñ¾²øÜÅwÿ�Ôâ€` É0ÀH…!’0ò +œ0i¯Zð )Xçè’<îé„J#vžÈ玤ç(i8ñ¿G‹æTП¤&×û8ê€X߃ãÿĤóÄ[fÂÓ;»cxôx@ì¸cR1H–Ž`0þWùn/Ïðçê öŒ¸Àßíà<@…€ ‚q™Ì¨õu‹HÄgê²ß@ ßߨc 7@g1@'A¨?}Áÿó¬À¾ß è¥Ïðe_ûøÊß�¨t‚`b‚j4ý,@± ®ËÌÎNC‰¶9€ÑÄðÒÝ Q¼N) Ðeò½ül8·þê®F>Ã�/í=Ð°Ø •ÐS (ÐÀŠ¢¤5Ò y€S#~’Зÿ‰%ì ;�­é™ƒÄŽ€ûsØ}pØ™€¨Ì5ÀË%ÕíAèZ]´NSŒø±máˆ5éŒ\tÌÜ7`O›g’Àò&H0�IüGæªtsÙ]ÿ]ãÿây㬠R{>ö.ÀÑϨ rp,Í97Ì-”�~7`\ +` +pwÀÈüÀ3©<s8oÊÌ®ÏðÔ�®¸1ú?ðr(<ÉÄ3æp¤îm½@ü>¡$À~JøGàk#ÂøŸ,€|} =ް<ïp +�Î0ÇH¿»¯´±] €c™n='TŒþ‰ ôT;�­JàÄwüžˆMšcŸwqØGœß]Ážù‰T£í|NÎ~›ˆ±-ÀªCÛ&ëâÜDcW•5w:è!Óp ,Øæ.ÐT•À>p±– Øßtù�¼Ëþ=@œè›0¢ê†{3�×0àë0@÷šPTÀÄO«xŸy6SB!ÚæúæÈ(0•ßÛ ÑÆ>,�uW#ŸáÇ—öz€åX + •à�ÑT@lFè•è.±ðNþvsä>% Vì…ƒöídvq„q¾v{Àȿ݈·L¬ðYÄT'x¥ÿKpßXÂjÖÄRÜÑ�Ý�%ÄŽè$Øjy< ?ñ¾;²­ë�ˆó”¸‡<Æíå»8€F7 °kÀbýÿíý—Jª/ŒIEND®B`‚ \ No newline at end of file diff --git a/examples/models/models_mesh_picking.html b/examples/models/models_mesh_picking.html new file mode 100644 index 0000000..a2deca0 --- /dev/null +++ b/examples/models/models_mesh_picking.html @@ -0,0 +1 @@ +raylib HTML5 GAME

\ No newline at end of file diff --git a/examples/models/models_mesh_picking.js b/examples/models/models_mesh_picking.js new file mode 100644 index 0000000..18f36f3 --- /dev/null +++ b/examples/models/models_mesh_picking.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_mesh_picking.data";var REMOTE_PACKAGE_BASE="models_mesh_picking.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","obj",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_mesh_picking.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["le"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["oe"];addOnInit(Module["asm"]["me"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"S":GetCanvasHeight,"T":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Wa":___sys_open,"ta":_emscripten_exit_pointerlock,"Q":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"ed":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Bc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"qc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"fc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Wb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Lb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Ab":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"pb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"eb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"R":_emscripten_set_canvas_element_size,"qa":_emscripten_set_click_callback_on_thread,"ka":_emscripten_set_gamepadconnected_callback_on_thread,"ja":_emscripten_set_gamepaddisconnected_callback_on_thread,"ra":_emscripten_set_resize_callback_on_thread,"la":_emscripten_set_touchcancel_callback_on_thread,"oa":_emscripten_set_touchend_callback_on_thread,"na":_emscripten_set_touchmove_callback_on_thread,"pa":_emscripten_set_touchstart_callback_on_thread,"O":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Cc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Mb":_glClearDepthf,"Ka":_glCompileShader,"Xa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"gc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"rc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Xb":_glFrontFace,"k":_glGenBuffers,"qb":_glGenTextures,"s":_glGetAttribLocation,"fd":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Bb":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"fb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"h":_glVertexAttribPointer,"ke":_glViewport,"w":_glfwCreateWindow,"ga":_glfwDefaultWindowHints,"P":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"g":_glfwGetTime,"fa":_glfwGetVideoModes,"ha":_glfwInit,"V":_glfwMakeContextCurrent,"_":_glfwSetCharCallback,"W":_glfwSetCursorEnterCallback,"Y":_glfwSetCursorPosCallback,"aa":_glfwSetDropCallback,"ia":_glfwSetErrorCallback,"$":_glfwSetKeyCallback,"Z":_glfwSetMouseButtonCallback,"X":_glfwSetScrollCallback,"ba":_glfwSetWindowFocusCallback,"ca":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"da":_glfwSetWindowSizeCallback,"je":_glfwSwapBuffers,"U":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"sa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["me"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ne"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["pe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["qe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["re"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ze"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["De"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Ee"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_mesh_picking.wasm b/examples/models/models_mesh_picking.wasm new file mode 100644 index 0000000..ce07161 Binary files /dev/null and b/examples/models/models_mesh_picking.wasm differ diff --git a/examples/models/models_orthographic_projection.html b/examples/models/models_orthographic_projection.html new file mode 100644 index 0000000..7bb66e3 --- /dev/null +++ b/examples/models/models_orthographic_projection.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_orthographic_projection.js b/examples/models/models_orthographic_projection.js new file mode 100644 index 0000000..29f18ef --- /dev/null +++ b/examples/models/models_orthographic_projection.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_orthographic_projection.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Rb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Gb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"vb":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"kb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"$a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_orthographic_projection.wasm b/examples/models/models_orthographic_projection.wasm new file mode 100644 index 0000000..384caa4 Binary files /dev/null and b/examples/models/models_orthographic_projection.wasm differ diff --git a/examples/models/models_rlgl_solar_system.html b/examples/models/models_rlgl_solar_system.html new file mode 100644 index 0000000..43dcb7d --- /dev/null +++ b/examples/models/models_rlgl_solar_system.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_rlgl_solar_system.js b/examples/models/models_rlgl_solar_system.js new file mode 100644 index 0000000..28b22eb --- /dev/null +++ b/examples/models/models_rlgl_solar_system.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_rlgl_solar_system.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["_d"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["be"];addOnInit(Module["asm"]["$d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"Z":GetCanvasHeight,"_":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Ra":___sys_ioctl,"Ta":___sys_open,"Aa":_emscripten_exit_pointerlock,"X":_emscripten_get_element_css_size,"R":_emscripten_get_gamepad_status,"S":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"L":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Cd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"N":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"Yd":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Pc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"O":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"kc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"M":_emscripten_glIsQueryEXT,"$b":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Nd":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Qb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Fb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"ub":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"jb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"_a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"t":_emscripten_run_script,"T":_emscripten_sample_gamepad_data,"Y":_emscripten_set_canvas_element_size,"xa":_emscripten_set_click_callback_on_thread,"sa":_emscripten_set_gamepadconnected_callback_on_thread,"ra":_emscripten_set_gamepaddisconnected_callback_on_thread,"ya":_emscripten_set_resize_callback_on_thread,"ta":_emscripten_set_touchcancel_callback_on_thread,"va":_emscripten_set_touchend_callback_on_thread,"ua":_emscripten_set_touchmove_callback_on_thread,"wa":_emscripten_set_touchstart_callback_on_thread,"V":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"P":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"lc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"vb":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Rb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"ac":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Od":_glDrawArrays,"Dd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Gb":_glFrontFace,"l":_glGenBuffers,"$a":_glGenTextures,"q":_glGetAttribLocation,"Qc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"kb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Sa":_glTexImage2D,"m":_glTexParameteri,"$":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Zd":_glViewport,"w":_glfwCreateWindow,"oa":_glfwDefaultWindowHints,"W":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"na":_glfwGetVideoModes,"pa":_glfwInit,"ba":_glfwMakeContextCurrent,"ga":_glfwSetCharCallback,"ca":_glfwSetCursorEnterCallback,"ea":_glfwSetCursorPosCallback,"ia":_glfwSetDropCallback,"qa":_glfwSetErrorCallback,"ha":_glfwSetKeyCallback,"fa":_glfwSetMouseButtonCallback,"da":_glfwSetScrollCallback,"ja":_glfwSetWindowFocusCallback,"la":_glfwSetWindowIconifyCallback,"Q":_glfwSetWindowShouldClose,"ma":_glfwSetWindowSizeCallback,"U":_glfwSwapBuffers,"aa":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"za":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["$d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ae"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["ce"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["de"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["ee"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["me"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["re"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_rlgl_solar_system.wasm b/examples/models/models_rlgl_solar_system.wasm new file mode 100644 index 0000000..fc7bbf6 Binary files /dev/null and b/examples/models/models_rlgl_solar_system.wasm differ diff --git a/examples/models/models_skybox.data b/examples/models/models_skybox.data new file mode 100644 index 0000000..c9ed18a Binary files /dev/null and b/examples/models/models_skybox.data differ diff --git a/examples/models/models_skybox.html b/examples/models/models_skybox.html new file mode 100644 index 0000000..0888343 --- /dev/null +++ b/examples/models/models_skybox.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_skybox.js b/examples/models/models_skybox.js new file mode 100644 index 0000000..b1a462a --- /dev/null +++ b/examples/models/models_skybox.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_skybox.data";var REMOTE_PACKAGE_BASE="models_skybox.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","shaders",true,true);Module["FS_createPath"]("/resources/shaders","glsl100",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_skybox.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["xe"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Ae"];addOnInit(Module["asm"]["ye"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_request_pointerlock(target,deferUntilInEventHandler){target=findEventTarget(target);if(!target)return-4;if(!target.requestPointerLock&&!target.msRequestPointerLock){return-1}var canPerformRequests=JSEvents.canPerformEventHandlerRequests();if(!canPerformRequests){if(deferUntilInEventHandler){JSEvents.deferCall(requestPointerLock,2,[target]);return 1}else{return-2}}return requestPointerLock(target)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDepthMask(flag){GLctx.depthMask(!!flag)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"pe":GetCanvasHeight,"qe":GetCanvasWidth,"e":___assert_fail,"P":___sys_fcntl64,"Xa":___sys_getcwd,"Za":___sys_ioctl,"_a":___sys_open,"ne":_emscripten_get_element_css_size,"he":_emscripten_get_gamepad_status,"ie":_emscripten_get_num_gamepads,"Nd":_emscripten_glActiveTexture,"Md":_emscripten_glAttachShader,"be":_emscripten_glBeginQueryEXT,"Ld":_emscripten_glBindAttribLocation,"Kd":_emscripten_glBindBuffer,"Jd":_emscripten_glBindFramebuffer,"Id":_emscripten_glBindRenderbuffer,"Hd":_emscripten_glBindTexture,"Vd":_emscripten_glBindVertexArrayOES,"Gd":_emscripten_glBlendColor,"Fd":_emscripten_glBlendEquation,"Ed":_emscripten_glBlendEquationSeparate,"Dd":_emscripten_glBlendFunc,"Cd":_emscripten_glBlendFuncSeparate,"Bd":_emscripten_glBufferData,"Ad":_emscripten_glBufferSubData,"zd":_emscripten_glCheckFramebufferStatus,"yd":_emscripten_glClear,"xd":_emscripten_glClearColor,"wd":_emscripten_glClearDepthf,"vd":_emscripten_glClearStencil,"ud":_emscripten_glColorMask,"td":_emscripten_glCompileShader,"sd":_emscripten_glCompressedTexImage2D,"rd":_emscripten_glCompressedTexSubImage2D,"qd":_emscripten_glCopyTexImage2D,"pd":_emscripten_glCopyTexSubImage2D,"od":_emscripten_glCreateProgram,"nd":_emscripten_glCreateShader,"md":_emscripten_glCullFace,"ld":_emscripten_glDeleteBuffers,"kd":_emscripten_glDeleteFramebuffers,"jd":_emscripten_glDeleteProgram,"de":_emscripten_glDeleteQueriesEXT,"id":_emscripten_glDeleteRenderbuffers,"hd":_emscripten_glDeleteShader,"gd":_emscripten_glDeleteTextures,"Ud":_emscripten_glDeleteVertexArraysOES,"fd":_emscripten_glDepthFunc,"ed":_emscripten_glDepthMask,"dd":_emscripten_glDepthRangef,"cd":_emscripten_glDetachShader,"bd":_emscripten_glDisable,"ad":_emscripten_glDisableVertexAttribArray,"_c":_emscripten_glDrawArrays,"Qd":_emscripten_glDrawArraysInstancedANGLE,"Rd":_emscripten_glDrawBuffersWEBGL,"Zc":_emscripten_glDrawElements,"Pd":_emscripten_glDrawElementsInstancedANGLE,"Yc":_emscripten_glEnable,"Xc":_emscripten_glEnableVertexAttribArray,"ae":_emscripten_glEndQueryEXT,"Wc":_emscripten_glFinish,"Vc":_emscripten_glFlush,"Uc":_emscripten_glFramebufferRenderbuffer,"Tc":_emscripten_glFramebufferTexture2D,"Sc":_emscripten_glFrontFace,"Rc":_emscripten_glGenBuffers,"Pc":_emscripten_glGenFramebuffers,"ee":_emscripten_glGenQueriesEXT,"Oc":_emscripten_glGenRenderbuffers,"Nc":_emscripten_glGenTextures,"Td":_emscripten_glGenVertexArraysOES,"Qc":_emscripten_glGenerateMipmap,"Mc":_emscripten_glGetActiveAttrib,"Lc":_emscripten_glGetActiveUniform,"Kc":_emscripten_glGetAttachedShaders,"Jc":_emscripten_glGetAttribLocation,"Ic":_emscripten_glGetBooleanv,"Hc":_emscripten_glGetBufferParameteriv,"Gc":_emscripten_glGetError,"Fc":_emscripten_glGetFloatv,"Ec":_emscripten_glGetFramebufferAttachmentParameteriv,"Dc":_emscripten_glGetIntegerv,"Bc":_emscripten_glGetProgramInfoLog,"Cc":_emscripten_glGetProgramiv,"Xd":_emscripten_glGetQueryObjecti64vEXT,"Zd":_emscripten_glGetQueryObjectivEXT,"Wd":_emscripten_glGetQueryObjectui64vEXT,"Yd":_emscripten_glGetQueryObjectuivEXT,"_d":_emscripten_glGetQueryivEXT,"Ac":_emscripten_glGetRenderbufferParameteriv,"yc":_emscripten_glGetShaderInfoLog,"xc":_emscripten_glGetShaderPrecisionFormat,"vc":_emscripten_glGetShaderSource,"zc":_emscripten_glGetShaderiv,"uc":_emscripten_glGetString,"tc":_emscripten_glGetTexParameterfv,"sc":_emscripten_glGetTexParameteriv,"pc":_emscripten_glGetUniformLocation,"rc":_emscripten_glGetUniformfv,"qc":_emscripten_glGetUniformiv,"mc":_emscripten_glGetVertexAttribPointerv,"oc":_emscripten_glGetVertexAttribfv,"nc":_emscripten_glGetVertexAttribiv,"kc":_emscripten_glHint,"jc":_emscripten_glIsBuffer,"ic":_emscripten_glIsEnabled,"hc":_emscripten_glIsFramebuffer,"gc":_emscripten_glIsProgram,"ce":_emscripten_glIsQueryEXT,"fc":_emscripten_glIsRenderbuffer,"ec":_emscripten_glIsShader,"dc":_emscripten_glIsTexture,"Sd":_emscripten_glIsVertexArrayOES,"cc":_emscripten_glLineWidth,"bc":_emscripten_glLinkProgram,"$b":_emscripten_glPixelStorei,"_b":_emscripten_glPolygonOffset,"$d":_emscripten_glQueryCounterEXT,"Zb":_emscripten_glReadPixels,"Yb":_emscripten_glReleaseShaderCompiler,"Xb":_emscripten_glRenderbufferStorage,"Wb":_emscripten_glSampleCoverage,"Vb":_emscripten_glScissor,"Ub":_emscripten_glShaderBinary,"Tb":_emscripten_glShaderSource,"Sb":_emscripten_glStencilFunc,"Qb":_emscripten_glStencilFuncSeparate,"Pb":_emscripten_glStencilMask,"Ob":_emscripten_glStencilMaskSeparate,"Nb":_emscripten_glStencilOp,"Mb":_emscripten_glStencilOpSeparate,"Lb":_emscripten_glTexImage2D,"Kb":_emscripten_glTexParameterf,"Jb":_emscripten_glTexParameterfv,"Ib":_emscripten_glTexParameteri,"Hb":_emscripten_glTexParameteriv,"Fb":_emscripten_glTexSubImage2D,"Eb":_emscripten_glUniform1f,"Db":_emscripten_glUniform1fv,"Cb":_emscripten_glUniform1i,"Bb":_emscripten_glUniform1iv,"Ab":_emscripten_glUniform2f,"zb":_emscripten_glUniform2fv,"yb":_emscripten_glUniform2i,"xb":_emscripten_glUniform2iv,"wb":_emscripten_glUniform3f,"ub":_emscripten_glUniform3fv,"tb":_emscripten_glUniform3i,"sb":_emscripten_glUniform3iv,"rb":_emscripten_glUniform4f,"qb":_emscripten_glUniform4fv,"pb":_emscripten_glUniform4i,"ob":_emscripten_glUniform4iv,"nb":_emscripten_glUniformMatrix2fv,"mb":_emscripten_glUniformMatrix3fv,"lb":_emscripten_glUniformMatrix4fv,"kb":_emscripten_glUseProgram,"jb":_emscripten_glValidateProgram,"ib":_emscripten_glVertexAttrib1f,"hb":_emscripten_glVertexAttrib1fv,"gb":_emscripten_glVertexAttrib2f,"fb":_emscripten_glVertexAttrib2fv,"eb":_emscripten_glVertexAttrib3f,"db":_emscripten_glVertexAttrib3fv,"cb":_emscripten_glVertexAttrib4f,"bb":_emscripten_glVertexAttrib4fv,"Od":_emscripten_glVertexAttribDivisorANGLE,"ab":_emscripten_glVertexAttribPointer,"$a":_emscripten_glViewport,"Ta":_emscripten_memcpy_big,"pa":_emscripten_request_pointerlock,"Ua":_emscripten_resize_heap,"U":_emscripten_run_script,"je":_emscripten_sample_gamepad_data,"oe":_emscripten_set_canvas_element_size,"ma":_emscripten_set_click_callback_on_thread,"ga":_emscripten_set_gamepadconnected_callback_on_thread,"fa":_emscripten_set_gamepaddisconnected_callback_on_thread,"na":_emscripten_set_resize_callback_on_thread,"ha":_emscripten_set_touchcancel_callback_on_thread,"ja":_emscripten_set_touchend_callback_on_thread,"ia":_emscripten_set_touchmove_callback_on_thread,"ka":_emscripten_set_touchstart_callback_on_thread,"le":_emscripten_sleep,"Wa":_emscripten_thread_sleep,"fe":_exit,"Q":_fd_close,"Ya":_fd_read,"Sa":_fd_seek,"O":_fd_write,"x":_glActiveTexture,"I":_glAttachShader,"n":_glBindAttribLocation,"a":_glBindBuffer,"i":_glBindFramebuffer,"L":_glBindRenderbuffer,"c":_glBindTexture,"wc":_glBlendFunc,"l":_glBufferData,"E":_glBufferSubData,"La":_glCheckFramebufferStatus,"D":_glClear,"R":_glClearColor,"Gb":_glClearDepthf,"Ha":_glCompileShader,"Va":_glCompressedTexImage2D,"Fa":_glCreateProgram,"Ja":_glCreateShader,"ac":_glCullFace,"o":_glDeleteBuffers,"Ma":_glDeleteFramebuffers,"A":_glDeleteProgram,"Na":_glDeleteRenderbuffers,"t":_glDeleteShader,"N":_glDeleteTextures,"lc":_glDepthFunc,"S":_glDepthMask,"u":_glDetachShader,"r":_glDisable,"h":_glDisableVertexAttribArray,"F":_glDrawArrays,"T":_glDrawElements,"p":_glEnable,"b":_glEnableVertexAttribArray,"z":_glFramebufferRenderbuffer,"s":_glFramebufferTexture2D,"Rb":_glFrontFace,"m":_glGenBuffers,"Oa":_glGenFramebuffers,"Ra":_glGenRenderbuffers,"C":_glGenTextures,"Ka":_glGetActiveUniform,"w":_glGetAttribLocation,"$c":_glGetFloatv,"K":_glGetFramebufferAttachmentParameteriv,"Da":_glGetProgramInfoLog,"y":_glGetProgramiv,"Ga":_glGetShaderInfoLog,"J":_glGetShaderiv,"q":_glGetString,"v":_glGetUniformLocation,"Ea":_glLinkProgram,"vb":_glPixelStorei,"Pa":_glReadPixels,"Qa":_glRenderbufferStorage,"Ia":_glShaderSource,"B":_glTexImage2D,"d":_glTexParameteri,"Ca":_glUniform1fv,"la":_glUniform1i,"ua":_glUniform1iv,"Ba":_glUniform2fv,"ya":_glUniform2iv,"Aa":_glUniform3fv,"xa":_glUniform3iv,"wa":_glUniform4f,"za":_glUniform4fv,"va":_glUniform4iv,"M":_glUniformMatrix4fv,"j":_glUseProgram,"ta":_glVertexAttrib1fv,"sa":_glVertexAttrib2fv,"ra":_glVertexAttrib3fv,"qa":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"we":_glViewport,"G":_glfwCreateWindow,"ca":_glfwDefaultWindowHints,"me":_glfwDestroyWindow,"H":_glfwGetPrimaryMonitor,"k":_glfwGetTime,"ba":_glfwGetVideoModes,"da":_glfwInit,"se":_glfwMakeContextCurrent,"X":_glfwSetCharCallback,"te":_glfwSetCursorEnterCallback,"ve":_glfwSetCursorPosCallback,"Z":_glfwSetDropCallback,"ea":_glfwSetErrorCallback,"Y":_glfwSetKeyCallback,"W":_glfwSetMouseButtonCallback,"ue":_glfwSetScrollCallback,"_":_glfwSetWindowFocusCallback,"$":_glfwSetWindowIconifyCallback,"ge":_glfwSetWindowShouldClose,"aa":_glfwSetWindowSizeCallback,"ke":_glfwSwapBuffers,"re":_glfwSwapInterval,"V":_glfwTerminate,"f":_glfwWindowHint,"oa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["ye"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["ze"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["Be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["Ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["De"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["Ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["Fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["Ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["He"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["Ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["Je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["Ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["Le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["Me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["Qe"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_skybox.wasm b/examples/models/models_skybox.wasm new file mode 100644 index 0000000..f36665c Binary files /dev/null and b/examples/models/models_skybox.wasm differ diff --git a/examples/models/models_waving_cubes.html b/examples/models/models_waving_cubes.html new file mode 100644 index 0000000..5c5f2b9 --- /dev/null +++ b/examples/models/models_waving_cubes.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_waving_cubes.js b/examples/models/models_waving_cubes.js new file mode 100644 index 0000000..4cecf4b --- /dev/null +++ b/examples/models/models_waving_cubes.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;var toLog=e;err("exiting due to exception: "+toLog)}var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=function readAsync(filename,onload,onerror){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);nodeFS["readFile"](filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_waving_cubes.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["Zd"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ae"];addOnInit(Module["asm"]["_d"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"_":GetCanvasHeight,"$":GetCanvasWidth,"n":___assert_fail,"G":___sys_fcntl64,"Pa":___sys_getcwd,"Sa":___sys_ioctl,"Ta":___sys_open,"Y":_emscripten_get_element_css_size,"S":_emscripten_get_gamepad_status,"T":_emscripten_get_num_gamepads,"Id":_emscripten_glActiveTexture,"Hd":_emscripten_glAttachShader,"M":_emscripten_glBeginQueryEXT,"Gd":_emscripten_glBindAttribLocation,"Fd":_emscripten_glBindBuffer,"Ed":_emscripten_glBindFramebuffer,"Dd":_emscripten_glBindRenderbuffer,"Bd":_emscripten_glBindTexture,"Rd":_emscripten_glBindVertexArrayOES,"Ad":_emscripten_glBlendColor,"zd":_emscripten_glBlendEquation,"yd":_emscripten_glBlendEquationSeparate,"xd":_emscripten_glBlendFunc,"wd":_emscripten_glBlendFuncSeparate,"vd":_emscripten_glBufferData,"ud":_emscripten_glBufferSubData,"td":_emscripten_glCheckFramebufferStatus,"sd":_emscripten_glClear,"rd":_emscripten_glClearColor,"qd":_emscripten_glClearDepthf,"pd":_emscripten_glClearStencil,"od":_emscripten_glColorMask,"nd":_emscripten_glCompileShader,"md":_emscripten_glCompressedTexImage2D,"ld":_emscripten_glCompressedTexSubImage2D,"kd":_emscripten_glCopyTexImage2D,"jd":_emscripten_glCopyTexSubImage2D,"id":_emscripten_glCreateProgram,"hd":_emscripten_glCreateShader,"gd":_emscripten_glCullFace,"fd":_emscripten_glDeleteBuffers,"ed":_emscripten_glDeleteFramebuffers,"dd":_emscripten_glDeleteProgram,"O":_emscripten_glDeleteQueriesEXT,"cd":_emscripten_glDeleteRenderbuffers,"bd":_emscripten_glDeleteShader,"ad":_emscripten_glDeleteTextures,"Qd":_emscripten_glDeleteVertexArraysOES,"$c":_emscripten_glDepthFunc,"_c":_emscripten_glDepthMask,"Zc":_emscripten_glDepthRangef,"Yc":_emscripten_glDetachShader,"Xc":_emscripten_glDisable,"Wc":_emscripten_glDisableVertexAttribArray,"Vc":_emscripten_glDrawArrays,"Ld":_emscripten_glDrawArraysInstancedANGLE,"Md":_emscripten_glDrawBuffersWEBGL,"Uc":_emscripten_glDrawElements,"Kd":_emscripten_glDrawElementsInstancedANGLE,"Tc":_emscripten_glEnable,"Sc":_emscripten_glEnableVertexAttribArray,"L":_emscripten_glEndQueryEXT,"Rc":_emscripten_glFinish,"Qc":_emscripten_glFlush,"Oc":_emscripten_glFramebufferRenderbuffer,"Nc":_emscripten_glFramebufferTexture2D,"Mc":_emscripten_glFrontFace,"Lc":_emscripten_glGenBuffers,"Jc":_emscripten_glGenFramebuffers,"P":_emscripten_glGenQueriesEXT,"Ic":_emscripten_glGenRenderbuffers,"Hc":_emscripten_glGenTextures,"Pd":_emscripten_glGenVertexArraysOES,"Kc":_emscripten_glGenerateMipmap,"Gc":_emscripten_glGetActiveAttrib,"Fc":_emscripten_glGetActiveUniform,"Ec":_emscripten_glGetAttachedShaders,"Dc":_emscripten_glGetAttribLocation,"Cc":_emscripten_glGetBooleanv,"Bc":_emscripten_glGetBufferParameteriv,"Ac":_emscripten_glGetError,"zc":_emscripten_glGetFloatv,"yc":_emscripten_glGetFramebufferAttachmentParameteriv,"xc":_emscripten_glGetIntegerv,"vc":_emscripten_glGetProgramInfoLog,"wc":_emscripten_glGetProgramiv,"Td":_emscripten_glGetQueryObjecti64vEXT,"Vd":_emscripten_glGetQueryObjectivEXT,"Sd":_emscripten_glGetQueryObjectui64vEXT,"Ud":_emscripten_glGetQueryObjectuivEXT,"Wd":_emscripten_glGetQueryivEXT,"uc":_emscripten_glGetRenderbufferParameteriv,"sc":_emscripten_glGetShaderInfoLog,"rc":_emscripten_glGetShaderPrecisionFormat,"qc":_emscripten_glGetShaderSource,"tc":_emscripten_glGetShaderiv,"pc":_emscripten_glGetString,"oc":_emscripten_glGetTexParameterfv,"nc":_emscripten_glGetTexParameteriv,"jc":_emscripten_glGetUniformLocation,"mc":_emscripten_glGetUniformfv,"lc":_emscripten_glGetUniformiv,"gc":_emscripten_glGetVertexAttribPointerv,"ic":_emscripten_glGetVertexAttribfv,"hc":_emscripten_glGetVertexAttribiv,"fc":_emscripten_glHint,"ec":_emscripten_glIsBuffer,"dc":_emscripten_glIsEnabled,"cc":_emscripten_glIsFramebuffer,"bc":_emscripten_glIsProgram,"N":_emscripten_glIsQueryEXT,"ac":_emscripten_glIsRenderbuffer,"_b":_emscripten_glIsShader,"Zb":_emscripten_glIsTexture,"Od":_emscripten_glIsVertexArrayOES,"Yb":_emscripten_glLineWidth,"Xb":_emscripten_glLinkProgram,"Wb":_emscripten_glPixelStorei,"Vb":_emscripten_glPolygonOffset,"Xd":_emscripten_glQueryCounterEXT,"Ub":_emscripten_glReadPixels,"Tb":_emscripten_glReleaseShaderCompiler,"Sb":_emscripten_glRenderbufferStorage,"Rb":_emscripten_glSampleCoverage,"Pb":_emscripten_glScissor,"Ob":_emscripten_glShaderBinary,"Nb":_emscripten_glShaderSource,"Mb":_emscripten_glStencilFunc,"Lb":_emscripten_glStencilFuncSeparate,"Kb":_emscripten_glStencilMask,"Jb":_emscripten_glStencilMaskSeparate,"Ib":_emscripten_glStencilOp,"Hb":_emscripten_glStencilOpSeparate,"Gb":_emscripten_glTexImage2D,"Eb":_emscripten_glTexParameterf,"Db":_emscripten_glTexParameterfv,"Cb":_emscripten_glTexParameteri,"Bb":_emscripten_glTexParameteriv,"Ab":_emscripten_glTexSubImage2D,"zb":_emscripten_glUniform1f,"yb":_emscripten_glUniform1fv,"xb":_emscripten_glUniform1i,"wb":_emscripten_glUniform1iv,"vb":_emscripten_glUniform2f,"tb":_emscripten_glUniform2fv,"sb":_emscripten_glUniform2i,"rb":_emscripten_glUniform2iv,"qb":_emscripten_glUniform3f,"pb":_emscripten_glUniform3fv,"ob":_emscripten_glUniform3i,"nb":_emscripten_glUniform3iv,"mb":_emscripten_glUniform4f,"lb":_emscripten_glUniform4fv,"kb":_emscripten_glUniform4i,"ib":_emscripten_glUniform4iv,"hb":_emscripten_glUniformMatrix2fv,"gb":_emscripten_glUniformMatrix3fv,"fb":_emscripten_glUniformMatrix4fv,"eb":_emscripten_glUseProgram,"db":_emscripten_glValidateProgram,"cb":_emscripten_glVertexAttrib1f,"bb":_emscripten_glVertexAttrib1fv,"ab":_emscripten_glVertexAttrib2f,"$a":_emscripten_glVertexAttrib2fv,"Za":_emscripten_glVertexAttrib3f,"Ya":_emscripten_glVertexAttrib3fv,"Xa":_emscripten_glVertexAttrib4f,"Wa":_emscripten_glVertexAttrib4fv,"Jd":_emscripten_glVertexAttribDivisorANGLE,"Va":_emscripten_glVertexAttribPointer,"Ua":_emscripten_glViewport,"Ma":_emscripten_memcpy_big,"Na":_emscripten_resize_heap,"t":_emscripten_run_script,"U":_emscripten_sample_gamepad_data,"Z":_emscripten_set_canvas_element_size,"ya":_emscripten_set_click_callback_on_thread,"ta":_emscripten_set_gamepadconnected_callback_on_thread,"sa":_emscripten_set_gamepaddisconnected_callback_on_thread,"za":_emscripten_set_resize_callback_on_thread,"ua":_emscripten_set_touchcancel_callback_on_thread,"wa":_emscripten_set_touchend_callback_on_thread,"va":_emscripten_set_touchmove_callback_on_thread,"xa":_emscripten_set_touchstart_callback_on_thread,"W":_emscripten_sleep,"Oa":_emscripten_thread_sleep,"Q":_exit,"H":_fd_close,"Qa":_fd_read,"La":_fd_seek,"F":_fd_write,"u":_glActiveTexture,"y":_glAttachShader,"f":_glBindAttribLocation,"a":_glBindBuffer,"g":_glBindTexture,"kc":_glBlendFunc,"k":_glBufferData,"r":_glBufferSubData,"I":_glClear,"J":_glClearColor,"ub":_glClearDepthf,"Fa":_glCompileShader,"Ka":_glCompressedTexImage2D,"Da":_glCreateProgram,"Ha":_glCreateShader,"Qb":_glCullFace,"i":_glDeleteBuffers,"B":_glDeleteProgram,"C":_glDeleteShader,"E":_glDeleteTextures,"$b":_glDepthFunc,"D":_glDetachShader,"K":_glDisable,"j":_glDisableVertexAttribArray,"Nd":_glDrawArrays,"Cd":_glDrawElements,"s":_glEnable,"d":_glEnableVertexAttribArray,"Fb":_glFrontFace,"l":_glGenBuffers,"_a":_glGenTextures,"q":_glGetAttribLocation,"Pc":_glGetFloatv,"Ba":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ea":_glGetShaderInfoLog,"z":_glGetShaderiv,"h":_glGetString,"p":_glGetUniformLocation,"Ca":_glLinkProgram,"jb":_glPixelStorei,"Ja":_glReadPixels,"Ga":_glShaderSource,"Ra":_glTexImage2D,"m":_glTexParameteri,"aa":_glUniform1i,"ka":_glUniform4f,"Ia":_glUniformMatrix4fv,"o":_glUseProgram,"e":_glVertexAttribPointer,"Yd":_glViewport,"w":_glfwCreateWindow,"pa":_glfwDefaultWindowHints,"X":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"c":_glfwGetTime,"oa":_glfwGetVideoModes,"qa":_glfwInit,"ca":_glfwMakeContextCurrent,"ha":_glfwSetCharCallback,"da":_glfwSetCursorEnterCallback,"fa":_glfwSetCursorPosCallback,"ja":_glfwSetDropCallback,"ra":_glfwSetErrorCallback,"ia":_glfwSetKeyCallback,"ga":_glfwSetMouseButtonCallback,"ea":_glfwSetScrollCallback,"la":_glfwSetWindowFocusCallback,"ma":_glfwSetWindowIconifyCallback,"R":_glfwSetWindowShouldClose,"na":_glfwSetWindowSizeCallback,"V":_glfwSwapBuffers,"ba":_glfwSwapInterval,"v":_glfwTerminate,"b":_glfwWindowHint,"Aa":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["_d"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["$d"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["be"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["ce"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["de"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ee"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["fe"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["ge"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["he"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ie"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["je"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["ke"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["le"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["me"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["ne"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["oe"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["pe"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["qe"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_waving_cubes.wasm b/examples/models/models_waving_cubes.wasm new file mode 100644 index 0000000..6afc231 Binary files /dev/null and b/examples/models/models_waving_cubes.wasm differ diff --git a/examples/models/models_yaw_pitch_roll.data b/examples/models/models_yaw_pitch_roll.data new file mode 100644 index 0000000..32334a4 Binary files /dev/null and b/examples/models/models_yaw_pitch_roll.data differ diff --git a/examples/models/models_yaw_pitch_roll.html b/examples/models/models_yaw_pitch_roll.html new file mode 100644 index 0000000..6a5d06b --- /dev/null +++ b/examples/models/models_yaw_pitch_roll.html @@ -0,0 +1 @@ +raylib HTML5 GAME
\ No newline at end of file diff --git a/examples/models/models_yaw_pitch_roll.js b/examples/models/models_yaw_pitch_roll.js new file mode 100644 index 0000000..372bcb1 --- /dev/null +++ b/examples/models/models_yaw_pitch_roll.js @@ -0,0 +1 @@ +var Module=typeof Module!=="undefined"?Module:{};if(!Module.expectedDataFileDownloads){Module.expectedDataFileDownloads=0}Module.expectedDataFileDownloads++;(function(){var loadPackage=function(metadata){var PACKAGE_PATH="";if(typeof window==="object"){PACKAGE_PATH=window["encodeURIComponent"](window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/")}else if(typeof process==="undefined"&&typeof location!=="undefined"){PACKAGE_PATH=encodeURIComponent(location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/")}var PACKAGE_NAME="models/models_yaw_pitch_roll.data";var REMOTE_PACKAGE_BASE="models_yaw_pitch_roll.data";if(typeof Module["locateFilePackage"]==="function"&&!Module["locateFile"]){Module["locateFile"]=Module["locateFilePackage"];err("warning: you defined Module.locateFilePackage, that has been renamed to Module.locateFile (using your locateFilePackage for now)")}var REMOTE_PACKAGE_NAME=Module["locateFile"]?Module["locateFile"](REMOTE_PACKAGE_BASE,""):REMOTE_PACKAGE_BASE;var REMOTE_PACKAGE_SIZE=metadata["remote_package_size"];var PACKAGE_UUID=metadata["package_uuid"];function fetchRemotePackage(packageName,packageSize,callback,errback){if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){require("fs").readFile(packageName,function(err,contents){if(err){errback(err)}else{callback(contents.buffer)}});return}var xhr=new XMLHttpRequest;xhr.open("GET",packageName,true);xhr.responseType="arraybuffer";xhr.onprogress=function(event){var url=packageName;var size=packageSize;if(event.total)size=event.total;if(event.loaded){if(!xhr.addedTotal){xhr.addedTotal=true;if(!Module.dataFileDownloads)Module.dataFileDownloads={};Module.dataFileDownloads[url]={loaded:event.loaded,total:size}}else{Module.dataFileDownloads[url].loaded=event.loaded}var total=0;var loaded=0;var num=0;for(var download in Module.dataFileDownloads){var data=Module.dataFileDownloads[download];total+=data.total;loaded+=data.loaded;num++}total=Math.ceil(total*Module.expectedDataFileDownloads/num);if(Module["setStatus"])Module["setStatus"]("Downloading data... ("+loaded+"/"+total+")")}else if(!Module.dataFileDownloads){if(Module["setStatus"])Module["setStatus"]("Downloading data...")}};xhr.onerror=function(event){throw new Error("NetworkError for: "+packageName)};xhr.onload=function(event){if(xhr.status==200||xhr.status==304||xhr.status==206||xhr.status==0&&xhr.response){var packageData=xhr.response;callback(packageData)}else{throw new Error(xhr.statusText+" : "+xhr.responseURL)}};xhr.send(null)}function handleError(error){console.error("package error:",error)}var fetchedCallback=null;var fetched=Module["getPreloadedPackage"]?Module["getPreloadedPackage"](REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE):null;if(!fetched)fetchRemotePackage(REMOTE_PACKAGE_NAME,REMOTE_PACKAGE_SIZE,function(data){if(fetchedCallback){fetchedCallback(data);fetchedCallback=null}else{fetched=data}},handleError);function runWithFS(){function assert(check,msg){if(!check)throw msg+(new Error).stack}Module["FS_createPath"]("/","resources",true,true);Module["FS_createPath"]("/resources","models",true,true);Module["FS_createPath"]("/resources/models","gltf",true,true);Module["FS_createPath"]("/resources/models/gltf","plane",true,true);function DataRequest(start,end,audio){this.start=start;this.end=end;this.audio=audio}DataRequest.prototype={requests:{},open:function(mode,name){this.name=name;this.requests[name]=this;Module["addRunDependency"]("fp "+this.name)},send:function(){},onload:function(){var byteArray=this.byteArray.subarray(this.start,this.end);this.finish(byteArray)},finish:function(byteArray){var that=this;Module["FS_createDataFile"](this.name,null,byteArray,true,true,true);Module["removeRunDependency"]("fp "+that.name);this.requests[this.name]=null}};var files=metadata["files"];for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=function(status,toThrow){if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var ALLOC_NORMAL=0;var ALLOC_STACK=1;function allocate(slab,allocator){var ret;if(allocator==ALLOC_STACK){ret=stackAlloc(slab.length)}else{ret=_malloc(slab.length)}if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||67108864;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;var runtimeKeepaliveCounter=0;function keepRuntimeAlive(){return noExitRuntime||runtimeKeepaliveCounter>0}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="models_yaw_pitch_roll.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;exports=Asyncify.instrumentWasmExports(exports);Module["asm"]=exports;wasmMemory=Module["asm"]["ke"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["ne"];addOnInit(Module["asm"]["le"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);exports=Asyncify.instrumentWasmExports(exports);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function GetCanvasHeight(){return canvas.clientHeight}function GetCanvasWidth(){return canvas.clientWidth}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){(function(){dynCall_v.call(null,func)})()}else{(function(a1){dynCall_vi.apply(null,[func,a1])})(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}function ___assert_fail(condition,filename,line,func){abort("Assertion failed: "+UTF8ToString(condition)+", at: "+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){FS.forceLoadFile(node);var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function ___sys_chdir(path){try{path=SYSCALLS.getStr(path);FS.chdir(path);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function ___sys_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.open(stream.path,stream.flags,0,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 12:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_getcwd(buf,size){try{if(size===0)return-28;var cwd=FS.cwd();var cwdLengthInBytes=lengthBytesUTF8(cwd);if(size>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___sys_open(path,flags,varargs){SYSCALLS.varargs=varargs;try{var pathname=SYSCALLS.getStr(path);var mode=varargs?SYSCALLS.get():0;var stream=FS.open(pathname,flags,mode);return stream.fd}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}var JSEvents={inEventHandler:0,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!=="undefined"?document:0,typeof window!=="undefined"?window:0];function findEventTarget(target){target=maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!=="undefined"?document.querySelector(target):undefined);return domElement}function getBoundingClientRect(e){return specialHTMLTargets.indexOf(e)<0?e.getBoundingClientRect():{"left":0,"top":0}}function _emscripten_get_element_css_size(target,width,height){target=findEventTarget(target);if(!target)return-4;var rect=getBoundingClientRect(target);HEAPF64[width>>3]=rect.width;HEAPF64[height>>3]=rect.height;return 0}function fillGamepadEventData(eventStruct,e){HEAPF64[eventStruct>>3]=e.timestamp;for(var i=0;i>3]=e.axes[i]}for(var i=0;i>3]=e.buttons[i].value}else{HEAPF64[eventStruct+i*8+528>>3]=e.buttons[i]}}for(var i=0;i>2]=e.buttons[i].pressed}else{HEAP32[eventStruct+i*4+1040>>2]=e.buttons[i]==1}}HEAP32[eventStruct+1296>>2]=e.connected;HEAP32[eventStruct+1300>>2]=e.index;HEAP32[eventStruct+8>>2]=e.axes.length;HEAP32[eventStruct+12>>2]=e.buttons.length;stringToUTF8(e.id,eventStruct+1304,64);stringToUTF8(e.mapping,eventStruct+1368,64)}function _emscripten_get_gamepad_status(index,gamepadState){if(index<0||index>=JSEvents.lastGamepadState.length)return-5;if(!JSEvents.lastGamepadState[index])return-7;fillGamepadEventData(gamepadState,JSEvents.lastGamepadState[index]);return 0}function _emscripten_get_num_gamepads(){return JSEvents.lastGamepadState.length}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension("ANGLE_instanced_arrays");if(ext){ctx["vertexAttribDivisor"]=function(index,divisor){ext["vertexAttribDivisorANGLE"](index,divisor)};ctx["drawArraysInstanced"]=function(mode,first,count,primcount){ext["drawArraysInstancedANGLE"](mode,first,count,primcount)};ctx["drawElementsInstanced"]=function(mode,count,type,indices,primcount){ext["drawElementsInstancedANGLE"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension("OES_vertex_array_object");if(ext){ctx["createVertexArray"]=function(){return ext["createVertexArrayOES"]()};ctx["deleteVertexArray"]=function(vao){ext["deleteVertexArrayOES"](vao)};ctx["bindVertexArray"]=function(vao){ext["bindVertexArrayOES"](vao)};ctx["isVertexArray"]=function(vao){return ext["isVertexArrayOES"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension("WEBGL_draw_buffers");if(ext){ctx["drawBuffers"]=function(n,bufs){ext["drawBuffersWEBGL"](n,bufs)};return 1}}function __webgl_enable_WEBGL_multi_draw(ctx){return!!(ctx.multiDrawWebgl=ctx.getExtension("WEBGL_multi_draw"))}var GL={counter:1,buffers:[],programs:[],framebuffers:[],renderbuffers:[],textures:[],shaders:[],vaos:[],contexts:[],offscreenCanvases:{},queries:[],stringCache:{},unpackAlignment:4,recordError:function recordError(errorCode){if(!GL.lastError){GL.lastError=errorCode}},getNewId:function(table){var ret=GL.counter++;for(var i=table.length;i>2]:-1;source+=UTF8ToString(HEAP32[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){if(!canvas.getContextSafariWebGL2Fixed){canvas.getContextSafariWebGL2Fixed=canvas.getContext;canvas.getContext=function(ver,attrs){var gl=canvas.getContextSafariWebGL2Fixed(ver,attrs);return ver=="webgl"==gl instanceof WebGLRenderingContext?gl:null}}var ctx=canvas.getContext("webgl",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=GL.getNewId(GL.contexts);var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault==="undefined"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents==="object")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);{GLctx.disjointTimerQueryExt=GLctx.getExtension("EXT_disjoint_timer_query")}__webgl_enable_WEBGL_multi_draw(GLctx);var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(!ext.includes("lose_context")&&!ext.includes("debug")){GLctx.getExtension(ext)}})}};function _emscripten_glActiveTexture(x0){GLctx["activeTexture"](x0)}function _emscripten_glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glBeginQueryEXT(target,id){GLctx.disjointTimerQueryExt["beginQueryEXT"](target,GL.queries[id])}function _emscripten_glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _emscripten_glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _emscripten_glBindFramebuffer(target,framebuffer){GLctx.bindFramebuffer(target,GL.framebuffers[framebuffer])}function _emscripten_glBindRenderbuffer(target,renderbuffer){GLctx.bindRenderbuffer(target,GL.renderbuffers[renderbuffer])}function _emscripten_glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _emscripten_glBindVertexArrayOES(vao){GLctx["bindVertexArray"](GL.vaos[vao])}function _emscripten_glBlendColor(x0,x1,x2,x3){GLctx["blendColor"](x0,x1,x2,x3)}function _emscripten_glBlendEquation(x0){GLctx["blendEquation"](x0)}function _emscripten_glBlendEquationSeparate(x0,x1){GLctx["blendEquationSeparate"](x0,x1)}function _emscripten_glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _emscripten_glBlendFuncSeparate(x0,x1,x2,x3){GLctx["blendFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _emscripten_glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _emscripten_glCheckFramebufferStatus(x0){return GLctx["checkFramebufferStatus"](x0)}function _emscripten_glClear(x0){GLctx["clear"](x0)}function _emscripten_glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _emscripten_glClearDepthf(x0){GLctx["clearDepth"](x0)}function _emscripten_glClearStencil(x0){GLctx["clearStencil"](x0)}function _emscripten_glColorMask(red,green,blue,alpha){GLctx.colorMask(!!red,!!green,!!blue,!!alpha)}function _emscripten_glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _emscripten_glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCompressedTexSubImage2D(target,level,xoffset,yoffset,width,height,format,imageSize,data){GLctx["compressedTexSubImage2D"](target,level,xoffset,yoffset,width,height,format,data?HEAPU8.subarray(data,data+imageSize):null)}function _emscripten_glCopyTexImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCopyTexSubImage2D(x0,x1,x2,x3,x4,x5,x6,x7){GLctx["copyTexSubImage2D"](x0,x1,x2,x3,x4,x5,x6,x7)}function _emscripten_glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _emscripten_glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _emscripten_glCullFace(x0){GLctx["cullFace"](x0)}function _emscripten_glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _emscripten_glDeleteFramebuffers(n,framebuffers){for(var i=0;i>2];var framebuffer=GL.framebuffers[id];if(!framebuffer)continue;GLctx.deleteFramebuffer(framebuffer);framebuffer.name=0;GL.framebuffers[id]=null}}function _emscripten_glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _emscripten_glDeleteQueriesEXT(n,ids){for(var i=0;i>2];var query=GL.queries[id];if(!query)continue;GLctx.disjointTimerQueryExt["deleteQueryEXT"](query);GL.queries[id]=null}}function _emscripten_glDeleteRenderbuffers(n,renderbuffers){for(var i=0;i>2];var renderbuffer=GL.renderbuffers[id];if(!renderbuffer)continue;GLctx.deleteRenderbuffer(renderbuffer);renderbuffer.name=0;GL.renderbuffers[id]=null}}function _emscripten_glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _emscripten_glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _emscripten_glDeleteVertexArraysOES(n,vaos){for(var i=0;i>2];GLctx["deleteVertexArray"](GL.vaos[id]);GL.vaos[id]=null}}function _emscripten_glDepthFunc(x0){GLctx["depthFunc"](x0)}function _emscripten_glDepthMask(flag){GLctx.depthMask(!!flag)}function _emscripten_glDepthRangef(x0,x1){GLctx["depthRange"](x0,x1)}function _emscripten_glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _emscripten_glDisable(x0){GLctx["disable"](x0)}function _emscripten_glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _emscripten_glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _emscripten_glDrawArraysInstancedANGLE(mode,first,count,primcount){GLctx["drawArraysInstanced"](mode,first,count,primcount)}var tempFixedLengthArray=[];function _emscripten_glDrawBuffersWEBGL(n,bufs){var bufArray=tempFixedLengthArray[n];for(var i=0;i>2]}GLctx["drawBuffers"](bufArray)}function _emscripten_glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _emscripten_glDrawElementsInstancedANGLE(mode,count,type,indices,primcount){GLctx["drawElementsInstanced"](mode,count,type,indices,primcount)}function _emscripten_glEnable(x0){GLctx["enable"](x0)}function _emscripten_glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _emscripten_glEndQueryEXT(target){GLctx.disjointTimerQueryExt["endQueryEXT"](target)}function _emscripten_glFinish(){GLctx["finish"]()}function _emscripten_glFlush(){GLctx["flush"]()}function _emscripten_glFramebufferRenderbuffer(target,attachment,renderbuffertarget,renderbuffer){GLctx.framebufferRenderbuffer(target,attachment,renderbuffertarget,GL.renderbuffers[renderbuffer])}function _emscripten_glFramebufferTexture2D(target,attachment,textarget,texture,level){GLctx.framebufferTexture2D(target,attachment,textarget,GL.textures[texture],level)}function _emscripten_glFrontFace(x0){GLctx["frontFace"](x0)}function __glGenObject(n,buffers,createFunction,objectTable){for(var i=0;i>2]=id}}function _emscripten_glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _emscripten_glGenFramebuffers(n,ids){__glGenObject(n,ids,"createFramebuffer",GL.framebuffers)}function _emscripten_glGenQueriesEXT(n,ids){for(var i=0;i>2]=0;return}var id=GL.getNewId(GL.queries);query.name=id;GL.queries[id]=query;HEAP32[ids+i*4>>2]=id}}function _emscripten_glGenRenderbuffers(n,renderbuffers){__glGenObject(n,renderbuffers,"createRenderbuffer",GL.renderbuffers)}function _emscripten_glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _emscripten_glGenVertexArraysOES(n,arrays){__glGenObject(n,arrays,"createVertexArray",GL.vaos)}function _emscripten_glGenerateMipmap(x0){GLctx["generateMipmap"](x0)}function __glGetActiveAttribOrUniform(funcName,program,index,bufSize,length,size,type,name){program=GL.programs[program];var info=GLctx[funcName](program,index);if(info){var numBytesWrittenExclNull=name&&stringToUTF8(info.name,name,bufSize);if(length)HEAP32[length>>2]=numBytesWrittenExclNull;if(size)HEAP32[size>>2]=info.size;if(type)HEAP32[type>>2]=info.type}}function _emscripten_glGetActiveAttrib(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveAttrib",program,index,bufSize,length,size,type,name)}function _emscripten_glGetActiveUniform(program,index,bufSize,length,size,type,name){__glGetActiveAttribOrUniform("getActiveUniform",program,index,bufSize,length,size,type,name)}function _emscripten_glGetAttachedShaders(program,maxCount,count,shaders){var result=GLctx.getAttachedShaders(GL.programs[program]);var len=result.length;if(len>maxCount){len=maxCount}HEAP32[count>>2]=len;for(var i=0;i>2]=id}}function _emscripten_glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function writeI53ToI64(ptr,num){HEAPU32[ptr>>2]=num;HEAPU32[ptr+4>>2]=(num-HEAPU32[ptr>>2])/4294967296}function emscriptenWebGLGet(name_,p,type){if(!p){GL.recordError(1281);return}var ret=undefined;switch(name_){case 36346:ret=1;break;case 36344:if(type!=0&&type!=1){GL.recordError(1280)}return;case 36345:ret=0;break;case 34466:var formats=GLctx.getParameter(34467);ret=formats?formats.length:0;break}if(ret===undefined){var result=GLctx.getParameter(name_);switch(typeof result){case"number":ret=result;break;case"boolean":ret=result?1:0;break;case"string":GL.recordError(1280);return;case"object":if(result===null){switch(name_){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 34068:{ret=0;break}default:{GL.recordError(1280);return}}}else if(result instanceof Float32Array||result instanceof Uint32Array||result instanceof Int32Array||result instanceof Array){for(var i=0;i>2]=result[i];break;case 2:HEAPF32[p+i*4>>2]=result[i];break;case 4:HEAP8[p+i>>0]=result[i]?1:0;break}}return}else{try{ret=result.name|0}catch(e){GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Unknown object returned from WebGL getParameter("+name_+")! (error: "+e+")");return}}break;default:GL.recordError(1280);err("GL_INVALID_ENUM in glGet"+type+"v: Native code calling glGet"+type+"v("+name_+") and it returns "+result+" of type "+typeof result+"!");return}}switch(type){case 1:writeI53ToI64(p,ret);break;case 0:HEAP32[p>>2]=ret;break;case 2:HEAPF32[p>>2]=ret;break;case 4:HEAP8[p>>0]=ret?1:0;break}}function _emscripten_glGetBooleanv(name_,p){emscriptenWebGLGet(name_,p,4)}function _emscripten_glGetBufferParameteriv(target,value,data){if(!data){GL.recordError(1281);return}HEAP32[data>>2]=GLctx.getBufferParameter(target,value)}function _emscripten_glGetError(){var error=GLctx.getError()||GL.lastError;GL.lastError=0;return error}function _emscripten_glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _emscripten_glGetFramebufferAttachmentParameteriv(target,attachment,pname,params){var result=GLctx.getFramebufferAttachmentParameter(target,attachment,pname);if(result instanceof WebGLRenderbuffer||result instanceof WebGLTexture){result=result.name|0}HEAP32[params>>2]=result}function _emscripten_glGetIntegerv(name_,p){emscriptenWebGLGet(name_,p,0)}function _emscripten_glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _emscripten_glGetQueryObjecti64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryObjectui64vEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param;{param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname)}var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}writeI53ToI64(params,ret)}function _emscripten_glGetQueryObjectuivEXT(id,pname,params){if(!params){GL.recordError(1281);return}var query=GL.queries[id];var param=GLctx.disjointTimerQueryExt["getQueryObjectEXT"](query,pname);var ret;if(typeof param=="boolean"){ret=param?1:0}else{ret=param}HEAP32[params>>2]=ret}function _emscripten_glGetQueryivEXT(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.disjointTimerQueryExt["getQueryEXT"](target,pname)}function _emscripten_glGetRenderbufferParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getRenderbufferParameter(target,pname)}function _emscripten_glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderPrecisionFormat(shaderType,precisionType,range,precision){var result=GLctx.getShaderPrecisionFormat(shaderType,precisionType);HEAP32[range>>2]=result.rangeMin;HEAP32[range+4>>2]=result.rangeMax;HEAP32[precision>>2]=result.precision}function _emscripten_glGetShaderSource(shader,bufSize,length,source){var result=GLctx.getShaderSource(GL.shaders[shader]);if(!result)return;var numBytesWrittenExclNull=bufSize>0&&source?stringToUTF8(result,source,bufSize):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _emscripten_glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _emscripten_glGetTexParameterfv(target,pname,params){if(!params){GL.recordError(1281);return}HEAPF32[params>>2]=GLctx.getTexParameter(target,pname)}function _emscripten_glGetTexParameteriv(target,pname,params){if(!params){GL.recordError(1281);return}HEAP32[params>>2]=GLctx.getTexParameter(target,pname)}function jstoi_q(str){return parseInt(str)}function webglGetLeftBracePos(name){return name.slice(-1)=="]"&&name.lastIndexOf("[")}function webglPrepareUniformLocationsBeforeFirstUse(program){var uniformLocsById=program.uniformLocsById,uniformSizeAndIdsByName=program.uniformSizeAndIdsByName,i,j;if(!uniformLocsById){program.uniformLocsById=uniformLocsById={};program.uniformArrayNamesById={};for(i=0;i0?nm.slice(0,lb):nm;var id=program.uniformIdCounter;program.uniformIdCounter+=sz;uniformSizeAndIdsByName[arrayName]=[sz,id];for(j=0;j0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex0?"["+webglLoc+"]":""))}return webglLoc}else{GL.recordError(1282)}}function emscriptenWebGLGetUniform(program,location,params,type){if(!params){GL.recordError(1281);return}program=GL.programs[program];webglPrepareUniformLocationsBeforeFirstUse(program);var data=GLctx.getUniform(program,webglGetUniformLocation(location));if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break}}}}function _emscripten_glGetUniformfv(program,location,params){emscriptenWebGLGetUniform(program,location,params,2)}function _emscripten_glGetUniformiv(program,location,params){emscriptenWebGLGetUniform(program,location,params,0)}function _emscripten_glGetVertexAttribPointerv(index,pname,pointer){if(!pointer){GL.recordError(1281);return}HEAP32[pointer>>2]=GLctx.getVertexAttribOffset(index,pname)}function emscriptenWebGLGetVertexAttrib(index,pname,params,type){if(!params){GL.recordError(1281);return}var data=GLctx.getVertexAttrib(index,pname);if(pname==34975){HEAP32[params>>2]=data&&data["name"]}else if(typeof data=="number"||typeof data=="boolean"){switch(type){case 0:HEAP32[params>>2]=data;break;case 2:HEAPF32[params>>2]=data;break;case 5:HEAP32[params>>2]=Math.fround(data);break}}else{for(var i=0;i>2]=data[i];break;case 2:HEAPF32[params+i*4>>2]=data[i];break;case 5:HEAP32[params+i*4>>2]=Math.fround(data[i]);break}}}}function _emscripten_glGetVertexAttribfv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,2)}function _emscripten_glGetVertexAttribiv(index,pname,params){emscriptenWebGLGetVertexAttrib(index,pname,params,5)}function _emscripten_glHint(x0,x1){GLctx["hint"](x0,x1)}function _emscripten_glIsBuffer(buffer){var b=GL.buffers[buffer];if(!b)return 0;return GLctx.isBuffer(b)}function _emscripten_glIsEnabled(x0){return GLctx["isEnabled"](x0)}function _emscripten_glIsFramebuffer(framebuffer){var fb=GL.framebuffers[framebuffer];if(!fb)return 0;return GLctx.isFramebuffer(fb)}function _emscripten_glIsProgram(program){program=GL.programs[program];if(!program)return 0;return GLctx.isProgram(program)}function _emscripten_glIsQueryEXT(id){var query=GL.queries[id];if(!query)return 0;return GLctx.disjointTimerQueryExt["isQueryEXT"](query)}function _emscripten_glIsRenderbuffer(renderbuffer){var rb=GL.renderbuffers[renderbuffer];if(!rb)return 0;return GLctx.isRenderbuffer(rb)}function _emscripten_glIsShader(shader){var s=GL.shaders[shader];if(!s)return 0;return GLctx.isShader(s)}function _emscripten_glIsTexture(id){var texture=GL.textures[id];if(!texture)return 0;return GLctx.isTexture(texture)}function _emscripten_glIsVertexArrayOES(array){var vao=GL.vaos[array];if(!vao)return 0;return GLctx["isVertexArray"](vao)}function _emscripten_glLineWidth(x0){GLctx["lineWidth"](x0)}function _emscripten_glLinkProgram(program){program=GL.programs[program];GLctx.linkProgram(program);program.uniformLocsById=0;program.uniformSizeAndIdsByName={}}function _emscripten_glPixelStorei(pname,param){if(pname==3317){GL.unpackAlignment=param}GLctx.pixelStorei(pname,param)}function _emscripten_glPolygonOffset(x0,x1){GLctx["polygonOffset"](x0,x1)}function _emscripten_glQueryCounterEXT(id,target){GLctx.disjointTimerQueryExt["queryCounterEXT"](GL.queries[id],target)}function computeUnpackAlignedImageSize(width,height,sizePerPixel,alignment){function roundedToNextMultipleOf(x,y){return x+y-1&-y}var plainRowSize=width*sizePerPixel;var alignedRowSize=roundedToNextMultipleOf(plainRowSize,alignment);return height*alignedRowSize}function __colorChannelsInGlTextureFormat(format){var colorChannels={5:3,6:4,8:2,29502:3,29504:4};return colorChannels[format-6402]||1}function heapObjectForWebGLType(type){type-=5120;if(type==1)return HEAPU8;if(type==4)return HEAP32;if(type==6)return HEAPF32;if(type==5||type==28922)return HEAPU32;return HEAPU16}function heapAccessShiftForWebGLHeap(heap){return 31-Math.clz32(heap.BYTES_PER_ELEMENT)}function emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat){var heap=heapObjectForWebGLType(type);var shift=heapAccessShiftForWebGLHeap(heap);var byteSize=1<>shift,pixels+bytes>>shift)}function _emscripten_glReadPixels(x,y,width,height,format,type,pixels){var pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,format);if(!pixelData){GL.recordError(1280);return}GLctx.readPixels(x,y,width,height,format,type,pixelData)}function _emscripten_glReleaseShaderCompiler(){}function _emscripten_glRenderbufferStorage(x0,x1,x2,x3){GLctx["renderbufferStorage"](x0,x1,x2,x3)}function _emscripten_glSampleCoverage(value,invert){GLctx.sampleCoverage(value,!!invert)}function _emscripten_glScissor(x0,x1,x2,x3){GLctx["scissor"](x0,x1,x2,x3)}function _emscripten_glShaderBinary(){GL.recordError(1280)}function _emscripten_glShaderSource(shader,count,string,length){var source=GL.getSource(shader,count,string,length);GLctx.shaderSource(GL.shaders[shader],source)}function _emscripten_glStencilFunc(x0,x1,x2){GLctx["stencilFunc"](x0,x1,x2)}function _emscripten_glStencilFuncSeparate(x0,x1,x2,x3){GLctx["stencilFuncSeparate"](x0,x1,x2,x3)}function _emscripten_glStencilMask(x0){GLctx["stencilMask"](x0)}function _emscripten_glStencilMaskSeparate(x0,x1){GLctx["stencilMaskSeparate"](x0,x1)}function _emscripten_glStencilOp(x0,x1,x2){GLctx["stencilOp"](x0,x1,x2)}function _emscripten_glStencilOpSeparate(x0,x1,x2,x3){GLctx["stencilOpSeparate"](x0,x1,x2,x3)}function _emscripten_glTexImage2D(target,level,internalFormat,width,height,border,format,type,pixels){GLctx.texImage2D(target,level,internalFormat,width,height,border,format,type,pixels?emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,internalFormat):null)}function _emscripten_glTexParameterf(x0,x1,x2){GLctx["texParameterf"](x0,x1,x2)}function _emscripten_glTexParameterfv(target,pname,params){var param=HEAPF32[params>>2];GLctx.texParameterf(target,pname,param)}function _emscripten_glTexParameteri(x0,x1,x2){GLctx["texParameteri"](x0,x1,x2)}function _emscripten_glTexParameteriv(target,pname,params){var param=HEAP32[params>>2];GLctx.texParameteri(target,pname,param)}function _emscripten_glTexSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixels){var pixelData=null;if(pixels)pixelData=emscriptenWebGLGetTexPixelData(type,format,width,height,pixels,0);GLctx.texSubImage2D(target,level,xoffset,yoffset,width,height,format,type,pixelData)}function _emscripten_glUniform1f(location,v0){GLctx.uniform1f(webglGetUniformLocation(location),v0)}var miniTempWebGLFloatBuffers=[];function _emscripten_glUniform1fv(location,count,value){if(count<=288){var view=miniTempWebGLFloatBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}var __miniTempWebGLIntBuffers=[];function _emscripten_glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2f(location,v0,v1){GLctx.uniform2f(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform2i(location,v0,v1){GLctx.uniform2i(webglGetUniformLocation(location),v0,v1)}function _emscripten_glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3f(location,v0,v1,v2){GLctx.uniform3f(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform3i(location,v0,v1,v2){GLctx.uniform3i(webglGetUniformLocation(location),v0,v1,v2)}function _emscripten_glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _emscripten_glUniform4i(location,v0,v1,v2,v3){GLctx.uniform4i(webglGetUniformLocation(location),v0,v1,v2,v3)}function _emscripten_glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _emscripten_glUniformMatrix2fv(location,count,transpose,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniformMatrix2fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix3fv(location,count,transpose,value){if(count<=32){var view=miniTempWebGLFloatBuffers[9*count-1];for(var i=0;i<9*count;i+=9){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2];view[i+3]=HEAPF32[value+(4*i+12)>>2];view[i+4]=HEAPF32[value+(4*i+16)>>2];view[i+5]=HEAPF32[value+(4*i+20)>>2];view[i+6]=HEAPF32[value+(4*i+24)>>2];view[i+7]=HEAPF32[value+(4*i+28)>>2];view[i+8]=HEAPF32[value+(4*i+32)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*36>>2)}GLctx.uniformMatrix3fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _emscripten_glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _emscripten_glValidateProgram(program){GLctx.validateProgram(GL.programs[program])}function _emscripten_glVertexAttrib1f(x0,x1){GLctx["vertexAttrib1f"](x0,x1)}function _emscripten_glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _emscripten_glVertexAttrib2f(x0,x1,x2){GLctx["vertexAttrib2f"](x0,x1,x2)}function _emscripten_glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _emscripten_glVertexAttrib3f(x0,x1,x2,x3){GLctx["vertexAttrib3f"](x0,x1,x2,x3)}function _emscripten_glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _emscripten_glVertexAttrib4f(x0,x1,x2,x3,x4){GLctx["vertexAttrib4f"](x0,x1,x2,x3,x4)}function _emscripten_glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _emscripten_glVertexAttribDivisorANGLE(index,divisor){GLctx["vertexAttribDivisor"](index,divisor)}function _emscripten_glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _emscripten_glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_run_script(ptr){eval(UTF8ToString(ptr))}function _emscripten_sample_gamepad_data(){return(JSEvents.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads():null)?0:-1}function findCanvasEventTarget(target){return findEventTarget(target)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=findCanvasEventTarget(target);if(!canvas)return-4;canvas.width=width;canvas.height=height;return 0}function fillMouseEventData(eventStruct,e,target){HEAPF64[eventStruct>>3]=e.timeStamp;var idx=eventStruct>>2;HEAP32[idx+2]=e.screenX;HEAP32[idx+3]=e.screenY;HEAP32[idx+4]=e.clientX;HEAP32[idx+5]=e.clientY;HEAP32[idx+6]=e.ctrlKey;HEAP32[idx+7]=e.shiftKey;HEAP32[idx+8]=e.altKey;HEAP32[idx+9]=e.metaKey;HEAP16[idx*2+20]=e.button;HEAP16[idx*2+21]=e.buttons;HEAP32[idx+11]=e["movementX"];HEAP32[idx+12]=e["movementY"];var rect=getBoundingClientRect(target);HEAP32[idx+13]=e.clientX-rect.left;HEAP32[idx+14]=e.clientY-rect.top}function registerMouseEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.mouseEvent)JSEvents.mouseEvent=_malloc(72);target=findEventTarget(target);var mouseEventHandlerFunc=function(ev){var e=ev||event;fillMouseEventData(JSEvents.mouseEvent,e,target);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,JSEvents.mouseEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString!="mousemove"&&eventTypeString!="mouseenter"&&eventTypeString!="mouseleave",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:mouseEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_click_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerMouseEventCallback(target,userData,useCapture,callbackfunc,4,"click",targetThread);return 0}function registerGamepadEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.gamepadEvent)JSEvents.gamepadEvent=_malloc(1432);var gamepadEventHandlerFunc=function(ev){var e=ev||event;var gamepadEvent=JSEvents.gamepadEvent;fillGamepadEventData(gamepadEvent,e["gamepad"]);if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,gamepadEvent,userData))e.preventDefault()};var eventHandler={target:findEventTarget(target),allowsDeferredCalls:true,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:gamepadEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_gamepadconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,26,"gamepadconnected",targetThread);return 0}function _emscripten_set_gamepaddisconnected_callback_on_thread(userData,useCapture,callbackfunc,targetThread){if(!navigator.getGamepads&&!navigator.webkitGetGamepads)return-1;registerGamepadEventCallback(2,userData,useCapture,callbackfunc,27,"gamepaddisconnected",targetThread);return 0}function registerUiEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.uiEvent)JSEvents.uiEvent=_malloc(36);target=findEventTarget(target);var uiEventHandlerFunc=function(ev){var e=ev||event;if(e.target!=target){return}var b=document.body;if(!b){return}var uiEvent=JSEvents.uiEvent;HEAP32[uiEvent>>2]=e.detail;HEAP32[uiEvent+4>>2]=b.clientWidth;HEAP32[uiEvent+8>>2]=b.clientHeight;HEAP32[uiEvent+12>>2]=innerWidth;HEAP32[uiEvent+16>>2]=innerHeight;HEAP32[uiEvent+20>>2]=outerWidth;HEAP32[uiEvent+24>>2]=outerHeight;HEAP32[uiEvent+28>>2]=pageXOffset;HEAP32[uiEvent+32>>2]=pageYOffset;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,uiEvent,userData))e.preventDefault()};var eventHandler={target:target,eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:uiEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_resize_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerUiEventCallback(target,userData,useCapture,callbackfunc,10,"resize",targetThread);return 0}function registerTouchEventCallback(target,userData,useCapture,callbackfunc,eventTypeId,eventTypeString,targetThread){if(!JSEvents.touchEvent)JSEvents.touchEvent=_malloc(1696);target=findEventTarget(target);var touchEventHandlerFunc=function(e){var t,touches={},et=e.touches;for(var i=0;i>3]=e.timeStamp;var idx=touchEvent>>2;HEAP32[idx+3]=e.ctrlKey;HEAP32[idx+4]=e.shiftKey;HEAP32[idx+5]=e.altKey;HEAP32[idx+6]=e.metaKey;idx+=7;var targetRect=getBoundingClientRect(target);var numTouches=0;for(var i in touches){var t=touches[i];HEAP32[idx+0]=t.identifier;HEAP32[idx+1]=t.screenX;HEAP32[idx+2]=t.screenY;HEAP32[idx+3]=t.clientX;HEAP32[idx+4]=t.clientY;HEAP32[idx+5]=t.pageX;HEAP32[idx+6]=t.pageY;HEAP32[idx+7]=t.isChanged;HEAP32[idx+8]=t.onTarget;HEAP32[idx+9]=t.clientX-targetRect.left;HEAP32[idx+10]=t.clientY-targetRect.top;idx+=13;if(++numTouches>31){break}}HEAP32[touchEvent+8>>2]=numTouches;if(function(a1,a2,a3){return dynCall_iiii.apply(null,[callbackfunc,a1,a2,a3])}(eventTypeId,touchEvent,userData))e.preventDefault()};var eventHandler={target:target,allowsDeferredCalls:eventTypeString=="touchstart"||eventTypeString=="touchend",eventTypeString:eventTypeString,callbackfunc:callbackfunc,handlerFunc:touchEventHandlerFunc,useCapture:useCapture};JSEvents.registerOrRemoveHandler(eventHandler)}function _emscripten_set_touchcancel_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,25,"touchcancel",targetThread);return 0}function _emscripten_set_touchend_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,23,"touchend",targetThread);return 0}function _emscripten_set_touchmove_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,24,"touchmove",targetThread);return 0}function _emscripten_set_touchstart_callback_on_thread(target,userData,useCapture,callbackfunc,targetThread){registerTouchEventCallback(target,userData,useCapture,callbackfunc,22,"touchstart",targetThread);return 0}function callUserCallback(func,synchronous){if(ABORT){return}if(synchronous){func();return}try{func()}catch(e){handleException(e)}}function safeSetTimeout(func,timeout){return setTimeout(function(){callUserCallback(func)},timeout)}function _emscripten_sleep(ms){Asyncify.handleSleep(function(wakeUp){safeSetTimeout(wakeUp,ms)})}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=function(){return performance.now()};function _emscripten_thread_sleep(msecs){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _glActiveTexture(x0){GLctx["activeTexture"](x0)}function _glAttachShader(program,shader){GLctx.attachShader(GL.programs[program],GL.shaders[shader])}function _glBindAttribLocation(program,index,name){GLctx.bindAttribLocation(GL.programs[program],index,UTF8ToString(name))}function _glBindBuffer(target,buffer){GLctx.bindBuffer(target,GL.buffers[buffer])}function _glBindTexture(target,texture){GLctx.bindTexture(target,GL.textures[texture])}function _glBlendFunc(x0,x1){GLctx["blendFunc"](x0,x1)}function _glBufferData(target,size,data,usage){GLctx.bufferData(target,data?HEAPU8.subarray(data,data+size):size,usage)}function _glBufferSubData(target,offset,size,data){GLctx.bufferSubData(target,offset,HEAPU8.subarray(data,data+size))}function _glClear(x0){GLctx["clear"](x0)}function _glClearColor(x0,x1,x2,x3){GLctx["clearColor"](x0,x1,x2,x3)}function _glClearDepthf(x0){GLctx["clearDepth"](x0)}function _glCompileShader(shader){GLctx.compileShader(GL.shaders[shader])}function _glCompressedTexImage2D(target,level,internalFormat,width,height,border,imageSize,data){GLctx["compressedTexImage2D"](target,level,internalFormat,width,height,border,data?HEAPU8.subarray(data,data+imageSize):null)}function _glCreateProgram(){var id=GL.getNewId(GL.programs);var program=GLctx.createProgram();program.name=id;program.maxUniformLength=program.maxAttributeLength=program.maxUniformBlockNameLength=0;program.uniformIdCounter=1;GL.programs[id]=program;return id}function _glCreateShader(shaderType){var id=GL.getNewId(GL.shaders);GL.shaders[id]=GLctx.createShader(shaderType);return id}function _glCullFace(x0){GLctx["cullFace"](x0)}function _glDeleteBuffers(n,buffers){for(var i=0;i>2];var buffer=GL.buffers[id];if(!buffer)continue;GLctx.deleteBuffer(buffer);buffer.name=0;GL.buffers[id]=null}}function _glDeleteProgram(id){if(!id)return;var program=GL.programs[id];if(!program){GL.recordError(1281);return}GLctx.deleteProgram(program);program.name=0;GL.programs[id]=null}function _glDeleteShader(id){if(!id)return;var shader=GL.shaders[id];if(!shader){GL.recordError(1281);return}GLctx.deleteShader(shader);GL.shaders[id]=null}function _glDeleteTextures(n,textures){for(var i=0;i>2];var texture=GL.textures[id];if(!texture)continue;GLctx.deleteTexture(texture);texture.name=0;GL.textures[id]=null}}function _glDepthFunc(x0){GLctx["depthFunc"](x0)}function _glDetachShader(program,shader){GLctx.detachShader(GL.programs[program],GL.shaders[shader])}function _glDisable(x0){GLctx["disable"](x0)}function _glDisableVertexAttribArray(index){GLctx.disableVertexAttribArray(index)}function _glDrawArrays(mode,first,count){GLctx.drawArrays(mode,first,count)}function _glDrawElements(mode,count,type,indices){GLctx.drawElements(mode,count,type,indices)}function _glEnable(x0){GLctx["enable"](x0)}function _glEnableVertexAttribArray(index){GLctx.enableVertexAttribArray(index)}function _glFrontFace(x0){GLctx["frontFace"](x0)}function _glGenBuffers(n,buffers){__glGenObject(n,buffers,"createBuffer",GL.buffers)}function _glGenTextures(n,textures){__glGenObject(n,textures,"createTexture",GL.textures)}function _glGetAttribLocation(program,name){return GLctx.getAttribLocation(GL.programs[program],UTF8ToString(name))}function _glGetFloatv(name_,p){emscriptenWebGLGet(name_,p,2)}function _glGetProgramInfoLog(program,maxLength,length,infoLog){var log=GLctx.getProgramInfoLog(GL.programs[program]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetProgramiv(program,pname,p){if(!p){GL.recordError(1281);return}if(program>=GL.counter){GL.recordError(1281);return}program=GL.programs[program];if(pname==35716){var log=GLctx.getProgramInfoLog(program);if(log===null)log="(unknown error)";HEAP32[p>>2]=log.length+1}else if(pname==35719){if(!program.maxUniformLength){for(var i=0;i>2]=program.maxUniformLength}else if(pname==35722){if(!program.maxAttributeLength){for(var i=0;i>2]=program.maxAttributeLength}else if(pname==35381){if(!program.maxUniformBlockNameLength){for(var i=0;i>2]=program.maxUniformBlockNameLength}else{HEAP32[p>>2]=GLctx.getProgramParameter(program,pname)}}function _glGetShaderInfoLog(shader,maxLength,length,infoLog){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var numBytesWrittenExclNull=maxLength>0&&infoLog?stringToUTF8(log,infoLog,maxLength):0;if(length)HEAP32[length>>2]=numBytesWrittenExclNull}function _glGetShaderiv(shader,pname,p){if(!p){GL.recordError(1281);return}if(pname==35716){var log=GLctx.getShaderInfoLog(GL.shaders[shader]);if(log===null)log="(unknown error)";var logLength=log?log.length+1:0;HEAP32[p>>2]=logLength}else if(pname==35720){var source=GLctx.getShaderSource(GL.shaders[shader]);var sourceLength=source?source.length+1:0;HEAP32[p>>2]=sourceLength}else{HEAP32[p>>2]=GLctx.getShaderParameter(GL.shaders[shader],pname)}}function _glGetString(name_){var ret=GL.stringCache[name_];if(!ret){switch(name_){case 7939:var exts=GLctx.getSupportedExtensions()||[];exts=exts.concat(exts.map(function(e){return"GL_"+e}));ret=stringToNewUTF8(exts.join(" "));break;case 7936:case 7937:case 37445:case 37446:var s=GLctx.getParameter(name_);if(!s){GL.recordError(1280)}ret=s&&stringToNewUTF8(s);break;case 7938:var glVersion=GLctx.getParameter(7938);{glVersion="OpenGL ES 2.0 ("+glVersion+")"}ret=stringToNewUTF8(glVersion);break;case 35724:var glslVersion=GLctx.getParameter(35724);var ver_re=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;var ver_num=glslVersion.match(ver_re);if(ver_num!==null){if(ver_num[1].length==3)ver_num[1]=ver_num[1]+"0";glslVersion="OpenGL ES GLSL ES "+ver_num[1]+" ("+glslVersion+")"}ret=stringToNewUTF8(glslVersion);break;default:GL.recordError(1280)}GL.stringCache[name_]=ret}return ret}function _glGetUniformLocation(program,name){name=UTF8ToString(name);if(program=GL.programs[program]){webglPrepareUniformLocationsBeforeFirstUse(program);var uniformLocsById=program.uniformLocsById;var arrayIndex=0;var uniformBaseName=name;var leftBrace=webglGetLeftBracePos(name);if(leftBrace>0){arrayIndex=jstoi_q(name.slice(leftBrace+1))>>>0;uniformBaseName=name.slice(0,leftBrace)}var sizeAndId=program.uniformSizeAndIdsByName[uniformBaseName];if(sizeAndId&&arrayIndex>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1fv(webglGetUniformLocation(location),view)}function _glUniform1i(location,v0){GLctx.uniform1i(webglGetUniformLocation(location),v0)}function _glUniform1iv(location,count,value){if(count<=288){var view=__miniTempWebGLIntBuffers[count-1];for(var i=0;i>2]}}else{var view=HEAP32.subarray(value>>2,value+count*4>>2)}GLctx.uniform1iv(webglGetUniformLocation(location),view)}function _glUniform2fv(location,count,value){if(count<=144){var view=miniTempWebGLFloatBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2fv(webglGetUniformLocation(location),view)}function _glUniform2iv(location,count,value){if(count<=144){var view=__miniTempWebGLIntBuffers[2*count-1];for(var i=0;i<2*count;i+=2){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*8>>2)}GLctx.uniform2iv(webglGetUniformLocation(location),view)}function _glUniform3fv(location,count,value){if(count<=96){var view=miniTempWebGLFloatBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAPF32[value+4*i>>2];view[i+1]=HEAPF32[value+(4*i+4)>>2];view[i+2]=HEAPF32[value+(4*i+8)>>2]}}else{var view=HEAPF32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3fv(webglGetUniformLocation(location),view)}function _glUniform3iv(location,count,value){if(count<=96){var view=__miniTempWebGLIntBuffers[3*count-1];for(var i=0;i<3*count;i+=3){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*12>>2)}GLctx.uniform3iv(webglGetUniformLocation(location),view)}function _glUniform4f(location,v0,v1,v2,v3){GLctx.uniform4f(webglGetUniformLocation(location),v0,v1,v2,v3)}function _glUniform4fv(location,count,value){if(count<=72){var view=miniTempWebGLFloatBuffers[4*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<4*count;i+=4){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3]}}else{var view=HEAPF32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4fv(webglGetUniformLocation(location),view)}function _glUniform4iv(location,count,value){if(count<=72){var view=__miniTempWebGLIntBuffers[4*count-1];for(var i=0;i<4*count;i+=4){view[i]=HEAP32[value+4*i>>2];view[i+1]=HEAP32[value+(4*i+4)>>2];view[i+2]=HEAP32[value+(4*i+8)>>2];view[i+3]=HEAP32[value+(4*i+12)>>2]}}else{var view=HEAP32.subarray(value>>2,value+count*16>>2)}GLctx.uniform4iv(webglGetUniformLocation(location),view)}function _glUniformMatrix4fv(location,count,transpose,value){if(count<=18){var view=miniTempWebGLFloatBuffers[16*count-1];var heap=HEAPF32;value>>=2;for(var i=0;i<16*count;i+=16){var dst=value+i;view[i]=heap[dst];view[i+1]=heap[dst+1];view[i+2]=heap[dst+2];view[i+3]=heap[dst+3];view[i+4]=heap[dst+4];view[i+5]=heap[dst+5];view[i+6]=heap[dst+6];view[i+7]=heap[dst+7];view[i+8]=heap[dst+8];view[i+9]=heap[dst+9];view[i+10]=heap[dst+10];view[i+11]=heap[dst+11];view[i+12]=heap[dst+12];view[i+13]=heap[dst+13];view[i+14]=heap[dst+14];view[i+15]=heap[dst+15]}}else{var view=HEAPF32.subarray(value>>2,value+count*64>>2)}GLctx.uniformMatrix4fv(webglGetUniformLocation(location),!!transpose,view)}function _glUseProgram(program){program=GL.programs[program];GLctx.useProgram(program);GLctx.currentProgram=program}function _glVertexAttrib1fv(index,v){GLctx.vertexAttrib1f(index,HEAPF32[v>>2])}function _glVertexAttrib2fv(index,v){GLctx.vertexAttrib2f(index,HEAPF32[v>>2],HEAPF32[v+4>>2])}function _glVertexAttrib3fv(index,v){GLctx.vertexAttrib3f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2])}function _glVertexAttrib4fv(index,v){GLctx.vertexAttrib4f(index,HEAPF32[v>>2],HEAPF32[v+4>>2],HEAPF32[v+8>>2],HEAPF32[v+12>>2])}function _glVertexAttribPointer(index,size,type,normalized,stride,ptr){GLctx.vertexAttribPointer(index,size,type,!!normalized,stride,ptr)}function _glViewport(x0,x1,x2,x3){GLctx["viewport"](x0,x1,x2,x3)}function _emscripten_set_main_loop_timing(mode,value){Browser.mainLoop.timingMode=mode;Browser.mainLoop.timingValue=value;if(!Browser.mainLoop.func){return 1}if(!Browser.mainLoop.running){Browser.mainLoop.running=true}if(mode==0){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setTimeout(){var timeUntilNextTick=Math.max(0,Browser.mainLoop.tickStartTime+value-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,timeUntilNextTick)};Browser.mainLoop.method="timeout"}else if(mode==1){Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_rAF(){Browser.requestAnimationFrame(Browser.mainLoop.runner)};Browser.mainLoop.method="rAF"}else if(mode==2){if(typeof setImmediate==="undefined"){var setImmediates=[];var emscriptenMainLoopMessageId="setimmediate";var Browser_setImmediate_messageHandler=function(event){if(event.data===emscriptenMainLoopMessageId||event.data.target===emscriptenMainLoopMessageId){event.stopPropagation();setImmediates.shift()()}};addEventListener("message",Browser_setImmediate_messageHandler,true);setImmediate=function Browser_emulated_setImmediate(func){setImmediates.push(func);if(ENVIRONMENT_IS_WORKER){if(Module["setImmediates"]===undefined)Module["setImmediates"]=[];Module["setImmediates"].push(func);postMessage({target:emscriptenMainLoopMessageId})}else postMessage(emscriptenMainLoopMessageId,"*")}}Browser.mainLoop.scheduler=function Browser_mainLoop_scheduler_setImmediate(){setImmediate(Browser.mainLoop.runner)};Browser.mainLoop.method="immediate"}return 0}function maybeExit(){if(!keepRuntimeAlive()){try{_exit(EXITSTATUS)}catch(e){handleException(e)}}}function setMainLoop(browserIterationFunc,fps,simulateInfiniteLoop,arg,noSetTiming){assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");Browser.mainLoop.func=browserIterationFunc;Browser.mainLoop.arg=arg;var thisMainLoopId=Browser.mainLoop.currentlyRunningMainloop;function checkIsRunning(){if(thisMainLoopId0){var start=Date.now();var blocker=Browser.mainLoop.queue.shift();blocker.func(blocker.arg);if(Browser.mainLoop.remainingBlockers){var remaining=Browser.mainLoop.remainingBlockers;var next=remaining%1==0?remaining-1:Math.floor(remaining);if(blocker.counted){Browser.mainLoop.remainingBlockers=next}else{next=next+.5;Browser.mainLoop.remainingBlockers=(8*remaining+next)/9}}out('main loop blocker "'+blocker.name+'" took '+(Date.now()-start)+" ms");Browser.mainLoop.updateStatus();if(!checkIsRunning())return;setTimeout(Browser.mainLoop.runner,0);return}if(!checkIsRunning())return;Browser.mainLoop.currentFrameNumber=Browser.mainLoop.currentFrameNumber+1|0;if(Browser.mainLoop.timingMode==1&&Browser.mainLoop.timingValue>1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else if(Browser.mainLoop.timingMode==0){Browser.mainLoop.tickStartTime=_emscripten_get_now()}Browser.mainLoop.runIter(browserIterationFunc);if(!checkIsRunning())return;if(typeof SDL==="object"&&SDL.audio&&SDL.audio.queueNewAudioData)SDL.audio.queueNewAudioData();Browser.mainLoop.scheduler()};if(!noSetTiming){if(fps&&fps>0)_emscripten_set_main_loop_timing(0,1e3/fps);else _emscripten_set_main_loop_timing(1,1);Browser.mainLoop.scheduler()}if(simulateInfiniteLoop){throw"unwind"}}var Browser={mainLoop:{running:false,scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null;Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var timingMode=Browser.mainLoop.timingMode;var timingValue=Browser.mainLoop.timingValue;var func=Browser.mainLoop.func;Browser.mainLoop.func=null;setMainLoop(func,0,false,Browser.mainLoop.arg,true);_emscripten_set_main_loop_timing(timingMode,timingValue);Browser.mainLoop.scheduler()},updateStatus:function(){if(Module["setStatus"]){var message=Module["statusMessage"]||"Please wait...";var remaining=Browser.mainLoop.remainingBlockers;var expected=Browser.mainLoop.expectedBlockers;if(remaining){if(remaining=6){var curr=leftchar>>leftbits-6&63;leftbits-=6;ret+=BASE[curr]}}if(leftbits==2){ret+=BASE[(leftchar&3)<<4];ret+=PAD+PAD}else if(leftbits==4){ret+=BASE[(leftchar&15)<<2];ret+=PAD}return ret}audio.src="data:audio/x-"+name.substr(-3)+";base64,"+encode64(byteArray);finish(audio)};audio.src=url;safeSetTimeout(function(){finish(audio)},1e4)}else{return fail()}};Module["preloadPlugins"].push(audioPlugin);function pointerLockChange(){Browser.pointerLock=document["pointerLockElement"]===Module["canvas"]||document["mozPointerLockElement"]===Module["canvas"]||document["webkitPointerLockElement"]===Module["canvas"]||document["msPointerLockElement"]===Module["canvas"]}var canvas=Module["canvas"];if(canvas){canvas.requestPointerLock=canvas["requestPointerLock"]||canvas["mozRequestPointerLock"]||canvas["webkitRequestPointerLock"]||canvas["msRequestPointerLock"]||function(){};canvas.exitPointerLock=document["exitPointerLock"]||document["mozExitPointerLock"]||document["webkitExitPointerLock"]||document["msExitPointerLock"]||function(){};canvas.exitPointerLock=canvas.exitPointerLock.bind(document);document.addEventListener("pointerlockchange",pointerLockChange,false);document.addEventListener("mozpointerlockchange",pointerLockChange,false);document.addEventListener("webkitpointerlockchange",pointerLockChange,false);document.addEventListener("mspointerlockchange",pointerLockChange,false);if(Module["elementPointerLock"]){canvas.addEventListener("click",function(ev){if(!Browser.pointerLock&&Module["canvas"].requestPointerLock){Module["canvas"].requestPointerLock();ev.preventDefault()}},false)}}},createContext:function(canvas,useWebGL,setInModule,webGLContextAttributes){if(useWebGL&&Module.ctx&&canvas==Module.canvas)return Module.ctx;var ctx;var contextHandle;if(useWebGL){var contextAttributes={antialias:false,alpha:false,majorVersion:1};if(webGLContextAttributes){for(var attribute in webGLContextAttributes){contextAttributes[attribute]=webGLContextAttributes[attribute]}}if(typeof GL!=="undefined"){contextHandle=GL.createContext(canvas,contextAttributes);if(contextHandle){ctx=GL.getContext(contextHandle).GLctx}}}else{ctx=canvas.getContext("2d")}if(!ctx)return null;if(setInModule){if(!useWebGL)assert(typeof GLctx==="undefined","cannot set in module if GLctx is used, but we are a non-GL context that would replace it");Module.ctx=ctx;if(useWebGL)GL.makeContextCurrent(contextHandle);Module.useWebGL=useWebGL;Browser.moduleContextCreatedCallbacks.forEach(function(callback){callback()});Browser.init()}return ctx},destroyContext:function(canvas,useWebGL,setInModule){},fullscreenHandlersInstalled:false,lockPointer:undefined,resizeCanvas:undefined,requestFullscreen:function(lockPointer,resizeCanvas){Browser.lockPointer=lockPointer;Browser.resizeCanvas=resizeCanvas;if(typeof Browser.lockPointer==="undefined")Browser.lockPointer=true;if(typeof Browser.resizeCanvas==="undefined")Browser.resizeCanvas=false;var canvas=Module["canvas"];function fullscreenChange(){Browser.isFullscreen=false;var canvasContainer=canvas.parentNode;if((document["fullscreenElement"]||document["mozFullScreenElement"]||document["msFullscreenElement"]||document["webkitFullscreenElement"]||document["webkitCurrentFullScreenElement"])===canvasContainer){canvas.exitFullscreen=Browser.exitFullscreen;if(Browser.lockPointer)canvas.requestPointerLock();Browser.isFullscreen=true;if(Browser.resizeCanvas){Browser.setFullscreenCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}else{canvasContainer.parentNode.insertBefore(canvas,canvasContainer);canvasContainer.parentNode.removeChild(canvasContainer);if(Browser.resizeCanvas){Browser.setWindowedCanvasSize()}else{Browser.updateCanvasDimensions(canvas)}}if(Module["onFullScreen"])Module["onFullScreen"](Browser.isFullscreen);if(Module["onFullscreen"])Module["onFullscreen"](Browser.isFullscreen)}if(!Browser.fullscreenHandlersInstalled){Browser.fullscreenHandlersInstalled=true;document.addEventListener("fullscreenchange",fullscreenChange,false);document.addEventListener("mozfullscreenchange",fullscreenChange,false);document.addEventListener("webkitfullscreenchange",fullscreenChange,false);document.addEventListener("MSFullscreenChange",fullscreenChange,false)}var canvasContainer=document.createElement("div");canvas.parentNode.insertBefore(canvasContainer,canvas);canvasContainer.appendChild(canvas);canvasContainer.requestFullscreen=canvasContainer["requestFullscreen"]||canvasContainer["mozRequestFullScreen"]||canvasContainer["msRequestFullscreen"]||(canvasContainer["webkitRequestFullscreen"]?function(){canvasContainer["webkitRequestFullscreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null)||(canvasContainer["webkitRequestFullScreen"]?function(){canvasContainer["webkitRequestFullScreen"](Element["ALLOW_KEYBOARD_INPUT"])}:null);canvasContainer.requestFullscreen()},exitFullscreen:function(){if(!Browser.isFullscreen){return false}var CFS=document["exitFullscreen"]||document["cancelFullScreen"]||document["mozCancelFullScreen"]||document["msExitFullscreen"]||document["webkitCancelFullScreen"]||function(){};CFS.apply(document,[]);return true},nextRAF:0,fakeRequestAnimationFrame:function(func){var now=Date.now();if(Browser.nextRAF===0){Browser.nextRAF=now+1e3/60}else{while(now+2>=Browser.nextRAF){Browser.nextRAF+=1e3/60}}var delay=Math.max(Browser.nextRAF-now,0);setTimeout(func,delay)},requestAnimationFrame:function(func){if(typeof requestAnimationFrame==="function"){requestAnimationFrame(func);return}var RAF=Browser.fakeRequestAnimationFrame;RAF(func)},safeSetTimeout:function(func){return safeSetTimeout(func)},safeRequestAnimationFrame:function(func){return Browser.requestAnimationFrame(function(){callUserCallback(func)})},getMimetype:function(name){return{"jpg":"image/jpeg","jpeg":"image/jpeg","png":"image/png","bmp":"image/bmp","ogg":"audio/ogg","wav":"audio/wav","mp3":"audio/mpeg"}[name.substr(name.lastIndexOf(".")+1)]},getUserMedia:function(func){if(!window.getUserMedia){window.getUserMedia=navigator["getUserMedia"]||navigator["mozGetUserMedia"]}window.getUserMedia(func)},getMovementX:function(event){return event["movementX"]||event["mozMovementX"]||event["webkitMovementX"]||0},getMovementY:function(event){return event["movementY"]||event["mozMovementY"]||event["webkitMovementY"]||0},getMouseWheelDelta:function(event){var delta=0;switch(event.type){case"DOMMouseScroll":delta=event.detail/3;break;case"mousewheel":delta=event.wheelDelta/120;break;case"wheel":delta=event.deltaY;switch(event.deltaMode){case 0:delta/=100;break;case 1:delta/=3;break;case 2:delta*=80;break;default:throw"unrecognized mouse wheel delta mode: "+event.deltaMode}break;default:throw"unrecognized mouse wheel event: "+event.type}return delta},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(event){if(Browser.pointerLock){if(event.type!="mousemove"&&"mozMovementX"in event){Browser.mouseMovementX=Browser.mouseMovementY=0}else{Browser.mouseMovementX=Browser.getMovementX(event);Browser.mouseMovementY=Browser.getMovementY(event)}if(typeof SDL!="undefined"){Browser.mouseX=SDL.mouseX+Browser.mouseMovementX;Browser.mouseY=SDL.mouseY+Browser.mouseMovementY}else{Browser.mouseX+=Browser.mouseMovementX;Browser.mouseY+=Browser.mouseMovementY}}else{var rect=Module["canvas"].getBoundingClientRect();var cw=Module["canvas"].width;var ch=Module["canvas"].height;var scrollX=typeof window.scrollX!=="undefined"?window.scrollX:window.pageXOffset;var scrollY=typeof window.scrollY!=="undefined"?window.scrollY:window.pageYOffset;if(event.type==="touchstart"||event.type==="touchend"||event.type==="touchmove"){var touch=event.touch;if(touch===undefined){return}var adjustedX=touch.pageX-(scrollX+rect.left);var adjustedY=touch.pageY-(scrollY+rect.top);adjustedX=adjustedX*(cw/rect.width);adjustedY=adjustedY*(ch/rect.height);var coords={x:adjustedX,y:adjustedY};if(event.type==="touchstart"){Browser.lastTouches[touch.identifier]=coords;Browser.touches[touch.identifier]=coords}else if(event.type==="touchend"||event.type==="touchmove"){var last=Browser.touches[touch.identifier];if(!last)last=coords;Browser.lastTouches[touch.identifier]=last;Browser.touches[touch.identifier]=coords}return}var x=event.pageX-(scrollX+rect.left);var y=event.pageY-(scrollY+rect.top);x=x*(cw/rect.width);y=y*(ch/rect.height);Browser.mouseMovementX=x-Browser.mouseX;Browser.mouseMovementY=y-Browser.mouseY;Browser.mouseX=x;Browser.mouseY=y}},resizeListeners:[],updateResizeListeners:function(){var canvas=Module["canvas"];Browser.resizeListeners.forEach(function(listener){listener(canvas.width,canvas.height)})},setCanvasSize:function(width,height,noUpdates){var canvas=Module["canvas"];Browser.updateCanvasDimensions(canvas,width,height);if(!noUpdates)Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags|8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL!="undefined"){var flags=HEAPU32[SDL.screen>>2];flags=flags&~8388608;HEAP32[SDL.screen>>2]=flags}Browser.updateCanvasDimensions(Module["canvas"]);Browser.updateResizeListeners()},updateCanvasDimensions:function(canvas,wNative,hNative){if(wNative&&hNative){canvas.widthNative=wNative;canvas.heightNative=hNative}else{wNative=canvas.widthNative;hNative=canvas.heightNative}var w=wNative;var h=hNative;if(Module["forcedAspectRatio"]&&Module["forcedAspectRatio"]>0){if(w/h=0&&charCode<=31)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.charFunc,a1,a2])})(GLFW.active.id,charCode)},onKeyChanged:function(keyCode,status){if(!GLFW.active)return;var key=GLFW.DOMToGLFWKeyCode(keyCode);if(key==-1)return;var repeat=status&&GLFW.active.keys[key];GLFW.active.keys[key]=status;GLFW.active.domKeys[keyCode]=status;if(!GLFW.active.keyFunc)return;if(repeat)status=2;(function(a1,a2,a3,a4,a5){dynCall_viiiii.apply(null,[GLFW.active.keyFunc,a1,a2,a3,a4,a5])})(GLFW.active.id,key,keyCode,status,GLFW.getModBits(GLFW.active))},onGamepadConnected:function(event){GLFW.refreshJoysticks()},onGamepadDisconnected:function(event){GLFW.refreshJoysticks()},onKeydown:function(event){GLFW.onKeyChanged(event.keyCode,1);if(event.keyCode===8||event.keyCode===9){event.preventDefault()}},onKeyup:function(event){GLFW.onKeyChanged(event.keyCode,0)},onBlur:function(event){if(!GLFW.active)return;for(var i=0;i0){if(eventButton==1){eventButton=2}else{eventButton=1}}return eventButton},onMouseenter:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,1)},onMouseleave:function(event){if(!GLFW.active)return;if(event.target!=Module["canvas"]||!GLFW.active.cursorEnterFunc)return;(function(a1,a2){dynCall_vii.apply(null,[GLFW.active.cursorEnterFunc,a1,a2])})(GLFW.active.id,0)},onMouseButtonChanged:function(event,status){if(!GLFW.active)return;Browser.calculateMouseEvent(event);if(event.target!=Module["canvas"])return;var eventButton=GLFW.DOMToGLFWMouseButton(event);if(status==1){GLFW.active.buttons|=1<0?Math.max(delta,1):Math.min(delta,-1);GLFW.wheelPos+=delta;if(!GLFW.active||!GLFW.active.scrollFunc||event.target!=Module["canvas"])return;var sx=0;var sy=0;if(event.type=="mousewheel"){sx=event.wheelDeltaX;sy=event.wheelDeltaY}else{sx=event.deltaX;sy=event.deltaY}(function(a1,a2,a3){dynCall_vidd.apply(null,[GLFW.active.scrollFunc,a1,a2,a3])})(GLFW.active.id,sx,sy);event.preventDefault()},onCanvasResize:function(width,height){if(!GLFW.active)return;var resizeNeeded=true;if(document["fullscreen"]||document["fullScreen"]||document["mozFullScreen"]||document["webkitIsFullScreen"]){GLFW.active.storedX=GLFW.active.x;GLFW.active.storedY=GLFW.active.y;GLFW.active.storedWidth=GLFW.active.width;GLFW.active.storedHeight=GLFW.active.height;GLFW.active.x=GLFW.active.y=0;GLFW.active.width=screen.width;GLFW.active.height=screen.height;GLFW.active.fullscreen=true}else if(GLFW.active.fullscreen==true){GLFW.active.x=GLFW.active.storedX;GLFW.active.y=GLFW.active.storedY;GLFW.active.width=GLFW.active.storedWidth;GLFW.active.height=GLFW.active.storedHeight;GLFW.active.fullscreen=false}else if(GLFW.active.width!=width||GLFW.active.height!=height){GLFW.active.width=width;GLFW.active.height=height}else{resizeNeeded=false}if(resizeNeeded){Browser.setCanvasSize(GLFW.active.width,GLFW.active.height,true);GLFW.onWindowSizeChanged();GLFW.onFramebufferSizeChanged()}},onWindowSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.windowSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},onFramebufferSizeChanged:function(){if(!GLFW.active)return;if(!GLFW.active.framebufferSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[GLFW.active.framebufferSizeFunc,a1,a2,a3])})(GLFW.active.id,GLFW.active.width,GLFW.active.height)},getTime:function(){return _emscripten_get_now()/1e3},setWindowTitle:function(winid,title){var win=GLFW.WindowFromId(winid);if(!win)return;win.title=UTF8ToString(title);if(GLFW.active.id==win.id){document.title=win.title}},setJoystickCallback:function(cbfun){GLFW.joystickFunc=cbfun;GLFW.refreshJoysticks()},joys:{},lastGamepadState:null,lastGamepadStateFrame:null,refreshJoysticks:function(){if(Browser.mainLoop.currentFrameNumber!==GLFW.lastGamepadStateFrame||!Browser.mainLoop.currentFrameNumber){GLFW.lastGamepadState=navigator.getGamepads?navigator.getGamepads():navigator.webkitGetGamepads?navigator.webkitGetGamepads:null;GLFW.lastGamepadStateFrame=Browser.mainLoop.currentFrameNumber;for(var joy=0;joy0},getCursorPos:function(winid,x,y){setValue(x,Browser.mouseX,"double");setValue(y,Browser.mouseY,"double")},getMousePos:function(winid,x,y){setValue(x,Browser.mouseX,"i32");setValue(y,Browser.mouseY,"i32")},setCursorPos:function(winid,x,y){},getWindowPos:function(winid,x,y){var wx=0;var wy=0;var win=GLFW.WindowFromId(winid);if(win){wx=win.x;wy=win.y}if(x){setValue(x,wx,"i32")}if(y){setValue(y,wy,"i32")}},setWindowPos:function(winid,x,y){var win=GLFW.WindowFromId(winid);if(!win)return;win.x=x;win.y=y},getWindowSize:function(winid,width,height){var ww=0;var wh=0;var win=GLFW.WindowFromId(winid);if(win){ww=win.width;wh=win.height}if(width){setValue(width,ww,"i32")}if(height){setValue(height,wh,"i32")}},setWindowSize:function(winid,width,height){var win=GLFW.WindowFromId(winid);if(!win)return;if(GLFW.active.id==win.id){if(width==screen.width&&height==screen.height){Browser.requestFullscreen()}else{Browser.exitFullscreen();Browser.setCanvasSize(width,height);win.width=width;win.height=height}}if(!win.windowSizeFunc)return;(function(a1,a2,a3){dynCall_viii.apply(null,[win.windowSizeFunc,a1,a2,a3])})(win.id,width,height)},createWindow:function(width,height,title,monitor,share){var i,id;for(i=0;i0)throw"glfwCreateWindow only supports one window at time currently";id=i+1;if(width<=0||height<=0)return 0;if(monitor){Browser.requestFullscreen()}else{Browser.setCanvasSize(width,height)}for(i=0;i0;if(i==GLFW.windows.length){if(useWebGL){var contextAttributes={antialias:GLFW.hints[135181]>1,depth:GLFW.hints[135173]>0,stencil:GLFW.hints[135174]>0,alpha:GLFW.hints[135172]>0};Module.ctx=Browser.createContext(Module["canvas"],true,true,contextAttributes)}else{Browser.init()}}if(!Module.ctx&&useWebGL)return 0;var win=new GLFW_Window(id,width,height,title,monitor,share);if(id-1==GLFW.windows.length){GLFW.windows.push(win)}else{GLFW.windows[id-1]=win}GLFW.active=win;return win.id},destroyWindow:function(winid){var win=GLFW.WindowFromId(winid);if(!win)return;if(win.windowCloseFunc)(function(a1){dynCall_vi.apply(null,[win.windowCloseFunc,a1])})(win.id);GLFW.windows[win.id-1]=null;if(GLFW.active.id==win.id)GLFW.active=null;for(var i=0;i>2]=ret}return ret}function runAndAbortIfError(func){try{return func()}catch(e){abort(e)}}var Asyncify={State:{Normal:0,Unwinding:1,Rewinding:2,Disabled:3},state:0,StackSize:4096,currData:null,handleSleepReturnValue:0,exportCallStack:[],callStackNameToId:{},callStackIdToName:{},callStackId:0,asyncPromiseHandlers:null,sleepCallbacks:[],getCallStackId:function(funcName){var id=Asyncify.callStackNameToId[funcName];if(id===undefined){id=Asyncify.callStackId++;Asyncify.callStackNameToId[funcName]=id;Asyncify.callStackIdToName[id]=funcName}return id},instrumentWasmExports:function(exports){var ret={};for(var x in exports){(function(x){var original=exports[x];if(typeof original==="function"){ret[x]=function(){Asyncify.exportCallStack.push(x);try{return original.apply(null,arguments)}finally{if(!ABORT){var y=Asyncify.exportCallStack.pop();assert(y===x);Asyncify.maybeStopUnwind()}}}}else{ret[x]=original}})(x)}return ret},maybeStopUnwind:function(){if(Asyncify.currData&&Asyncify.state===Asyncify.State.Unwinding&&Asyncify.exportCallStack.length===0){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_unwind"]);if(typeof Fibers!=="undefined"){Fibers.trampoline()}}},whenDone:function(){return new Promise(function(resolve,reject){Asyncify.asyncPromiseHandlers={resolve:resolve,reject:reject}})},allocateData:function(){var ptr=_malloc(12+Asyncify.StackSize);Asyncify.setDataHeader(ptr,ptr+12,Asyncify.StackSize);Asyncify.setDataRewindFunc(ptr);return ptr},setDataHeader:function(ptr,stack,stackSize){HEAP32[ptr>>2]=stack;HEAP32[ptr+4>>2]=stack+stackSize},setDataRewindFunc:function(ptr){var bottomOfCallStack=Asyncify.exportCallStack[0];var rewindId=Asyncify.getCallStackId(bottomOfCallStack);HEAP32[ptr+8>>2]=rewindId},getDataRewindFunc:function(ptr){var id=HEAP32[ptr+8>>2];var name=Asyncify.callStackIdToName[id];var func=Module["asm"][name];return func},doRewind:function(ptr){var start=Asyncify.getDataRewindFunc(ptr);return start()},handleSleep:function(startAsync){if(ABORT)return;if(Asyncify.state===Asyncify.State.Normal){var reachedCallback=false;var reachedAfterCallback=false;startAsync(function(handleSleepReturnValue){if(ABORT)return;Asyncify.handleSleepReturnValue=handleSleepReturnValue||0;reachedCallback=true;if(!reachedAfterCallback){return}Asyncify.state=Asyncify.State.Rewinding;runAndAbortIfError(function(){Module["_asyncify_start_rewind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.resume()}var asyncWasmReturnValue,isError=false;try{asyncWasmReturnValue=Asyncify.doRewind(Asyncify.currData)}catch(err){asyncWasmReturnValue=err;isError=true}var handled=false;if(!Asyncify.currData){var asyncPromiseHandlers=Asyncify.asyncPromiseHandlers;if(asyncPromiseHandlers){Asyncify.asyncPromiseHandlers=null;(isError?asyncPromiseHandlers.reject:asyncPromiseHandlers.resolve)(asyncWasmReturnValue);handled=true}}if(isError&&!handled){throw asyncWasmReturnValue}});reachedAfterCallback=true;if(!reachedCallback){Asyncify.state=Asyncify.State.Unwinding;Asyncify.currData=Asyncify.allocateData();runAndAbortIfError(function(){Module["_asyncify_start_unwind"](Asyncify.currData)});if(typeof Browser!=="undefined"&&Browser.mainLoop.func){Browser.mainLoop.pause()}}}else if(Asyncify.state===Asyncify.State.Rewinding){Asyncify.state=Asyncify.State.Normal;runAndAbortIfError(Module["_asyncify_stop_rewind"]);_free(Asyncify.currData);Asyncify.currData=null;Asyncify.sleepCallbacks.forEach(function(func){callUserCallback(func)})}else{abort("invalid state: "+Asyncify.state)}return Asyncify.handleSleepReturnValue},handleAsync:function(startAsync){return Asyncify.handleSleep(function(wakeUp){startAsync().then(wakeUp)})}};var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var GLctx;for(var i=0;i<32;++i)tempFixedLengthArray.push(new Array(i));var miniTempWebGLFloatBuffersStorage=new Float32Array(288);for(var i=0;i<288;++i){miniTempWebGLFloatBuffers[i]=miniTempWebGLFloatBuffersStorage.subarray(0,i+1)}var __miniTempWebGLIntBuffersStorage=new Int32Array(288);for(var i=0;i<288;++i){__miniTempWebGLIntBuffers[i]=__miniTempWebGLIntBuffersStorage.subarray(0,i+1)}Module["requestFullscreen"]=function Module_requestFullscreen(lockPointer,resizeCanvas){Browser.requestFullscreen(lockPointer,resizeCanvas)};Module["requestAnimationFrame"]=function Module_requestAnimationFrame(func){Browser.requestAnimationFrame(func)};Module["setCanvasSize"]=function Module_setCanvasSize(width,height,noUpdates){Browser.setCanvasSize(width,height,noUpdates)};Module["pauseMainLoop"]=function Module_pauseMainLoop(){Browser.mainLoop.pause()};Module["resumeMainLoop"]=function Module_resumeMainLoop(){Browser.mainLoop.resume()};Module["getUserMedia"]=function Module_getUserMedia(){Browser.getUserMedia()};Module["createContext"]=function Module_createContext(canvas,useWebGL,setInModule,webGLContextAttributes){return Browser.createContext(canvas,useWebGL,setInModule,webGLContextAttributes)};function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"T":GetCanvasHeight,"U":GetCanvasWidth,"a":___assert_fail,"Ta":___sys_chdir,"H":___sys_fcntl64,"Sa":___sys_getcwd,"Va":___sys_ioctl,"Xa":___sys_open,"R":_emscripten_get_element_css_size,"ge":_emscripten_get_gamepad_status,"he":_emscripten_get_num_gamepads,"Md":_emscripten_glActiveTexture,"Ld":_emscripten_glAttachShader,"ae":_emscripten_glBeginQueryEXT,"Kd":_emscripten_glBindAttribLocation,"Jd":_emscripten_glBindBuffer,"Id":_emscripten_glBindFramebuffer,"Hd":_emscripten_glBindRenderbuffer,"Gd":_emscripten_glBindTexture,"Ud":_emscripten_glBindVertexArrayOES,"Fd":_emscripten_glBlendColor,"Ed":_emscripten_glBlendEquation,"Dd":_emscripten_glBlendEquationSeparate,"Cd":_emscripten_glBlendFunc,"Bd":_emscripten_glBlendFuncSeparate,"Ad":_emscripten_glBufferData,"zd":_emscripten_glBufferSubData,"yd":_emscripten_glCheckFramebufferStatus,"xd":_emscripten_glClear,"wd":_emscripten_glClearColor,"vd":_emscripten_glClearDepthf,"ud":_emscripten_glClearStencil,"td":_emscripten_glColorMask,"sd":_emscripten_glCompileShader,"rd":_emscripten_glCompressedTexImage2D,"qd":_emscripten_glCompressedTexSubImage2D,"pd":_emscripten_glCopyTexImage2D,"od":_emscripten_glCopyTexSubImage2D,"nd":_emscripten_glCreateProgram,"md":_emscripten_glCreateShader,"ld":_emscripten_glCullFace,"kd":_emscripten_glDeleteBuffers,"jd":_emscripten_glDeleteFramebuffers,"id":_emscripten_glDeleteProgram,"ce":_emscripten_glDeleteQueriesEXT,"hd":_emscripten_glDeleteRenderbuffers,"gd":_emscripten_glDeleteShader,"fd":_emscripten_glDeleteTextures,"Td":_emscripten_glDeleteVertexArraysOES,"dd":_emscripten_glDepthFunc,"cd":_emscripten_glDepthMask,"bd":_emscripten_glDepthRangef,"ad":_emscripten_glDetachShader,"$c":_emscripten_glDisable,"_c":_emscripten_glDisableVertexAttribArray,"Zc":_emscripten_glDrawArrays,"Pd":_emscripten_glDrawArraysInstancedANGLE,"Qd":_emscripten_glDrawBuffersWEBGL,"Yc":_emscripten_glDrawElements,"Od":_emscripten_glDrawElementsInstancedANGLE,"Xc":_emscripten_glEnable,"Wc":_emscripten_glEnableVertexAttribArray,"$d":_emscripten_glEndQueryEXT,"Vc":_emscripten_glFinish,"Uc":_emscripten_glFlush,"Tc":_emscripten_glFramebufferRenderbuffer,"Sc":_emscripten_glFramebufferTexture2D,"Rc":_emscripten_glFrontFace,"Qc":_emscripten_glGenBuffers,"Oc":_emscripten_glGenFramebuffers,"de":_emscripten_glGenQueriesEXT,"Nc":_emscripten_glGenRenderbuffers,"Mc":_emscripten_glGenTextures,"Sd":_emscripten_glGenVertexArraysOES,"Pc":_emscripten_glGenerateMipmap,"Lc":_emscripten_glGetActiveAttrib,"Kc":_emscripten_glGetActiveUniform,"Jc":_emscripten_glGetAttachedShaders,"Ic":_emscripten_glGetAttribLocation,"Hc":_emscripten_glGetBooleanv,"Gc":_emscripten_glGetBufferParameteriv,"Fc":_emscripten_glGetError,"Ec":_emscripten_glGetFloatv,"Dc":_emscripten_glGetFramebufferAttachmentParameteriv,"Cc":_emscripten_glGetIntegerv,"zc":_emscripten_glGetProgramInfoLog,"Ac":_emscripten_glGetProgramiv,"Wd":_emscripten_glGetQueryObjecti64vEXT,"Yd":_emscripten_glGetQueryObjectivEXT,"Vd":_emscripten_glGetQueryObjectui64vEXT,"Xd":_emscripten_glGetQueryObjectuivEXT,"Zd":_emscripten_glGetQueryivEXT,"yc":_emscripten_glGetRenderbufferParameteriv,"wc":_emscripten_glGetShaderInfoLog,"vc":_emscripten_glGetShaderPrecisionFormat,"uc":_emscripten_glGetShaderSource,"xc":_emscripten_glGetShaderiv,"tc":_emscripten_glGetString,"sc":_emscripten_glGetTexParameterfv,"rc":_emscripten_glGetTexParameteriv,"nc":_emscripten_glGetUniformLocation,"pc":_emscripten_glGetUniformfv,"oc":_emscripten_glGetUniformiv,"kc":_emscripten_glGetVertexAttribPointerv,"mc":_emscripten_glGetVertexAttribfv,"lc":_emscripten_glGetVertexAttribiv,"jc":_emscripten_glHint,"ic":_emscripten_glIsBuffer,"hc":_emscripten_glIsEnabled,"gc":_emscripten_glIsFramebuffer,"ec":_emscripten_glIsProgram,"be":_emscripten_glIsQueryEXT,"dc":_emscripten_glIsRenderbuffer,"cc":_emscripten_glIsShader,"bc":_emscripten_glIsTexture,"Rd":_emscripten_glIsVertexArrayOES,"ac":_emscripten_glLineWidth,"$b":_emscripten_glLinkProgram,"_b":_emscripten_glPixelStorei,"Zb":_emscripten_glPolygonOffset,"_d":_emscripten_glQueryCounterEXT,"Yb":_emscripten_glReadPixels,"Xb":_emscripten_glReleaseShaderCompiler,"Vb":_emscripten_glRenderbufferStorage,"Ub":_emscripten_glSampleCoverage,"Tb":_emscripten_glScissor,"Sb":_emscripten_glShaderBinary,"Rb":_emscripten_glShaderSource,"Qb":_emscripten_glStencilFunc,"Pb":_emscripten_glStencilFuncSeparate,"Ob":_emscripten_glStencilMask,"Nb":_emscripten_glStencilMaskSeparate,"Mb":_emscripten_glStencilOp,"Kb":_emscripten_glStencilOpSeparate,"Jb":_emscripten_glTexImage2D,"Ib":_emscripten_glTexParameterf,"Hb":_emscripten_glTexParameterfv,"Gb":_emscripten_glTexParameteri,"Fb":_emscripten_glTexParameteriv,"Eb":_emscripten_glTexSubImage2D,"Db":_emscripten_glUniform1f,"Cb":_emscripten_glUniform1fv,"Bb":_emscripten_glUniform1i,"zb":_emscripten_glUniform1iv,"yb":_emscripten_glUniform2f,"xb":_emscripten_glUniform2fv,"wb":_emscripten_glUniform2i,"vb":_emscripten_glUniform2iv,"ub":_emscripten_glUniform3f,"tb":_emscripten_glUniform3fv,"sb":_emscripten_glUniform3i,"rb":_emscripten_glUniform3iv,"qb":_emscripten_glUniform4f,"ob":_emscripten_glUniform4fv,"nb":_emscripten_glUniform4i,"mb":_emscripten_glUniform4iv,"lb":_emscripten_glUniformMatrix2fv,"kb":_emscripten_glUniformMatrix3fv,"jb":_emscripten_glUniformMatrix4fv,"ib":_emscripten_glUseProgram,"hb":_emscripten_glValidateProgram,"gb":_emscripten_glVertexAttrib1f,"fb":_emscripten_glVertexAttrib1fv,"db":_emscripten_glVertexAttrib2f,"cb":_emscripten_glVertexAttrib2fv,"bb":_emscripten_glVertexAttrib3f,"ab":_emscripten_glVertexAttrib3fv,"$a":_emscripten_glVertexAttrib4f,"_a":_emscripten_glVertexAttrib4fv,"Nd":_emscripten_glVertexAttribDivisorANGLE,"Za":_emscripten_glVertexAttribPointer,"Ya":_emscripten_glViewport,"Pa":_emscripten_memcpy_big,"Qa":_emscripten_resize_heap,"N":_emscripten_run_script,"ie":_emscripten_sample_gamepad_data,"S":_emscripten_set_canvas_element_size,"ra":_emscripten_set_click_callback_on_thread,"la":_emscripten_set_gamepadconnected_callback_on_thread,"ka":_emscripten_set_gamepaddisconnected_callback_on_thread,"sa":_emscripten_set_resize_callback_on_thread,"na":_emscripten_set_touchcancel_callback_on_thread,"pa":_emscripten_set_touchend_callback_on_thread,"oa":_emscripten_set_touchmove_callback_on_thread,"qa":_emscripten_set_touchstart_callback_on_thread,"P":_emscripten_sleep,"Ra":_emscripten_thread_sleep,"ee":_exit,"I":_fd_close,"Ua":_fd_read,"Oa":_fd_seek,"G":_fd_write,"q":_glActiveTexture,"y":_glAttachShader,"i":_glBindAttribLocation,"b":_glBindBuffer,"e":_glBindTexture,"Bc":_glBlendFunc,"j":_glBufferData,"t":_glBufferSubData,"J":_glClear,"K":_glClearColor,"Lb":_glClearDepthf,"Ka":_glCompileShader,"Wa":_glCompressedTexImage2D,"Ia":_glCreateProgram,"Ma":_glCreateShader,"fc":_glCullFace,"m":_glDeleteBuffers,"C":_glDeleteProgram,"D":_glDeleteShader,"F":_glDeleteTextures,"qc":_glDepthFunc,"E":_glDetachShader,"u":_glDisable,"f":_glDisableVertexAttribArray,"M":_glDrawArrays,"L":_glDrawElements,"p":_glEnable,"c":_glEnableVertexAttribArray,"Wb":_glFrontFace,"k":_glGenBuffers,"pb":_glGenTextures,"s":_glGetAttribLocation,"ed":_glGetFloatv,"Ga":_glGetProgramInfoLog,"A":_glGetProgramiv,"Ja":_glGetShaderInfoLog,"z":_glGetShaderiv,"l":_glGetString,"r":_glGetUniformLocation,"Ha":_glLinkProgram,"Ab":_glPixelStorei,"Na":_glReadPixels,"La":_glShaderSource,"eb":_glTexImage2D,"o":_glTexParameteri,"Fa":_glUniform1fv,"ea":_glUniform1i,"ya":_glUniform1iv,"Ea":_glUniform2fv,"Ba":_glUniform2iv,"Da":_glUniform3fv,"Aa":_glUniform3iv,"ma":_glUniform4f,"Ca":_glUniform4fv,"za":_glUniform4iv,"B":_glUniformMatrix4fv,"n":_glUseProgram,"xa":_glVertexAttrib1fv,"wa":_glVertexAttrib2fv,"va":_glVertexAttrib3fv,"ua":_glVertexAttrib4fv,"g":_glVertexAttribPointer,"je":_glViewport,"w":_glfwCreateWindow,"ha":_glfwDefaultWindowHints,"Q":_glfwDestroyWindow,"x":_glfwGetPrimaryMonitor,"h":_glfwGetTime,"ga":_glfwGetVideoModes,"ia":_glfwInit,"W":_glfwMakeContextCurrent,"$":_glfwSetCharCallback,"X":_glfwSetCursorEnterCallback,"Z":_glfwSetCursorPosCallback,"ba":_glfwSetDropCallback,"ja":_glfwSetErrorCallback,"aa":_glfwSetKeyCallback,"_":_glfwSetMouseButtonCallback,"Y":_glfwSetScrollCallback,"ca":_glfwSetWindowFocusCallback,"da":_glfwSetWindowIconifyCallback,"fe":_glfwSetWindowShouldClose,"fa":_glfwSetWindowSizeCallback,"O":_glfwSwapBuffers,"V":_glfwSwapInterval,"v":_glfwTerminate,"d":_glfwWindowHint,"ta":_time};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["le"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["me"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["oe"]).apply(null,arguments)};var _free=Module["_free"]=function(){return(_free=Module["_free"]=Module["asm"]["pe"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["qe"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["re"]).apply(null,arguments)};var dynCall_iiii=Module["dynCall_iiii"]=function(){return(dynCall_iiii=Module["dynCall_iiii"]=Module["asm"]["se"]).apply(null,arguments)};var dynCall_vii=Module["dynCall_vii"]=function(){return(dynCall_vii=Module["dynCall_vii"]=Module["asm"]["te"]).apply(null,arguments)};var dynCall_viii=Module["dynCall_viii"]=function(){return(dynCall_viii=Module["dynCall_viii"]=Module["asm"]["ue"]).apply(null,arguments)};var dynCall_viiiii=Module["dynCall_viiiii"]=function(){return(dynCall_viiiii=Module["dynCall_viiiii"]=Module["asm"]["ve"]).apply(null,arguments)};var dynCall_viiii=Module["dynCall_viiii"]=function(){return(dynCall_viiii=Module["dynCall_viiii"]=Module["asm"]["we"]).apply(null,arguments)};var dynCall_vidd=Module["dynCall_vidd"]=function(){return(dynCall_vidd=Module["dynCall_vidd"]=Module["asm"]["xe"]).apply(null,arguments)};var dynCall_vi=Module["dynCall_vi"]=function(){return(dynCall_vi=Module["dynCall_vi"]=Module["asm"]["ye"]).apply(null,arguments)};var dynCall_v=Module["dynCall_v"]=function(){return(dynCall_v=Module["dynCall_v"]=Module["asm"]["ze"]).apply(null,arguments)};var _asyncify_start_unwind=Module["_asyncify_start_unwind"]=function(){return(_asyncify_start_unwind=Module["_asyncify_start_unwind"]=Module["asm"]["Ae"]).apply(null,arguments)};var _asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=function(){return(_asyncify_stop_unwind=Module["_asyncify_stop_unwind"]=Module["asm"]["Be"]).apply(null,arguments)};var _asyncify_start_rewind=Module["_asyncify_start_rewind"]=function(){return(_asyncify_start_rewind=Module["_asyncify_start_rewind"]=Module["asm"]["Ce"]).apply(null,arguments)};var _asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=function(){return(_asyncify_stop_rewind=Module["_asyncify_stop_rewind"]=Module["asm"]["De"]).apply(null,arguments)};Module["addRunDependency"]=addRunDependency;Module["removeRunDependency"]=removeRunDependency;Module["FS_createPath"]=FS.createPath;Module["FS_createDataFile"]=FS.createDataFile;Module["FS_createPreloadedFile"]=FS.createPreloadedFile;Module["FS_createLazyFile"]=FS.createLazyFile;Module["FS_createDevice"]=FS.createDevice;Module["FS_unlink"]=FS.unlink;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(keepRuntimeAlive()){}else{exitRuntime()}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run(); diff --git a/examples/models/models_yaw_pitch_roll.wasm b/examples/models/models_yaw_pitch_roll.wasm new file mode 100644 index 0000000..336af74 Binary files /dev/null and b/examples/models/models_yaw_pitch_roll.wasm differ -- cgit v1.2.3