From 95570c8b3cfd560a86719d59bbf176cd2f8a1bb0 Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Wed, 26 Aug 2020 12:28:06 +0100 Subject: [PATCH] Revert "Merge pull request #800 from GoogleChromeLabs/mozjpeg_dec" This reverts commit 5715fb7b1b64d0e5d51b638ccf3311408e685207, reversing changes made to 2c923e5239a3f3cbca6fa0262092c9be3a6e7060. --- codecs/mozjpeg/dec/example.html | 18 ---- codecs/mozjpeg/dec/mozjpeg_dec.cpp | 59 ----------- codecs/mozjpeg/dec/mozjpeg_dec.js | 69 ------------ codecs/mozjpeg/dec/mozjpeg_dec.wasm | Bin 140515 -> 0 bytes codecs/{mozjpeg => mozjpeg_enc}/Makefile | 2 +- codecs/{mozjpeg => mozjpeg_enc}/README.md | 0 .../{mozjpeg/enc => mozjpeg_enc}/example.html | 0 .../enc => mozjpeg_enc}/mozjpeg_enc.cpp | 28 +++++ .../enc => mozjpeg_enc}/mozjpeg_enc.d.ts | 0 .../enc => mozjpeg_enc}/mozjpeg_enc.js | 98 +++++++++--------- .../enc => mozjpeg_enc}/mozjpeg_enc.wasm | Bin 217513 -> 217799 bytes .../package-lock.json | 0 codecs/{mozjpeg => mozjpeg_enc}/package.json | 0 src/codecs/mozjpeg/encoder.ts | 4 +- 14 files changed, 80 insertions(+), 198 deletions(-) delete mode 100644 codecs/mozjpeg/dec/example.html delete mode 100644 codecs/mozjpeg/dec/mozjpeg_dec.cpp delete mode 100644 codecs/mozjpeg/dec/mozjpeg_dec.js delete mode 100644 codecs/mozjpeg/dec/mozjpeg_dec.wasm rename codecs/{mozjpeg => mozjpeg_enc}/Makefile (96%) rename codecs/{mozjpeg => mozjpeg_enc}/README.md (100%) rename codecs/{mozjpeg/enc => mozjpeg_enc}/example.html (100%) rename codecs/{mozjpeg/enc => mozjpeg_enc}/mozjpeg_enc.cpp (91%) rename codecs/{mozjpeg/enc => mozjpeg_enc}/mozjpeg_enc.d.ts (100%) rename codecs/{mozjpeg/enc => mozjpeg_enc}/mozjpeg_enc.js (54%) rename codecs/{mozjpeg/enc => mozjpeg_enc}/mozjpeg_enc.wasm (69%) rename codecs/{mozjpeg => mozjpeg_enc}/package-lock.json (100%) rename codecs/{mozjpeg => mozjpeg_enc}/package.json (100%) diff --git a/codecs/mozjpeg/dec/example.html b/codecs/mozjpeg/dec/example.html deleted file mode 100644 index 8cf396d7..00000000 --- a/codecs/mozjpeg/dec/example.html +++ /dev/null @@ -1,18 +0,0 @@ - - - diff --git a/codecs/mozjpeg/dec/mozjpeg_dec.cpp b/codecs/mozjpeg/dec/mozjpeg_dec.cpp deleted file mode 100644 index 3123bf1a..00000000 --- a/codecs/mozjpeg/dec/mozjpeg_dec.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include -#include -#include "config.h" -#include "jpeglib.h" - -extern "C" { -#include "cdjpeg.h" -} - -using namespace emscripten; - -thread_local const val Uint8ClampedArray = val::global("Uint8ClampedArray"); -thread_local const val ImageData = val::global("ImageData"); - -val decode(std::string image_in) { - uint8_t* image_buffer = (uint8_t*)image_in.c_str(); - - jpeg_decompress_struct cinfo; - jpeg_error_mgr jerr; - // Initialize the JPEG decompression object with default error handling. - cinfo.err = jpeg_std_error(&jerr); - jpeg_create_decompress(&cinfo); - - jpeg_mem_src(&cinfo, image_buffer, image_in.length()); - // Read file header, set default decompression parameters - jpeg_read_header(&cinfo, TRUE); - // Force RGBA decoding, even for grayscale images - cinfo.out_color_space = JCS_EXT_RGBA; - jpeg_start_decompress(&cinfo); - - // Prepare output buffer - size_t output_size = cinfo.output_width * cinfo.output_height * 4; - std::vector output_buffer(output_size); - auto stride = cinfo.output_width * 4; - - // Process data - auto buffer_lines_available = cinfo.output_height; - while (cinfo.output_scanline < cinfo.output_height) { - uint8_t* ptr = &output_buffer[stride * cinfo.output_scanline]; - auto lines_read = jpeg_read_scanlines(&cinfo, &ptr, buffer_lines_available); - buffer_lines_available -= lines_read; - } - jpeg_finish_decompress(&cinfo); - - // Step 7: release JPEG compression object - - auto data = Uint8ClampedArray.new_(typed_memory_view(output_buffer.size(), output_buffer.data())); - auto js_result = ImageData.new_(data, cinfo.output_width, cinfo.output_height); - - // This is an important step since it will release a good deal of memory. - jpeg_destroy_decompress(&cinfo); - - // And we're done! - return js_result; -} - -EMSCRIPTEN_BINDINGS(my_module) { - function("decode", &decode); -} diff --git a/codecs/mozjpeg/dec/mozjpeg_dec.js b/codecs/mozjpeg/dec/mozjpeg_dec.js deleted file mode 100644 index 463e0cb9..00000000 --- a/codecs/mozjpeg/dec/mozjpeg_dec.js +++ /dev/null @@ -1,69 +0,0 @@ - -var mozjpeg_dec = (function() { - var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; - if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename; - return ( -function(mozjpeg_dec) { - mozjpeg_dec = mozjpeg_dec || {}; - - -var d;d||(d=typeof mozjpeg_dec !== 'undefined' ? mozjpeg_dec : {});var aa,ba;d.ready=new Promise(function(a,b){aa=a;ba=b});var r={},t;for(t in d)d.hasOwnProperty(t)&&(r[t]=d[t]);var ca="./this.program";function u(a,b){throw b;}var v=!1,w=!1,da=!1,ea=!1;v="object"===typeof window;w="function"===typeof importScripts;da="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node;ea=!v&&!da&&!w;var x="",z,A,fa,ha; -if(da)x=w?require("path").dirname(x)+"/":__dirname+"/",z=function(a,b){fa||(fa=require("fs"));ha||(ha=require("path"));a=ha.normalize(a);return fa.readFileSync(a,b?null:"utf8")},A=function(a){a=z(a,!0);a.buffer||(a=new Uint8Array(a));a.buffer||B("Assertion failed: undefined");return a},1=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e} -function oa(a,b,c){var e=G;if(0=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}if(127>=g){if(b>=c)break;e[b++]=g}else{if(2047>=g){if(b+1>=c)break;e[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;e[b++]=224|g>>12}else{if(b+3>=c)break;e[b++]=240|g>>18;e[b++]=128|g>>12&63}e[b++]=128|g>>6&63}e[b++]=128|g&63}}e[b]=0}}var pa="undefined"!==typeof TextDecoder?new TextDecoder("utf-16le"):void 0; -function qa(a,b){var c=a>>1;for(var e=c+b/2;!(c>=e)&&H[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function ra(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;I[b>>1]=0;return b-e}function sa(a){return 2*a.length} -function ta(a,b){for(var c=0,e="";!(c>=b/4);){var f=J[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function ua(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}J[b>>2]=g;b+=4;if(b+4>c)break}J[b>>2]=0;return b-e} -function va(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var L,M,G,I,H,J,N,wa,xa;function ya(a){L=a;d.HEAP8=M=new Int8Array(a);d.HEAP16=I=new Int16Array(a);d.HEAP32=J=new Int32Array(a);d.HEAPU8=G=new Uint8Array(a);d.HEAPU16=H=new Uint16Array(a);d.HEAPU32=N=new Uint32Array(a);d.HEAPF32=wa=new Float32Array(a);d.HEAPF64=xa=new Float64Array(a)}var za=d.INITIAL_MEMORY||16777216;d.wasmMemory?F=d.wasmMemory:F=new WebAssembly.Memory({initial:za/65536,maximum:32768}); -F&&(L=F.buffer);za=L.byteLength;ya(L);J[3104]=5255456;function O(a){for(;0=b?"_"+a:a} -function Ra(a,b){a=Qa(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function Sa(a){var b=Error,c=Ra(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c} -var Ta=void 0;function W(a){throw new Ta(a);}var Ua=void 0;function Va(a,b){function c(k){k=b(k);if(k.length!==e.length)throw new Ua("Mismatched type converter count");for(var h=0;h>2])}function $a(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a} -function cb(a,b){switch(b){case 2:return function(c){return this.fromWireType(wa[c>>2])};case 3:return function(c){return this.fromWireType(xa[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function db(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Ra(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} -function eb(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function fb(a,b){var c=d;if(void 0===c[a].S){var e=c[a];c[a]=function(){c[a].S.hasOwnProperty(arguments.length)||W("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].S+")!");return c[a].S[arguments.length].apply(this,arguments)};c[a].S=[];c[a].S[e.X]=e}} -function gb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].S&&void 0!==d[a].S[c])&&W("Cannot register public name '"+a+"' twice"),fb(a,a),d.hasOwnProperty(c)&&W("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].S[c]=b):(d[a]=b,void 0!==c&&(d[a].aa=c))}function hb(a,b){for(var c=[],e=0;e>2)+e]);return c} -function ib(a,b){a=T(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return H[e>>1]};case 2:return c?function(e){return J[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var ob={}; -function pb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function qb(a,b){var c=V[a];void 0===c&&W(b+" has unknown type "+kb(a));return c}var rb={},sb={};function tb(){if(!ub){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ca||"./this.program"},b;for(b in sb)a[b]=sb[b];var c=[];for(b in a)c.push(b+"="+a[b]);ub=c}return ub} -for(var ub,vb=[null,[],[]],wb=Array(256),xb=0;256>xb;++xb)wb[xb]=String.fromCharCode(xb);Oa=wb;Ta=d.BindingError=Sa("BindingError");Ua=d.InternalError=Sa("InternalError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},T:null})},x:function(a,b){b=T(b);X(a,{name:b,fromWireType:function(c){var e= -Y[c].value;Xa(c);return e},toWireType:function(c,e){return Ya(e)},argPackAdvance:8,readValueFromPointer:Za,T:null})},g:function(a,b,c){c=Na(c);b=T(b);X(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+$a(f)+'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:cb(b,c),T:null})},l:function(a,b,c,e,f,g){var l=hb(b,c);a=T(a);f=ib(e,f);gb(a,function(){mb("Cannot call "+a+" due to unbound types", -l)},b-1);Va(l,function(k){var h=[k[0],null].concat(k.slice(1)),n=k=a,p=f,q=h.length;2>q&&W("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,C=!1,m=1;m>>k}}var h=-1!=b.indexOf("unsigned");X(a,{name:b,fromWireType:g,toWireType:function(n,p){if("number"!==typeof p&&"boolean"!==typeof p)throw new TypeError('Cannot convert "'+$a(p)+'" to '+this.name);if(pf)throw new TypeError('Passing a number "'+$a(p)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?p>>>0:p|0},argPackAdvance:8,readValueFromPointer:nb(b, -l,0!==e),T:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=T(c);X(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{Z:!0})},h:function(a,b){b=T(b);var c="std::string"===b;X(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(l==f||0==G[k]){g=g?na(G,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0), -h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++p)&1023);127>=q?++n:n=2047>=q?n+ -2:65535>=q?n+3:n+4}return n}:function(){return f.length})(),k=yb(4+l+1);N[k>>2]=l;if(c&&g)oa(f,k+4,l+1);else if(g)for(g=0;g>2],p=l(),q,y=h+4,C=0;C<=n;++C){var m=h+4+C*b;if(C==n||0==p[m>>k])y=e(y,m-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=m+b}Z(h);return q},toWireType:function(h,n){"string"!==typeof n&&W("Cannot pass non-string to C++ string type "+c);var p=g(n),q=yb(4+p+b);N[q>>2]=p>>k;f(n,q+4,p+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Za,T:function(h){Z(h)}})},j:function(a,b){b=T(b);X(a,{$:!0,name:b,argPackAdvance:0,fromWireType:function(){}, -toWireType:function(){}})},u:Xa,z:function(a){if(0===a)return Ya(pb());var b=ob[a];a=void 0===b?T(a):b;return Ya(pb()[a])},m:function(a){4>> 2) + "+g+'], "parameter '+g+ -'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(qb,d,Ya);rb[b]=f}return f(a,c,e)},s:function(){B()},r:function(a,b,c){G.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=G.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);ya(F.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},t:function(a,b){var c=0;tb().forEach(function(e,f){var g=b+c;f=J[a+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);M[f>>0]=0;c+=e.length+1});return 0},v:function(a,b){var c=tb();J[a>>2]=c.length;var e=0;c.forEach(function(f){e+=f.length+1});J[b>>2]=e;return 0},k:function(a){if(!noExitRuntime&&(la=!0,d.onExit))d.onExit(a);u(a,new ia(a))}, -w:function(){return 0},p:function(){},f:function(a,b,c,e){for(var f=0,g=0;g>2],k=J[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:F,q:function(){},table:ka}; -(function(){function a(f){d.asm=f.exports;Q--;d.monitorRunDependencies&&d.monitorRunDependencies(Q);0==Q&&(null!==Fa&&(clearInterval(Fa),Fa=null),R&&(f=R,R=null,f()))}function b(f){a(f.instance)}function c(f){return Ka().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){D("failed to asynchronously prepare wasm: "+g);B(g)})}var e={a:zb};Q++;d.monitorRunDependencies&&d.monitorRunDependencies(Q);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return D("Module.instantiateWasm callback failed with error: "+ -f),!1}(function(){if(E||"function"!==typeof WebAssembly.instantiateStreaming||Ha()||Ga("file://")||"function"!==typeof fetch)return c(b);fetch(S,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){D("wasm streaming compile failed: "+g);D("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); -var La=d.___wasm_call_ctors=function(){return(La=d.___wasm_call_ctors=d.asm.A).apply(null,arguments)},yb=d._malloc=function(){return(yb=d._malloc=d.asm.B).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.C).apply(null,arguments)},lb=d.___getTypeName=function(){return(lb=d.___getTypeName=d.asm.D).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.E).apply(null,arguments)}; -d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.F).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.G).apply(null,arguments)};d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.H).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.I).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.J).apply(null,arguments)};d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.K).apply(null,arguments)}; -d.dynCall_iiiii=function(){return(d.dynCall_iiiii=d.asm.L).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.M).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.N).apply(null,arguments)};d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.O).apply(null,arguments)};d.dynCall_viiiiiii=function(){return(d.dynCall_viiiiiii=d.asm.P).apply(null,arguments)};d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.Q).apply(null,arguments)}; -d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.R).apply(null,arguments)};var Ab;function ia(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}R=function Bb(){Ab||Cb();Ab||(R=Bb)}; -function Cb(){function a(){if(!Ab&&(Ab=!0,d.calledRun=!0,!la)){O(Ba);O(Ca);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Da.unshift(b)}O(Da)}}if(!(0-e7XtxA@Le0$0s{uTOV}tcfD#OALb3#KE`sZTxr9VO0uCh6 zet%DOpL1q3ik*CR|G0WN-CbQTPd)X#)l*eZCvUj(c9$fH`&;*-TisH^f46k2U*axZ zTGD-kiypIh;T4HVe4SKpNoiTOK}J%VF-3U}@h7Phc$JYtl?k{0km^g9xE#8*T~!iW zr-)zThnIGHP|pXFK~pMs$iVT34%vfUGPTAdJvpSF=$C|pN;qJ*2mF6=m$)~$HzaL- zzaz=`{kMtZ_d6}+yONyy@3!CXv6R~qPs+bbQhw*{egT}l!R<-9{N8T&Z?v3mvU=`F zI;1aJ`d%w_XVM~NU()3F&6d93?%!hh@3K0-*C6@#N@?EyUAMn!@ArDQ?3b5myRq*L z-?8Vr+#Sg~UHV!7kKTHOqOBv&j zZ}KN0ZH%O`hO&(Op_mG~rvCD-*>p*pn~Xp7cJxn7tWuJhREg%f{y%IB?H*13?} zo4UE=#qOJujqd8?lg{l(?sV5Azv0}@*CvlTcU|(U&Rw7UigPz4zwF$N z$s^9aI{78%UX%QybGwt1&b>DIPtLtAdDwOSBO?@C{*&$(V9EdJAMiit-{pVSzvLx9 z=Kh2Gzub{HXg8_xt{F|B|=5 zyWRJv$I`c@N7H-KBkAGvt?AwAa(d2x!GGTWtN$1OIsc6RXa7(Bv;H$s)Ia#Y_hf8;;xf5yM$r~Q5YNB#T#`}}+T zDgPe-U;S_Scl+P;kN98mzvxf;hy8!@zuRi0VgHij{vG~l_ZRL7_X+ox?%QAfd+tN-gYGnUFL}ua-22>n-6{9- z-*zwm&+a$fe|0baFYev$x7^q-eY*9J{(a7;Fu0%fvt_b5y`!J)-jUhuU1j#I<1R0g z;?G^*ho$T6Atc-UZDDDW^i96qbE5^vlQL5!cg-!`bD*Db=Dpkdx!$PPz`n2WFffuhYwtl-o=}+G~Z9QBuVLa3dGXC0_G`wet+&8 zOOuCQl!PV0{nH`eueneHCIA1kOc#0o~A zVg=bq1!dZEs>H2m=$<3H)lix0TID_iIK8pCg#2k3QWS z{p#x0sH%d-T2^D!S_4u&cIzRy1t1&YiDVw|)rGvwclVn!-&;0AbKl7W5B8g3alW{; zY-~<%=`&hKb+@};lRzB5P?XJuUNbM7gK^k?^LTPGHP0^4p$YpxvAf@<;&xSWdraU0FCXa&GFDfA|C+m0J zL+}mI_b2FM%ENd$annh#(mm9_2ZIf1sC@t+F#;Hs{0L%S-dU zCfu4+vcG|9Rgo_@7<7y~PuwT$Iy1DpOaWL-Rl~Yudme1pNs!Ua#ItP5}Tv|G1OUw0TL5An6@7A6&GW3y|PbG&eK(I3EZyz- zKVs*Yt||Qvd*kQ(sl7vxQ`G6=LwYSQ({P9~gLJqd92`vmg3yW?4~(WGmO@AA3E~&+ zkuLT#S}9#XT!*{gdZfLlkLHmwLgX)m1NPnrRifl9mZrcq-zF26j4JP{Ui+|bknsi9 zymD-a8K>i=h!@x)+%YJ&XK;7h;O;x?s_0y{7&h$fXA6BFO4aL5_8X%0#*tow`m*_+ zOVO2Oo(-FPcgiI@#-TT!`k6F#v*bdJIhqdk5{XxG zqJ^IBw?Xt=m(( zdYv-swdhBCzTbu+$cEO*fxokjK9;SVO3*N3WO^x5rYrAGF=VWpbOn0+EEdi*6ueaO zBAbFHEK?9coaFtPZ#M#fkv zM5{^cwHr%U+*tgM+mZia$7f5KETglPWmMZgW>D0S1SQZgs8h&r{LrmCA(Je_9)(cNAu zD*-!bR1n{^;^{ogN2ClcM;kJ8rD|B#4)|wa?vY3swF1e8k*ls2?Ap~QS>ct%c@+*NJ%zjGlI={BlETin_k8<<1_gr)&)*k)EnzA(EB z8AO(>%yt9f_rmYd?rNENL^Z7i;Gxo6qC(o;!*tB%Qd!uqI(DR1IhpiTN6BMKwr=J3 z^tx!!lvGr|tfzhpL|sf9=aTD9kD`c;TV0H8aS$E=aoJ((J%uR=@ zZT(+~6_iB31$a$ir71WzMZn6aK;iaEcT%*2%`#BQ?Zdl8A}Cjow_S4>ckGA^lxV(? z=#EM7<#lJ4mzk@0nHJGN8Jz=wYd}xITrjCmu0#^P*=t2?Vs{95vrB|cJq6lYkRgIm zp`SuO8zLHkgNL>Na1VyoB35^H{Yij&l^{)zVLn!7nTGz@fRajoq->cff=vm|DTcJ7 z<&;r(n8dX)7ulk@1KA*%mPWCcMU&#JnG}c2hCref3;mR-UIOW83OQ%9M{$%3m%h30 zv9Ipz`;)M){~q+=A10a}q(EO`?o@J5_~~VbAQxa*ra@NGU5hfGMWkd+@{#saOnNMu zw`MM7!WWh^EIdG@f@138GBFwK=Z&ODy%WO&py;a)ZkKZQyl|ex^uc4#qa2YITarY! zj*}LpN@+ZZe_@K30MDk^w_y=mfJ`bccFs$F!~# zmAx&tc};kEJ1tdbcN=8I*xe=D{3Y?O+~&)8w{e@_81FW1^PA$`W!wB^@owujzct=n zzRh1A@2=eDuZ(wBZSz;rvDpRd*en)K*|^b+6S_bTS3vKAEFC(H(Z*{!nhR~%N7oLK z2p;BfFC-&Lpmzl#>B*J^^O34_ho=C8QFrMp5@=*)D>XDJ6|Sgd)o|=IsFVEX#$9WP z@xT~L7}2|AUnamL`@w~~7W>J3ufcnYGjv>_1x6BLR}K%|hWkG*Q>;%1UCEfu_aOH0 zPD_+;!(-{-K~RAYw?!vwFkN>Ot z*9=9NE}PU`rq|3=mbBY3Zn_>b44Yi7dO8LXR1{A##01^eF|Yh_sXfELD60bxiJdDxBGt7t_vk{oMPM*go|BY6hUibiR)7h#N)M$fy9 z6c-U3DA+GNM1t$LAeD+_jX)&5MRP;CbCK>qK8DMR+)!^6JVu8R$B_8;S_n zqNYuwzAr(Y(m8R6(LE!B%IGgu;|Kr23;X)eZ5&s@0*ynNVhSj#Ed$EPOv(iM?Fznl zk(gknb16Bnl&*juY4F^+mPASt+B69{Eq`(Qd?@yZ_F|ugGbE&0di+#TjlEbK5 zp0pItlzd;9+;32n+1>>x(e0yo7cQFLk4)VgE^%q(*6TYHb80|-0Ek`^r$!m6HtnRocHi*Xl?W!4u?3%UBv7QnF4N72U^4zo z_{sTgV}f9M;tX~jkRi&FK1jyyC=(jC{7dA@^K&nA-KA(IbvGtL%i4b#qtBSPI_eNi zIt^exZ`}>~waiFFH;Ivs&0xdQoeYAcmQ)g0ehj5#T^ArUWp)QTF*9}5ucZZCGEh*M zq)`Q4T=zJlLHuI1@?%n#$9YkZ2EgQQcS2eu%DH~~MoDqmSpoWlutI`Cx0gzieW+oc zl7&UX9DVBU4+V+pNW&9WP_R%yP~jqzjfCqa1wQl2maw9d@SY{idagM<4j`Bw_`vdCd$j zaldF7eMolhVa*CKA-)4#s1`=>!pNS#r|IGZ{i@b z|B7eWzj~e@K|_zxGwMrc%_AqVDTXcGwIWv$;S7D0?%@W?iFN=}NXUZz=0*UxN;H=+ ztqwI&gV2P!k{HM&y^?QJ1WsQkb=YLbz=mFfWOoAea#L~|O-Z{ao4Qv^pd3EAD172Y>c ztXX8lz?iRP@36Y0C$L`1qy$Up%o!`eGTeY0HVxG7M$powK`$g6DKIG%@7)i0b6h_zMl-P{{@G4e zN-zI~`Uc)`s_fG|#uczvc=wY@U}~RqTe-5xSmGxvT{8}c_L}OpNj~XU2wk=T2wec_ z>3m>J7Z&m4Yq7O;BkJgjl2^dqtotWqR{cv^VuaAs8?nI?^27$Ma!OJgt27Pst#}C` z_iCz#dvBZ(m2MZ*40xFqn$$&DOJg7zA=@x~Anqpc2G zbhL<`SlMDWY*DDCuxCW#IJR;eGAWt?dKk(YRLb3GI|vekRRV;)MnX=F5Ih1lsAf`T8dNzbnpz^2 zcP}jM95=^dO&fuiwpx}(6EBUU07h*TVmlfI+8K<3iHng&jci4_pebZBN0=|xokCsJ zbcpe1V=ljlDIWiow8oe_k+>g{IGk3IxX>{|;-lEG!2n^eK^uUWy+R(Of@W%kP4nO~ z7u{C0E6Oz-QknHjqK7+~2nj>0zcqW}ix{vcb&9^BVyJ~BN=+=d#omB1H8_=r2%%Au z_ca<#r5P8Bijwd+t;n)eot8YX{=>sayC|{r{v$vua8gD`7P~jQ6;wQe;U0yu5AWta znwD4sGCNASyG)8U!!2fqfCQYr0tk`I9g7iYI<+9L2AU4Lm?u-;LkS;n8D`-DAUbOZ zB8S{jh_5cwK^41kuap9O57tER>=DYWO4eNwjj>H%w+YB5(MKF8i~)$mhEeNas}kzy zuKBfEmjPVkSAN9-UQ1`LZLvWbM=B0r`~`hBTnWmz9xH8H8T7^Ieuey{Tav$Vl;yMZ z0||`LlO)Imx@>}#zC#JI^MJ<=s8z_82B?)(%KNl>pH_$w4mt}m*HBw*+rUT!0kzM` z4EYh1)jlT#ZZ)q$Gt_RU+O1Su|CPQUII0GP0KPGAq%I3imU{G_$uX%;ENX?3n-OoO zbnfW11#hO=7~M6znc0X}2_(sz34z%R+N}0Al~;CqQ-gvy6bqT_6sug`Omn|Bqsj~By#8vR6HfrAL}M;%0XCTj;#dSM3< z93Tf#Bf6zl_=)NX6?#lQqBu{Mj|jI#oF@zZ=>M|G4Jzn7=a9KzH2snGB=%*sURd6y*oi<@$=kFN-l^37z&u_<;z58} z_!@0@G4Y*+Z#D5fA6|=GXTVU3^Ei6aFk>!mxtBJ3bLE*BwEMPF=}sHzyq4~%l?+)n zKya{75?babrwGi1!Y7&jJMBy{(Ii{SghoY`$N^cxm7_-^A+E_Py2R0O0r#cGkooPX z`%<$7dIm3>q|OC^$qwien&{HL(IwJIh{uMz6ySU$6k4qOmzn&R)bp%!>ov&}$&O~L z=hn>qM(5Us17Ns>o;^yJ%;K8^-zD}}MVHdC>R4uUiTH*taSF(3NsEY_=o%c* zWp)jgXcFm?+?K1NOA}>AmzeZMmxd6n1Xft$(w1zeUTl*{t;X8gA0Vxg+76$-5sjn{YL+Fjs5tYILGu!a%8bqCf!nus-Q##fOft&EbSxYukph9L^SiX_J( zNuE!Tw)Ppb8bPw3L_iw!%&?)aiXh2TTMPKBB#0}5v=^Y&M}kBIuOvvc%xZ$feOl40 z=5LW8*=SrjbJlQ8n-56nceqlbW4er@ja3IgiK1;pTmzj+X7Pu}kr9sL!T`ySoCbbE#0?hf=?D; zveOW8=ZFqNe9lozs@;0*ZSgGHu(Rd2*aiyI#Xs!H%j%6kcO9tHKYcFI_V{e>s-xOD zIhP%)^DJL=z~o2${LH!J+sN67IUB>A+QNUtvTEDDjRTmNqo)skPhhLEwv#{jJzV7E zDsGag@G|YE@!ENe>R7q0=H6%Moo%Z*qD2M_nra^nEvo|ivve55;n=d_$~QV^n^Y5= zU<^14C~S-JQmTP}Q%sh|z-!n&AI7fDbKQdN;;SysZ>KCcTb2`zk;gf5DqCbE(;E!a zl9}xNRf1fT%O<0|Rt6|+TZa${^prQn%V>A`kd}AOnVF*58AfFBGP&rNy*2=SoO4!# z{j@&Zec#_cnc7yM&?+{I9oogKF=5tgMR4S$(@SOsmX-bt`#Eu5KfM|GSOxRpa%O#& zJMK);W?gn`uy01gh$jinOcJ$WQ{in0fA^z+gQ2JD&8*lS9@$9ukRdX-35lxS9j7fXyjSqaJ<0r2J#ZTSn@%msXh=aO&b zX~{^~-=w5()(<5d0Q-CNaF2GzvHV@-x>;$juX53;(OmK^WUKcBOWm*^_*jpVaB+)R z+z%X184n#*RqPCohZM@}nAW{b%2?&v5Bz-Ywj@a?Wh#;#sZ;zFUWtPAP+r5&TjoRK z+P(RAgH<<_F6GLda}W%h<=7`&y6*{>-r0BBU%8U8#YmiBu>EqH;|zDmu~Bcp%75?R zN3RX$483iAGoZ5Kg>24|VAMVn$w$0%Y_evlf9cMc1FGGRqZgvdMEub8b$O(FJ6xfD zi%L}y=G2Oc>Gc# z4Rx#y;6@N=)Z>gr4cad3ulX&>l!iWUg6d*p{%dX5FwwBV7A>J03ME?qQsPBdKnuHm2sp@){8~+ex?#E;86zK5#vy0 z8f%vU$21qqZ1W!hvbq%e-k(z`w%yA>FQ2s}NG&6b8JHM0%RMbJOiR4}pb%4x2DLOm=Z5Ctqvb9iiLgZ&PuArccsv`rcT8S zyws-^EFU*_ojvXVW(b;8l(P7ifDPTE%_wo_$ul3anhV>t~d80hLjWBf&E8Ko_|0RdWN_Cj&Y0bzEpY1p}rl*U|@m^_jQEbnmgsG&}k^n z8ftunnvPJz@@YQ}cl%1$C3v&Mz*&-e20!$!1FRtG(>=jT{ zij}%c{3${LR~`X8A2)Strnv$OxF9%Qxy@fqN5^=8HtrSLM;Z;w>mV4IMAIX6(L+xn zO5kb=mM-lW&f5EW<7CSj)HZ9Z{fT`>)f`co=kR)~98({FujB;?Gv{8_GfrtvVuRrP zxX)QDWB{Mn^$;|YNoiS#4aS5i9m`Ui+Ll6F^F2^(h}Ovx$f08#<95I_ZkMe=$NmU$ zv|(F1L~_y~73qjujJRV5%S=^hcixFH&6IY-N+v$U^6EqnECQJB9B43RQ;pD?crR|s zul>a81`Mcfz!$1G|3@Nlm{2<{p(ZX^W;Q|trbvv>8)Mkux<7T)#t)~aOKDha>%BM0}y zT-uKv{_4LSin){qFv3xktQEQBKkuA7aCKsT&Tj8HKTE#lHjGgvo?)4rq;r#IYlpkB z8RWIBi^R8Ics^Oa@cdmf;jMS*JxVws>viKvm9L<8Bptp(2ZWOF#a7H!y-niVqqp(u z=xx`{gwId%Ub7?`ZZRXc{OEh$mH)BENARJ9`XDXq$AgN7$I8rAvgR;clYR<4GRNbj zB|V3Lho&d5Ya`c6*dSoAq7fv4j1HUO&rIQ%nvC|CQIl+R4u!(Q%;eD|@~{Ia4bnE| zJW$Kph_g^n%ffvc;w(O@Q4YHnAY%t>9YaD^Z+LLxURZpl!6|3`n!ZHUw`*!vIJrYKRGHQYMYNd|evr*;bb-D~v zNOtAd59~A4=bJUzQb$ElI)P^vn)Eb^gJ0}LEFR6>^imcY<48J70#n^2|34~^SJ6++ z0FZsiG$EQ0)}3N9rxOqY>Qf~_{?2haXIbPm3>K1-pfqb7jBM0+sQ>g3%fFg7 z1Py5{eMz3b%W8hQ!ucj_n_hm&V{<-jz(PQxhn>(6VTeie~1L(YBzPFysm8i&oY!V~Vk1m5m zCv2JGT&wIZAk1tj=v5-4rCwKZk6;z^y)JVsyjXn}20bP9x6I+pK30&b;!#Y1H$q6j z&Q!@pc(J-2txhHqEg7*q=L2M=1fuwyo%Lm0ILTkZ(!q|Uy(gOFOR|P#Amx~jZ zEqO8PKw>*ApGxSHYHxY1{w=ngw{qZw28OO(N&sb7HIQS!>pSVwxD zdMpiM8yk&G1v|CYU{?!Ry(vg#taSZ#3_82T=fnSY{W!VGbsAM9$ql96lvCjqd*;KR z6E{b+ZPAF@I#X!`-U{orX@;}b1Y`+`Ozn&t%rnh&#cYJcp?mZA`L0N3ZPV5cwW3ql zgjp!QQ%MuTJX?Yj>*hGKJQ>H|CqG_04#eUN``0m)!`Y7{JtDstwI-n~$Dty53gh4E z&H%^8{B~^((_}xe#KrB@42gfKASc^nz)JT8 zqYtR8_~v0&IJ(cTpI+&b?(^yg&h>ULsvlItbp2q30EZ=W{l9*Ofo=tuu@#;HD6#=( zf4ZEcL*-)e5he+Gzqq5E-n|zWsLlXBJok<|IvUcLIi8De&L!pa!TvM^5L_HX(I_Eq3O4*&(%*wdT)F@7 z5xmDALHVHw`(raXLk;M~hiOpx*9NsiS9a_jA7c;z265chhIQeT(f$`|b3{QXJH@|6 zNfVAjb7n+UgT6W-7tn%vj4Toy6f-InZ6OO<#bv=3@Uh+HGGgTdgnlE_1n$gskau4M z-JZ{BTk}>(0r6;SD(vc#ZwIrzU3_<+S>7%pCNWa%%)36WENRA~Jf^q4T>s5}U{&B0b1cRw4NjjiLH+69}Vj6XkB*}QAEO4t+ z(9wT6*W#?RFMWkUCOH6HFulf{XUUl`hCXC>Gj_72jlG6F)Hu9_L2y@R(uVP2jp$Nq zS9sE1<4A*kf`n0u|EP{=RFbKP4QEtIs^3qJ&$(nkdIuyJNdL*f#Vm zXF`t>7_yL9CM1((D(g&!Lr7O501|2{&ILxsSpGbQz$7--KRZdZ_Kf+E_v1n%i?dEi znr+H(#LBX@X)JVGbcz10kU%Gk`Rt&K)+QN7O@XV0)VL0MPtl_X3bznfNflv1%PBh9 z$}IXlP5}pG%3+xM(Iv(9aJ{ji^~P-UW%^~TH{$zxac%8oDrdI-4JdIb5)D4I&hzl6cMPJ3 zVVJF$#|blwC`+VIC>=K}F<<0yb~tdDEtb#lLwm*S3Vs?R$FOuLdjER`2Yq@4(m6c4eWNWGX%Tym4J=MH2Vs`Mrm9J z*oyXuq>W$$jKBuT0vjhEf1A73!gj0I2J9vTBaGJwo&qxw@rbN1foZ&N?bRR?&m&@5 z4nHlhoR8^t*%hYQJvEOCjUWR^1i8HeWC8)LCXlWXLK89HS^@IFJNYGvLjv+yKqfw& zz^i9xRamASe?rSmXl>CBR(>CtIqjo2JFYM7f<~4f| zl4oDBDg#VF1|2&g!#p{TU$rU+4aXcPl0E304d`Rp1x-y!2FS@~fV3s?TDEreQ^I61 zRJLk4BC((WbI_VkWt_&uNA>8oY;+M($SjVLnhU%f+lirC3$4gQ6NZi?@(Z2`T%8q) zVCtPbRMIN3d>Ep5wesUpPsh0g4J+mg{n?V#mITmN22l(L<9I~{Xga;=vyh~jBFZG` zGX!@s4(Gn`uWy-O49i3jN` ziJ$_Un3noL^_JB}mG0(0(ZmC3TiTX6L4^tAXZ4pcWOvzIQoK}1;-Ppu3__E{(Z$kM zXkC^hxX5MI!tga~sC3bID&$JTOyWF*1*d|tcvIXGgHvIdXjhsASR=XG1~dqU*&nmU z<8~rahrxXNF+^3rQ@k|pH*ux%@(9A%i=?SVgAFoFLa0{I0|&8+!7P_Ms@PQ-oA!V% zoUwdkoM1 z{j1waj=(%)YbB4Nlq7!AS#}n(9&`}qB~sr(D%MUXIF9Ek?irx4?{7s%H^q*Ybd)KD zf~6u;JA_D;u{NfdsbiL!qY*PbvKKW*9*qn0v@IHLMeV+-{cooIvFIQffWd5*;kWRq zD*(AN0XSwV?oY z1M+Ax6-R>XwdiHTQF;INIQY9FD6^|TIV?=aGI7He`#)izQUM(4(6WLS27PeLpMqj-re)W{NCuIX{1sc$@ zk+066ZFx5VLp3@)ofpNC_`l3psRXVZ$!C!q;h52~F}h>ImbzHq8R`Q7xJ5yb^+)Xi z(;RsWuCqrDJQ5XE!Wxqb!!Hu#(?Akx=x@IB&?28d|ln=tue~^IPuIi z5)`&vpQaeJTO8>ty7;7eBP{a(@(GB(z8aMAI_UYh^%I{aH=u&e5h_8?ge!uC*Pt+y zwF-$BPG*b;fSvn%1am!aF0z7yCh?J$>lL-UTNb?4)-y#CVbP|2+9zF3$W%{4_5=;~!OX$I;FE<6F%tabVbB|qJWVrHO&oyS}Dj?qdtNujc3@l8tBPYIKdk6aPyJzr z$nW@Qf5y=7jN3uh3F+JNvIT)(ON-E18Lar+WlRt*A1mAAb3uyZ`jqrZZwAF&qxf{? zwDyWmzjj8k>WzBpao$c~^?^D|EFi2er=kiqjU~iZb$;8bI=}6Lb(U2CR;vl`s!poN z(3pxQ$tjs6T2#hvSNe$R#3N+dZ)PNC{zCGEB;0Saih3IwDcU7hCiz$6_LRlKd2kFn z8pCsETZJqOTkw=K%U`)NTX4#_QF}BfYx`rvX&j7I{zts6dfUF*JlDEBtEew1zA3*d z36DHkPqnzysxooYxcP%l@oxf)TkM!A+82k1N&0}2ChMd;zY6yxhc+hI2$15^e%$s4 zFjb2i1-Q|^o#JswH9Yj+ff^Ya9{ul07?-Oh1BiUWz)gy-pe8(M*LI8G238bMKO6DD z#A^{^V7-v3oU@#L{CBoGSaLF@J|e}ETos!D`&sinof4#8g=I{21eTwXIH0`g_O;Hw zG9F_(5(gC5tXY9_8(}|DBF0}ds41*PK-)ap?pw4Nj7*)Jhs|R_+zDDqRY$@!TjMlC z&FBipl!i}C*%jax16&h1cK)o$>dC5Es;)Bs>EyRI#ACgs#;m=S5N4NPs{z zjITa9KkVN~=*2{bGh=>>18T?aZR0DOET{}Bj(c#)qs=BdoXKem7hfoPzg|dgvHqhj zjK%>qKQ}(0>Z~%PR~>xArw@p>SEDMncGORGSchAylZsI#!UOSjpjjZlK%iOP5O3-{0;>YeLQjyT=!8jpq!S@;MSxEu zFg6vbiDw}&i|sieFpKS3KYir{me9{Cw&#~kVDxWaG; z1Qt6jt7Bghw*&%24#fp6W|;w@ z+&Kk^#DRNWY)?U9u|1KC`)J;e9sy?Vf>%g;#Rdb`^Ae@?>3Eh9N@_kovM0Jn@&b%k zoXm;~CxJl%hvd^LGMzcu%ooURcsSkoK_`I~bqxaL%9sI36(qJhQ)ydg!Md ze}qVh{LL>^$CNP0E3Q3dDvRixY9#q%PIb~@oX(Wp<}Qt1Lpi!mwTBs zYrcB<%2$CM--Pdmvg>L$+p6rEWxw8Cu-b39@T;wyUbp}-FI)NQLcrwt)z#S!2IH~> zZ*lRp=J|qlChXD{6=GO$G8*l6U8jZ;+j=Pz@U4p%ED7f1;iLEMtxvv zG$41SjbpX!+JLlcxV7@VW+O=80jRMXs@Z6{irFJ%R7HK=Wg!PC0r6KI4GDYp5_~@v za}fy|Psp3?A`UjG2;) z%ZSZs^g1SK4~k;6ChLk$8b~2okEi<}T2p+{jnNmX5$@C@Y)3^#N7#sXO%lS_ zSdqRJs%WQ<7SgTgAI7$=9>&X31qZ@irLi*ujXn`o=sXVkl`TgzI+(%H*3$PtT#|p2 z5T_$Fem4GvZ2kO16WPq?Q`yV|+OA4OY23WZRX5*gf|(Q~AE!7{mW1LLC#j>JB}$Rq zMl3c8!U>39X1J&yQGHTeoHIL@V}v-R$u9$1nn^?FMk#clrOC&C{8#@f*~Rg6*yCaQJVYAU zFO{Gk-AT@{<9?gleSjBVR##|)ZD$n!#dqBE$G`i&zx_G)%_iTe8~D@bj9*}+gcTJ| zY#c^VG6&}!gn3zm)lTTjIe;U5iDmJ%kT{YT~ zaCDiE2(78y z4#C0dr53TMuKoyVTzJA;V_`DXQt?rjZ;B(J-D~Vbb7rH4XMQIMOkfe{gbUEuI#`!l zGvkThmBk@hlk;f-5q9%~~)%)d?m6pAE$OPbaY3$_hX1h`jqTmdUmk zov{2TN%-yU0r|p?zzxM0UGW81eBKrR>Wa^~;u%-`vn&3|6`ys*XI$}*gi~*aUt&br zjr*Y_X!*7kPH>lnC%I3<2R=v#!r$2a)3lw1XYBsIc6i%+lj8ZsKe+H~-0Tg1$}b-u zd|y)B5l-;?rf{0yH-=B}dwX%#6`ywDiT5k#S$-G84}U;8e}&&Sg^%$2#_(BwZ!bRO ziofH_#y)<2hMwY0;j|tk%>6VwBRT&{%!L{5NZ?R9GjV-WkjZzM*2zrAhAC-P971MO zkPUD{^2c&zuKxq&1&azP92-DzEFm(I+m=Q#7@*j zk-mu>lHGv#0zMgeteHmG*m(}LR&VTta_YmH4WF@)GFVf@wQ0VQ>1s24R!PHM zoZ)vctnks=q|Cg$qC{k#4I}fB-I86%I=`>j0-5293sJKwSveKDhnogL2&sQhv0FYw zpvi1vQ=fLNP9<2ftU$ zFnq&qP%1Q*3d?T3_(9;&4Xe8MVjF7i)}*Eb`nZ5%lw>_=qXUcbeRKeseF{1N9l4y1 z|I8{#)rJ^82drIHM3_a1gp_Smyx&i zZ11Jldf;e}Jpf`V9rRvTZ5n<&Re8>v+VE+B(jaz9K$yXiC`Jnp%jrW z|LD86HOoL|+DGDD7I`861rN2v!tf92x4`A@8ii%L1d?mM>ZmHqT~UfM<_GICT^6K6SM=%5@X=KfMLNnkDMp=Ut~ z^xY}Gug5n0s%P443LcT~u_L_gw@rMDiDgkW_Piolg->fYxSpdVX2XJZzQu3mF^Sc~ zITn4+xvEY&Yl8svKxw>R;cDZ+#7N;Qo9jWMBAVhU$tW{{e%E=6K(!RV=f|=t>uuF4 zECw5^*_DB-jU+d-su?X;Jt>|P-L4n&C`9(gNQN~6R$=ayjnUXs{&3upmCPlIJLMI3 z%2#oxxT}Ir$tSBtM6ZBTdJXOB&R%N+NSc4t;Z^jr8t@zRnmt55UN_k%&Xlsz?qa6P zAe?`%sQ`HN*Vri+tiqjg8bWOx#j-Ol_MjZNnR9or z{NqiN7{z3fLHAh^?K4iS_WWvT$4@QkywswEc755W32sadD15yK7epk zIIX>tb$d;e(pCvvO^KDmG{vX`n71$9xUks93vYcvZJPe7e3(!(Z07S@=YK+k~?z-GHUJw53P4 zBESO1Zo62iAlN3DdD${zOAYztpW%+yK!Nvg&~_2_K?c=-Dla z!#=KVefS`^G`=NCE!A!_9HnfJjv#15h~78)!1d1Rq1kV}BKfK6q1A7{BKc{1cxlqc z^4qWv8?cRlUH*KFZ~GPd`;Aw+6IF&W_JNZ@h#1Mxe5HGrjM!mVGYoI_HVgk8drMDc zk^YpKKpfs1>ATW@TF3K~mr{!~$4hCB;j;V;6xVlpMLsgh#BNs2KK!xO%z{V!1TNwC zH-bQp(3f18n<%n{lRXrJjBH89(PW^a+t2ojzcemB{ApE-UR1`HA#A*^U^qxtI8xKN zwh^acuLK!g#o$`xOvRp|Oqa)8Kz>Zs>sX}^O?_OJX5v`dZ5&IOgk@lqJKm6&n6T&)`jM4A4LomsDF+ zMjHBk%esnwhk6Ak4KQ`V3&wN3D}fvLWzNup0T1c}qRE zSshsq<2cSE6@3MrG!JQAsLmJzM_ylLwEDF}W-Tbpj5#j`&W8;GxqdtgE=cB<9U%P$o} zQEC__t1u|Kj2J}s;-5t>S_B?UuPUIYOI1f=Rn~*Ykja?Sg3<$3ctmVzs4fXdOqAL%%M6p5 zvFu7Rp->(GL-h>bh$SSlNhsL?p{x7GxY6F~z767j3R&mj)ymjnE=4&GE=-!DkoH^M zfMIQQ135wuYLazxCLYG(_*;ok9Xclrbh5~F3a2C}u)B3yph7!~1hTvm#!C`ON38nI zc@9>Ya3FNyX7wz+r}voBR(@0UJXSqlRy}vC=dG4|!k(mE!^bNM zKq6nx_!zgE3~q%hv^qk}1i6ev1NEWzaPAOcGs@14PVO@^jkC{o&C2Ho$+U^0xp^?Q zE2ep>6`eFEa9=50_ke+*43=3V194x=5+!R|Cc^290ob3e4I40!&5~K*6a$@C!V2V! zgE5e@MoXg__8|kUM|(3Mt6Ro&h(uNc5IM*ANHGB<&7TksgX_6fVwFKx06S*d%ks93 zK(IzbOsrNmEIvt(5C3&kUa=Sgu zt!RkUBixF7xV?v4Q4Y69xfRiH`!;U3>gJf|RFVtYz$tSJ!LX84hK+tdMZky({Q$S3 zUT)vcZPn<#+*XbLAh%VcKg4a-=sUQzMvp&BqwFa5S|V(RH$jD*cZ}a`GxAs+WRHPh z3-X%d%QST*+JQKt{CtE*OxN>K`5=*J3~kdQT`B-!uMJVM=Sko5Yw2W(80hnE5jQ~1 z9@w(NQ7gRgf?_ie;8OCaH6m@PC=%P6#afcKijJAb?Iosw;9A0g(wf!|6mfdlE5^9p z9^)3Zq0u>xvB_a|u%KX`qB<>H^HHT|?n4gHwf3(5V5%E0#b(0}`*8{2B|JI8cR} zpEfBY*Of%=(>5+}qy&zJrlTXU}3`nQzr75pfMSa3}~Nk?^kN>>hvA3J{H)UvxG`OK>4&+GY~AGq(KCr-Tgt&J=ln;U ztye{gfO@sl+2KAhLJ%k?B19q#DU_(Hpwj87CLLFj z(9}1CFbmSx5gCDMn)iUK_FJF!nu8IP1iN8G0qaE64G=CsbH}z%j3<$C#Jao(RSSyn zZurQ;<*O+Iw~7(i3fIDD9XK6|7g`%Ah`D;>sdgp>CF!iz^hEN^0P0gaf%)3Yg{2>7E_Ccc5%}Vwq$Y+QVJp zpNjjlWl#-6;FCuK?!v{^LB?8Z7As|T1Tn@%06bn2-#}+qiV8-?f(|OV#1c0p`IJBx z9miY|csdT{r8XL{Mzq}k6QQ-VXzwqYOe9L;r%-L zS9`+Du7v-!?Ur(Lx>3#zERje} zk9u&M#<&`ZX0z{xy5hE7T41#fUg{~Sna*kyY|una#yvbTZbn=Rd>B#g!@3AABw1Th zG^(=_{*!{9dz3Qv@eWOO8HZL0R+({D zVABiRWJmpFtoM@WPI@36&N-k&#XSVc(K{d@%GMr~et<)|X5ia~{ zGRt7UgkDD?rNK)8Mpf-m?;iF2rkDhmgL-V_Qb80uu3ByY2Dq4YPZ_Z^rV^K#--Yc$ z)WYD3!m1ue3IikR-2k#v8W^L(7a3KQJnP0j$hsBGl@#9+v#E2qaH>iqw^cB* zjJWcZD+-#tXEtDcISv!pHVBE~`No!iv)=Wf zMk589Vs?34^L{k70{J(LOc9=`v=NG|Rz<+xPZYLWi)L?!mr(WjO)`yWz7jAS>?4(k z1nqi`3WqTVm3%3I-Ac$Mm;f(h^l&gd?1@o@Cc6`SZq$n4(4vSzAB77l)dX}JJ{Q5F z8$t%mymF1qG4I#cf}e1E#b9E@>PhykA3R0hUHuOKa5@_xZwTp>+ttq$q|^SA2uT5* zqWQv#_S>}ImVVifMq4}C_C3>cs>RPnu<4NoBny9W9>8%4phBuZoJf6=DN3sB1$i2x z9daTyu_Jz_4lD?;{i#~1Plw0jDx#WuU^uLg8<|;&du4gnugyms?qw2V>~}A0BDU9S zcABv1UUz(>j~iP#Wb>jB46GWkT5747!BeIoQHh6)Q5s3C>0Z~Dv2HeS-EcM_z8XqI z4(+N>_gec(Z$~dh_yZSy-x9AzcTMN{*HskxfJmGY-^nO)!6g(>^w=fg#YXAH@A>@w zDQm+42>GA-+4xsrY!r?&knFs8Ck?3pfV=#-uP{WvdE@l7C3y(TW5PG&ydxLPSz8DH zK+`gCBWcDFtTVL2J>p71KdvC-GqD1@7%isbU|O&%&?oK5k8#oF8pq?b1#YS zUqFm;Bj@WG){yXR6@SP zS`A4sbCB`29Zn3I^iPz@LWhpthSCnwhF&~f+mB*Yf;#^JXIq(titsRSF}PJtz-RLy zYP=Ol>HsIm6Dw$ z#9QK}ME<;99|~<&&IcBU1d>|ux^yu%IENJ{{s1_)?R=Zfg=KwOG;UxjOy`HG=*Pkc zDrsqb>;ov3!F`d@cX*yoC%f=`p~!^|v41a!{lk1y{{Vo6if~nQRb0;cOMuVmX|qhl zWSrrydN}N>xoHJfmla2uz1{!_%!jePN3xK_5>5E-Tx%XzpZFTy*UuhTWw| z6xyVTBf3oi#pLF~S4PdO0t`@nt-iU{Q+nl+*v!z7Btbx1!w2RM0$1Aiw%)R%0xkK^jO^5t8T8~ z8S2rzUAWQLXS@wusYM^YE=~E9d<|9sqeM4T>-Z!FA(9>}IEMOQz8>rdCSGaZe=@~K zW-eNp#%kKsSdvc;QxgRam>NDaLC`rJZGN-5B!ySzXF7UbOB3hS(Xp@cIBG*vc2t|q zMDtj$I7Y9qk~qa!HsOAz8W`E`DkkB8_B%zB=UmuTbct1K)jp!Y+2E9VHxE-NV7 zO5wwh+BEvt&q59^{4#nkOK8eWull9R$lpm``RdNoP?Uy>$y7~mFbp6GjVOJy?a-BK zL}6|)g<1UXd492|h)hiIh{Q$facGL`^881mO}^$^6eeqQFOSp9uC0tiVJ}zW<+ewL zr^`)vac;Y+lNNTeaZu&@V|+YewhpFR=^JIc)}v_7sLVqqn3>|zB}_dT zXPcP0!jbnPkadLySGc$7#~TZtmIV1npE{8P6kwI18D@B8Lg)L2@r zUsmHu*1!iABD-16mkDCg6s#JNW~i)?O**645|);WK*HAuh?YX)K@c zb^1gsg9-V9t5i8^Hju!(QnnH#OcppZMDnO`MMibKgga-VPq@xIl2bkPv(+%jc_`00=_2kZ^5zQ#VM8_|MF5?W;TQaJ!H zJ|blCPl@!ir5h|cAj2BPx*#R*@j8MSKS>xt%C9qhAz{uq?vQ5GUCP(>l9Y~bNu&{Y z>v$^^paFYyNEbSbH!fP>cog%0s*Nz=9IT73v9f+0t0_&`0S+L=k5d-?2~Lyn-{{}8 z$SwSy?kZU#Cj#!+METl1Cm@vDx>-vcy;DAOB>0K6kytmyTaG@2gPcND4@$!hdWd42f zJ$=)GX@Xn=ntq7FBL3To)`D6mAK2<^AyM~g+$PF~1eJ!wtR&w4^^_iD(&*T9d0w`R z91e1dh7;TQMD&Nm@!GvH%OD}cjfA2J#k@!ZLEJEwzeFpjt4K<5Fjxig;lb^izKOV6 zJ&#<#jsOu0`Mv71pQRBk2P69q% zfeam)qn~SJqN8~(0_#We53e$nCwLhHa0PJrpC}*z6IiCpurm;X$xF04Sm;itU2XIT zH5X?9AVNV1M9~^ad_citF=<-b8=0hBWhns;VnB;Vp#@+-u|0Y$T$#XMW2E6}JnH+d9Y~3q2Lt@8tf5zR6nrieAafX)0 zgJPp$Nn8VOgopRvE+$3JRcUu6GegfClB>Tw?h#1q8vkMxN|c^q{E9BDYgR)i#MGTkA4phbz(&d)M1 zQX;2q=eT_`LRpLJ`9@uoyf@hQ9D|c)(|C%2E=#VfR%4-$Z)byp8EWOC?cWkfL^-`y zy^&0`M|>*;k}4*RF^~*PQ5F}55MxR0=;<;pYeL8uTWl8<-2z`IWE>2LUXh@xmZ3Bt zNF_!tt#VAWLqrybdQ>(lFQ*-a-(MA;gjZu6I}Rzmym|yt56lyvX#47BQ!B8J zZ%nRPd{FzazKpF_7Df+hV$}4i<;YrDnYc`)F*3HwE>q2lKTDUF*~~orEBLSJk8vTiScfoUoG-NQ z@%1ci+i#12rhDrJgwE5ocJLWUmc*v#+=1S7nG;S!J4nXM=?4WP1~VVh4a@BGW?2sf z#aH5>N)9!GTSY#j89s9fStkMs#Ok|IAP$*HkO_U4iBRyw0Z|7c?D&WH8t2&^7Sxc- zlkaf7@%+m`z-a%*6n_+nyq*t=wrBY8b4y0zw=ag@jw^m3?cen;s#nPfO7>dD77s>B ziHpFycC!fu6hb}<$yL}lXXAk~Va$~UCx=lf%R)&$mw+lamlR*a-FkJ69xXTHsttQn zf8*+;`tz=0lRmuJ)+eb67}}G|QNX?qgm+%Q7a8zEX&W@LCBhkfcEjqFLZH;G z`nhdxsR~^29wJewIt4r9#cuuFa^71$#St5u9X9sUhvpyV`#dXJ)0ahJYs=hG6?>-n zy&r^C192+0b~XaDY_Iu<$jaCHe3D`9j@X?nYe$UwN(~i$vQ5V~%43Z}*NK#-q2%};=x=3x2Si#MH#RY*p z1|UA6-M-f0Qv!B#dd5I{+J2v~-;YJ`9^pN%;CGQQ%uWm1rV?x<~j*SJFtTaM=?8Dz7@ zwNX&l8AV+`zr8n3jxqkrf@%$#mj0OM%OZRUgqFF<-`Jm=@1w6};W7y4CiNZVu^ljJ z>zYMX91cHrW!R?~DW$3eUr(w)GFn(vLS0Yj1VMo9Mz^b<>*M2RlN*RhOlSB`h0~qg6D>yqgbtLxX(TdO(Br)$7T! zSS%+b{uuB$q>Oi&i<-h-?|Ynk@QKK-i?rjn5cWa6FpgY#xja%N?g2d6nZV(^v*AD{dy= z8P-3m^y3Xa!^4~V8~x`Mui@PjyxUM(t!J#v(^)mRSv9y>?;=U`4%VJ%p5m|!mc^{4uM;?8jn>qK2rgAwgQeZ8!27`bbJWV2`m0kRs8-6pyL1}Gyl^T zu?MD!?F}{bx$PQ27{^d^I^_*tY%~$_$QpT#D>>L?hel^p{-1Nty_XH?_dSWTt2XU>wX%OWrEojW zgGrawVs78+S8sjm)z{>kFlw>gQ!3?{_qS`Cg9wt+e+Y*i{83J&oD0_!7otQ#G^>)p zw=eWV-2HP2F{v+|wdxB$>Bx8>NP5;OADuQPGPxDYSgzEEoe`*ho6h68q>6NebX^#j ziE~qj{qXFZoh_7a(n&&${)0MiJ-xr1w2zJJFvGjZYi;dRmWlaE%rRrAyPrgkl6huh z^2{)=&C8NgoECHzB6Gp(I-p$Mk@4Y1j|Xa~-X z9>EixN%SrKndWpuU@}qu_Ay*I-aZ>!0N~`)`^NugsRYp5#ON^FYI@&-p4qXQV_2Il z`5?17hr?A}`g=RvQXUB>=jDZ+D7XuwiMu`evlq5&p-)IV;Sg5+nTNNzw0m|J^(NJw zE~op*?)F1X>n%9v+F_famP_>c%eAMb88&b>AFx%zay6$a z!Gf##6O%H9IAF~kMR=ZD4lg^2hiQP9OVq4XQ4~oPG1f!W!sRMC7Bien*V&;n^ro)f zcaW3lz<*+Hx;y~0c5FJ9V+SIEOvJaoOh-c|)p z=Z#W+pU#CvHu#Q>w1^DWIemRvdF-BJU`>x!{eKAMW0)v($&2!iN|EK1}%vKp?~@Q!-)1J4BA#HXKEJA^5vS|lZ@j_^t~SDbJp0lVazlnJp#*I@O^e9BwOCBeEir>#*wNN09OD00*QN|?GE<(P8d z=uj;RnX8RKzv@--0iLOCtSfXWF5Zw@KI*}4!KV*f$I&?vU(?BqrBH#VB{Il9H@hoka zmg@I}huM(tgADg3s?*e{v4XJ|pHo*;H7Ys8vo zJT+{gaT-s6c>SOUAaoDL#P%0y-Nc_qZ1jpaP0Ya9{t}xm5TL9FBV9=;oUhXV(n-dS zH6=3GC_wfnMnm-`k@hq5K?q!O18Mw7#`K@gT~Al>a$6*)sw zmB|L$|Cczi5VRu4kn}0P9dx2k)NFVirfE;7@8vr_YO|F(VyR^#y73KnzY&fdfTr;tk@r-~$rD3wQ31E<%05uVb- z)kS;XuT#C6*!I&Br>c}m`^KHc#J*#%eVNq51mIzznG~itg3-3@q58p8pNza1;2m4i zd`%5{MdKn-o4cYb;)2d!~uC~2gjG$dXJCuL24nks;y!Gv}eb+#B3OkS8QFLCL zckC2qW4wJ)3SxDB7FjUu^qVmqG>JzNP*ScvjCA7Q0z7%mN+-~y<`7Au@kNx7t@4(3 z^eCnm;tmY%`6K20mDp5fcSE8UhrskD#b_{-%_rq!_cWAn5LWQMkDXAW@<+sv5k^^g z;(nW6K=O$#ylOjj?2w|}+pk0rTv3jjDa5R}o{iatDw@qxpjOS&O4WcrFimY6wW!a|HS%1*>+bp}up@Ssz>IB>Z^Z{=jupJ|2i{d62=uCF%K=F!>F z0YE@^Gz)$}A6X8>0t{@*g$hG{1F}z@9OT#lW^Ym7G$#`mZ2Tu%1{_-`kFvOH&v-CW`yf))f@YcVU6rN zmiA;8hs@)b3bC>3xU?`RmUvnmulUak)WI^nVmUL+!VewtVOz|BJ&04QhAveX4T$Qz zyAA2z&L&gG8W!5p5hrjSm0NBOu0jihY%gzrelID{tk&5!78CxXOLRQ@5z_=5OD$WB zX34-a-@`R2MNd<3*+QHVw%LrDtxoI(n+b24orE2K zNKs@9QA^Qe`#4L^X-Evf7QJ;2gC%c2Nlmju5xf5xwlHsYHs+Y1?RGWRB%(m)TP&OjAHA(vP*f>OxmS1CS)fdc>RZN#?#H$lIMUdumqMY~N z0538DxGnv1jxOiLXKAk}ePfhM$nA5`NOSn}hS3<%(hdzwVQBPFH%!EXC9zJUJllf} ze+ETBIn=@_GUS*NaOc<<-D)5B7Yo+4`)f2yVw?y`P^EF9S4DE)G%x>5^u#7t<=H_B z7E>4GQ#^j5!po2`NxIgVW8RP4cCnu_5hrVp0?2KRk3gN0FpX8mU+UAY`&Xi-EjklaCeC50Lh-h3#*p-?*cM+{gN3J!%09gy)dpq2g;Co8#~F6#g2^VR?$o`y zF=KQeW_@la@Or8ZGi{hw&zLZS1H|;CNJRZcGuft?w89KZzt0@$g`d=ILD*bf%v>TO{fUxPfgM*&wy2^j{puvAWnV@u_(S|c_VB8PeY41Q(5^vtLd^-X z!FH1r4(-(J45Iteo=ZKf;D!;63!?_CkJzjR#DoocZF+}_S&t?-opwxXr7gmag+;0< zf-^_3W?zca3*A7Jjp|FX%|d+=$YjaR#dOOIRTMqf+;1=C5@&xE_e2F|W@7B-X7p!2 zDY6(nLzmJ|Nq?c?3#(Rj4ji^9mL#U5Y$c@&3j__@SC~3?EoEQ8Rl18VDmb1!9Dd}o znPU3}OT}iVa6ZyB`&3o(>Z!;)0*^DQu-m2K7#c3U zdP42DW3Y00yKtgYmS8^nw$Ms@uS~VH;3f<+x{jW2tzgemh4+`gT7{6^6ECZ=dL=GU zeN-gP{fsIg*h(!{)P8w>FXNY8#w3Gk%l@4T3*PpCsSkd>4LS2$q0Q{4?OpaPtHOq& zTIH?i>TBg!TXG4W-ggONs3G=*V&K`$emwhYAvHL1QF>OtWJJlReD?>auv~)8iEVZ7oypmbX*XB5J3o^#(8c07Z>MYDNFFA)PBvf`u%i zuSI+u`BC=2sD8xQ3$8}~`()hO>fOh#*3yZ1U-Na?UC+DzI%VkhKb*d{h-^C<6>tAE z1)Kfbwdm?zQwphBP3^5NzRJG#y7}O>TK$0j-xpt-H&q&CoLvEw()9 zOx2ObwN)G6c`TxfR8&3q7Lji#FqFLKvG+$mWm#x?#(}q39dGz%1l>99fZb5?`Bjx` z(RI)`9@X{7ma;R%;;_W4i3m5AGj?gmArx%5vQjAkh#S_%5d6Q60p2+Tuj|$W42Q%= zUUfMDhIT5z$i&eW9Pm=yFSUB?+UxFFPg#Fxq5B4ZzPh{mDq$p#J=Pd>>Rs%8#400aDg_Wu%2f9( z)|hJTo{FiqUH^7eKO}Ed2R9k%w*%3)o!k>ntX?I-%S=fKL0#7!gy_XzD>8$RusI0z ztK8}G5$y}m*!|S`DBCZ1a;#2LqW(V9+_NU8ku4CIrdht>QDYj#KIq4WOoQoHKK5#3 znuhvXzWOl;SWKfR3Vh(B=LTL9$MDBF=DMPFiF1t!82ScCA`yNcB(e%MOhlqRcNmC^ z0}NyZ7|WoH70fZPU3K`1_oe@21j}DBEZ;T2^6Kg}KqVgFd6f7*YhS#n`hplIj{czd zC>edsiob18eDxUi!pX~j*vj8{((-4H4B#Ew9k*-DzCF`YNmDsb?UypcB}{~&cfS&w zWnw|ADE&Ehyke3%sB63oI_6teBH5Z?0{;P#GdCnD_Rpxxy1H(N}uN zc!J}W(GVO9j7_G=FO)CkceCzSQw&tP{}h$liNq?8vRly^-u0@}Q&ycU+Oj;)s<+5p z(!=#5RM|5_2)Ao@fqf6=afCd?Ja*9zAvtDiBEq4(i*qc2e<2Nb(GIPOTMq-8QTGa^ zB^n@#=D&c>n3fWJgnUIC`GtSZUSAp5raWfiN_JEPW}Bc91va=q5wvKpv!9cvNqd(d z;9zFkB~8XJ`=Y5<_O7GgFc_T$cr4_67ag-Sk+$IcIDNb73G^-fHw~CxY;5>1Jd5Na z_?C_mR+O2eE^7^wxCrBi{oaVhn-L68$1f$^c2>LsjO)p|2f}Cw7&FBmr&QDg*CZ8oK*vF6Q8rz%5n2NzK7mx$?9X)o4aTsI6 zAQM40F4V~Ic!p?5JFHkD39Lu27_JBnf09~}mo|1SGFeLh?LQvmC^=4K{sfV8o;u#ytoN@_niB9f+A&D-RGY#x+d>29coGOc&9e!gsZ6Hzt{w2huq}rlPDR zL=itQf3QV*SU;u~bIl7#B<)dT?!w8h(_%?FlCoCBweP+y7a}*@S zeua3ICX(|_E1Zpteqgn*swYUGv%Hu_AqXY;&uoI{o6laTbT}XfYFY-kW}aQhji8CD zbL}>kPwJThb*M*w#@MeHKro6m5mClhl1!O5E?0mqyhBr>OB6#JdW_Q0W7d$_j914uEbZt~;y0Pnk=t92_XJ_qi&WJS8nnVv@gZnIpo zw?f09To>G{_F|H9glL$fDIa-`Y8fuqB*~LjvaFSv@21 zo0yKOYAB(kdd%_*EL%~Rrd$ZAG5YK$_&dg5FrmG?d^r<`v0^`@?`g)fn%!MxNmj;W zJ&}M;p4oz`uslQ{?-Uc*6TBgLTl6>qiK&gSkM?e+r~uz^$AHfkqZovpKx}NUS($aTr-_HW z3n7URgg|a%Zd=Gub&jPEr%{2vs8yi)LInu6O?j(N{~Pup^q^|;xf>dzKvSfbU(qp7*sf%7#i7zpR0H^vZ}i3^O@Sn zMn4{D$wsz88TC%p>9AL3j=>MJa;~E~61C*q=ac)j^+Q`s)J7-6L=%$spJMuCPovx$p3$%P+89}i!+L+9+0eYHHy zL4+)q`QDTD>`*Z$@q0!-S2iHZ@>NT{oDNAm9_jT24pai_r==nHS@bW5`Fv?kSMxJ=p`OBX(|JN39sCug3@zI0Z9eXR?^jVT$s>B>y-% ztv79=P)1~dN`c^>!o!Sz2%+8#|F-gPo`2i;H_g8(wmcz&Ln}ngv`zCTvt(uyYiBT) zW!V<3b7D4;X>(xFl>xE&IOtq5hTmC|a(HI-TpxD$@G1Im!_Q*>ECb(IcQT*#4Z0{V zPWnya-^{2fEM2!s_6rk{md0{R zykNH*u!i~d+*nkW1O$e|(c{0rtW^|=?g({Y@BY4X36;xnb7e=g0 z#zV~cZ88Pg`o#{VQ@rBWRwiikCJVvaS_IBYW?-FfS68>23Pz@=8?AgwZ6op3pv;M4 zb4A+kBPpg%vxjK5&wDalI>vi)RRX~&92N*J@0hCy(TEQLqwEV&r5<3a9%ZSnaKRl} zUq=fPC4lmjplr(kHG1qPU_2#|lJ^2&bxJf2PZIym&u)qCzJBqHsy0g5je z*GAy2N!5;way9QqSIS&q^STz&lzN8;Z?{ai+b)B0g?e=E}J6KSBjk9VVQb zl-^d!eUs^3lj$b6CCre~>{QvM{wW_H`wu9a6SaVpn~_kPF-hIdyOPa;CT%Mv=*z%! zfzp|goJ+X6LFoNr940reDnPHnSzKH@Aq9d!$e8sQ6KQ}ME>M((u_2a`!E7dmO>rR@ z3Rat>6tM$HV^?x6a~z^dVlQt@da+S~f=EPybdF!5zCc*SZOEp)Hi@U|6m$sEg;>-Z z`w*gm>?diP1g=0O+V=<5`V4J7y$6=CL?$B@nGT9RGQS~)g{D+y-jJp#h$g?zML|xh z20~kH+e4@q@tJ&Y$EB=7H1ABFns`#QM-|vX)P_kzp5#%FhvY(04fMLi!N$}gkGYT+ z+_wV5Y13fa3n@`vdI^g@Amo>lczPHJ6AlC|;^25OS$~sy(u9J!U?ch1#TFBcm156> zD!A-rbX?BGbX3}AU+qS~&(*F-oRv=oC&o|LDWqlUV+^kPLpmei5?hrKV{#ToBKY5uh%?;TAd|{R-?~Whv-VxX-A}MLp7t0N?ecIIE-FJpz1HCp8aBq&e)P1 zLUTyeQ|wAZkA4D?s{aOhbw(UiHbk7tyVrU016m9O_csY4RDfkYL(k<)*{>$SzNspwN3C;}J}A`M|0_d~cI12TCrez|nJ!&w`iAO|>{0%-}p z$0&~UU%?T!kj9wV5vaY(Az1bmGr}OYT@gf=4k@rlPVuCWOuIG38}q_ys-xSINv)SQ zKiVT!ua5{rnOviH^Bom5}xSROV$Co<(E|3IPq}f0dQS zw0&IuUHGN9APs|4JQSDTw8gQQ$}i+}D?~N+oJ`m#dlg?H6Ij#7F4;PE*gmP zch2y;r}B!ZFl%*V47XT$0NwJY&qn1}_R`lCdT99*^N|xPjrlod*-tYsG!do$OI5YO z;TQ%C#ET)jqRDmrxU2*rrj59lNUkf_bnwLb)`3miO%h>89!&-LnK6 zBi=65O?UM~23wpRS9K?B9n%|Y}B^aaL+ICW;SPA)c01JXM`djS%FTsYy*dlgMiJtZh&yAyKrf zLJ0^y);b?7dA+c;1fqZCnu@Pge?v0i8tcr{lU(-X(_wb(WfQBy-|6ojVmSsGGX@P_TknTqADB*Ej8xP?C+5WVTeREt1 z1j(KIw!O~6NW55k{?*nG75dJ&4z+03Uayguc%8k6g7=xoVI+6%16n^z#cae#qM-7c z5Eoq9q1LtNwdL!{fl8L|+_&d-*D0_DRD5weXUT>PB|D$V#^rR#8BB)6NGyj}r^`yZ zR@qbUP5N^GUR*Hb8D7fS5eG!lwvd7ebawQsF)lp9Pu9lb^L)*E@ zV~Riw*kb7T37`zq>PgZ|pk1;GcLe$43A+Rb1)^{!E-$4nXeIkG+3l3oED-|D%&Ygx z3B?L~bF9fvid7@9-pZ09aZLZn?=Rz8Z9g=20W||ZbQSV6i9yR-Dw0kpjFSOa4#p-9?%4SBeEpZbnK(?`DFbrnJ zC+K>iVg^72Fw-%ClNYE=mS{`CSWxMx=>ZMio@+xU-k0OVn|Ku`U_u9fu=v&HWo52n zQi%@nU&uhL$-iN%q!I#1wu{ye5HB!cWLA;16E~M9HiMB))!bY$k zTFjUjxSc${6vq?m$)jr^u<&w)hDp%C2q0bCD-kHw*A3ux2e{J%1+)5C;v>1E=5S!P z2@XO_E1-q0mWg9T1Lv(S!VMRQ2TT-dR0cMtY}+`2aViod^HY=7Hcl4pF>pU^0Mb8F9*7Oc7$_4)7z2|$)f;B zdpX{fBeESF+?{>dtaYSViJBUa0~h?Hj&KR(F`>eV4X=N>?53j)YUvV^Py8fBz^FT5fpwxk#O75RdwgN01BEGM#$!8OM_ov4AYoKUJcaQ4vp~8>dy|mWifxiby&w7A43Pv0m!f z0uDp|gqzkjvL*&hugyT|_q>uE^#i3Ku`H8G?uGtfmurZOdN4%h(8N@s28NnT(o1T=TNVTIob?qglni{eRuWT z(BYxJ^x-(L-(3wBj4oFHe}&?bQs+SAn@vv8|e%NL#I~P^S`s)^l%?w)53}FMN;jgCSs}A8! z(xFzpBoorC3?y+zx`DcxT79K@C8^RndRUK}M1FC59yXo#nBZl@{v;;5_#O zU^N>uaYW(KFvSgizG!x@T3m1-$fptBx>DKPk5n-|2X3$JN8p|S1@FGwvyXhxm4HazG7!I6S5{?c0~ zIAXDNg5y>MM+ts$2DpI|f1+vDr+a}78;zVzIKbRBK%xQg2|3rgbd~%8Y-#2ugiGE5 zt=skDd62%iP2o@@p`;?A21X=ENSuV)A|Ya!PSad;9=Vgygq0d4AvT)2k`Flj#7KxM zBqSLz9!RLFpRm?AB!p<(KRL#cY=aiq{~Bwld9)WZ{3a3CLcud?5JB}nA2$lGf2Ukc zG?+O)@JD&VbN7hTLucgIkUNw})JQgkh{xPCLckh~(WCt$ zXHhzq5EIk8B2doN#( zCghmUa`J-MNv`oZP<}TH;}Jf|BpF0v##NOVLm`prh%{?97QuxqXxUtFV8iE3As_A1 z-ypVwM8L{WO~^z@ON^;En3s)^^2k7$3g)0%kb*drJ!a4vFt-U=;6@7!lgV94P5LM+ zi*C#Ez_MYVTd_KsTI%yCE&c5i<8VI3V z9*BWW!jU2YZjQJ-=de4-+hGg7VcqL>&reW$BUCAPKsv^px?`)o&>A<&J#}Wrh&^D3 zlkoI;J^bVv8w0586XnweF2+9sJYespqz6va={_6JSg}zyMo&l+v;rG*g^fkhrU?f1 zYf1qwMmq1G!~(9jAU1A^jmNzE0Hp;pPbG;^$smYUS(sBX7Mtd?OrM;&9%lXMxn?Q{ z12J;J6;|gZAiOEql%fy}Nj&jkHd{~@3e-p9S~>l~$%uiI*~Ml9>bm&1Um^X5{>=0n zst{B$MWSg8RV`ajEKD3m%llCn^6NVXb`-N>!OkQ~+Kycf9%h<8^b}q;Xt5iF70PlypDOYCis6UJVL<@ooO0wcqBb775#p(a9#umh zJ4_{G)zHaAtVWCWw)B~(-bam8AsiquW%MP93YlDw1dVe0c_Tj+FR-<3SVWQw=qeMf zq~6s8gD+~qm_SB179l7lObbYmS`=iOpr^B*4PXagEKImOrWa0vP)idrq71u6`q~x( z*~CRd1P{Auu$dTXZv?!vR#!^AB91$M+>VSTl7Apa-`#VBAR=XWYE0A@zA7 zRH{j!3k5A5ED@N?rfQT>hbaS#!EgF=D;T!J(?SilfG@nejdweNl*;md#r5_3zC=0_ ze-kiBssl=gfGp7_yhxejaZf&(#()S<%C<>;+X`B*vCFF|A{qAH9XU621>RQ)s#2n# zeq*W_jBafhmFdx&u++R-1_YsM?wa6BiE1cW)1+ByRZI`8?--|omt#gs18pM+NLj;@Y?{OY40&q@TgK=(jh1;|Z)*5#Oa-Rcz@(lM`jg2n zhYIL;H{Zk_8H^i{m^}qMnX6syUdo;)%Ohe~yuyL6UV(JI)Gb#3dCBu6iM0Ew`O4CY zHi-K?)SEZt@}Nm|QP^JNgV=Ya--zQe1Gh(5MiY0$57x7C)n_mPDfv7?*oKegr!$V> z(z3{HjTgFDYD`CVa>;CS6UrXzML3*=@sY=* zxJ2dub@QuOY^YKV-G1p~*LW%8a^Vk*8br!fG8RDEM;b~$F#pN)s^@pm0Z5J*1Y?xJ z$|c-Tv7Q;&NOoa}3JhqPegS2|WnP+G1G8X4=JwkmrLG+<5c!Nw(tGUeNRpzk=49=L zdy7G7s4V-iE!tW(+m6b@cEY`(Z6cQ8q40s&v4>=;c*z-18Z)bJo4WZkmKT&KrVsNN zJI6}Fg5~NXjl);ivyMM&9L10lRcXb7eK0d9myv%bI}0M$Y@i^v1b53lgEhju0_=(e zG+to5+7MBFv2jRlSA#aN)&^~HQw=)wqv|c9OJgG@qFCghFW5^Cit3GbElqE4VxO%; zrs1zbrbW00$OL;gvgS!%Zn^4-K4xyM$1pNw0i1G~C-BZ?jxanINLMs)sFSnMY4vl!Y29QrKM;9D?_yrf^D~Sbjgcz@&|y!=QgAVlr!h- zV2)YfBE`}^T5Pfo%+V+RvO=j^n@4D#S4Xmqqe0|6vNE&E7>vb+Lh zYtFQe6gJDso)}8&V(%XWr8v?7p{Dk$0Yl$Exaf6`dwkAx4j$o5(0)qJ6jq-wXEJl! z7dzh*8hvPw$C=u=8Pma18V~ud;hG>M_hR}E_&V-AfIA=Egp;3Br&iuheZ(r?= z=u8XXRn~chUf~tN8yhA^xKuK=u0M&1tQWkJ&In%B_k;y+^8G@u4|$YhHQ;rER|7`y z#y_y!>!?~Ucu$31htCLlM}_dI&@uunfTX7cLXNZ(J3bUny`yAE|SS*Bq5=q9@fvrJ&J6Qca%N`SiQXh9dNzbfru*afIKaS#HhbSZ6Wl*p z`5wZ+Pa-~t8%x_{)P#qc_S5Rm8G9Ta;zRM+zGnAhGjS_tSJF3xL~3CY%_k3g$7I#H z6FNEYj@hKay<^p_?6pw0^{lD_KW@+l-W;>7Ui!Q1iPGLq(US=UZ1DT!Y=NDj@XfH7 zP7dW#F>B!)@KAZ_11z{tKET4b0BTqu{A#||2pk&$=0t)0O%0yo0Zoud4X#?y5EIQc z&{Z$$uD+q5R!ya70^Cz=7qK}IF*>p$V&WzW=ouZ!^%a2xBKBv-*A)??zZ4fDvON?T zk~Ah8Vd$9=dea^B_4Lkk;sT`2WnP=Si{9DHLG*4>?nA{E(fj5=@9cv@(1`s?1k0Az zYi-J>`P~l`vO-Sd$Mg3vPA9xHb^vNd;f4^lr09o!H1U8e86)bWVY9$TbvOgiR1Bve z_pEL5bJoR+#7`9Q&jyq(k{#s;7Amjfh^ab9j4L!XX-zS?MmLHn>h=yPnpriYXgi%E zdUTW%4E;Sjmhg~|?A${-OjTR0s`(9i-6i10z8~wOT(G6p=iSm;*?zCt=%xyb_QRc9 z73G?!qFfUs-f}-)-E&H}_(?H0xC=9Fh`TxpezEC`F4L@=hPyT!cY*bayPR(b$yK=Y z;3zB90&e@kQDQVsATaGZBq7}u1>;y`!?CZ$8VpCsYUG>joeTU5D*>j8ldvYtz{%9c zy87W@m?zNRNWC?15?Q-ZX_(BBljl$7TC!;2EX&AbV}Vjr&5bfwO3xtdRuWkA71z62 z(W|I2lWjKFvCGz5QFv$jjZ3bU&rimggw|PXSFcA@`L|$&{u3akdNF(~zsT zgPb8tjJKI+rNXGPaaEUV?w|Qi8X)Qfky%&}T4l=9gMmyXifu*liUwNJDY~9MY&t!TbSseaPAURp6u%>vCgpygVc)^pHmsxgrjD%xuh|GhWRxPW$Dg}MsnXu^CUg+3Yg{&J&^BMBU|pC7}@Foz)BXZCtDXx z@d(*!7Re>mNyrup3bL)(T!wJpQim}6NKlm4V2BwY`mgA`BH?-k=q@8*!n^|**2BC% zOysN?TEXn`q^e7i5vhs;U_@IHP({*}R2A{9Bil-pR3D8>RY%DPsk(fw%Ws!QwU)kD zsj8W$lauEYlByL@A5W_KP-7>_N{TvsPA*mZG0p!m$nfM+bwiTGARHpeQ%O~qeL3`Asuc;Jj#T}jBxg4_ z*Gp9it#w9%=ol64cI=3RmHw}rpbGD0BY3g+#6{b5mc|IYVw*u zx91|li4>~vPC}3)9~}=b!WK_TPbybAGL=7`m_#15Wux0_?KFL3Y|F(}V`(|>RR_q0 zz6(TpmUL2n)jB|%wzyS|zL#xml?<&;6Z4HN_NQuW9JY40Wa+ESRVi{%Qf>#kRhHGIuAO@~b6_{2p2`Z^``{JP`%n zy(=LSMrSyTgAv-c4os-wQ-WAo&NoXhL2ep#=97PMxEvZ~&$wYyQhU#XY2>i;@aPiY;Vz`x6j)(ZLL>Yx5G zX1k5c|KuMlJkRszu=fk^$^5uci$fhLN%>Sqio(v-x(Y+S)@)Sda>$_$K>_{u8V(qI zMK?@9Jjf1a+J6B$AM8qyrXQ%$`5t}CR~4gaj~a0%6GY{wxmt5T4hn7-toXb~K*2-*9aha(R0)svU8+=1nYVpS|OYfw9r_WVEw+bc{pXgjc~ z27ykSJC~oY*8r$&1xohsll05JyMuAU?oewrjQhhdc2NhF=3M?Xbn_vuRwcV=_1A$k z%4a&jVK4`{LAhMz(uWU=CmM^^+-hDQ1#K~#ham5-h=OB4ZrB->8A4V#IMh~}i~i#v zueAtU_4uB!tMTY=uOf$}e6<#7c(Idi3R?n~vVyGbmPVfhDlNp2WKvZIiOeYMWokI= zU8@19`mmX7ZD0=RpHI`@iA`?X&>ynC)F`F`_4zdLV1V%_xr%~5Ww5q}5!H}US#4V% z?R$^5aYBYm_6P_S;Q4WoL5CeWPO%ei_GU;vdzC(BOI%T0lwF;sR}F;tstvZ^SIK=* z@V)psWn`+L7lTnu1kNK>96jL87lKe|l{GU`8V#MZ&6Uk}_^!I+EMeNdH-SpBr)*C@ z(Tsh=q_;IB5VMcz&xcW!qQJ}ey&CsGinPcf+Jq=poE9!MiLO#eNWFeV5Cn_sUf6)n z4`hSv4pa;M8P$4y6=AE!>%nbRGXz%Ee7#f@h^J$rt(R91Y0~_bv$fl_fXX= zR56ca9en1S$Vtc2Fpxtase2D=xhNduoog4Yn6s7^{bCJ!myERTb z@mtlXbc+UC$S{w{x#}!T5}Pzi>*5MhQu{stu*(o2;3iFPYCz83wmOD*2b5O1mQYwv zw5>>_z31R)HGkL0{q5l%@Oed-hW=h3Pe%Ua<>ASST_w&i$&9hVfayc(HA2w4LwXmG z!RB?<{(S>orCzLAt5E>(9o$s_K3|d@yc_+f=zXDRAP8-$B5Kwv-^o|Q)?GDH3Ia2$ zrM*KhYD2cqsv(B~w+q{(1D*r2k^rcF@Q{?Tp0sz^PC1z>S`2^?TIc8|GMz%aSlL13 z0Q97sl@!~OIJn&2co#$OG)B#ztD%6x|I}jN7N5)BV-vNij=eCnr(LAq3mojqS?X-7 zD6zrZvp|d3#zv`?VV{6dESOt4?G>UFZ{u3o2|Wm1lXl4JFf>`GoQX=j0Oc#ZdSyk3$Od-aljwuX&H{Vdz+mcxiN zl6uL8^|KS|?9}V*4AxVz}glmDDhte51FpZbUjcFIaM#o!9n$sQ&w`ClA<2@8+3O%e82`6!=klMaCrJbi`D5X#^ZL^Oi(7ub#0&6w2iKoCuH3vwIqv%7Nw(fhl_Tq$v z=|TEpIBQpQ@&(&CD3EPqk+)j*D!v(3+m@26uv_RE9y)+Cp$u|EcEPNZDgcQ&}^LlO*c@PkSsOp^lVy zOye(kHUswX}~v{d<+y@nlu` zQx*mUmKY_R$|@H0QOtUZM`};g&&6SPLv4Xn5#;SG>Xm!BNcFa(vS86O&kFvC={G~) ztv>+>MRZ63hCI<(gXCjf-lOYMdyE=<=F#OedS0?$`pg><*$PGcJFvqEdoKh+dyHI5 z^7OOhD1`~QF`~tes@KRlnk)b(jITXBK6n}9*Eg_E(*+P;+J8AFDWC+eQliZnHqc!n z5R)wGkwzRGa|sZ#pLi%;-kllalwn9oCfXhsFT8D*=UNf5?)r)ayL0o_i(tv7%-lU` z`e35`Vk+IqxgG;JyD%^TaE)zhDSESQ&H;47u(i2bK{XXkSq4`{Q&6d;bs`c3CD~Iu z^#`iND<@BB1*(oX#gU4@o~ptDP|Ayd3)f3&4!=sW;T6^3Y9cnei%B(eB_EpUdhTOCnp)Jqsa z-!duX)cdCiHcGMq2K&@&47d?0Ax(gKG1Z-yTpXm3o}53`h?7XcBQIe*pjr&&6xe?< zeCyqd*lVOIqxyW|fib>h5bq0`C*)G6KJ2%6Mj)iggKzCs30H4XL|oHeQybkxqKi}p$c#y z`*x|r2l!qmdhiNSU~sg~V576YRvA~}6BJGGg9k21_9-i`??5AaX8B-n@=!JOLEU8xs!J z5McH3!4ss;t*rEsUUiP?M7_#DIRni#+Lbaeq(Y(`l0+R37L zfsI{Q{h;fcNJ!Tf=lpzEqd?Eial<6MF*JLX*qhtz?@f&hmM)TTVc7sZoQWforcQ-G zZ(z@M8jB!>EnN3NPflgG#l@EV=`ShHl8)vL$M7QPF?7t7;z1ss9)dn-e@Bs~y{&w^ zh4MOWb6P|MHh8&(VXbgQ=tt@}NXpqZ)hbXaH_8W}Pzt!zN~XPMEjX>{x;2?~2p0x2B1{A3+aH|vki@JG3yS*O##dS~l*jwa-b z9yzOgQBaDLc%Gs+oH(pEJN?a>dZg2jc=S}zOyQ?dc;`xQ7o7xw=j1WT^+23cap)S( zu{L$ncHGY(16Gnr+>Op717C}LiaF}Qw8rwA$+uhq{F<0G`hJq5h0*mh`8hAl&pK?@ zl14ctal{d`h&K7T40%EAK9g3q=TqAGY6paz>c=dacv3&`jpzWI8t3woCXktW#hEU- z%IdsRi`-G|Gj(z~wXDXy9r~8*f-2)WtA;bW0FNR%IJzy-1+4F4IJ2C>nD~}cN&d8@ z{Hd6|5)AN<$tZ1D*`T8`vi9!)>EQTj*tS-%#Bn=PZ1UHe*iTTOvOUpq%C0M+*>=C# ztluo8S8w*rrF`dUG<&9+Rl!p=n}ue({buvfEL5S)<|E74-nB6oOL^}!8ZXqi3ZAO* zJT#v58)xZ}f%KSmtOX9bjnNo3%KLFh4{3u>v@@x*)3acJx67@SKAYtl;Qt z3&#b3S9qS&p$LZOW`E?C)6K|dX&kzi5E;*(yp%ubawb-2)Ub``nzzDMa6GLVe=-|K zT0wtpePgS2u&qx+)Q*UDrvYRr9%IE4T9POOQQ#xhxgv zR0~>)wZt6AJINLpWT&=q#bI~wBZd7!~%p=fIBJQM5|RkIi>ZH=+agQ1B3?WiG= ziQ#2fR2#jkx-T**a)fh4w9t{;yUioP)1Wrn(h~mHUX7dzIW1B#4Nh28w!ORxCesQ3 zUc@gxW)m)m4V{C8(AM4)Cht)TE~D>f$~L$*!CdNDpp%=u68ka}_}y=WCYE)MBF|*X zxj7Ofu+CNTMLN9Q$v#blwFGnR|8;J8uR7Lw(GE#Bqkp=EbGHcq#ry4KOKqykf9f^5 zEYrT$I=oSB?SFATeFdJDcJP}f(9S?uw&=#9)H6)UrX@5c<%IQ>&x&|LH*lI{cZ11h zzR46cFZL=TpwnDK59O1Q2F?LUD##X9QqvAV?U1U)44Q>?;%&Xr6aGla%sAT~2Tp+I+P=^p|`{Zlpu-D2U;UhV%SLBj8I z@$8#KKLCVj-(d_{moMeKOGfMrPrG^e=?kTippAAo_T**XR#l*cAB;tF@w*>A!m zJFGbWw{-{7{SM{B7ZV2(LhH)V4tEKWdeZR1;O4dxEm|y_^Q#B*eppB8(5U|jp7h?KatNMFe z9PGi+#Hnn;M2sjxkxdBB;ACM!8REk6D`7`y@ff}s7a8pCS7tS zjKwCNXj*Qxd}ulm=H?TL6^hgH>V&?cO3RRF!s7JB`lW0hFf3WsQ1y+{qEbF+CJxI# z2`zk7El3$yebx)=6POfi{A$}zM)i}Z)EJvQ6GzZ4;fhf6fUP8@tfXpr!0)C43kwQD zY5PJhU9H;8+qOf!wv6N#JJe$p18XWkkxO!!JR~e81Y^ONnu0pDZL{u*Ndyw}i5TQu z_7i~6=Xe)*_OO?{NNG6VT70a(wRoFbUH|Ay;&k3hpc6){;3}Vo=Hjzhj z%We~?l+Sl*6y~*zQ}smsVERgzdCExy$Z%uU%w-jl01HMI0q4xhB48Uv9i7HO)<^|A zM2$?I+VKXBa*uX0?xgRY4z9x87P-+;7ZVa6CO_v3PF-zcRqOE8UgkC)yI+KZFYK2N zzJPSBtJ+0dt_Aa#8YCB!Fa(u&NMOH`FxuGJ?ut#Aw30BLoQs8)077;E?XFk`rk$;} zAJ=Y`{EF>JB(15}%w-~=sUe!TX&Z$Sy=8>cdC75XBOy&yD6f)=rBp)24c`HCq$+C# z_tvW4ur?(R!eHyf8KIpki^j6H<3~24&S&={nRJZhVRj$K?Umr+Lu8JQs4CgSJo0cp2!a`)RDxJWDv%&D+z3(_`YYH`prBB>|36*yWzKg=7h@G&j3YP+-7>rIc;vw>!iMDG2Q$?qIp=%~i6J}5 zpf1Txw5^k9E{0B3o5DY%dYp4*`htlAWhAZH-WKrG1QU9^UFmU-rI0t9539S_nRxW_xVP0VS?k0Gq=u+n3{u%%ksU&GI8vtj&~*Tc+ko+?SXmP)6oq zDKvqy(FbHEtM9QC`+Xr+fWzWD&+pWa;|-*1qOv+cPwC#CUW>P4mb1#-q%!&lh!Dxp zPj<_<>urSV;Y^-r^6}f&qz(_Dk9Kl^x}>-CFeu5$dS~9g$7r-8JvO#1Y@))lhOGCy zw6#7kmKDqBHK4tEMC9RQL!&V>c<_rtWBw(L0RqO&e{#QF=~#>iQ!E_YwM(&KU z*w8ITNK*?iE7w&IEhfRoIjc6Tl;xG7w?UAaG6R-^%Ce?8J+fp>PWt=hI0OzVqDU5f z9OwXmP-4(o?IMZni_D42nDa98(1FT=lFkuDkNNE+2N847kR7@}n_oyKE!mZ3+di=v zXMX`K2++V@)}5UU3&6oOKU1w?dKYu1QTb5BUqLbEe8cjAwETRUJ(rP0<-PX)%e?1R zTt1SPH+Ah*!hTWZ+GP3hNxNm*e5pLaB*0Ym-1IUFn`B=$dLdNsWuV0T=XS4$4xoDky|K#=YLu$m}!-L{78GH zcrpTZto)Pa3Y+T}nODB1$}^^{tn!>2cK9j(=$}#T1Ris`Tudvw(7f8;`|V>I60=3+ zx8HM&L2aR)End%Y)synX>Jj2*0P9`<8}&?4&!%O;Y$oUU=kiVWMtr+ly$0AYZc+8lR}$lLk{ z6*L}{SiZgd(D51y{7gnEeCrZ5`(WZNnBr zK7~Rifqu12vb?bm$=b2*b(<|Ew8r5&AsD1}ldS-MF9W5*sPa19yj-uix z<&(qham0wV2ZoKDC&6z;&ePD*G+67?KMgF4(X-*I5vbHbn!|9_N)XiuD+-@oB2H%8 zA@&)elW$*U*H3tA2nZ+uzMLNIYq#pF6CPNsSYR5CHx^)f#sLce5OCEQu3H9x92yv; zjt;2>2@){{Ox9-#ZP({aLEpy(jOBt1!TP7NG8E&3W$KR!`ti8WCR7>Nq_f1NG$gr@ z?^xG6tvgijV4`|mWRdb1rVEV2;W>z*v3!eo5ss;sCCjX8xBi&CLT~9*X+$fG(`En-$EpyUHEcQ#q$+sqg5-ih@?e$lxr&0mk?o!@icvU;oh+si5-fIW;Z>>8R?q<_lh()XXMoIexZ5V8S{CI~5Z_G^+FjAr5O? z%A`}?@-ThwJ z%Hy~bZO~%J^*QI0Dj7u`CiRv6{ndM=2!L}?SgZO*;?J5~HR4e|h!M|L@GhbQ zTblv5h;BQ$7SZjX1*oasf=m2`eCu!vE|ycLF%+`a1c>*X2F9HTM}($Jc=jw9uBsBq zU`up|xHY<)s_1SO;vnSfw3=b`paAmC@YHZeUEGr|GhDli4!J}}q6~M)rLaclR10lrZ@o-OMj94i zsKei7Irh$QEx2!x__#?jU_SJTQrk^PYq!~AT7d+F^gLo&Li+s^Y>JGKUPDN4?F;F? ziNCcH(rZBuA0+GmRW7=a&WYJ?B!^8_uU0~K%H=TJ=T^@Ndx0hH@?L@&d*1AugC^aP zn9J@c9Jiv_^JB}FHNT0#g-MVUnV?hdO@m2JPUM*DNR_|%ATn$QN&1~PNcJnk<>t8+ zS?vgsITr(8yK;s6$w_AEFui#MWxhv}eKTnIn^$11Ru;F}%yX5+Es@$TKmT^@Z%^ehS!4nCd&UXL${C^Qw;FdJu<*M zChrqyU*i7k1%fl2K~d_9-9W$;VEeCZa| zj-5{Vx}Dw^xT_}-xNIpcojPiEPvu*Kz^&$SYG(I>ux6CfrFjUkiO=K6Lpp}O^LS3G zfB`!qQb1_5HV?*li`g9rWwrvD*$4w;+vdJxYzw;Xhz@g=i(2w_hZ)fYp$%O`#(u+C zoPDaAWH;xEFlVtKGLa^7SGN2R&qDP8dCSJeD$@>5R29fn=!w|H<{=V&Aj5-h_wFHgfV<-{ z!W2<>2`Pcx<_KB|M$BN7fg_ggu!Oa2s5L8h(84Z8?Ul)k>GX#(J^SVlvf*Eknb6n@ zbz(P7mj4fi2SQ`K{Q93#GDu2UuB2!nUYE)T9;AS_ME~rginYw-n`E-_;(Z_H1u^A` z93c*B#nZ2O9?}cKcJUFU=w|PL#K&~`#xq=M(&CBtBfuuh<8ugL^yWOm2=@G=-^ZB7 zN|D+2JLKDLC-TuMKk}n=4%)1VQ*@bEEb%;E-k4)RFJn~GSx9ZE{1yS4Dbi`j%6I%5 zNvavX4}vggk{}2dtz)k_-#Uh=UET->LwY+xc>8w@SC&)?qitARd*oE?@(Z0F_B?vJ@gTmtw4MMkU|!&+80W4=|t;T~smPp{5X!LxBcMUS(~~ zaTCA)%;MpBbar%r7`jeizv4O30i!DJ+d5DIp;P8pV7rvZlv%7OI6-k0*{wuHw)s-# ztgTDa!#&uR9G;%u+==Hb0FGdv>kIaN2xG1i?5i>138eL+w$N7vmFS(6GUdfVJzR?w z+*Zs1D6ETJfNl$4v@Ux6rDeKh?` z&r)b$qWs;TQ5VL`hc87;waXh{O#^*vdQB~`%*R`x^O9O{2*xL!`D~_Ysl#Rj2z`~` z#Fp(l{wLgt4^d;#rLJsUQS@+}F%j6HhdRpy;=SQNSP*@zyz4iy)n`5WT(?bi4!jL> zk$MQn@iD#q;9sJM@ZP%?Hm`?}2{H7g`$n?W^QhLv4iF4Mwstm(AW!;GEf&y37;3yi zy5uTgHQ~7+W)yTY!jT3dWPu6gdC}5@%C`v#1gz+GAWE%<%mWbw#nH&K!+aH)ok@Um zn6q8J5gHVs$RyNvqOL8-QKK#;21D5dE{Qg4LS%?tU2LMrhpTlNCm*T85yr8RjAGEj zm2^9XyCGIVQFQ){&1w+xs*4^Mq6qlm23*z!L~dRtSR%=(pwRjVtBXsPfelyTLTw9j z*O`O0WCS}#4QZE%7#PDJyA+cot<%3^Hf>xb;>II(vGB*o0YW4ghaS3(19mal!c#NIS?_WmE|M^_{+lKc=RrxY#oVC84tX_70* z##IR)rppFGLjyrseF)0LLdSXXh|&3ygP zbuLaHr9FDrsaACL3Wp}Bh zxC>x$62L;&jUjO})G^_(1dm2$j`n%1zLvv$osH@OaBkGm4z?J$G4c|&i7@sla)zE8 zMUIFGmv-Z$wYjL;47nJQNt5D|;|;+zfgFbc;3AJKwPA7NQfthKZXys}I}jaFBW3}d zNIQW@Q6(c@v&%yuI9#(wD_tBwg+tgthYgu@sd>~}$`gq^>TBDi3o9&%klWlhyvX-( zA-B0Qyw+k;dJ$NoVaYBGvR;mv-h^FvgQOZ8ge6Tv=6a6!F-kjbr7*4VB_X_ndbcM; zEKk_GLl85HLECZ^vxFsiDmQQz(@|Ch(n=BlacAzcCTwtyJ?0Ma`y3P80=sHe=NE9N zXNe}F)4?OByJ;4Cy8IfBw8-L}!~-F}DiOdv&R|GMtdWOJNQHv8POYFaHDQ97t=vI6 zQ+F#B6ZG)6jCTe9=?DK;9QzXwAbFyUc*FByz42@fY5RvGWrJ(%B z8=p?lALj%bGXX51^j*_~8w;GFKp<+4+&0px&_$bVfnx&?+OnN&<|W2dCkIEf>0G){ zBGV=U6YQXHV1O0uEHl^O3WpCkyt!x2U60#R?Lv;Gdu>95Ak450#cfv1g{c|% zVZ`qe_(>HW4 z*;yE4m}$hcJZ48NBP=SCAzysdCS$=Qk7aEObDFnc_EM(G$mg0Z+~D&ud+cNfy#QR+ z!pmkGG1!_`&ZKl*B!fc22Ck|BSJ|btiPsjah?WNjmSe2 z1?mhDeYx*7DPjQ?arH^~IAj5MKtJpAFB5#34phT#*TFeXYGJSy zmP)}9EZWS}ydZ*b@v*_ z++#Y3aanQ>V46GOSQ(ji1oeC=muX1ZNyQqYsy;&maF$ty&@pT=kwh>WOJ-O}O7m+? z?nrggt6EJyZn;h(49Dv_o>j4REDwM1c)|q*$geXbd@6=Sp@<>7rL7r89~?J^e0L`q zJ2w3)^zte!$svv+elh|Lg*YE&8}DM=+0quECANV`&LuC#w7Z8mrq@wQW+Z>)nem>Y zV@vZp2``@+FOq=ChYpqa=(!E$ohH3)7RI91#lM9VbH)L4NToEF>qG07#@$6*%6K?;|(_ISu{QRVHNs6gryutI&LrE;dxdg>Em*60EtCP{`v~AcI5w6&)4b zL37;=o5KMq&5#KB%dUgQkyA1x-qDU{ER35lG2WM2_y}%DOtFhXTZ?9uN-sHt8z6I1 zQmb`E`PgF(g^(qzdSfoS5TO!XP^;wFJ_qp( zOxU3}ZH8J$+VZvXZ!=t+h+oo!FhrBydt6^raa?^W){Sk5NA(1dS(#$pS}pkACT3f-1?;Qqt7 z={2oo)eGf79`` z)%cocMNy@(RBC}phxsqipG+r5tT{diJ;jX8)ydF7s*|X#V!lMbLgiW?K}WC3+6B9PCid=&L&xDQP$x~>LRQ6(-i!q#;zGT3j)M8>@x z_dR6j%&rp|5*PVw-O$-sWXRh2?nH*9g%~!{7DC^f)L1pfUX**I3WFdbzNJ`$9<5n{ zgCV+66Dwfd*F1!%KVIo7__wX5Om>*iIboj@4k3p3&KGK?qE+5-f_Me^q4wkUnn()N zYEq{rS`_z_<^P)>K{Re=>gu|m#nZve4}lJhedHaC&7YeHoKeV0;*iMk+#Y|)wUH!OvW``f{~mJ}NA zTi238<0gg16O&nwFNFxw1vWdSAja+cXgnUKMKKHAydv zvWrAE0Wv2Mo9RLrxj>^RJuqreGO$qtZqhohEr$8i(KJ_=U|oDP^@+q$d>o&|p_kT; z2~6g>Kq2J1KzwDOknu85$Vlkb1(=2U>u!<@Fg6o_1~fj!U71ifs?luEuv1mZFeGlh z5|?2n1w$oDr!z_-1h~$Z)0k}yLA?%bJK$2xx8w>_kh4LG{oxqDkGq)VyJ6YRt}%x|K5%J(qsqrAs!|4+p`MHqxpneDL&pe1Ep!usUj%KZn- zUwf{k7KN6}Z%in>feLgUzg_U^C#54xO_eF(4m$0YU;n(an7|dfO%V{~&{3skEk5^6 zi?s$>afmOK9cg^c*3vjMZ)BknT~>qy^$O+*<)1zW(( zk$HuK1>0H1F4(I0Aa+80SPyJ^r5kb{fz3!1QZ}EWkn5uSdThZVgCcP!<{}i0(agF* zT!A%%TAR6etP&)4or)_iW45jS*ck-F&QW6WmAX3v6W!Eb zGc8gsCQ7@%dr77Cs@_s8BwA!AHN!hms3tRu< za)t0cA+12l+VU>g&lM?)QjL_UT75Ki(uK7{M~!v|^lADdGq7RgI<5MM<=70P)2WnY z?Hdu3Vxkf=C4te;U}=x z4$zu{tVCpQZpNu?ZbvZ9D%{>y~RaFFb&=*4O@n~BuJ#-^-Gv9VmWRy!_LPe`a zMOcBv_NQx0o_2xZX)XH@;fMf;Zu^QO7#MM)`7p}?h1WDs!umL$CkeE4iBU+H(RMM5 z6WHP#vLI~XPl!~rR$leFRK$ebNGgVehnCF+`c`$4iV%1prOtX%>bjt_2(mf|;=F?< zEC)1X1lRUyqD<3SU5#4KD#P*v!m6f(YRu52Y3a zpV%VMDx#tm9~5gDT|ukZf?%ulQLsK~t6g8V3dB0?1sm~hNNxy$qn zRcE|ZGRi8qt9K^lv^14)@BF2#8eW=IZ39(Q^A!{=~xkwo{TW zMSpBqqF(-CQILk8Vn@IyDAy!}-cLs;+r zTE-A(@z*Rw*3O&U;~=a!Y)#_AFDeBR5Csujlr&(@2|Gz7f#ro_>UAU`Qba-=jJbVy zjeabLEk+XToY6)S%EC-@h7d~5I}?4EC_;U5O)!A4Opi>R9SvQ)av29K;$ayGjk7G` zl^>NOf|{eov1ro2SEuv(*YH@DC4t`^hfr?)yMpp$Bk1y2%aktLC&O|I)||!@k#Ue; zQt1(p;6eHAJ`UsCl_yux$bidh_A2;_Y_Ko$O(2x#qS`v6ADzIvkDv}Cg#0Z6PiDeQ z)CIVdTQ?dDjX$6*wCs)|Hj?-TYawt*jp?xfC>B_+SeJ<(05}t_*${(%rw0NjCNc!B z%^c>Ic}&1N(?AAtiT%?$gb!%#eGqVDf}rQALDR?nZzP*v!-|0oVpNseB!FWBr@D!e z_l8T%w16WIcWPkhM&j^-H&rM%5x&~(E_brwH5*j-IC_*52~HI`w| zuC_*vJsPD(iHKROkr;)KH9p92Tkz|JdH1lB1~hZ*H+nm3G4(}dbDP@lE)8fcgXE|KWr?kH2%h#R zbWe0FM3-c{8@78CI}E_lKhs(O$(YA zM%*>6)lDGwS`J*T-6V zBkm(|1j|ghdUs`b&R%%32wf6Q4eYiod)Krw;<7{;xoTqrAhvW7{j(bs0~Q@lXe%;9 z%7tyUTO_)AVePU?5Lz$m8J0*qleT~)nNHZGD9MYVvs{fwRomE)mS(IN4|XzI-O z$Q`U!xVdq^Sab>F=)uQ|Sd&YJvSR3|uDX$`wX#rs9q+PnZ;tFgvzm!7>0#191KlL8 z@3v77+{N}v#jJOI$~;R1LuKTnhV+_yAno^M2r}R>`w5Blqu$|*g?8ko)Mu|s5zl_DJ=SK*r zV%Y4^qgdff&e7HgY-P$sZX8s}EYEOccUjdc1J|t2YPCu;p!!)C(Q^4Y1t27wJ_7Th z@%?(cCPv|@g$Kn5I<IpR#>nW?Al^?}qsyD@i=tccFONyl{vy~N^))ifr zO{Of&hx~qoh}E(@1umPQ%q)Db6XPKLqI)vz9N?-PSj{Zb$!`-xI>l0ikask`$Tm3wPLODaYMZIE~1%1+ozQDhE_P-G5GC^Cn7vpq`XxM`=N zzEv-c4Y%r_CMh;a(WAHswz5i1G{45`dku@a3z4G{k6|c;}B!fl|pGlyOtc{a`8trWcD;A05 z$}io@u|jWJ3?LM-f?t{nRE_~c9t=7Enc zhzO?iTno8yD#Sf(F^&}L+F3mB*DiY;5<-<;YIf=C6K1WQu&C5-npep#eiUC(yD!iY z5$FbApk-?zjYk%Utjh81NE}(fPsXIhh&N0$cw`v}sOv6ZM*S}65!P?$EE{oodBsd4 zF2NmU_=J;mhRQAwE7e`7DKb!Ro_llz`)ySjf??m}6|dUN>2-b*GuOf{>o=H4mxNtr zLXA>oD~=I^D`!^N0V(M^DyPTN8Z|jDil~-vMp^L7E)cM&ZcW%Uu@qZ?ST<>~oKMkG zJCIteotTbqNvWN0N>-;BbYL8dXk|y$`Y-ks9<<>Yx;7uIx=-)8X)Oqh7jL7;aUR^k zam(ePkr3Xp0^9GORvCG>T*)q2zD~0X5~6{V4c0E`f@U=^nv1jBA74*`KyRLwIrfz( zmS-?ln*86z_P?x=mzf4EZUEbfAqci>hq$R#BYnMb+3I=3rX_oc92B6g`P__Tvx+S! z*%~LbWG^k3?4ko_m0F$%Xi+XgHx^z5ool0~)1kZGc!xaFs?=cu-cp(Wja83kL2dnx zlrj%*ntI4iK4l(W5w%P0)2=Lr!*5@U)HQ=?S>TwQ7K(j|LY1 zOc$R}hfHu#xL9iZM7u|u2r-EWF@hQvpBQY_;)=_P{~`@RJ~#z9^o4%pg@>vy^pbC7 zFZ7$Wm%p2aCKEJ#1s`iZ(E?zVN}PC!t}Hzz&-76$pnLmo#l}ZZ~6>lCv9P` z&oF6xLx~Nd3YsUX&L`%}c6y zjf;`o7rU{BnU=Fm@(o|ni7*b7k-x?sRVh64;WFzvv`FY+!iz5wG>O(8t>Lmubh*^e zr{RQ&bi;MX5%B!Kcd@z zEH)bi6Dg_W@!ZXhM1E7p`v!dB@Q)%S$6!3gcP>p!cuhj3fz&wCRws`+cnw&O5+&vE zyJ+MbX7PWs8FLuC`8UI|LDbyv#=r+YZ|*F-q3B9&>YiFtNr- zA_ZY2Q{2>9n^Q|BS+9yh5;ZV&ON(lZxNs2R;UH3@;V=jvK|!z3P9Nt`pGq8`wLwZ+ zjfNG4x5Sv=Rd{`9oxz;UzZoSR(&J-Ct;iMYInTp~h(sP(6k2fX%CFZ#5`sw zJV|5dOUP(oThCB@*w!-?9}Ic3VL61@X$MX@?lB{xrzn^af~02RAhQiKsr12JGRo3& zGd-1`Ta!h<*(_* z0GBU){)mdrLw?MQUdyGYh+L?nU=_+40MGfzQUJ?e`n(eSc~N*J2B+N3oe!@9hUTTu zE3qK+;FUZt4x&;~uB=6@MEm*hDqsWu5An*dv|J0PdzSOzPrx|8^!XzQ^PR$lNnt7SHxhzBS$#5No+_bu-ZCC%as7Ey5h(ViqLsjAG6 zTjjT1q&@QCDxJr8F)ZECGsVqSp({gIIH65P^k>60tRv!$Vw*Z|_yE5a=AkKX$ki_- zbXj4;3#{ELmv%YT*X}w=zt^6VNaRGd=&Q7pu%UZXy?Z@Raa>-iwdhDF5_x{tD_AB{ zAGsO$mO$% z^l)EnNB=-qS8ODj9mr>+iF~dvwq*-xXGN3AOe~tuWF=wC7E}J^lx555?iv^Rr8PA`>XH8Zi_}+MQdd{XOJ%Z$2F4TKMBfM%9r>mdyz$|Ecl2+%KyB>nzPs(7 zmWTJXzTt)3;K;-K9@-M=ykglM{V(L))SkgR`tNt$m5Wc<5=m zEv>x2ulu1b_q(lU_jO-=`r4D8T5xw;q|;sb;PSiM)}Hjx;e&rvKlFh@;A+#H(Ykn(;Hs@q3n0}-t#!$hiXFlV{&p`TE3=}szTM(RpIKInlP1x-pCJ6nj&|F z$fd$9HH%xj+}b4i> z_QaE4|GU5c#y9`r>F@p1_kZxiAN}|z&ph|@e|!EHzx?-K{rW$Y`}qZtS67?P@z?Zk zdhe>j;p%Xm^e$92q1>yQBX>&gTEaE0UA2qdi|V2Wm$Y?XRlju8Eq8wWa}B4i+WqWt zgW1O$k3Vho)9uem|8)1}*So8Kr|uPdSJt_YEsSh7+Rkk# zRg+Tf(CeUEp?je(L(fC*0@9)Dp}V0kK|h6-G%NK==xk^Q6osyXZihY!JqG;{I&Ps- z=Rkh|T?yR>Jp_FVI&l%|2n|DTfIbL43_SxivC?i06osyYJ_3CmdI4IoSgA{(YoL!o z--eDrr!1j8&_U>S=t1Z^Pd-EqOpnM^YV$A*TyEOn*x*-X+&i52Qg1Mi7A ziK)>{nkt>X%{0+Tq@Dhq{c3aX9=`I1h7z%ae3==8hMa6PJ`cgD+R73@K!H^(t5sh3vn%9!7nODjSZ z-bp2Lsc1enQeuC8B#}OlGx8xrF*bcD#%ycH6WRP&G>LZLOgPb43@)inMs!D`xf}yA ztwmC02pM+FoHaQ0=}e+Mh;N`{h?4Vo6Tg^PNVNSc|sSf)18$oSNiA>Pvn3C zQQ{41YZkRa_8HJQneL;5RwWH11}8GGbchjD+Y=}YY8uFB@@TnL+oO|-)L6Xlbz1#7RDJl*qItj z<`aOiGX@%S%fYc|I-j^KDm}J9hp6 zL+UpN7?cABtR=GeyF4a_usyy)*)g(w^U5T;UCbMHMRP$Lx!kne4CatG0pw{N@b8#0 zUrAL;*?d^noYA^rpb&BDaq<%xjOkWDMXXk?IM6d@20OK!V}0!n0jM#6o6QI+_UKac zhekDuz^J)PHqGdpUo)ioK@SV)NhNBl#t{+u7$YuN;(?0V)au^0=PdA;d?NjU465Jr z4p=k-VJg2h_+-Fp`q#5zi#v+tW}2&&O;i)_CX2j_1!pidiecKlT!4etcPMAuYXc_7 z`bXj?h~q|qW20umt4p3ppo`)fVAFCXS4}sg41M>_fWBpEy_wNN*~IWj-dWze!s$Be ztge;aon334JtLm@Ec-{j;gx{VV8+>%&FsfnaiXA-HcOd2wk)UC3_4Et+Lha**_GVB z4v8KUPV~$GLOG17;1#2niDt!dr1{MMJ>iblJ>|wTgP!B=+SRq%3P_LdL}{xxl#CAN zv?8uH`nYRQ1r+ro2nS+#YshoG^?0*#~i1Qj3JBA0)9-ow! zV_7baX44=!5Hm8C8cd^n27isCRkStQ8Pi6lY!q~b-XswoZ5)kSP*Mp_%EwH4p&^-? z#gD11QS5WfOD3afFC#M^SDlcbm+Bh6AEs#f9HaYF9$L1p6vWWcxjcCX@{5eDa zHz=Q*p2f^6z@Q|GM9th~lC&a}TUzDfy$0Kk_byI|xS|?qVEgX=Jz~~V8B|dkB2r#* zJ2acpnKUw#jz_c18+`veDQ=H0j~v{0?{SK5x@p zckNBfxDTh9(3Y`{$+1it&3`8Fx!hPv1mKe1!QQNe2m$#SAR?Gtgg_0u#yim-p+-}G zKG~PX7UdE-bTki8*%>3|GbjFDI%a^pC?aNrOOtiRv6o207&AicHi*ZD7>wcbOI=z~ z2M^_ONUfz0Nd8RsGEhMuSx<0t-mnBKX1ZaJd4mti(yJ0;jaeh02R7@Cn;CK%7{l(i z$2H_l_sNSc(@d2OWyZ9P)Ug5UI^vb)W%7bj7_Id^HF0o?6W5#u0>jmO0>GDg)Lj0B zw!|`jHV%egYK(bv#q6(GiJj#YugwHd^}Tv0;1QU!mas(T+A@2{jN-Z5iG^y<5k2Hn z=zO;6(e*D>Pp$g5g@3!@$l;A28@=hmzr6gK-urWZwDX}Wou?K(*6}YVfBV#bTJprJ zfA)%heBY%v@A`1^y|24Fc5DAfGj|Nse`(#X!e3bZeB>)<|EBJXYybU*Z4XRdyZICO zw_NaCdxo-SJmfT;+cJ;2&=P>>Jy@xA<$X`svHR+xm3N z<17F5l<(X%__p2mrT^p)?u_1Y(MM8${QAZ(_xwlgBWr%y@YiSky5`~6{Nl~$KX}=7 zTR$~^W8YsKdefFqj-Bz$%l_e&KRo{LR{Z3|Z?^y7xUb*4|2@C={-Jlg_JfIcU-D<( z+xJT7RX)NBb7ua^wS1~9NeI`5u63G!Ex9F6`L(1;UOD<7xh^NaTtCgfmi&bF*GEqA z@04%+b2*xv?gQ&1C(F%Ju_VdIzm{yu{r>vMGtH7z4-tA*4UlA&TV(JFxhlez%7F+~ zDnhM_u(1wN*Kj0EtO&Cz!j-BOS`KwWE1))rP^BW&st6maTBr^pG^_}*DhXYl3Y`IU zLF=Hipl;|)=rrgQh>)uyWUL6Ss+U9UPzSUM>VeLNRzoYHS3<9VPKRCvy#`tjodd0b zUJb2<&V}TG%YT5+r z#4TOrMu=gmVw$-mC|F98izETaQi{GJXc5h;cxH@fr^@ByJw4{3ojEUm__n@Sy3~KJ z$uLo#d#r0s;Br;By(~SY>*>KyRpr-Z&)U|Tf@k}-tiR{ZT0})7XDv(kHIGs>BWKSC zQ)mCO*pxYQ$tcXDjJdN>!@7aFnsT%ZeBZU^XeG>@gCbUSAFYVFb7*0lof$?-MLp!X z?Nb269M5gzJh#>P>H@(ua%<`NIeNP%rWHL=SuzPeKW?6Pxg*ocWzj*f#UxO!`}|i_By^2( zZ+}!pYQzR(grDO4a2TswsD{E&4TK>nU@Z$+<^oo^fHf{)c?($F0@k#E6)j*D3s~&} zR=R*?E?{s9Sla^DwSd(uU@;3=?*f*)fQ2q#jSE=a0#>zvB`shn3o!0}I5$Q8Q`A32 z{ZrIGMg3FMKSljh)IUZ2Q`A32{ZrKc1ocl*{}evJXF{rp`h!9;X*4oOJRjFMoy8+IFhRaJ27_rSkuQy!0nrS6vG)wFf1h$U*1; zRsGFxjvRU0Lr0Dz()!`#A(iHVpZn}%DsoVqt~m5##$pj(%=@kjsg0W!s>APimr_sv zqUQ1ZpQwxf__Jpm9^Jk0$dPkTZ^2D#X%RO~Nlkpjh0{Ko9C6?lHu8OSV;%a@5Mcxx zYWWjUwQ`T#=|1dCZtHY27mQjWd+GmeV&u*FoCK zk=CC-t0E_iIn#K>*OTuCA+8reQbvEit1FoqW&xIY7RJ|VwatHHS^kZrNjc>2HqWT- z4OA%cwE+YyLw;$;MdXt@{u8>?p5Mc91d`9A9N*0GEznKSA3|@1{s_7mx&^}83=G63 zC!>Rj@vg45oF@rQ3>2%{LLRB(8&Dn!?fLsS z&)M@2bDp>74{)Ba=U?D_zde79^Q1lhHs>jO{$tLE?D_MYi^5BL^c04J@J`0!Hs~hE zAB(qh{toD!kbGXpxJo{tA&~FgT)zjp9g^`FA>Z`zU~S%bYK8%EZ~hjlQ={DX%JHyr bKf$r_D$2SV>UouNAC)iIUG7^PjTQSZvb!NL diff --git a/codecs/mozjpeg/Makefile b/codecs/mozjpeg_enc/Makefile similarity index 96% rename from codecs/mozjpeg/Makefile rename to codecs/mozjpeg_enc/Makefile index 7e76fc1a..30b5ca0e 100644 --- a/codecs/mozjpeg/Makefile +++ b/codecs/mozjpeg_enc/Makefile @@ -2,7 +2,7 @@ CODEC_URL := https://github.com/mozilla/mozjpeg/archive/v3.3.1.tar.gz CODEC_DIR := node_modules/mozjpeg CODEC_OUT_RELATIVE := .libs/libjpeg.a rdswitch.o CODEC_OUT := $(addprefix $(CODEC_DIR)/, $(CODEC_OUT_RELATIVE)) -OUT_JS := enc/mozjpeg_enc.js dec/mozjpeg_dec.js +OUT_JS := mozjpeg_enc.js OUT_WASM := $(OUT_JS:.js=.wasm) .PHONY: all clean diff --git a/codecs/mozjpeg/README.md b/codecs/mozjpeg_enc/README.md similarity index 100% rename from codecs/mozjpeg/README.md rename to codecs/mozjpeg_enc/README.md diff --git a/codecs/mozjpeg/enc/example.html b/codecs/mozjpeg_enc/example.html similarity index 100% rename from codecs/mozjpeg/enc/example.html rename to codecs/mozjpeg_enc/example.html diff --git a/codecs/mozjpeg/enc/mozjpeg_enc.cpp b/codecs/mozjpeg_enc/mozjpeg_enc.cpp similarity index 91% rename from codecs/mozjpeg/enc/mozjpeg_enc.cpp rename to codecs/mozjpeg_enc/mozjpeg_enc.cpp index cb4419cb..27388587 100644 --- a/codecs/mozjpeg/enc/mozjpeg_enc.cpp +++ b/codecs/mozjpeg_enc/mozjpeg_enc.cpp @@ -1,5 +1,10 @@ #include #include +#include +#include +#include +#include +#include #include "config.h" #include "jpeglib.h" @@ -9,6 +14,12 @@ extern "C" { using namespace emscripten; +// MozJPEG doesn’t expose a numeric version, so I have to do some fun C macro +// hackery to turn it into a string. More details here: +// https://gcc.gnu.org/onlinedocs/cpp/Stringizing.html +#define xstr(s) str(s) +#define str(s) #s + struct MozJpegOptions { int quality; bool baseline; @@ -28,6 +39,22 @@ struct MozJpegOptions { int chroma_quality; }; +int version() { + char buffer[] = xstr(MOZJPEG_VERSION); + int version = 0; + int last_index = 0; + for (int i = 0; i < strlen(buffer); i++) { + if (buffer[i] == '.') { + buffer[i] = '\0'; + version = version << 8 | atoi(&buffer[last_index]); + buffer[i] = '.'; + last_index = i + 1; + } + } + version = version << 8 | atoi(&buffer[last_index]); + return version; +} + thread_local const val Uint8Array = val::global("Uint8Array"); val encode(std::string image_in, int image_width, int image_height, MozJpegOptions opts) { @@ -201,5 +228,6 @@ EMSCRIPTEN_BINDINGS(my_module) { .field("separate_chroma_quality", &MozJpegOptions::separate_chroma_quality) .field("chroma_quality", &MozJpegOptions::chroma_quality); + function("version", &version); function("encode", &encode); } diff --git a/codecs/mozjpeg/enc/mozjpeg_enc.d.ts b/codecs/mozjpeg_enc/mozjpeg_enc.d.ts similarity index 100% rename from codecs/mozjpeg/enc/mozjpeg_enc.d.ts rename to codecs/mozjpeg_enc/mozjpeg_enc.d.ts diff --git a/codecs/mozjpeg/enc/mozjpeg_enc.js b/codecs/mozjpeg_enc/mozjpeg_enc.js similarity index 54% rename from codecs/mozjpeg/enc/mozjpeg_enc.js rename to codecs/mozjpeg_enc/mozjpeg_enc.js index c3c6355c..7c6d20f6 100644 --- a/codecs/mozjpeg/enc/mozjpeg_enc.js +++ b/codecs/mozjpeg_enc/mozjpeg_enc.js @@ -7,56 +7,56 @@ function(mozjpeg_enc) { mozjpeg_enc = mozjpeg_enc || {}; -var d;d||(d=typeof mozjpeg_enc !== 'undefined' ? mozjpeg_enc : {});var aa,ba;d.ready=new Promise(function(a,b){aa=a;ba=b});var r={},t;for(t in d)d.hasOwnProperty(t)&&(r[t]=d[t]);var ca="./this.program";function u(a,b){throw b;}var v=!1,w=!1,da=!1,ea=!1;v="object"===typeof window;w="function"===typeof importScripts;da="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node;ea=!v&&!da&&!w;var x="",B,C,fa,ha; -if(da)x=w?require("path").dirname(x)+"/":__dirname+"/",B=function(a,b){fa||(fa=require("fs"));ha||(ha=require("path"));a=ha.normalize(a);return fa.readFileSync(a,b?null:"utf8")},C=function(a){a=B(a,!0);a.buffer||(a=new Uint8Array(a));a.buffer||D("Assertion failed: undefined");return a},1=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e} -function pa(a,b,c){var e=I;if(0=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}if(127>=g){if(b>=c)break;e[b++]=g}else{if(2047>=g){if(b+1>=c)break;e[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;e[b++]=224|g>>12}else{if(b+3>=c)break;e[b++]=240|g>>18;e[b++]=128|g>>12&63}e[b++]=128|g>>6&63}e[b++]=128|g&63}}e[b]=0}}var qa="undefined"!==typeof TextDecoder?new TextDecoder("utf-16le"):void 0; -function ra(a,b){var c=a>>1;for(var e=c+b/2;!(c>=e)&&sa[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function ta(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;J[b>>1]=0;return b-e}function ua(a){return 2*a.length} -function va(a,b){for(var c=0,e="";!(c>=b/4);){var f=K[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function wa(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}K[b>>2]=g;b+=4;if(b+4>c)break}K[b>>2]=0;return b-e} -function xa(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var L,M,I,J,sa,K,N,ya,za;function Aa(a){L=a;d.HEAP8=M=new Int8Array(a);d.HEAP16=J=new Int16Array(a);d.HEAP32=K=new Int32Array(a);d.HEAPU8=I=new Uint8Array(a);d.HEAPU16=sa=new Uint16Array(a);d.HEAPU32=N=new Uint32Array(a);d.HEAPF32=ya=new Float32Array(a);d.HEAPF64=za=new Float64Array(a)}var Ba=d.INITIAL_MEMORY||16777216;d.wasmMemory?H=d.wasmMemory:H=new WebAssembly.Memory({initial:Ba/65536,maximum:32768}); -H&&(L=H.buffer);Ba=L.byteLength;Aa(L);K[22872]=5334528;function Ca(a){for(;0>2])}var R={},S={},Ta={};function Ua(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Va(a,b){a=Ua(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} -function Wa(a){var b=Error,c=Va(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Xa=void 0; -function Ya(a,b,c){function e(k){k=c(k);if(k.length!==a.length)throw new Xa("Mismatched type converter count");for(var h=0;h>2])};case 3:return function(c){return this.fromWireType(za[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function gb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Va(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} -function hb(a,b){var c=d;if(void 0===c[a].Y){var e=c[a];c[a]=function(){c[a].Y.hasOwnProperty(arguments.length)||V("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].Y+")!");return c[a].Y[arguments.length].apply(this,arguments)};c[a].Y=[];c[a].Y[e.ea]=e}} -function ib(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].Y&&void 0!==d[a].Y[c])&&V("Cannot register public name '"+a+"' twice"),hb(a,a),d.hasOwnProperty(c)&&V("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].Y[c]=b):(d[a]=b,void 0!==c&&(d[a].ra=c))}function jb(a,b){for(var c=[],e=0;e>2)+e]);return c} -function Y(a,b){a=U(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return sa[e>>1]};case 2:return c?function(e){return K[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var pb={}; -function qb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function rb(a,b){var c=S[a];void 0===c&&V(b+" has unknown type "+lb(a));return c}var sb={},tb={};function ub(){if(!vb){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ca||"./this.program"},b;for(b in tb)a[b]=tb[b];var c=[];for(b in a)c.push(b+"="+a[b]);vb=c}return vb} -var vb,wb=[null,[],[]];Xa=d.InternalError=Wa("InternalError");for(var xb=Array(256),yb=0;256>yb;++yb)xb[yb]=String.fromCharCode(yb);$a=xb;ab=d.BindingError=Wa("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},Z:null})},w:function(a,b){b=U(b);T(a,{name:b,fromWireType:function(c){var e=X[c].value;cb(c);return e},toWireType:function(c,e){return db(e)},argPackAdvance:8,readValueFromPointer:Sa,Z:null})},g:function(a,b,c){c=Za(c);b=U(b);T(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+eb(f)+ -'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:fb(b,c),Z:null})},k:function(a,b,c,e,f,g){var l=jb(b,c);a=U(a);f=Y(e,f);ib(a,function(){nb("Cannot call "+a+" due to unbound types",l)},b-1);Ya([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,n=f,q=h.length;2>q&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,z=!1,p=1;p=e);)++c;if(16f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}return e} +function oa(a,b,c){var e=I;if(0=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}if(127>=g){if(b>=c)break;e[b++]=g}else{if(2047>=g){if(b+1>=c)break;e[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;e[b++]=224|g>>12}else{if(b+3>=c)break;e[b++]=240|g>>18;e[b++]=128|g>>12&63}e[b++]=128|g>>6&63}e[b++]=128|g&63}}e[b]=0}}var pa="undefined"!==typeof TextDecoder?new TextDecoder("utf-16le"):void 0; +function qa(a,b){var c=a>>1;for(var e=c+b/2;!(c>=e)&&ra[c];)++c;c<<=1;if(32>1];if(0==f||c==b/2)return e;++c;e+=String.fromCharCode(f)}}function sa(a,b,c){void 0===c&&(c=2147483647);if(2>c)return 0;c-=2;var e=b;c=c<2*a.length?c/2:a.length;for(var f=0;f>1]=a.charCodeAt(f),b+=2;J[b>>1]=0;return b-e}function ta(a){return 2*a.length} +function ua(a,b){for(var c=0,e="";!(c>=b/4);){var f=K[a+4*c>>2];if(0==f)break;++c;65536<=f?(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023)):e+=String.fromCharCode(f)}return e}function va(a,b,c){void 0===c&&(c=2147483647);if(4>c)return 0;var e=b;c=e+c-4;for(var f=0;f=g){var l=a.charCodeAt(++f);g=65536+((g&1023)<<10)|l&1023}K[b>>2]=g;b+=4;if(b+4>c)break}K[b>>2]=0;return b-e} +function wa(a){for(var b=0,c=0;c=e&&++c;b+=4}return b}var L,M,I,J,ra,K,N,xa,ya;function za(a){L=a;d.HEAP8=M=new Int8Array(a);d.HEAP16=J=new Int16Array(a);d.HEAP32=K=new Int32Array(a);d.HEAPU8=I=new Uint8Array(a);d.HEAPU16=ra=new Uint16Array(a);d.HEAPU32=N=new Uint32Array(a);d.HEAPF32=xa=new Float32Array(a);d.HEAPF64=ya=new Float64Array(a)}var Aa=d.INITIAL_MEMORY||16777216;d.wasmMemory?H=d.wasmMemory:H=new WebAssembly.Memory({initial:Aa/65536,maximum:32768}); +H&&(L=H.buffer);Aa=L.byteLength;za(L);K[22876]=5334544;function Ba(a){for(;0>2])}var R={},S={},Sa={};function Ta(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Ua(a,b){a=Ta(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)} +function Va(a){var b=Error,c=Ua(a,function(e){this.name=a;this.message=e;e=Error(e).stack;void 0!==e&&(this.stack=this.toString()+"\n"+e.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Wa=void 0; +function Xa(a,b,c){function e(k){k=c(k);if(k.length!==a.length)throw new Wa("Mismatched type converter count");for(var h=0;h>2])};case 3:return function(c){return this.fromWireType(ya[c>>3])};default:throw new TypeError("Unknown float type: "+a);}}function fb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Ua(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c} +function gb(a,b){var c=d;if(void 0===c[a].Y){var e=c[a];c[a]=function(){c[a].Y.hasOwnProperty(arguments.length)||V("Function '"+b+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+c[a].Y+")!");return c[a].Y[arguments.length].apply(this,arguments)};c[a].Y=[];c[a].Y[e.ea]=e}} +function hb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].Y&&void 0!==d[a].Y[c])&&V("Cannot register public name '"+a+"' twice"),gb(a,a),d.hasOwnProperty(c)&&V("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].Y[c]=b):(d[a]=b,void 0!==c&&(d[a].ra=c))}function ib(a,b){for(var c=[],e=0;e>2)+e]);return c} +function Y(a,b){a=U(a);var c=d["dynCall_"+a];for(var e=[],f=1;f>1]}:function(e){return ra[e>>1]};case 2:return c?function(e){return K[e>>2]}:function(e){return N[e>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var ob={}; +function pb(){return"object"===typeof globalThis?globalThis:Function("return this")()}function qb(a,b){var c=S[a];void 0===c&&V(b+" has unknown type "+kb(a));return c}var rb={},sb={};function tb(){if(!ub){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"===typeof navigator&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:ba||"./this.program"},b;for(b in sb)a[b]=sb[b];var c=[];for(b in a)c.push(b+"="+a[b]);ub=c}return ub} +var ub,vb=[null,[],[]];Wa=d.InternalError=Va("InternalError");for(var wb=Array(256),xb=0;256>xb;++xb)wb[xb]=String.fromCharCode(xb);Za=wb;$a=d.BindingError=Va("BindingError");d.count_emval_handles=function(){for(var a=0,b=5;b>g])},Z:null})},w:function(a,b){b=U(b);T(a,{name:b,fromWireType:function(c){var e=X[c].value;bb(c);return e},toWireType:function(c,e){return cb(e)},argPackAdvance:8,readValueFromPointer:Ra,Z:null})},h:function(a,b,c){c=Ya(c);b=U(b);T(a,{name:b,fromWireType:function(e){return e},toWireType:function(e,f){if("number"!==typeof f&&"boolean"!==typeof f)throw new TypeError('Cannot convert "'+db(f)+ +'" to '+this.name);return f},argPackAdvance:8,readValueFromPointer:eb(b,c),Z:null})},e:function(a,b,c,e,f,g){var l=ib(b,c);a=U(a);f=Y(e,f);hb(a,function(){mb("Cannot call "+a+" due to unbound types",l)},b-1);Xa([],l,function(k){var h=[k[0],null].concat(k.slice(1)),m=k=a,n=f,q=h.length;2>q&&V("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var y=null!==h[1]&&!1,z=!1,p=1;p>>k}}var h=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(m,n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+eb(n)+ -'" to '+this.name);if(nf)throw new TypeError('Passing a number "'+eb(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:ob(b,l,0!==e),Z:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:e,argPackAdvance:8, -readValueFromPointer:e},{ka:!0})},h:function(a,b){b=U(b);var c="std::string"===b;T(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(l==f||0==I[k]){g=g?oa(I,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0),h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++n)&1023);127>=q?++m:m=2047>=q?m+2:65535>=q?m+3:m+4}return m}:function(){return f.length})(),k=zb(4+l+1);N[k>>2]=l;if(c&&g)pa(f,k+4,l+1);else if(g)for(g=0;g>2],n=l(),q,y=h+4,z=0;z<=m;++z){var p=h+4+z*b;if(z==m||0==n[p>>k])y=e(y,p-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=p+b}Z(h);return q},toWireType:function(h, -m){"string"!==typeof m&&V("Cannot pass non-string to C++ string type "+c);var n=g(m),q=zb(4+n+b);N[q>>2]=n>>k;f(m,q+4,n+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Sa,Z:function(h){Z(h)}})},m:function(a,b,c,e,f,g){Qa[a]={name:U(b),la:Y(c,e),ma:Y(f,g),da:[]}},e:function(a,b,c,e,f,g,l,k,h,m){Qa[a].da.push({fa:U(b),ja:c,ha:Y(e,f),ia:g,oa:l,na:Y(k,h),pa:m})},y:function(a,b){b=U(b);T(a,{qa:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},v:cb, -B:function(a){if(0===a)return db(qb());var b=pb[a];a=void 0===b?U(a):b;return db(qb()[a])},j:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+ -g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(rb,d,db);sb[b]=f}return f(a,c,e)},r:function(){D()},q:function(a,b,c){I.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=I.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);Aa(H.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},s:function(a,b){var c=0;ub().forEach(function(e,f){var g=b+c;f=K[a+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);M[f>>0]=0;c+=e.length+1});return 0},t:function(a,b){var c=ub();K[a>>2]=c.length;var e=0;c.forEach(function(f){e+=f.length+1});K[b>>2]=e;return 0},z:function(a){if(!noExitRuntime&&(ma=!0,d.onExit))d.onExit(a);u(a,new ia(a))},u:function(){return 0},o:function(){},f:function(a, -b,c,e){for(var f=0,g=0;g>2],k=K[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:H,p:function(){},table:la}; -(function(){function a(f){d.asm=f.exports;O--;d.monitorRunDependencies&&d.monitorRunDependencies(O);0==O&&(null!==Ia&&(clearInterval(Ia),Ia=null),P&&(f=P,P=null,f()))}function b(f){a(f.instance)}function c(f){return Na().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){E("failed to asynchronously prepare wasm: "+g);D(g)})}var e={a:Ab};O++;d.monitorRunDependencies&&d.monitorRunDependencies(O);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return E("Module.instantiateWasm callback failed with error: "+ -f),!1}(function(){if(G||"function"!==typeof WebAssembly.instantiateStreaming||Ka()||Ja("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){E("wasm streaming compile failed: "+g);E("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); -var Oa=d.___wasm_call_ctors=function(){return(Oa=d.___wasm_call_ctors=d.asm.D).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.E).apply(null,arguments)},zb=d._malloc=function(){return(zb=d._malloc=d.asm.F).apply(null,arguments)},mb=d.___getTypeName=function(){return(mb=d.___getTypeName=d.asm.G).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.H).apply(null,arguments)}; -d.dynCall_i=function(){return(d.dynCall_i=d.asm.I).apply(null,arguments)};d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.J).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.K).apply(null,arguments)};d.dynCall_viii=function(){return(d.dynCall_viii=d.asm.L).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.M).apply(null,arguments)};d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.N).apply(null,arguments)}; -d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.O).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.P).apply(null,arguments)};d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.Q).apply(null,arguments)};d.dynCall_iiiii=function(){return(d.dynCall_iiiii=d.asm.R).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.S).apply(null,arguments)};d.dynCall_viiiiiiii=function(){return(d.dynCall_viiiiiiii=d.asm.T).apply(null,arguments)}; -d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.U).apply(null,arguments)};d.dynCall_viiiiiii=function(){return(d.dynCall_viiiiiii=d.asm.V).apply(null,arguments)};d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.W).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.X).apply(null,arguments)};var Bb;function ia(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}P=function Cb(){Bb||Db();Bb||(P=Cb)}; -function Db(){function a(){if(!Bb&&(Bb=!0,d.calledRun=!0,!ma)){Ca(Ea);Ca(Fa);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Ga.unshift(b)}Ca(Ga)}}if(!(0>>k}}var h=-1!=b.indexOf("unsigned");T(a,{name:b,fromWireType:g,toWireType:function(m,n){if("number"!==typeof n&&"boolean"!==typeof n)throw new TypeError('Cannot convert "'+db(n)+ +'" to '+this.name);if(nf)throw new TypeError('Passing a number "'+db(n)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return h?n>>>0:n|0},argPackAdvance:8,readValueFromPointer:nb(b,l,0!==e),Z:null})},a:function(a,b,c){function e(g){g>>=2;var l=N;return new f(L,l[g+1],l[g])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=U(c);T(a,{name:c,fromWireType:e,argPackAdvance:8, +readValueFromPointer:e},{ka:!0})},i:function(a,b){b=U(b);var c="std::string"===b;T(a,{name:b,fromWireType:function(e){var f=N[e>>2];if(c)for(var g=e+4,l=0;l<=f;++l){var k=e+4+l;if(0==I[k]||l==f){g=g?na(I,g,k-g):"";if(void 0===h)var h=g;else h+=String.fromCharCode(0),h+=g;g=k+1}}else{h=Array(f);for(l=0;l=q&&(q=65536+((q&1023)<<10)|f.charCodeAt(++n)&1023);127>=q?++m:m=2047>=q?m+2:65535>=q?m+3:m+4}return m}:function(){return f.length})(),k=yb(4+l+1);N[k>>2]=l;if(c&&g)oa(f,k+4,l+1);else if(g)for(g=0;g>2],n=l(),q,y=h+4,z=0;z<=m;++z){var p=h+4+z*b;if(0==n[p>>k]||z==m)y=e(y,p-y),void 0===q?q=y:(q+=String.fromCharCode(0),q+=y),y=p+b}Z(h);return q},toWireType:function(h, +m){"string"!==typeof m&&V("Cannot pass non-string to C++ string type "+c);var n=g(m),q=yb(4+n+b);N[q>>2]=n>>k;f(m,q+4,n+b);null!==h&&h.push(Z,q);return q},argPackAdvance:8,readValueFromPointer:Ra,Z:function(h){Z(h)}})},m:function(a,b,c,e,f,g){Pa[a]={name:U(b),la:Y(c,e),ma:Y(f,g),da:[]}},f:function(a,b,c,e,f,g,l,k,h,m){Pa[a].da.push({fa:U(b),ja:c,ha:Y(e,f),ia:g,oa:l,na:Y(k,h),pa:m})},y:function(a,b){b=U(b);T(a,{qa:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},v:bb, +B:function(a){if(0===a)return cb(pb());var b=ob[a];a=void 0===b?U(a):b;return cb(pb()[a])},k:function(a){4>> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+ +g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","Module","__emval_register",l+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(qb,d,cb);rb[b]=f}return f(a,c,e)},r:function(){D()},q:function(a,b,c){I.copyWithin(a,b,b+c)},c:function(a){a>>>=0;var b=I.length;if(2147483648=c;c*=2){var e=b*(1+.2/c);e=Math.min(e,a+100663296);e=Math.max(16777216,a,e);0>>16);za(H.buffer);var f=1;break a}catch(g){}f=void 0}if(f)return!0}return!1},s:function(a,b){var c=0;tb().forEach(function(e,f){var g=b+c;f=K[a+4*f>>2]=g;for(g=0;g>0]=e.charCodeAt(g);M[f>>0]=0;c+=e.length+1});return 0},t:function(a,b){var c=tb();K[a>>2]=c.length;var e=0;c.forEach(function(f){e+=f.length+1});K[b>>2]=e;return 0},z:function(a){if(!noExitRuntime&&(la=!0,d.onExit))d.onExit(a);u(a,new ha(a))},u:function(){return 0},o:function(){},g:function(a, +b,c,e){for(var f=0,g=0;g>2],k=K[b+(8*g+4)>>2],h=0;h>2]=f;return 0},memory:H,p:function(){},table:ja}; +(function(){function a(f){d.asm=f.exports;O--;d.monitorRunDependencies&&d.monitorRunDependencies(O);0==O&&(null!==Ha&&(clearInterval(Ha),Ha=null),P&&(f=P,P=null,f()))}function b(f){a(f.instance)}function c(f){return Ma().then(function(g){return WebAssembly.instantiate(g,e)}).then(f,function(g){E("failed to asynchronously prepare wasm: "+g);D(g)})}var e={a:zb};O++;d.monitorRunDependencies&&d.monitorRunDependencies(O);if(d.instantiateWasm)try{return d.instantiateWasm(e,a)}catch(f){return E("Module.instantiateWasm callback failed with error: "+ +f),!1}(function(){if(G||"function"!==typeof WebAssembly.instantiateStreaming||Ja()||Ia("file://")||"function"!==typeof fetch)return c(b);fetch(Q,{credentials:"same-origin"}).then(function(f){return WebAssembly.instantiateStreaming(f,e).then(b,function(g){E("wasm streaming compile failed: "+g);E("falling back to ArrayBuffer instantiation");return c(b)})})})();return{}})(); +var Na=d.___wasm_call_ctors=function(){return(Na=d.___wasm_call_ctors=d.asm.D).apply(null,arguments)},Z=d._free=function(){return(Z=d._free=d.asm.E).apply(null,arguments)},yb=d._malloc=function(){return(yb=d._malloc=d.asm.F).apply(null,arguments)},lb=d.___getTypeName=function(){return(lb=d.___getTypeName=d.asm.G).apply(null,arguments)};d.___embind_register_native_and_builtin_types=function(){return(d.___embind_register_native_and_builtin_types=d.asm.H).apply(null,arguments)}; +d.dynCall_i=function(){return(d.dynCall_i=d.asm.I).apply(null,arguments)};d.dynCall_vi=function(){return(d.dynCall_vi=d.asm.J).apply(null,arguments)};d.dynCall_iii=function(){return(d.dynCall_iii=d.asm.K).apply(null,arguments)};d.dynCall_viii=function(){return(d.dynCall_viii=d.asm.L).apply(null,arguments)};d.dynCall_ii=function(){return(d.dynCall_ii=d.asm.M).apply(null,arguments)};d.dynCall_iiiiii=function(){return(d.dynCall_iiiiii=d.asm.N).apply(null,arguments)}; +d.dynCall_viiiii=function(){return(d.dynCall_viiiii=d.asm.O).apply(null,arguments)};d.dynCall_vii=function(){return(d.dynCall_vii=d.asm.P).apply(null,arguments)};d.dynCall_iiiiiii=function(){return(d.dynCall_iiiiiii=d.asm.Q).apply(null,arguments)};d.dynCall_iiiii=function(){return(d.dynCall_iiiii=d.asm.R).apply(null,arguments)};d.dynCall_iiii=function(){return(d.dynCall_iiii=d.asm.S).apply(null,arguments)};d.dynCall_viiiiiiii=function(){return(d.dynCall_viiiiiiii=d.asm.T).apply(null,arguments)}; +d.dynCall_viiii=function(){return(d.dynCall_viiii=d.asm.U).apply(null,arguments)};d.dynCall_viiiiiii=function(){return(d.dynCall_viiiiiii=d.asm.V).apply(null,arguments)};d.dynCall_jiji=function(){return(d.dynCall_jiji=d.asm.W).apply(null,arguments)};d.dynCall_viiiiii=function(){return(d.dynCall_viiiiii=d.asm.X).apply(null,arguments)};var Ab;function ha(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}P=function Bb(){Ab||Cb();Ab||(P=Bb)}; +function Cb(){function a(){if(!Ab&&(Ab=!0,d.calledRun=!0,!la)){Ba(Da);Ba(Ea);aa(d);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var b=d.postRun.shift();Fa.unshift(b)}Ba(Fa)}}if(!(0~5;W9U zMKsJFdWN2+T6&7s)06ZBEjO2$H<;I(*O^PrYt1F* zHRfXTYO~5bCVm(H5x=wJk8)Bz;UF;Am#f?IVyTr{RHS8z)H~mOIP-@tS z5#Q3+^e_5~hJ8oFzMw;NgoYiYFX=EvZ~r*-y%yn!Y^i>Z_6Unuxsjl_s40sL61j`FT1CQe1H&@NF&vRh7>+5I zZdJ=O5_xxSwUR^f9dKQdhy(qB0rH0}mi$3&$#}WNeXm+cH-NqVZbH={MCPb7-?=dIIi?lw+cqtlDZJs9l-4y?HJMU`U23e?w1$>rtc=nK8#o*K>aq z`~A7$Z|aTAF)bNFH#7v5{yOqwSZd%np#AJ-V)0gWrrj~@H*hRPjasQE>?v*kzYEyH zK*83~3p~mY+-GU_}@T94v%UE!X3`0J*-Ab6|049Lp8Zw+rm|Py? zwlalQvDjB-6ic--q+Q|0S{wdEYT<$=DMS81;DI{$g3@*j8B5B!GdLbr;9An0?HaRP zlI9H1kYws|NvKR>EoLR4ybnv{iHRr1&<+)euxmO2sqtQiXD7&rnll67#3@!s302j! zESSL*{7uz1T~by*7>~hBrpGYTw5l7!4c3pMF3B#;1&lMhL++8ogmyGw0z|ww+l^=n z5ZFTP%+8@7)MwcztfFa$G`W|nwH4D48%b8!w+f>(o$5?~})6+os?kLR@RYgM@9 zn3%*I=28LUn0HJ;LO8rrAPsqUU)uG=-F**hMK$yCAuHC{}O$N<4X9T0i$j0AR&&nclnV1ky3Fjo9@ z?zj}U%}&k+m1fH3$wW9N4PHi?y_~QVm9lP`Ci9_@V3L3ahHQpvnq7f!%fSVe3Bh&d z01y?tmBxn~bZ9gHF%tnN=n|&J@{u#*W(+7XhZKpXXcGjgglsWe24(=EwrdV9Ky9!f z!B{h;F$AMKCb*P41!giF!U$Oedt?%A3+W4QIkYt3eqWJ&^-FcU$C z_iKGajIU{gW$ESs9sJ0fFdm69C+SV#SfjBLUkoJlZUAgFS+EdPu?axFgUXIc9P&A`b#l$w4y{b3TvEEGbFv28^HH7g{D5 z%t=OqOFKg*LniIm&V4cL9-UwS_HDPyQ#~;DE+ocRRafCJzTSA#~PUtm231Au8G<1Q+F5Sv;Z*Z)X^}&AQ_g> zf}dByE!L^s1zmc6<98tkVyki_&`-7ix2=X;FU92XU`(P(TBpd=;0)k45tO^siOq{r z)<_WN_hZM7g+|QGu>6T_V|>9DX~-jIHh@fN>=UIGT0SKhoB)@L=Wzk5n%ini9nq9e?oAs9&;4Knz$Kw zp)~0PN9ygjM|mw;HcLYTb$%Qg=HrlhqlJ@EKZF1P>bDlH=o{q}_Uy)l&|4wBeqO#N zFcTT@$pBaq$Pj6ozy$b4Ei3Fj@UJ=oZxrhfpurVsaP;2OOkn(x2{athmhNemEJ}`K zQh>f`8Z(7`B`H^HD0mAYr6C0h_+Q-y(rgDkYM8)`MyV@Qs%5j3ZxOgGmQX&rfCUxG zG~4O@B%j8JtdQioG&k1kU3oipsK3j&eq(x*UQw6_w4tOM zHKa3ybvaC-gwt9q+p2~*&ZLzX_0jx0 zm=j4Rpy?fL8nDf%^?8FuU|pK_*m=G@Wc4J{lDW=MtTO`A;@e@f=8wIA!cfv@ZSJp5 zc3WNm`OgLpETY+N0EE=^g9)rPL%e|rtaSp+o`7%mfK2Gcng~>4O$3Z$ET}B(ue8w+ zgwg`hgnGkml{&6{thDy=l@@Z?(?RqHI?V($0^~`ZqT;47wyCbWWK95kZ?V*~|+MbfKh`0J5b}jbR=WPl{nP3PQ z^FkIdngt&jiiO62-my9z=2Fy!Aux=;kZN_}3v@iSZOLhWARJg9q6NFb2L=dZd_cOJ@jd1qjSh~lhp{YVosz=VY8QW@=fsV{R|sf*h+?x~wJ2j8Sw z`OkzjD&1fMLI%@>G*wNzMCy;k3JlH&U?5E_@L?t9s-uN|Q1L9VFA3c&U8o(^NkDeus2PpEiH3<0! zdq`V@NdBL#LA9wUJJmpgLlC6p0a&rQTaQ954fFvS%kzy&|HzJ&EO3lDFpNN5);bMj zL4aj}-&o5681uYn-?Rn~Xye;nGb!!aQp|9zN|`yE z!J7$iu56#*JI!*YFGA|k#`X%J$A)ykbXGmnK{sip!wyk9+b2>MB!pFez=UxK1TfR_ zxlJ=2OlB=0j*IW(OvgC-6Vv%xL?4%#zc39ite%0;qn?4V6T_!6(`gGZl2!(PBtA(KDv}us0H+%|d(|2q_dC-6c?>oe#H=H$9%n1sN!k^#&_| zIl@Q)=UO4U0_R0A3aRm>XBGTqJv0YIhkCViOl&&NM$_%@X;5raP3yA0B9EMK07{!V zd6xmCftDOd&FR`QG6qV>DmKrEse8L7vLND|*foi`Sm2oD<`UObd%L=M?7yjk{Hn0q zVhkJ-P@tWIncWH}VyJRH8R9Rn7!Hpp`Z4!A@$%Goz1Pk8E;$h=FrV3R?4$EtbMctK zfN~>&O@lKD*3SvP<9 z>M;-@R8Ci;+x~7%gJwA`g|`2t+sGUkGxC^`H`#xRViz=%hAq5vi`)!irL7BJEOi~!dni%Z-SxFAY_+mMz$}3wr+wWaKlQn%hVJ7Dy@Bsz&EOW{}ZXK z=EDBJkU2L$rYhx|ba~B?@;6NCuW|>UE2^GXa|T~W4=Nh+BAuf)4Y@;Ix8i1X_Rs^7 zs?BsUQ6&Pe!Y1eOQ}WL&sI znRFsN8N2ZsLC7YHO{0f7fKR*(Ttr6v=GhVn#s% z=1(Fbt7@%8BL}xgYRxIvimF<5!l_GAVHt)T505CoGD0#8#L1(W0JtkQ2e?h0OrXP= zVS6IMLx*P!a+;2r35(jF29tzkYB*+anwA@E24LPkar2*x&fs!^H-jV?O!dhkvxu_QVtrqGWu2nZu5W{)^qJ1j{ zu3P#41St%V2hD^B3^a2xU8o)S;h1IvF!}WujS5^CQugfxxf5>T#2^O?u#_nC9AISV z033TQ!-~fC8V`a)4aImQj7fsEgmxfBVRxYpIx=eCN?>ebs0-Q515}J)4-fVTIL+b$ z9KKu#6I}45-OCYm)7VyRFoYI#bwjZJ1%$&< z+ki_@cgDCTIZTM?Xt>>sgf@0yKycM<b(E<*!C)UjeYSf<{0nQ)e=yH7up?odZhFD|T?m=;USKtqXXYKd8_rjBm} zSvhC?kO1{jFP_zg`qX@O))JE*Q`63y3c8qDq`_cK7&RZC_bbtrH6Kih1cKE;VWk4< z$dvr-zKndRS^Gv4v=`;2OCN*)D!8zHBiKR3W*!y}=dQg#op#}n#xc9EG)`ub1qz!E zvTDtRGg7f~Bdr-XKD*Jd9j)ix7>^~Frr2eIk)Z#9l(hcse|234V=*uu`>W!N`49?P zjYGkY1Er9g5Ap|{&~Ua=U^=ix2EiFucU;s4Q1oA#h{776CA^iQh>;DTM*uakL>w^3 zc{U6jLnRdOUyaU}Ts#HKtxzJ!PD?(oz{4DH;%;;?_B?XhIst01^7Mk$iBlUd;jF-N*Y`sBaT_X zXi1M;*H&BH(wc_7V~s*T#5mH@Om0dtm@YT+ouIA|YT?X%^ia)&%LTRRf))|kA5IBj zbDEGAlIqiN|JYsB!pgj!TpRpfTN?HW>E60Wek>Nj3c+;$QM)S-r9#ML*+y&*St&>z zc<~@U6F4ofA|<;wkShl8KMXQ1*~lbez*PDGpkqJzgkIO?fgE=Iez~PeB#mvXiVQfcc1+~?w@fM z0<`{l1{Z!gbNK#w`JC>5x_`zwz~Iw0J6<}?&FhsuTKr$HpLKU!_25pkc-zp2H zN1bPj@08)$O5Z8hbhyeUag0>odCjSxnlNur{Cp-ToD<=g-CsR2Z>%#3_ zZ)(uO#Zlz>?2Bt%_13~+bqI&>WP~?(n9yxe8sU5ci0)Y6pBSU*)mv$adjIOBHEoy7 zq3A|Ds!7oTVA4Cqrs5iJ@d_%88N43YJ-3TkW2DoHLof0gQB%1<5=^|OQXN7*8_vnQ{}6VyT5#Ry&{vE2;Bu+jb6xk)zj4NBWj|7r zb^SY{QCSSHA#g^)-nZ>b)W4UVL?^1=%iGXpYU1+Sk^Xsk5z_9BlM5NwIM(4H)6Id% z?*SjfRuYsF3t;z}>f8P~>VX?qt4S-0RKd#Az+9KE?47k&yCeegZGFTK$USPq%H{5k z&1^Wq{?!aCBu*{%TrHXbht8;rZ+gJ2s4z*)4tp zh%Vel%hxtr5PC9-Qw`T>v8LsZjP^DROv8gZ-HAD zhu!=VZvt3f7_kJYnd)L1q&`ynX_4A^%iNmMzdL5*wYZ4qOZuj=jJ1*}+pF{M8VkOv zy{pw`72oCJwWj9_rI=l zJ0F;a)+at#i0_04OYyzo!K-vlWc4x~-@bZ;h8{y4TJ53h!iOfH+4~QTLAv9^SL#L& zKb#EY#++Q0_sF%BTT}hWjy!6iroS?QHmYr}{Lr)zIE9!LvLzDn5T^>&uFVzXsyceH=3yH=BWN#of6K*o+te>%>GU=an>?l!^U}z@c9-+ z_BWupVb`b|wswwu?UTn|s9xUMGxif#|BF9g)daWMG^BBNQ3QH6=`LC$Y6|ZcqHMls zA(_K2OOm-hr{uA3kYqFMYLodskLgbY0jgtnzc#lcrcHoJjf@fr4c zF3bS-i#dGhj)Hz_)b^a%^+>`q$cjl_x;;1JI#~7*L*Bl{va3klynQUatiIUpgkNFX z0_7_6wU(t3mt5f*vie1M`&gpvs7nNr_9EPE$lv?|JRRC-Nn4%!T8loD9XPNwn?j1Q zs&oT(f7i5!G641@e1$z)U-BU_B&{r2OB%81s`j-Ov{mhWtt2bT8fj>PP1kMk5L8i3 z){c=xFVvj(dKuA+>ZY9|=y~b=R(D!MB+vgp;sQc4mY$NjhyM=nZo#;_NW7y#Ba zhq!pR#9dksLTuqQ&hM$L-h;#?N{7CLS;^X^+wU>@n=P z0_6A>CGCDZXaJV<4z*!V|0WAHc`Ts7ExNJ9pA! z*{_nka|=JMVMT?MBE-(DJRI=_=cQ`H6U^q?u~&UfbHo4;=YU8H91y9M9q zyHzx$=7x7yQL_u#+=U^BM{*323zrB_X5KfDj6pYMPF{!m5P8~KeA3N8L@lg(U)UhyPdm;*gc$D^{6>CqFk`7>| znHN>a-H~ZBj;mWB6B1|t3;J!OV~nT(Sykr#eETTeg~R#kUt=8Fq1XNsS~d`q0bfj7 z^cTW9Gtf1&P1Ikz0%c>&zWC_fr$4hY1 zjms59=+aYqMKWNQ%IYFq#FWZMiewN`Z4pewQn|HAhS6kqk&Gkypa}M5PkE?FHbvd9 zMKT-FvSOKo=5gLA8qtAbS%lJ8+S@VteK8=ovqaujBH@&@ z1M=5mX~~uC<)ZdDg-30l|a29RG{A- zteD|uu+QW7XNaKyLB|T%mCPe)<;O+X6zGK!!CFhT&j43YNr?{^>BNWvKg-{d1r|rJ z$ zK5f~!N`U7HtW)*UJDo4Vpf{=|pLQtj4^Ih83f!YC!-dgC!gE3l7ss^n^%tyS!{}kK z!*HAW=ck>)!qEfmGQLT_rqoaCRKEkQ9hC4W@C5lAJT{GZ?JVJN7?c~;q635Swl0Fl zg`0FVLJ0w*m9KfQ0#$XS0NUryBk$?!Z`d9%`eBgAc#}F>I#TQ?!QrE&9bBYB9@&C# zfxZe)U+il8h@A&~`ouj0Khe&slzFofSTuxYJn0zvc`MsdXf=xEjemuT+z>#yXG;o_ zmc=qpE04Ws@^fg(*bK-QaK&TDE^x|XiP&vxpVhk!cCj|SkJ1eP6~$%DKl!sDOJ~Xu zzX--bA;o3E%9${owF@5kPxT9?*u zIjDHn%ZLCglrJv=aYfRt+5A-tK}vo4^>CbDJAKoJI;*kYT#od%Zz^bYO}B5)BvJjW zTJc?5TA-f#Zid*mK^1?02g+);d@s4KCh}vJXx14XxN5w2gS)>9qPW;xYB@PhQ~PGs z^`~MCdd^R|Fg<4dbO+K|M~CBk_R&-Dee7sIe7`z6w8?z#wGlUc#pX6sy8!#Dp+9@n zSMC3~5C9$fc|;zs`4yjeg7O>e7EIy9?VD=O|7D+vaZdalvQf?d{WPR^|K0(;{`31i z_*NfVPn~Z)ojTIZw=Sk)>U-;B^gx%s%ySKfwB&y1??#U8WIkx$1f5!J?xzG?)y3vP zR^W2Aw}j}9M*BAS^yK&HJ2rTo1$Cp|-UWijiUS+G4T7!_Uv2QDNi}r6_oGQY={m1d z06#Zb?Hvlx8nnI5qRnE{)80Ak0YqFKq}H^$c5{&MLm=e$g=hrFZNik~_@*$mw>M#0 z_Pz0Kf{-YEE$p|-i_j(6o1XS>h)n-tG2P^j2%V6XuHp*pq#%~@afEu;EIZVlS>@#~ zQxPak=#V~kQ}2WfD$nliUs$_ZutRoqG~g2SmSyO5ZpxsKsFU}PMwCrUy;?ZSkvr6g z+ES-lJCjbJz)D<3csFKH7pxSmPxNYSS|@H0URD#zsl7Ujt|waNHEKdVo1>||MaXg* z+sj2yyhXuA55wo**uK^~zX?4`OFX+NjinXdl&17Jt*Fh;rhBOQO(J$GA9=9Dio{q} zYd}dAo*8<-@%SD*JRIMyM@BWhngu#!%Sx(nO}0+t+FGwooKB`& zJUDn;d#A@}zPBNViaLA%Ms=_=5sgIz2<;Uj!Ch7o8#YF4ISVQ=05b2T&zE?&#i>L4 zX)IFAVpCrins~u&hRaj1jnGS5Lr~DXZo@vq%gCj!CDZM@c}(BMgdth$H#GEadlaTd zTt5A%B}3jK(!`Ec! z=1rFRCHr264F|gjdNbs;%%i-ni~Ncmbrk^{t`7g~(dkcM{qUe3b))xd9<>X9?dR5c z?VC}{yg#@7#IIfLxBbx1-N|h`hu`pXE4@k0s5tVfpIiL0rz`?@4)4QR7613QRw17^>epud|Iv^@-PG|oi zSLS`$oKB%KuTKk_;70}ClP%~T=U#BQ#Q6wEbG*~3v!+o9a|3*JpI2E(3;tWH`?*z# z*RLflqkFv9T2c?XrxuKPA<;kl>_0qYJ+GHbV;j#j2RM}0Z@9i8d#1O_r8YFr+w9Wv z(9g#Lz{v#f%vSi>-2-07*3_RKsGZ&#zqJcI9H2(t#P-xI#Sbwm?STwu953&AxFWHU zpdJI23AO;%rl#Qv2Zm!D3Is2J79C-cMz;A^RNtZe1I2j=7j&cMR9SmRH!u|!)NbicUx{|_K+Xo(!V+?yPC`^#EKP-cw=OT_KfQnU zqPBte4EcU-pf`OjsM`CX4^5|sYR~VBLkhAN^rO$Ljc*0yZf{h7%4@eD$*Mg8dpz?T z?%n0uy#cvtuV27VKIASGeB&+ePtDG%ew=^20k?rKEx_%3=eW_q5mr`js;i4F#Z36w zj_5icx^l)u*40RB+ulBZ6>AR4o(hU=69Hl;GPh^pJUrQGI6Fgej z#m8}hU1EPMU~!~i_j8LraFy|qAnm3r5(5*&Io?lN2-<7-RHM(GdklVPgDWve1l@P2 z_Mu>u0}#86E&j(feb-@Pxt(xg;=>n=5BZYLz!!&VIK75s2)}6`$gVnx<JpMYKG(CL=UbDZ7PWn*5 z$D>Wi@Fo!Uey{8t@c2jGsB@@y_E{QZ8wCqb?E(OIo#owi4)FY;_t`m6C2PE_b7AM9 zA$V=7ZpSQmR_*w6X*SVY-p=!=L)i}Of; zebZ|{k=oH~-l-GmZ?xSzGLibU+KNhpmvR78g)tS5dwzTSRefrduX-aU(e%_aCPg8B zFb+vv@4!O=hR%Yx23H;6ivv9yuD5wIps#M+=QL+9^9w%S08ssAD$C#-X&$E!o=?Gx z3MRlg4blrm0~12xUd8mu%z(KmP0xccXPBQ*gcTNvBkW0mqln$E%sMFA$n%+Ulb&Dm zJU`S&$xB>O#7R z=!)83FQSVD;wee$FY>RH6#IxEdKs*J0xX7E!SnW&-V4*HyEkw;b@p0KrvwfVEvAF{ zPxPiwr+(DKTQi-8XP(W1$I(&~j{37b>k?}Fhr$2~dtX9dX@S@NQnIK8CIUqr>O^3} z3dod}vtX+PFUNyi;B3rgRNR8?dH$7&e@mDFBmu#VxXg&TwJR>8JfdB-t7p(qj=!Br zW72Ua@-CYN66r!@HqCC3X*{<<#*`Jq&uj=6v0&uS{$ryklB7ugUp)ybY{iF^g4OBKhPkv zcy)u!We?Y74)ZGf=0hK=D@5OJYa3*oCv~R(lhmO3(e({l9H?!O+4YRheEm$r=BuA? z(BhUC8)T|B>CCE44V#~_xj~D8TN`9bU)7n>uj0R<0POu=YuN4R&IT}rtN^`_2z z{bs}FtKV+W;+B04GFAW7nN|O6*!+wSsR^c>_90CWG^lp_ews}5cx|Uos0Gol-pQX* zFZ#t>@+sX&Ki6g-pt(dxy&FHH`SiFK|C~OD5s3#QXR!W+jKVMd@I)6zWata(;#W;= zSjG0`s4u8TW>@GY!ks1m%Hjmsz4n$bXbGNk*A^V2Ge}#Tv%jPPI`Pbxbh1u_55w?a z!*t$ZD)fdOCR^vuK1?m@imT{c?>~pBYd)IsVT08TWVi|IDtxnx-znJV)($^HpOd|^ zW3q#3-22qC4*yR8a%Js+f6UCUYGMCI_FC9s zyEpKiOjS5m)4KMmALx6#_v|S%FTeQGON=R(OuqDjDaOV6&q)8Z&Nhq^ggYmZ4g--s zi1c>EwztX>xpdI0weWwI9P~1SVhEz~K~d&hd@&Eey}EYl+NsQ#jZt}MB#et;HF>uO z#W1?<+E0SQ`y^<7Z1(8V)7uh)1g)<9B4p+@rk8HZH%|~%d%Pa`=4yJ<+m9@L>*W-f zt5enQ1Y*0-zON%08xTH62tx37Kp2E@0m4FrhY+?Qe1z~LLZmYpgAryU+>Edu;Rr&j zQZjlYOh8zSup8kBLT(wLM>qpv0m8iqPa(XP!skPTZxM33U}A*+2on)zBixVhI>NsY zGP{z|4`DPy1;RrJyAXath;<{Q7s5D%D-rHQ*n;paLgoo%^hKD0ungfDghL2Tx|5L_ zfX_696$p|;IKp&lupVJ&Z%P^eMxxn?WRxL{L%0&53gH=q?-3gJAtQm%58-Tt zD-do*cm&}qgm!(&I0xY-g!>VmL-+)tbw6Mc;URzY z*jl@(g;`K+F+XnfJ|1kg(#eCIER0?_XpqmUwpTVJUDcD5h0$qsRTI61byZ9Ks*CHY z)_S|^s`lxs_~ms~#u)^cu4wM{A8J}5p1mkt5}nL#?DMe*Z^lq_yv51qIN9F&X{gyz z=kvUU!^~pu)L~|OoxhCpr;_2dIoUi(EL`U$Pd3{|pIwLl9x86gt?RtMpKRtwf8=~4 zLoQtJy}1VtY*Q!cnHd!020tvePPiO_@7+%4L--iqe1kP;MhV1>r)3vnP^q0A)PJX_aMV(=NT} z;>qVtnK|>)nYu?9_1ylV2JM@ojK@LyF4Lx5;4cURnGA1}Z25H6!r_W9g!Re_;PfC|pB7J!}U4?XII=u{O29n#~jxHCmo zfH}PuX$G9r&rQMxW^{698!DI#oZf>p{|!Z&*T6`vTLTZolk=pr5csbY%+2j)BQ$I` z2l=@OS0J2?vHGALk2$KW^t|&X&z(Ezd~fI}W{ZJvxyG`1@`k~}FQzwx)y~E11;nxQ XP(Kl&?PS7#oWwQIvv7)}nehJs1uRca delta 19241 zcma)k349dA^8ZxN%pTbs6UYS#VRpF^2=|R#9pwy{f+8y3A})9Y5K(~*h=_`cHaPe| zMMOn~C%&jbK@D<AB}Pkf@FBI5JH3x40~*@eZw|IhCiteL*Mx~jUWx_Z`^AIf_4 z!K`(sQHy-KfF>9bJTEnDJSQ52=VgY8XWTIGoMeR6HFQ&AhWUf|UQni)BTy@HN#qbU zDk>%v8Fqw-0>W}llX7j7LLpm_VH#$r46lG?859bTZJEu`z$80t+o51aj%iv#w4$)x z!Z3to*hWr{iAik=i7YZL{MmRGMssuQ5<~w5$+jsHv6~vE86qo)5o{w{EfwyCwq;ux zS=oU+Ba%^K+2PEPAjb@c1A$N|6bPFFGXNtq7_!k*0H>hU(h&_BG-+;IRybhCglU?> zZYc1FW`F%_OscVYW}DJrAWR98H9NP8NN{34onqW((f}hy1C3@h$XFq0u(6zIh_O$t zFe?(D5REoICK_XWNOZdK0nr)8ZlbZqdqig%?^F15B12N-nlI@idY9gzx9Kf`y{Hq?S~ z(9iS}%^p%!^Z+TCum9St#(H{vxY`m z{VR6Q`xrQs^QNuOm;cZG~ zMT-``Y{v&Rb|H6VA`=|2`pdoBY`ItM%-T$g)uQY|dq48~)tc<-bU-!B8Jze-563N$ za?NhSkcZF&fLUB49y3tnnl5-Ur5j5$=HjYBS*ARIhFr}>I*}7`?PNWVh+=<4ZV33B z5!Kf@C-q{qW5Ge_;V-Un1Piy0VXr&N*)CmEjma_v*Ct!5^PINg$8G9%=k^oU*E9F} zND5Dq2h@wXCzbLnQ9~q{Buqge$)#yAsvf{(QhUk^RJ#WE#}>bWW+eLaKM87aQwvSS zv{+C#-LJlD@O063eHVidDbA_2s)WuOC*1*Uin z&qALvQ4|fMNN)t|xM*67qmILIiv?U72}DHHasx5K)J7DP!x$znSPUu?d1w;=K~33Yy0of6b|)qV7Na&$9A(-H zX$->XuE>HIqu83lcnH^?hNWSRlcs>_uNGZ`eb=#3V+ixGM!gcrO&*-Yvs=FCSi_;I zET173Co*GZ8beUUl2=23u`J?3I$X^1DOgZhV!@wyjMbwijjsz0m*Tnw*YbXG zgvEOc?R~v?KrLuo(H7F-t5cq@3IikOPeeRA^e%&5AH?Ic#tq}C&1Yzxz~TiSV~Y0i zm<0v4aR;}?KwETzr`*27u1s{tX!S_ctf;}C#aT3UGi7F6UR5o3Klbip_Ees7*N!BD zE7ZBg1w-s=-rB>nB67JNFlJ)x#eOn`Z5|7|q2VsJQ`M9#;Id+e-PSN5G+6%`(8eFlr&U0jaXGU(27PV%+eY12;wE@DW)zbpg$1@J_zwgI zW`$hrg-jdL;1V`bbu5KImd%Lr&;+E856#`2taFZG z!t!aWXPdZLsb#?y%024KCe1+fjM5&(ymT$%X-n7qk}K5s(jv5)UfL`AcdbAmiu5y} zv-@MjH%kltGRKdlu|!ao#j%$o%$p>Cm^(Zn)Y(!^I~H%GG!|GM|4RwCUYXnxphft$GnC%W0Gwp6r67%8GRv_a*@wONvyryK|n=s)qp&c3sjz4EdJQ0I=XJ6 z1{3Vm3r27DNQ|~drVLdBSuuPHs|d&{r~(}rh{J8t&XtfeTro)otFb77osCp+3?7!& z0%=YcXbQqi@(GL8Ck-w%SzMO!U^RnJm>zb4QUtSxfXXR4xfHcf2Na^FPkNst{uAUd zRZ%q7G{ux8O9UH7pEFQ5u2AEmeZhO*9Wb#5Gr0ycxduizJc;cWbd(#0Ib*w$aw)Z` zPg`BerG$+53uBv<@+wnaW6D2Bd5y;$(POa!&&Ham*4Y_}VA8_)mI*oR z?*Mv&tRf0U551ByTii6DZIv5f=~q{DS;Q5wETKlkORoGkh_5_VqYTZ zPsrKol4b=7b6_#_hOQofjR}<&>L!YOmxa(5Dz2MwSOQS2*OV6{%;#6+9j|aRAR-_s zUO-7N*^;y2ZdB)W8sB`v z0Bj;{ZcALd(&!GXMT!*c7Nz_sQ-Vb)e-iWnt`_`M))Fi;D%h~}bdx2UJvi+{8UvxT z1-u;gWh705>qw9{xI8iKNtnzGEE9xc41iV3b8smv`t0alAh+I7|)`2GX^>4 z5WqrcXBlXuwrKhe#U9$#qI3k@iujOXIMBuZL2AtoyIkm{>fNc+A&F9;7lPI>{zk>6 zbQuJ(cgu=#CvXa44*dejPoC7+v4sZmd4)H21-6F2E23!!A*Si^gOK)3OtqTYR|on`%-W3kYWfPn4dGm9TvHvx z&exVGEFGEWhM{NB9O}Vutkr`#zzy@deGeM?0b8E+0|wLj0p)q@StHLCd8rB@MKXuY z0{j}Ru#`an4U_VQ9T;bVf=5Y_(~9_SMGhM=P2_O)Zk(qX^A{zdvRn6O@j45l z2JxB#n+PcY4kw(Ruz$5yIi@*|QH|XhARoePkUBF>>OxxTaGFuiw~i))&=^71xLRYt zNrViaAa$U*))@LQsMWW5Ok+Su{;DyciZK|x8DHu!%?VPc#Y&?Lsk3D0G?qH;4JLVy zY0`Pmhf!@%v2uS;CwZUY^Zx(kys4gOQ_#pix@xv1`HbFd2h_jYG)@SgrO+9Cw1H=o zRAEqShW5*RzG`FWA8%j{u&^Y%g&Rp8e)ReO1e*()KCEpl_I?7y=Lmr7Z+Zk@*eROQ zZ3xz+&$R6KMQ~7s+%T0OV*XAA%50E;ee23YNSV@&JLA;O_GKAA>8!)qBkfx^`;)WIIA=G^ z5KzHsRU43)z(Ekg!5mN{JDgp3VjWC}))j`@+F?{=vP;fn=SLb4d9&8-*hdstFz%qf zEq58%hZvW^Qdf6wnsp`?Y?qs(qEJwly0>#QHw->RZj5G%*{)e>&X19LqjRhX>z6fr zD0Nz59GntRpd*6eE~V!SH(bdlJ^Weo5bnr8KRyb%nU#sLdV7mmF~Y&knuV#wn6drs*8AejczJ&uMbd#(R@#aS4 zQ$fLm-dLcAkaHG)^RWr(!W2QL1MjPlb2*H6Lxe)pE6M4gc8x7p@As{;x6ift;N0&d z>QH-8zuzeDn#Pfc!&tfl@wg@~?IBat`SLBAQro%m4U_sRbKtq+&_;F9z?_tqnGJr}6$ZtEPA4`gh#3gkd=RH_ zq(%QANE^+T6oucV9o1nlhU{@ug<-@p#}@EZNN+$-)dgFbz7Y=%`Zar23D#vsFme)Ej87Fl300lF=CQN zG(*;Jw4>Q>PBf&ZpLUa|->8nBHa`Lnh`peyVh~`_=n}eBtsUK{DvVLl&CRPcPQ%%b zq&1zpGxJ0=1JPSIP;T~*<+(Y|Eh5T6$`H5&<>cl-Qs8qUN)~nrV}w=in9_uvoT(L* zHBL3os|0*DZM0D&U)l%>--s|NLZh*a;s|i$ac{=B+@2T1XUr2Z3cGou229Dyz``(R zECTMLHOSr{lkdQ2R2+kQ=PV@FhE3RTA#w~i5Q`$9$k+in1P0x(dUZ_Cu}s)dJc5zn zDYE|xiPMoG9M)K+S#dYy+(EGrAiwsw;`x$tG%bUpbV99Mw>RbftDCZi$2MWK^Q!U z!Tqv~k%(X!QJZniB6aZ@vGy5o)PV}K0f^C5AjFt4ClIobuA2ee!6IG&Vtne^GfK)b z9Eqw9z@NDQ%QDsJsSB`9X>b~QKIBOC=NUyzu>f1Q<~Ta4;Ug-u3a|>0K^i#-bgA}Z z$I*T2=CS3a#}u5+3eHMbaHdvp-J#M#XAZLHBsJ=s7IaeW^mFE$v_}1T-b7Fa3c~o<`LY*61y2RYOkg^AMmwPc^DvF! zyrcS0>4{RUv{2KV&zEd~bt}HbS?}^q4K|`QA*?b3R&MQ2EB4!ivh2n(f;`%6bYrHZ zfyEL5=3+j4CFfZ0`fb@8CutAH&LbI^%p#o}1vL>Dg*YRLDXjl=GYE>bCo=_f4XGnj zcGJVP?@txfq9e+}vY*5W!QnI^4Tttv8bKMSqdGFJs0Y^u{=Y2^r)#pe?g1+thTy{# z9#JE%{z}zN?~&;{z|i9e$En|^yT>nQvA#^)wV=koob7zg<|cgE!|@2i_g`>Az>&xI z@^LrTa0Xx3-ZG=xU#@H6BA;+w3yY`^U`&E!L?Y>k|6i|b^@zCmNCn>hGNS5tZ4TeJ zj=Hwu_9&s_5yqK*mo9U3K5vtd$66&MI&Ki(;0lOn?2O~~jwR+Z=9_NEiIJ@DD+8Oiv6Fi7#Z)($}lip?&X@HTF%27AGT|`!fC<3RDEeAQx^yvNh z?rEudb9O7H^l!5(X^ZNU7?*zoxxf&5{P>kU!cvbXIyd96151n_mtxWJ8~P&1j5(mF zW?lv#qBtCY>>V{jQVhiDlo^=zwZNg8Bm=QKwLs$Vz@r`)$X#<@rW@4KxeIE&c`s3| zd&4#CHS(g^7ZIxZ<^tNTHZCZ$5B(DsQPnSK4qr0+<}#{R-ESV%W&aZ}ReY+-g!f9C z_>nzi$n|i-7d>J-McN%-@(7F;{uxf8vree>Hln%43t8U*F`f7$ZZ)tox?B&LvS zkT&IFq=kG|r`NCJ^6fgksZ6V8{nIT|>|}ej%J-?6G-%1885|=E@CQ z;msQ|17`p^PdO?-Q=cDXP8=M<9k7~Co7HMn(#Q=&A*p3#Ha0&8Fl4{sHH{q-l!kx&Dw{SxMqWY;<}p6LY{2ThXqrXsSECDsJ>n*Av+cK zH2eDoW2ifbh3fJbK#Zo=I^w@xhmR&tM{%Ia4*S4GgggT6y>+xxE`&qTYr1#0+x7rKRT0t;am zV@=&0S#QSmR~1=qLqyNwF~==bZ`?PD3TjWfe-Z@>`5;xO)~s-~XuPpvB?vv`f!B1d za^++yR8Ood#q;%*9q>H5@_Ju{9$cv3nX9VwDlx?PRUW$jwCXH08}-mAq#tKfbZqrbT zs^2$VMKLw`r9NjgO*JirN@9%*;fe{4sdK!N&u6&?mkY@)BhM3T3KaSe+7DUB(vIBo zgvWnTTwC4%S|`*`YyBH&F&Q=XMj#@oIpe z5?&3vi4wf>I0#5G-xr_)j;fL@)DbLMdh_Z(o?F#))v9_NiA{C*5Tt9 z5MpG8b8gI>E zwV9m}mq#34W@wcp5$VKd3Nn)=#*kT>0emSo(={rO;yn$ei`1OgqmB9?mW10XcoHob{{4CjdRw4u4G!y7#ZUF6rxn(sb-5$BS&M!u6O`fAJL zH_zsxf@4L`9{KIb>-D!g&Rib33<3tJaptIXZ#2!C!$(A$FM-K9sy=?BU9b;C>0IX} zmAk7XqYn>d#mIS0b>G#mphgp!ulCGC*m6FWJJrHnUFcP{X;*P<2g!xo_`?#mM@UKP zWoR*#w^lgC&S06Nj_fMW*p^!1^{V5Wg(~valiKmnyE+z88{TSK(hx2M?*{A%d?DZ( zxtRvL=Y*804!_k&b$PqIyf4lG6;3n~1haD;Bhnaec1REvaLO=Ras=m6HT&%*bg5eY zc6Yj1z4P`gJWqS)ESjL!zOxw5lHL8(oOdN%T)X+*`>D|-zDCOAcs3-5Pxg$8Gf!Rr zeoLCCR=(esE>XMQFT(Sy_dDqUe#G#(9}LM|Q;)62x3$`;lU%PReGsMf>b4KI(gSMr zhvoFWn)Ttx61I*mwkCUQJUD{YkPs*Vl&CL0oY>?%=m{sLmj*KoC4lUCC%MYXgl=ofrHj||<+22YJIiHr zy!MvMG8ArU?L_1cIbx3+*GnQL4*ZygD^Wcrt>QT$3ywX z8-^M(H&=VVhT8T~`yLk_*EN=}YV2dG#&*uv3TI>l_7RNXC>#1i=$wA4?Z<_-) z$L+=MqKm+>1Ye1TC#AYkWF>ee z^at8EQe#*E+)Kpy!9_YzRqSW^IlS2B7aR?=jut?HpgS}^vBu|t_`ISHeo|HYRsV1!%M&QIHv_r)n45(d|(av_vg zJ>fesV3mnE1Pt1YpX*eifm~D zlO+1f?Mi<35e^wm{?n*S|6}3|`msvYFLnlf%gPDpP<%ZGQwmbRTX1XJe$hnGU8-u| zP>gc-z82I@ZQM5%=??oR(bC%G`^S;kvtIr3RZE(sO24iaOV_JAzg~v2+IHVauB)v+ zkSiLsLmXuVu0jzMt%3e2Hy7A$ft%+nR?7~S>)J)AMG4m(Le#n3JZw2L)h7p+VajX2 z8;a+a?@q;u)zW8Z0(mj7}gN0r4^Gfs${qi(QUihUgzT`ac zOF70YIQ(#@-mHexhP34#gmJT7$IW@fQBcC=<{pY>@q0h3cDYm?JiIJ>DI(gi5FCM% z3)d^}*Dh44cK$j>tXi*PzuhR-u2+x#R!euP@xS+=Me6R~p93DJ{;>wFj{LDTbIvn5 zATFIDS*CK16sxcQED>{_QK2I^Ki0NAf}dF+*Z*i0UQ24=X0AFqnoE8?+S-|esc}NV z)VxVi-jgA$fe#8qF#l+@J`pC zaN~?1Ws2^+`*WgcP`8!>$OR$fMrpcnK;g#yxJ$4scaO4IdD!N^7 zCGCcy=;(_kf7CAhz`_f&A&;^Xg2vdjh-$5S%BQB#!7ZpM4zNv+ner;=6WRFci=Y{% z$RK}njH6qE3j@=p@Vp!?v;1QLW=_rEmuR-a8^uu(3Ib|~ld~fb;iL^9*not;#hkmn z`fO@r&Lp8msY35xxpYw&#uRQ%Zzs=dlto?huyu9MMbOYDBEhCyQR}tJrD3$ho0dz> zy@L&?4NdYIH>7Bz)7VGE^2)@R7->e--~&_BS?KM_q+Z_1CY|IQWbD^-zgvoo|q)!X=jS}>B@l6A^fCnMs}e z&L??W0`!!)OL(PWDyUl&q+5uTR~)7uC1?uG8*+2q2F^m!10Pi2hSbl__pS`nT3YNi z$)GW`$eWUZpO!4Di$!Q9iDkmeYe3~~KEn2MVNviJ!-fSu`*H!%Fy$iR7`YLN^70Mm z5%NxMNS)2e&i&rC4XH_J{#w}nOu5>-uOT(d+_y&OcCEE#z#EZAO*4OeOqU!+iLFaQ zANeIKyry~7EVOU6u3zL0MXurDM|5ucW?b+g#sZTX@M`j?sNsM8ijAoX3l+KfR216l zSFH0o=2NTCr+#jgcYZ!K^%~`q6MD-pTIx4=-OnxL2JJ&H`nej<%ct`2vwrT!m%LZ< zsdeaaKl`!wdp?zg?)P*1y>kkvk#|Y~M*fFiw2O<%3vS!SsB5$vJIf&`+W+=GD4)^vbLLhm6*oUME!>I~~C$GK` zPB>y|0?$OH3G|5c(*jBQhLC9v@y+2 zC&@;c6;YEqb6i|*EOT!L^dd}E-@Jg z5p0$mYy^DaH5=C@7~gbrp+)rBpG}~{0Rc-|Q*;Tt+9kyaDbh!EWL>XiUk-!iMzFE~30vA_0$IC*rGnvT*_83UxhzF0ts4|K^j(jVt$M6^T7nHMn zl<`TIMpomD>ogx(jWaG_Fhb0NJptap5Qwxj5PZgiNzK?`QcziwC`Bw2^hMePS(6LX z?9e2}bq}gQY1CV)H(W!L^ z3zZ4(R`*&b`c|}h7wXSqizVcHItf4BW`if>`>DK;yS>l4BKG%zAwR5(bffPClq!6J z%f-W_)=e$)=JurhD4NuZzDTTl+mf5!ww$rR7snHbrXlx(xwzLQxeJwtl9d9tuX4q^ zmVEMEzcnta~) zwfEsr+MP_+Rng_iWce@}M62tnhfy0rAJpADg8m!S?7iy@I-L@G!C4ULW39cM&vCo` zqM(4j9CZF8;Cv(oF~V>VB!NnBrTnm3nK&hilSfow8$;~yfui#mgb%;q0iy31+S0S& z!hE9dV0P4)OaiUT#8Wy<{SrQCZ_C-egpYdhMrdVFmPj?~jqiqtzm`CaKbPq}cqX-J z&yEDf4FEAntwCXAzAbe8wPIBJO3)8jzNPrX0K!Mr@?m7hgjbI$?-WnyAd z^OJK{-IZt2bfP!CFVChn-FIMv6hUTQ#T)TVd_>|0hF-%v6ZzNi=Frd^cyowh7v4tX zHm~V;DhcdjO1|R7&!Ky0yJwB3-p#ghy~du;ub7qOHovR0Lmv<2%icxf>2iABdviP$ zCEyG0<=`IL;FmwL56>cG-{c@0HP2b`lY|4w0ax&m1Fm2d&!Ra1)}c>koMRx&2op?) zDDu}Yno|f^gb)}(-F}LJfAEjsq;USgS;ScmlfrJ{GYXW|^PINq$0!IEX#OA@1@*i# zYzRz@SkW~1*g*KT5)VbO433W^$C8`8`g5ruks2^n{F0{6@o`h-n~#r4cbT?`x}{Cl^WsEY#Fn{MK; z%fv?8Jor!;9wb`a%AXUb7Gk!OoEJre0)i=~IZ<4TKNq0756`E~L{Hbw7FX4 zA+me6=ftVy356C42gK=Ht*yFF!Y}8|tf=kvoD6rV-Wxj^{w3pU#j<7E%@jU4sJnME zaG?6SXD+9~{C=RC+L6~5mk!4=v#V2?QO8@j(^7?KUVU|1=B4RrnT9jcG8bQ)mU;TR zv`k=TT4wC5w9M++X_;RWX_=vO(lX2D!YQqozZ%^>>KyXP~SMQgpn|InB49HAA?WV6TDOhLGY z!{9kK_?$ZVRTI;z*r^=%Id#wJC_BMhW94Sb&azA0{h!l(q7HQ}zo0WoyPR{rr2aaw zW$fl|FH$bOOaSG~NsC z#}S(=`tGL!8eez%e)^J}nzr#art#o28(jX0wydeE`kJmYb-V4~QZJpb4^khU7;q5U zkB69ekScV-JD8jVB_-b52N7@>@7dqcNW4z}j>>eSn(ydQFZvS=&Yvfo-^h6qUeYtq z*-~gEQokD=xb7;!BLn^dD|?T1S*AF=FbXgMumtct;NO6wfOeh9=m$6(fR6}_dcZ!w?|||yWDEer0Sf`o06qg8 z1+?u-#_52WfJXrz0L*S=Bs$=64krNj0yY4?2NZWFqZeR2U>@Kez*@j}fTMsuJH-{=oz`(o=S% z#`1O#H+Om84>LQ~Juu89vg_B|k!o-CaI=GVXsCIz*z~N|waRRH+V9U|h)hG?^qd{Z z&jc!leuVXt)2MqIb(C$$P2466O%Of6UpSke2A-(AyDEk?aPj zZqR_A_zN5Ia}-hpjW>ATRhf-5?%n85{^&-p;V`qJU=Q+psYAz3ox61H*1bnhS$Xm) z0|t7lN0{%?J6>X>*(ZPbd1RcA(Jla72w(=S^4=V27Bp046)}9B-N0xhS0yIyiC*xfK;J-z9Pr&<9!|<*jWj6Abk20Hw zxyN!q5AT&x=E$glfw<8XfQf+109OLIStjZ#yq>3;?Gp!(?Sd>Xg46wxX3RM~3~BDl z=`)e$#d7*$q^Bm+S0OzunVyL>Ps42%ARSMp7b876nO=eP<;nD#3$Pm*NA9p56-+Kp zZ$X;>;G*mLtB_8ufd{PyOaU+w{O3YCc^pP0z1`KwPX}BB7>2Pb(2mC((XqpM=Up^o z#swF86HYUmoPv;PB$p>o2OHlEqMXh#