From 72f863c0cc884aabdb1e422fe0a2d89180a84b5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Salvador=20D=C3=ADaz=20Fau?= Date: Sat, 26 Jul 2025 13:31:04 +0200 Subject: [PATCH] Added the KioskBrowser demo --- .../Delphi_VCL/KioskBrowser/00-DeleteDCUs.bat | 17 + .../Delphi_VCL/KioskBrowser/KioskBrowser.dpr | 40 + .../KioskBrowser/KioskBrowser.dproj | 1132 +++++++++++++++++ .../Delphi_VCL/KioskBrowser/KioskBrowser.res | Bin 0 -> 154816 bytes .../Delphi_VCL/KioskBrowser/uKioskBrowser.dfm | 61 + .../Delphi_VCL/KioskBrowser/uKioskBrowser.pas | 442 +++++++ update_CEF4Delphi.json | 2 +- 7 files changed, 1693 insertions(+), 1 deletion(-) create mode 100644 demos/Delphi_VCL/KioskBrowser/00-DeleteDCUs.bat create mode 100644 demos/Delphi_VCL/KioskBrowser/KioskBrowser.dpr create mode 100644 demos/Delphi_VCL/KioskBrowser/KioskBrowser.dproj create mode 100644 demos/Delphi_VCL/KioskBrowser/KioskBrowser.res create mode 100644 demos/Delphi_VCL/KioskBrowser/uKioskBrowser.dfm create mode 100644 demos/Delphi_VCL/KioskBrowser/uKioskBrowser.pas diff --git a/demos/Delphi_VCL/KioskBrowser/00-DeleteDCUs.bat b/demos/Delphi_VCL/KioskBrowser/00-DeleteDCUs.bat new file mode 100644 index 00000000..a04481aa --- /dev/null +++ b/demos/Delphi_VCL/KioskBrowser/00-DeleteDCUs.bat @@ -0,0 +1,17 @@ +del /s /q *.dcu +del /s /q *.exe +del /s /q *.rsm +del /s /q *.log +del /s /q *.dsk +del /s /q *.identcache +del /s /q *.stat +del /s /q *.local +del /s /q *.~* +rmdir Win32\Debug +rmdir Win32\Release +rmdir Win32 +rmdir Win64\Debug +rmdir Win64\Release +rmdir Win64 +rmdir __history +rmdir __recovery diff --git a/demos/Delphi_VCL/KioskBrowser/KioskBrowser.dpr b/demos/Delphi_VCL/KioskBrowser/KioskBrowser.dpr new file mode 100644 index 00000000..bfceb9ad --- /dev/null +++ b/demos/Delphi_VCL/KioskBrowser/KioskBrowser.dpr @@ -0,0 +1,40 @@ +program KioskBrowser; + +{$I ..\..\..\source\cef.inc} + +uses + {$IFDEF DELPHI16_UP} + Vcl.Forms, + {$ELSE} + Forms, + {$ENDIF } + uCEFApplication, + uKioskBrowser in 'uKioskBrowser.pas' {Form1}; + +{$R *.res} + +{$IFDEF WIN32} +const + IMAGE_FILE_LARGE_ADDRESS_AWARE = $0020; + // CEF needs to set the LARGEADDRESSAWARE ($20) flag which allows 32-bit processes to use up to 3GB of RAM. + {$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} +{$ENDIF} + +begin + CreateGlobalCEFApp; + + // You *MUST* call GlobalCEFApp.StartMainProcess in a if..then clause + // with the Application initialization inside the begin..end. + // Read this https://www.briskbard.com/index.php?lang=en&pageid=cef + if GlobalCEFApp.StartMainProcess then + begin + Application.Initialize; + {$IFDEF DELPHI11_UP} + Application.MainFormOnTaskbar := True; + {$ENDIF} + Application.CreateForm(TForm1, Form1); + Application.Run; + end; + + DestroyGlobalCEFApp; +end. diff --git a/demos/Delphi_VCL/KioskBrowser/KioskBrowser.dproj b/demos/Delphi_VCL/KioskBrowser/KioskBrowser.dproj new file mode 100644 index 00000000..101ab51d --- /dev/null +++ b/demos/Delphi_VCL/KioskBrowser/KioskBrowser.dproj @@ -0,0 +1,1132 @@ + + + {55E00327-9D98-4DA3-A4E1-844942A01C6B} + 20.3 + VCL + KioskBrowser.dpr + True + Debug + Win32 + 3 + Application + KioskBrowser + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments= + 3082 + KioskBrowser + $(BDS)\bin\delphi_PROJECTICON.ico + System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace) + .\$(Platform)\$(Config) + false + false + false + false + false + ..\..\..\bin + ..\..\..\source;$(DCC_UnitSearchPath) + + + DBXSqliteDriver;RESTComponents;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;frxe23;vclFireDAC;emsclientfiredac;DataSnapFireDAC;svnui;tethering;Componentes;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;Intraweb;DBXOracleDriver;inetdb;Componentes_Int;CEF4Delphi;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyProtocols230;vclx;dsnap;DataSnapCommon;emsclient;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;frxTee23;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;CloudService;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonDriver;DataSnapClient;inet;bindcompdbx;vcl;DBXSybaseASEDriver;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;Componentes_UI;TeeDB;FireDAC;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Componentes_Misc;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;Componentes_RTF;DBXInformixDriver;bindcompvcl;frxDB23;Componentes_vCard;TeeUI;IndyCore230;vclribbon;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;IndySystem230;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;frx23;fmxase;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + true + $(BDS)\bin\default_app.manifest + 1033 + CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DBXSqliteDriver;RESTComponents;DataSnapServerMidas;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;DataSnapFireDAC;tethering;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;Intraweb;DBXOracleDriver;inetdb;FmxTeeUI;FireDACIBDriver;fmx;fmxdae;vclib;FireDACDBXDriver;dbexpress;IndyProtocols230;vclx;dsnap;DataSnapCommon;emsclient;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;FireDACOracleDriver;CloudService;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonDriver;DataSnapClient;inet;bindcompdbx;vcl;DBXSybaseASEDriver;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;ibxpress;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;ibxbindings;rtl;FireDACDSDriver;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;bindcompvcl;TeeUI;IndyCore230;vclribbon;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;IndySystem230;dsnapxml;DataSnapProviderClient;dbrtl;inetdbxpress;FireDACMongoDBDriver;fmxase;$(DCC_UsePackage) + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + true + 1033 + true + false + Debug + CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName) + PerMonitor + + + true + true + 1033 + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + true + PerMonitor + + + true + PerMonitorV2 + + + + MainSource + + +
Form1
+
+ + Base + + + Cfg_1 + Base + + + Cfg_2 + Base + +
+ + Delphi.Personality.12 + Application + + + + KioskBrowser.dpr + + + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + + + + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v21 + 1 + + + res\drawable-anydpi-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values-v31 + 1 + + + res\values-v31 + 1 + + + + + res\values-v35 + 1 + + + res\values-v35 + 1 + + + + + res\drawable-anydpi-v26 + 1 + + + res\drawable-anydpi-v26 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-anydpi-v33 + 1 + + + res\drawable-anydpi-v33 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-night-v21 + 1 + + + res\values-night-v21 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable-anydpi-v24 + 1 + + + res\drawable-anydpi-v24 + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-night-anydpi-v21 + 1 + + + res\drawable-night-anydpi-v21 + 1 + + + + + res\drawable-anydpi-v31 + 1 + + + res\drawable-anydpi-v31 + 1 + + + + + res\drawable-night-anydpi-v31 + 1 + + + res\drawable-night-anydpi-v31 + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).launchscreen + 64 + + + ..\$(PROJECTNAME).launchscreen + 64 + + + + + 1 + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset + 1 + + + + + + + + + + + + + + + + + + True + True + + + 12 + + + + +
diff --git a/demos/Delphi_VCL/KioskBrowser/KioskBrowser.res b/demos/Delphi_VCL/KioskBrowser/KioskBrowser.res new file mode 100644 index 0000000000000000000000000000000000000000..98864779eab5e254a896a6ca983c19c283fa343a GIT binary patch literal 154816 zcmeFZcT^Qi(>Gdsvyq&0jshx@K_!ErNDvSSijs4doFt7MTTRaMvYOn24vJ^%ocn5op6jMcxAAbGZ* z6KP1aJ{4f1%n}KbHL&UccHoMCO<@(*R)96E#OoFKcNx}+bc!-E4M5;$c+8dtv|a#$ z;cU;(CWyuc67q|LaPWr^@I`L^5Cq=HIRtzl6bV<+XjDK0RA32a4b*|qNCg-XJ4^3? zm~e z{hBwNoWJLd0`?hVPQgq<+y76Ag;5z;nKXf&c?oc`=z}1i1_p)7v7-YoO!F+|KATMJH^W_{sPRbeP$vA_ml0B#?uZ2aL4xq2+2%4&EVacNP zz%<7bm>GglP6+b$0ABWBbn)km4>?JpnmB%mQ)bsOT#h~%M1|U%)xpV z2=i_QF@bEX=Kwp?cHm&H1YWisIKDFAV#PXp72*pp7b8sxhzS%~;=!ZF^C6EAVmd0uH8wz|MFKIGH=puAL}r7s{#wHN_54S2_mPR+(svbg*5S z1*@#`z|M9HthU(#_O^N8?6?({8I{6n>wK`as(`hQ1!$vm2nt9CAJ1*z=bZz=0b5~1 zXbwb0WI}x0CWs8r1`oIG;OA8Z!TzNX5?F)%B@h-|2^$lNAu7BQ;$y17%DfIN&6<#J zEv#9+2kcfJ1jp6w5E{4>W$c3>|5n88g2)XG5F1?&(UGkX5^w^nR$K&!RXyOo{yL;4 zmqTh&1Li}JkyZw|IXfXebvI1D&1cVSoDtXxMcd_O;%ILkDiaiDNgQ^VA@; zwmik_S8%%P9h^OT70&hEflHTe!kN>9aPi_@80fzbckd2DPxm{xa(M)9-gpA{?mmOT zhi{?(`Y1enFbdC}y@fY#-ouOMWAOIv7<~Hl8OFa(!1VMqzBh1D`fsWKL`G~*Zf>oBr>XPJe_41Vj)38tA9=*?La*-}L{uibvUm`0SssKMNX*-29Y( zK>oOFT@pl~1Nz2)%a|k2ON+;Om=AQin@@LhSc?p8?pN_lRuN3U&7QA6= z-ftFoOOO4D`c;=@W>H0OP>_zIo2%Araz#$TZowh5O5l9R&B^!$`dyJ`W?>T~-~o#k zaB=*RxaMgflig*;TA5MNM`b@VR{_L2!W8_Pn( zd*1yM`?LPGnnS_WErh@m;v-t!?1pfFBcq;X+IhUqe2u(i1!(+n! zz)O(n=x_jREG!EnB1--voJyU(#yQ_DG&egZCkydmVadN3?Bk>1QGYhJ#s3vgrM?iJ z=e8jyCnpxgM@2>U%rX$*NBqwL@cH~V`KZ>I-h8*L976l3sHlj5pLl0}Au@Rej~ei0 z{1^R+=FiF+9%#ETL`MV#HOw$z;}@dP{ZxRBjcwU1{_Dq&AHRN^y_zXM@M?v|gb`@} z0Dm7Eejgvd5DN}~ZVt{sw1DX>;#?t-iZ8sHo^8SM4!1iYI>5)*%iHT9!GN8OUqBG` zr{FEXDfmx(Vd3_&;ol6V*DCt>`+Dnodtufm@GNWs{6frx0+j!NFUrlvcj)=4UmPa* zRCRT=bunw}Y9o9Nnv7ov75K^ExBOi`K>-m_VFd-bIoYM-zZhKPQPoyeRn;caPE?x!a()Pkf8toP2Q}=6HyRh){W0w-aVFu49z^^2TbAaH${0AQC_)$|Fsw9? z1LW~Ho&YN=AzVP{(k$ckGx7m%k8Tj! z(~^)R0tf|&IiRGp@NYapMw3p!1^D?t{N()R7oMMZa%UJ2+9;_qk;%X0JK?bK#-Q>< z;uqq-{S!Zl%m{@r^YNh0c+=1X0{jBVK#=ka??~9?Ctg4Z7_FZ$GpFABq!FvY4fEM78iH6G<64 z2=F(~$`>WfK~sreNSl$EHpH_>aKKjcS$vI>5FZ;((is*?O8k5Nz|+Prz|Uu_s!F^( zh%wA?;QRIdSc~sdL2Xr3Ur8AMDe+zXiT{q;6Y_BcQg%wJDg+w;BPKs8@$30lP(dZAE-{5dY{Xb5M(4^B?gu$`iLwNQi}D_6fR2lTNc? z3n;0nYA<0XG$0tDD!=a^!fA#h?wtS|bJMJ04ilzF>Bs?qc$9T@7tEjuCUUdW)Ja8^ zrZ-X(aPsJ^`Igc2!FwfyPNWn*$M`B*%rhgMjv_NFW*70;;1uKIV`F1xCjSyYM!R*y z4Hc3EXe6dBGVs=2Ff)o@&tDA+K+`Q$5@e%L$YS4T`CcLf6B9~Es1aX)1P#GJ*V|u5 zaRCq0FZne%GU8RIvXF<3j(%ho{$r^y0j9kd5Dt=r6ykk|9K3ye0)DMOyHpmcELldtXF66Jg(v$_%5T(CmaL~4lQ^$2_xVrl+=`ze$9Vd zGLb0OH-1?TIX_Vn5*EVQjK&jcnZbh^afM1@!oR=dzqx<^{^OB9!MFe$5^zEqB7VXF z2)$7_VQ%f;eGjL)6 z2D8u4-}--Uz=cfLD}ZJ^B_(3!{+TLg#3KXk=YIofSL3}nKky;(@>eBho07wySX$j4 z8O#_k;mbc5Og%jr>qmP^y?p`@ucWl$KT4QBQx_%!Q!d3pQz`v*lth9NwcHZ`yzNL%P%WB;WL@%+%9Ap(xV z(3!#wOn6pyegtuEym2!Tq5b!b`-P=dEQkk?mb|=teULgLCJepMyj%jVi`qwong5OW z=aoKzrfttqdPHOt!t;x^dl7J7gh&6A{$JMz2o7FeKED1aJ}SH*JGW@NKQSnj9&q|! z*c0U5`>mPUhKM?=trcN`2M}&pr(6<+P5pc84|4jMcTYKs^ zMu%_P7m5;Qi*Xto@hX=j)%yJxQH{#mBXw3Gf@In(`r@9%$; zJKNqpBl=%@56!eQ%$Bp`{%H@6S-Z^IY1V$T<fnMgR9BD|a{y`4^&lr}2AXQtuyDR3#-1_etiBpFRGnb4rZdK!JuoKj1lWF6&!5Dw`fkkS8uvjA)Je6b4H);=oWh2#oY1z{nsGRxAqwW5YyPW|9Oh>!L9BoB(W$n=#Iug=G%# zv1g&YRLmKuLn?^yrec|iW7vXixmYLS%vm6aac6d>e2fE^;u!K#@9mh25s&d^mKs{T zS>R{9S(tY_2w<#PfU6S6Q2{dIxu7Vw85YWCgN9ND>X-t0i#KE5hOzd1P*f;EzRhTp zoyhyo_;LgCt;hBjY;QqXM2xwW7GvgMo{cZJPp^3uCNL8cLu=G9{Cx)I~e z$H8prCXC0Y!Sbc$U~Y;rWt$xs_pJbTmu!qBZ^FC<0(^5}Lr5+}gl~rM4a9XR1P7I4 zTM5L)6hmS>5kD@6*vJ~#7+-<0KqC-%Gk! zgyyE>u)Fy<)K>RHNBdbgcI+&iJkbZoj@*W>Q;*^J(U*Ar7URhG;p~|kaP{gfxN!a< zT)lE1ZrywU*ZN*!`2+^8zrYysFbobp$Ln|SXz&d@el&t{;}Li@{1M*0{RCgXj??1D z-@Z-3)YSL?DUN)!Ca<3@IxIyL%mmw=XU zQ~?gB0O|Ao5I|-@{#;=jHrzu>f}TKN`qD0F?4MgwRE*?_zhkuvN%Y8{W68#ip9m@% ze_Am;J?g&5FM&`eFEKUyr-W7(ItmLL2M15+#;?elp#RAqE8n{`{PJkz@ku9V05Ys} zbS$jwY&>Ecz7o`b@JBTDz9s?^Q8Kbf9D5uTwig#) z#=AiX84|agN$UVud8B0&SV-t~vvP2Z(eyuT7#zMaE;TVP^(>A5^bhs93c7}dh8BhZ zY&=pja*}iipl9Wn(f_ctjG;|9PLI%#2Q>cEcR8e`Wpoe%-lzo%5F^t7Gx{IKP8kI~ zJwrVmMbr>A8t0all9ra!)ooU#=iuR$meUa>5rAL(Wn|dcNk&Fz zJtG|}AwW)7j8KV2KaKhzxt@-KjEu}GjCi7iYXm(uE0S>T@DLj5N>WIqpY&45KtWGI zP7VdULF(!0A%qf1iuo5nPgj`kr~W*=GIBaPG;*0i8vi#l6#N}AAsX8-BK zcqyl=qcfivz)gZb_5Cb8GR1KsfEUfGFynC@7Lk_HHPpcY=qSkDB*>>{>7`d$FcAP2 z95vc$hW@k^hlHUn3P5_9M>PJ=fAU}8rfb2107T#n#rZ>|!)#oJhPrwR^U5y|x}2 zM@B|khKK(4%nVwCyorAR3Mjy4g(wkWqNB{v_uw$4rKNaySm~9fX#7Xz5l_eiaKxEs ziE~?9hP zNN_Sdqft*!+TpDr(f~eSvT_J8#OJ}r(()_KKBpxxi3`)Ky`|Y^dis#UeBy4)$s;-J zmXW8;UBZMj{P#0qbcIgk&NrIw)6_TmI9E}E!ft{daAM7yH%|}m=TG`)0|Pf6efTjm zld03=4g|T5f&z^_z-dby946FghCeEW!=yc$SWMQ*Dab3}tyVZdV-MhBXi4ag1DMgD zHVA^A80|zuFtSJfI!-^y0S^t(9)BClfAfF0$tJ{-#$EpxIRK5`#?t0BjrDK-ligO9 zHX$eg=iVRW05txVHchhuCqn<}&sWlQ4Q*_K!wLR>k<$PxZ7gk@UVQw7pIbhTynJ$@ zHZ9KvZ+&oRq@IG#Kga=Wi2>6R-s!OL4N38d1qH-R2?^hz^QZ2!$jvjCztGsTDh!7i`M@Sx@S6rS;Bj1pG{x7mWF4_Z|3UEY>XzV88hJ@+K0%)KZ;F4loUGrPR*)0Ew(iuwx`=Z)Lp1M-aD0=A8-@Ou z1W^wCbi2A~-r6sB49Wg-t7(3p!EZN?<{$pyW+R)w-0g1S`VY4|g}6q4{huY#{QKnD z><9n<_hkyf?mx(xZSN-fQLou@h`2_}%$Bp`Li5lJG&}BDd;H67?fz*uWI!|UtX+|i zFz>A0n;HM~W9bO)|MFucvCR?eHF zXvD>#+yty|M87lv=8DJRSt%b-l=lNI)et-<$-SwaZW}bG?RAbiJv1KN1T7k#It4T z*p`i%@JG=XrJZ>y!0{E+{83(Z!XGU`d>NiMszyJt3Te?lCC)x^=c7+vgk!EjpE(r_ zv@`K+R|V)VE=6n|`jvHPBRtQ<+=zAbH}O2vjK8@X{n~vrUsII74$ofIBmJz;*@6CM z11y-^2u8Xm!E9M3tXrE4*5*6#>{2;6*;T{(HI;Z)C=a~cGr`ks3wXO{fv;B{`1x#s znCLw4_bvcm&ngHHErf{BN{9@rfwc~eu-bM%`j&^$FKt9Wvvc^z5&>j-T+yfnqkYPy^y=D6$r5#XNegw}W z9fQiU<4{q03aZLa;hCc&(A01onj23+*^VA;JB|HkG56s)rUy`4bso(;aB6e-0;)KY^apSK&<0E%YUC;<=*%%y;3=orlnS<~^M6{eb@D zd$`^=3^xXb;1-@qB7Dook6yu}NAFV!-oG1x(a|sP`SUn@`7#L; z6TkgR13Ztp3i81d+94XQ!4?>WGA=4Ks#4*gEfsn;P~lnu6&`j_;cY+l*LfyJPzH89 zYs!as5yVR&UJmh!h}Y+$f|Dv0HrP@jX9Myoph8y%74G-{#^Wo3mMS)*|B$%3YWDiC za+_CJQc6CQe{#y^KL~gPyuH^d zFI=d+P)SMK$tQ-!;kO^g$;R&GZPy%oh)tD?>uUyxejDxWzfhWM(!lqW^qGMtbs=euCnvipx?HV`Bg= zF**FI#X{>pZR8yq9G7;1Ajnr=ykv zK}TZY5)qe^X4pscBQN#2G7{pK@nW}xxP-X46bW?`!RCY5bd*g*T|-@NuJ{?e*h}lz zWF_P9kzzkKofZ>Wtf4NiF4Kz_EkwVh^%6XZL65tBLjR*|Y6zE;<9dh}J0!$q#mx&B z8xm(d$TaRiqAeFx*xBS!>vDV`vJpE|7`XVe z|3S8khP=A`3R*YrDG7q6S?tKraVujNBX#xVKf3`Bdm0&=cHP16llKSCHEc34G@(Pza)0hGi1XAlXQ~A_iT%blyxt1p0$Z`%hUrwXh+$ z6=TeuxGy^c=F2W&{T#-b4`H177Nn(=!{*FgxQA$fjFi2Qoz(%`vfJ_8@*$|-c@ksD zow(k2!K+vAVff`o zj1zyt`X_k*o`@HJfe#8aRI3PkN?0+ z;x0f7@s^19KzuCXa}i&U_ydUVMErTgqs)Sbh<}0j(O-B)+(%d-2jX`jn~_5UayW|| zo*;)&E-HLdrNU=hDtz5Qh4BI^Om|B4Q#NVy3!rau#!ot#K4bkU5+Y!fXVlJwtsi~cGGFq0XWnQPnH z(mm2P?LuY|%S=rc!e$;kP{=^EhuB#=d6u=cRVv9S$ZuW5%Fj-sW5jknAz8(FS`BS& zF?_s|zAVfeQgmz42n8lMms9k%P>u}4AvsJ6Bp#DOSw5`~$E zUmW$(;gJ-V5YlgIs}#g`6(%~=leM<3NrzKLTu3Oot*sE7g#%?xVWjQEnHAga0>`Y%FbW7psuOOPlTII8|4>C2nphw zJ5WemQc|+6sV!DJvY@H0tua7ILMRXoq$(?~posL?hPg2b&-Bb3QjwRRH?JDou%oRw zXrYXd_>BDlqgyHEH8nM*+c(aiZ!&MT89-f8QE{QEnVqAfyrP-AJkbH4G<@;*Ghz6xGZMeU`oMDID17H8ft^hR*sqE~A1?uabCLv}Zup&-whnE^ za^|-@!hG9sjV?u>bUSU`;bE&nf3}9U=J0ctgN#Hv{)T1~%E<;@tu0s<;yQ)jOxbI( ztjD#8_+1X+yUu(koiE#j-&pse|J{baN6N+DyQJXnYBr%B>9EFrD>yq8!&>_){5D*Q zJ}lw07NXyog}^;}_uI{?~B%(nI{c$|L-~NaUxq zb>!iLXXqoo#_x>pvF{`Lf**0c_zI&VU*XfoG59$8jkaFQerJ3}-2ktt1u#PGfUnd) z)(PCV+86 zo*D71h-XLq|G&=t-}l$onJhIj^~5&?EjcNv>FF6PUAokRb}1{UxYEVhda>$Kqh;8z zfR5QA8B?5(ilL@E06m%BB00uCJU%%}!xH%(|=W=i`kSVMd$w5p4{M@0*W}F-{j3lx`av&EEH(y+` zB)5dUupoUi#^yhmx%Vy;tf6!3qAt!GLRH9aNT+5RV;g<+2=ysHh(7VFt?uQcM!Zz3CWkKS%# z(tpgu#n!Aq-X8Wii1A2#jIyccF7HZ^Hps`v<}oJ5`p**Uhh; z=f&~r=;Ow9ozV80-fUA({(@KeGE-;hH^x~@J+{nszG3k->g8Cz^NLbkJu>E07;jaR+1ax9*`crn?jK$|?^zpRYUjlpkL)31^!87lWWQ{imj6UNW}QqSU{M^fti^NR*TpYGTx z7=}u5R9tjjsjT=o|60t~SCi)#4MzlS&+HKv^8fQezL!3Fiz0<0FE_YMmFq zN7hI`WT8$ktsWi>6O{I{K0U0r`sIlYY=K_3?HBXkhAKTDIP~rd}N|kpUG7uj8#X8U5DxRC$g3^A78hQ%}{XZTWmcp?|NnTWQw)uZqtO z7#ayx(UHO|$qpiJBxBNarDG4*T@wv*ah(3(H_ykW#X0k*PDP$yH?(i*hhs`LnH=Hw zG)G>lUB1n2XvWVx?s#J4aHKFP#i;IR%hht;-0DxqY`h!-7Z2!~YkDufJoI_d0(*P+ zt`>FfBDJo|qHc%dQh-JDrt*-=iN5r0E3Y!0R+OB&v&ndLr7T(M;d~*zxH)WIZiXYf zNYoF^B$N0q&dG^i3taLW13m}TFd?~?uECYP-Lb4JN02Z+R4ykshux;8b`OQoPQ+)T!vZf>C64MlDp(;l*O^vZo!ghhz#p>Mtty+&kIILCRxkYP%7b48YUsQ19AgHnV6DMM$9dD7cn znE6ckGN`4j;%kUouuvoLNZ7kgdNLii``2E`x|q#i$6GsWo?F=RttYfB-NtKO`z}g| zRjMXK?C#6oxFU1=D^J2;15-P@@vY+{pTa0wbrJbNimy)EUFU$iF&>9VR(IvKS?@j5 zJOwqJJUjI&)*jHU==9&HACqi!M`v?@C2I`M9N?AC>Ds8E7L#Z8ZeUQRlJ^nu&qCK~#kVt8LC0Wbb<8{j@FcD3?9ev!L=Lba|4i4?n}aP9XHr3kx_v(`f^WI$5t(u5t;vyo+jHClx= z3*VlwDzQi~@3kb!T7~B}_tEi^NJ4&QXSQf7r)DaU-g3B&@8nHVuRpzcj??|N50`kt zQY$Eos|Vk6xKTBtB`TOMo?I|J7NA6Tt+6osu{eo5ZyUhU<~JjpTNO)%HHBQ=%bQBY z_OR55E_F^{!w}leDWumAwoPOg2 zO{Q=8-|_7Yd^r%oa93^XsJ{)DU2Wxe&{`%=p`2AT=Au;kDu~Z*FSFdPkx_GPndkKd zvP=28`!l>o0=hg6Il=t|E9IykQ>UjChqaeoRi3x{*zFewvKemQI8&j20Bo9C)EiBo zv3$*vyZ^>sSS%)Cx5X`R+O9o4M~w3P$_IM#zICMh3HsJ&XL&trc{r=mC&rx==Nx}} z(zf%$RCshU7pKZs)pG8d$qVURQDNG)oMQ1T^b?M9$G(3I3UHzNYMdBVX8^z95z$M9A~E@CFXFqw0OB7TEcL4Z=ZW^=C*tQaGc!Vab? zE*a|ZdszBiR-1BfJfe5QL}{F z?aK`3xTBJ(PUNb@s|rh;&I#z<>JEyiw~8BI$UxD^3uL8djGd&f-`N9WjJHK17(ATz zT{*JNOVaINW>090XicKd7RjLj%Gq}LF?~j#Yn%s$T*&10$FAkB87+g9_PT@IjjoYy ztx0oMUf+2y;eygl9gZtnrW03pKleUdI{!g)dgztJX2WhDeaCfTiQgGMd?T;RND=qE zs<=*^>CBvkR}P(;_`dI^Z}bW4jFjL7LW~MIa@{qT9ajci8h#>P7k;vOg;IiYRe9kp zmcUDI-#=OEtP43TnZx4zd%E23m>s;gA#ZYXlL>cO%;G?@^nuHt7{;%y!6W=*==?F#g)224l0%|0R}?7XlnL_{-$%B%q#U`B*)IOH;$GzNo{Ntv zv|j9Ixr}0roE4$=W{q+E^iGpEcLL=^_!RdkXHFKZqubBw3Nf8W`S@XuwwZ1XC+DqqbyB8MnWYvyKHte^r|M7dFs0;Nc!TMR!wS%yQN8|5KfU@>wgVN1 zI0Zr*KMtE~b{nR;nbpx*UR3U#&U62sl0=GMAHz;kwpzm=Eh5$agS_dYp(W`Gx7QoS z*i#ZGws{6++2vnm=Iygzf1bGgg=Y{8ee!{^t)+Lse(mHhX@ziyL!>^iIDes=mT|%z&%3cb)rmDH>#=5Ll=Ui>^zsZ|%SOXL*-Xu!hQ*To*ab6c6dWWAa0ZIjPm9&rV+YntS zm#3C3rPu4}+R(giTkYyXH%Upi4-0ygyLA|U93rVMERA6w@b494?i1K@?~cIx)wTwDy1tLi_>mwejZWfZMaqJl1>CWk# zS1>V97R44UWxDX*&PAn$Dyt!bd(C&tw4tn}kNS+_*|jM(Ov@$x z{Ye8_yq%X{k}epgs4dt-51z~yWaw5-Mdk;OFp)E3ddlxyD)4lDHR95#T~%2o)R>g& z&IGm|BNCz(ii3;F{cdM|`}U$!H&AYMovo9v{gUB1noK8UlY1-ECF3vApBH+zMnEjM zFI3*u(DS8YWPxXOw#ilQXFU6EG+WtXQv-^A5EgXZp88_C^sr= zWjJQka&KF$DyeWZ$+8nRPOI4W8mZdebwaU6a;#kfG?KRfJ_EDUj z2iT3C;W6zXkK$(f*yZ$=-Nxp8pGJ@Ks~wv2q&hL-?Ye}vYd%AnUe_wE50v#bj7LWK z-G%Pqo&wYJw>5=6ZdBeRp}=^dS-O*~mcQDb-fGOn|IWz$YM1c!C85J1d&AE6my_n( zMr^xilbJ@Le78#5evl;5mC~R0e41nVu5%vEibDaGE&CbCTi=~{DoS@{Bk8Pf@dR&% zuL;C%%TZVS;sT-Fd=KcIk8Sqju>KsiP)<@su`>M(8RUB3@QaD>sS!K!^8JD6Avcv% zX1JS}uw?T*Z}^rpb%vecJ;#Ihnr!8V@6Da%{*3Pl``gwD_A`&DKDqw z!nmDA;7Ri(FeG}j(^-X8lSC%<^dMYY=2iI+B~@)hG%;*A%GCfxYaKGm^2 zy@h^Wj^6iX!#PpM_f({Gn>&p^92>njrrguic5vx-KlXrBO__;G(ybSw2TQMd99KE^ zfsO)iR^Q^IcPn!$x?gEP`hFFZT~p5Km6WwSL_c*Q8RpYHN}6}Sx?W)Db?3epBi^gj z1NkTc+>k#hzx=5MM_XW!oggp2-u+g(eA8DuRag|BZ2YSGF?O-{^j;f-_{c*QA!baP znL%nyVxd%q+j`TKlhg}c?lS${%s*Cy4fBll896NI_CIRPsV-@na^uDOJH4`^)st&B z*IpK=y?mA7Uev1tLu;)o7@@Ui60RuB-$!5S=JRNW(8lM3)o({!rbDzf)!PID*eL<* zsMCYGj}7Wiw=G*~VAcCM-l_LlMDwfbq3c-ByHLfh_v}n{4JzenIrVD!#Aueh`z=?A zj3{e;w#n*{3ZdOiRbS|?zv|ZhH141g!1sYuG|`xy;+)>yz{l7KdyHT-r!@`8$6pst zl;#|dIv2mW0aBhxsQPf-_f0KGozx|z#sqLu0+>Nz?3(NqjvkK+qm$41KHe=cWZ-nB zJ|B5}u(#zqozzYC?IMeM?kDTBjyxRqy*v7lrPg=yV@qNcgw+G+Z4|x?kTvqG zck@FCaFI4?()Bz)=2+nShV$D&K^UFa%S#cx2Agzi=1Pu6Yp=0;X=p|2e(tw^O4a23 z9X(OsBq!~Z(WzmV*l~{JjOWWGSo#*F z#FJrsxisgwuz5!{K?uxl#pW-kcuiyVY}P@Sm0FEOLm>H*PVytTg&0{4&m)r;1Ts;?iU{TALUubd3*XTSM1bqSDLkJ$fAJH zGS6-mT=U%h%)ykCs?$$vUJ(=jCo>09#(i#cubL;_AKn;gR=)Shj9O z{b!n5kun+Iyj<@*9S@MSu6-jD>mhr5XySO|F)sTB0dGr;)9J}s9iBsl=>xPcl2HCQF^19x`~s*OMrz{_b)j0OQB+{doc79` z-h9f#AG&%PpD$`tzbjaLIM5n1_B6`APq1}9ysPvp)l(OBz1hvXiBoLe3;iLtQu3?2 z+7oqSPo6tZ@6l#EOwU6;yoWh?RnZ>!#||W{(Nmp;n=ldj`qHuK4bRV zoOUKVI@YXkRL*^Gsn3x2HKfyjsZxUHq5G!-Kt-FkJj!_ejqQ7lxpXqOd*3&={II)z znbGSWhG~k9c=%}kkvqPb*EM3RpnJQ-L*}ak61avL7vsq_$4D}; zAd7Wm)g-4Rw9Q?e8~IAM@!I~*z9m(YZ&nMmFoQ;>OfarNN`nq8i?TUn=+eR^4h~fD zhX$nWaf#!9di5$@*ImZRRa#Y>?_RL)j3yj{Xt%yC|masNi%Ha7I$|g}br*TBX`s#B>Yt5~3M90*rzPNI9iztFyGjnm`=}=y zjaP>OyB5?Q8>@+Q9nSutcVkohk5nm!l#Nfnyx)B8&4cf9=N;#t?-~$0LamG#y7?ef z==(BZsod-1pUyqA?mp$1%%JVCZ+^=q0XjIpe2ACvv`Lj!rf#A_JE`2G^y81eFO7W?Lk;w!tA0yL>*6q^z(aBQH`E1Q%U!-K5>3}8Td1$!%Se`E{u0gZ z9~*W7h9WwS-&=0VlP!E`ApGTJw&9MKOXs?9lZFmX9yvXIpiAv2o2GH6mmeL60dw;4 z?*Xr-CwTfKI3rzB6!`=X@IBZz(M9!RB17N0l%cf>R>>CJZVB}{|ux8wP!(;3BvoKJ&6>FvTs^H%S+8DfN+a_(KNiEsQTewaQ^ znf@YD50ba%)Rw0eP)zzpZnCs5yT!U~C$}(Yk}gRk9REnQ+gLT;W+`ticIB(cYPc&W zT(L2+)!nv=Km6YF*21%)aS9!Gm+v<07H`@St7L%&d2rDGs_@Z-zTVN-dlp=o&>sa! z3%X@Kxm>TQ(oepp&8zWgTrz^e%6{qd6C+Z}dzlUq>*m1YQcnw1&uc~JXX>rKIBDc! zsXVq$2&37fQk71hKPOZ9#XFz)>}owG0Ff^bw4YlG_3L1CS85vQhv$B;kQpJ~kybT6 z>WdtX@14&M8LuDYT5B9R@-#qssO$bpn{xsi=NP$K@-GwJ!r?}NO&spYhaQi~PrQBM zm|ER;^b@77^s7au-<5bu@f?UB3^xL+6x~wKuZ5PvRcSZopPF{-B@LyRcutY}O+*&l zBR%9x{873#@?r6maj{#XIR?YOGfus`W$=h0`NTVOI!b>2po|xOG!XqP@|Ier;e=l@ zT{OCLWJ`A)cH3}?*@O9{gS%aAU8wnL>M?nI0oL~FnS80fHRpR}@{0+kvtwRwsD^&1 zr@VXD-lHWc-47S+%)co3;=)wK5+|YXJ3p2Svx35M7Q@$}O80%j*}lV=Y_2Rc_A)YV@`U;XxNxy|l1>3j({{6C)Ee#V3CK%|cp$G3Up zw30O~Z#L-Zu~1Ie7t<}1@K*uJqx`iZOH%2l zDm?t@R%$)Fv9ap1LqnnZf-mdn8v6@g@2?Jzw4IG$D{Yh)c06Lrv-k6nR}-Eh z;L19v>c3yW;J{G5RX`7Sf8B^7Nz2|&nOi9A@PN$NZ6>KtIxF=z1aK!UQ#^asVqZ6Y zkQxgWBc-^nWW*)*v+L-Qn(q&91StxDLhS{Lg$hr%aFgVn*fsGB?w#<7+aGh^Fpz;& z5Dw>^3)S7d@8hQY`W&^YuvG3-9CjiXcT|3vzxC|uS~lJhe^Jo{TuekawP6}ZY!-Ty+Yj%7IOj@!5n+v{~@w^(yL zuPg5qsLeXLv`|&()pGk9mi%ik++P3S5M0&DyGrAhLbOnpiDdsx%GF)Vj65w^WQ9c} zh4a$+nK!=V*S>c!MC@VY_j%99WD+WNw@e*L4`NS|07~)nlD94No;$hZDGD;rI=w9Q z@7*~zksdk8mvQOC$1Qb-t8E^ijAvNztgYhv0}JIhJ0Bg`HrzY$!FteV^;%8S9d~6q zwVrHfWJ4Aob~WPaFI@y_>7cIC4-487%3 z`}{erWox}3I;ey^c<!VY($?TW-UEoXAuuF<_-(nuMA3x5G z)E*!eocu(!*vnY&w0$tk=~!9K3!WAx$-UPapJY|{F$tY&Z>$_w7JSf_L7lq zYx9qq#BvTxT%kdAK6f~Y)k9{^ku@&i`^lchv z-d>Xw^T6pP%f}pLj*Ax>S+l>8?t1o)>@V>yJ24S+f9McBR8e4#dGyp&^YpUVVn5Qe zn7br){jY+HKYdp2u0J)NrlLCcFmF$&Df4Fhk2f6H6-+k_*`dcPdD4qDss>=JHsQE&4AHRX6?!>*-I z>aHkLLz2`BwmW_~1!n@y+pdg{@X39?Bs98eJnCYnIxf~7^kitLHFP`3(AOmI)00zZ zopz&Z+WzjLy}@^tOFx|}v_AdbRafLw*??$kkvWe|gjeVyu|U3@+cOPEtYg@xpHLvDQKdWMM8d_q_HmsVb!Ypfo2 zwmh=eY;NOF(q;+vVV5X+%O!49cNWTBt>kah3rCM+8Yl@fjn)kbr^x*9ezsD!Z1?4~ zIggHrF08FTVrf#hck29G$Gm}_hnDl#lwMn~bMv7|%^?QKh1rVtC+cKl{P}xYlp*}J zvX=0PZDfjG%3Ib!O0jwX{$H#ppmc8+Tm0pl@alwcbW_Ov8vH+1EcvA8`MvD%y?aHe zsfIU(hMwhSvb0gz-yIyTJ~No4eC1+#{n+AQ%bw7^cb zh0fdd1|$?O9XU0?{@7r0EZ?HRLVwXKVL12sk@WH`PupUbtbTG>olP=2ldFEDj*-c9 zh8o=dgUSwF@h1-*WzbtQJv_{LQ}5PB>v>9MvHd{`{PTH5Rz*@)ZEpy>|AyZ^WzAUV zgQukKFVp;zpLtYX&Eu7{SNU?Vj5PlUN{_P| zw$HrH#k0lh!6`-8d;0ulXP@mpDcci@sJ@ z{|^AkKsLVsihu#xHT{%RVBT%F!np0Wt!mqqLVaCb@ZBShg$--g20A{d15h_I{@fa8 zDZS$x<|cje@1D&IKgp)&1-(`v+OMHyb894Km-rT?Hk(4ptLQqjpWW`w{8Y^s|77uh zRrvI3EH40{_hh#hB-@SY!1Hf~gKGc)&UNtZq`0}+(3W<&rM@lZK4tM z=B+6#KGzyOZX8_o<2&Kd6OJD?zJcfe`ZxIL`Cl`gt3@an0GJ6sV))rBa#iepvP?w$ zBPKxS^Znfug3J^QbiZ+RiCG6n>z9Nr@2<=SXXE=kK=4UERO+*}0Y$GoUCLPm3RyT% z7DZr5TvbSPBKmiiNk*8441$wupdLUF4S;3vV#QP|!Hij>!fuXe1!f%^uWRCbgD+k3 z4Y=rr>md@2mUx$;r$R0VKRWXqc;m6h10C;g ze@ddUeNrsZMo*AA?ZnJJnOg3i2jG0ND!&*?lmUPj!%HI(inEV$L@^++%>f2#kE?;% zfL_>?;&YsmHo)d0Mr2RQ!h=hEHh())W=FcK4ljv*Sr0q2}uZogE7yfgq^ zqNd6coMi85x1|6E0ObKfS}#Bck)G%{6z7NZTA6ISPTmvl{L>#{{O3Mb)%Gk#*dD+7 z=3IFCp8H&FS4z@P#{TAQKKy<}jR3$^drpJorVjfVWj3W( zMH%OKtbL%{`2b!6(E-yEha$OV9|3}mWFVqufO#YR_C#xwwr$-3ZvWlgu=_rHSG7%x z(Wk4|z;~t}37P(+y{(j0f7xt5N?ta6r3lCW(|w(b*QAraAwl1Jl1^(rq@ksKn{c#M zs#;rHM5)iI_LB3A?>dj7qE?}S-03HNsy_D;tSxu;AW5 zz_f!8u4=pb5x&F!Tyq^f^6N!h=4%kAAGWPmV)0;`1FO>g@IqgAi=Q*l_rA^1=P7H4=f$WS~-`2Ii`~I&_oI9`f0d z%h(gH*#2&4ZiWSax(D{EVG!8(!H00oAv29iLI6Pkz|^YPY(FoJbFcs)W2_^vX-;P@ zx7h0#-}_EUG%ndAmY5|TOp7L{mOUr)^m|1L*kzj8V^xpirPomSTmcn$XCd1`#x`c2 zfcgA7#7X1C$-u@HV*9N@+Dm@-kC0jt_#|MZ{=Y*mHQ3p#AfXAK{L1IFgj;pQgz z#b54&wgV5WYWsS=zn}#aHvzB)rn_y#c2ZntRSpdBIxqKiFMm7LH_h)DDPiW{q4CD{ zF`;m?__8V}j8t`}_KG?FHk0de3GD>}Ai0L&*z*Y!+Kg{Ay$(^*dG&;;ajPgU1)hGcENzX?k;3^0>zdkNOKtrq>OrUXO#5F#Y;M4seDyR(!Sr=b@uwY(O0IkPP%ttBJLYZ3W)^xqgOn!MHMCEO*SFD!qH4cr z_j{@ARP~lQ0;!fDGXreZkojbTLEw&!vr~;(W(YF(y_NuA9sz(p0sxN6uXAB0 zC$xu}0cj_!@n>mnIdBg$FH$_Vi6DUYLwh%^n2WFAEJAcZVN@Y)srY#hpFz&b8DL|$ z*w$xXbOC&4;ewj0Er8|2zJKB@SoPv7-1c&q-;08n2thSBJPr$oKHeiY1Ekj&L)8Bx z8TFs{`s+NCgQJ3TYPs$nD4dNBZpR*LD~izp`WZ%57p1(x^tz$iqwQYM_0m*&NkjN) z1GNMImthoO^JdV2tz@ioAxjPrbdv#bSu|rsB=S9~s7AX1b3A~*9m@6{O=&fpq>2eR zXa;00Cg?BVT!FlCZ|4FEFFCFIW9n*0j-1K*5(wkp_N!mONoSo|)%KRrlYjUl{N|E* z_VZIO5uH3-NdOSHm7}>~A3W0CF>h1OZ3alspDK9&SpYBxfKxDn9Tdi~y7w$UHn#85 z0u%={!~`C^7fSm)k@l;|-gL%Y zP>iM0!q%tRe~JOfv~Os^N<0Vccl7ETH3NXXmQ`vTXaLM41ch{gS#*tUTdEaUIR~4F zCZIFBn_61n-p3z<9d_Qis%&e;Kbnn=y!gIBc2;!+)I3z^mxJCw~!z8X$v5 zGLxW|0O0B=`#?{JlL=@tydnhwS*9R;AJz;)%iM4w0Ix}j<)?rX;K7C{s`*Jw1fu6j zj=^goP;_9#+g+sJ%)J~Q|NTA2yJUnm8;qE~tG$Z+7U_db z5}xVpZXsq_r|)@<;mE9`>RXo3K6@@hn;LSR3thK*=?e^ zV1N|S#Qxd6aZX=8zgWBuN4q5&7VHzNpKI1MH+PHiep$?&4avD;_sn-=zrv>iQ|XWX z;0B@wzD*>4JF2Hub^x&;P)h)C9WeoVEhiwYEW?6;mq{Sb2cYEVKk)+tfYJd0?fqmS z$JzU|n5klgak0JtMh9ryH#IlIU!Hjqww+Kr`2pE<8m>BICVael&5$!cB`;^7%yEcg z`T4%C#Vdt!VXkM#-2WXSF=pzoV%z0CVf9Gmf?QMQuQg5_kcDu}#;#_ks65=lmk=X*mr0F#JcW z7`rO6n8`v|kB~moiC;Jke)PM$Ybq-6hwuFtJaE^~?8hF=DZa%hNI396slLva`np>@ z&x?jaZ8H+hnEfZH{!VVZi@|j!5y!d?oAAS`_^h3egx!l7dh0W3cpfLBSe;wR5>}NW ze5Nb!T3B@ez_Q?1O_~f1UA@p{B{t<1x94Bx8z_J-WqyB#*8TSj*DR$y`-!B_*&yIJ z1i{MH*g!PFEHyhd4Sw^$5;)+9!>iiE0+|gPVQMG>odh&l5HRD>)-!_}1kCNcZvcEg#Wn~UdGRtT*v!9z1p)?>+iMy) zgA$#Gxa<`Yj-Sc<>;wPv=)(}Ik!8uy47lQ;>G0|MYh8?AD_{WNXeZcz5BF@Ew>g_# z$nLXg*LeMsed`)#$!7Y=GWl5bU#8l#_C5WMapM-E-n~JjKHB*)GJtDQ;)_&E0C3js zQ;mWkVPa43uZ3VE`7^?C3cJuL|6L3h8t)|7_byvs_!Qe?AXAXp>)3M&B>Q`<3PaRV zm`}`rW4`eDsv>hHe)on+ssbQ|~F2Q@UW-Z4_wD$Dkx z7hpa2A;yu%?qflLGJn|0OpByb@DS@MS{Ah@W&^XLAXY03cmcWhv7$O z&6d7rEfIaTm8t&D7yG(e#O+4y+YDAv-|+|^EHJdvyZJGwJ1U) zGaL4kCGoJfJl#k00azy=Zo}>jlbb$ERQ^s)wMR~^tNbF>G5{bU2<)q<&>f0!Os^}v z2EbP{!8gI~rupj666H;~Q)Likq z;~>?Q9u%gK z_Rg{90C<}OJkxsvfw{eOFeryGPoO*JuB3-1!e*igpn~wF3(kk@NPpCVKw0tFQuzKE zXL;^tb4jXA_#AH~dzUZo@0mt_8#LWm`6q7W|2xbdvi57b+tcr2ertQ2AovSJ@_(%0 zOugD-em2ns>~BtRip@)5%bnwSSNxa&zt<45;8Cdnl8*< zhy5&dCL11yW!QRiIqq28{%JOCgbka=jDf$mzYNWzM^~d8IO^K40lu}@0gy^2eUDRw z&uS5o{_t#Xr(!=#A|7v>8A-H{vgZG@(w~#`lJs5rNi~PYYz7`Bs#*`NBvfUDc4F7M zHOo!0Q+#QbBR;5EAxH;tIdk^&TX)TelV+b=)%OVk07xA= zpo?fxk9KXEnbq}W#&a}iq1h)kj$Ra2HO~9bdh#((I|MxAvra!ery-Muzggv-X# zNPm8n8*?V3rqHRXRH~WBhzZAvkcc8qviRnmcfg6m1OV`v8%SGBB%q#A6b=LoW>wq( zAWC|fM&RBq>4SiPpcFaAbPDDTyPw^LS^&<#JM^fd;AczzY}5{@HvRYISHdHA|8L;q zs|f@+ALF6!P4jy5xrN64C&ub-JhZOq2Gfb5yO^7L{Wa!~4f|mXIh0Pr!-Xt|*2XmA zA<_VJD^5(Myk?}6f+gK)W3#Hh!2IC0)x;;i4GI9d^^W67BVcNGo{9h4 z3@rEsWZD35+Z5@2ij^W~a||fa8WVJ$f*0j2ryxr>k6;s#Vs(iGJh);xj2%CINc%uW zOMm~r@bgQrD0}^cq2Lngh{V6AdNwcoAd{MB+;{i-#-;m36Eo<;hyb8jy@$V9Er6N} z1)}ypMmoejD@h4lbFb`|A_D}O9eoXEDKLJO8&;)PIdJlBe6LRY#=<*>4FK5fL;iLl zZ4=f^FO66_OauXd@_;}VN_0O9)g=_yc0UkE88Zl-DZ<$2A7xX9Bl8Epstq$>ngENGEPZVl0)S$**Hn#Y0oJ?$e!8$52teE?Tr$fi z8gkDnWcmWUH31NgtCVvPqXJ!wDS!zrA7#@pcI&O-pRccgSY6#9w03aH=W=l6Av0jz z%2gG=wk)SWwl65*`5$JI@N`e7qJ%@Cwj+rKFfJ5vP2ZK-|5%s_yP=LW{=bbfPu{b> zDxv;UFTQ4^5Yrh7I_K158-gulDsC4Wm1TN+%{q@~#^Ev$B%As4yl@ntoU6m;vC&W2YWeQeOK zuLRsK3%`oTY|dri(e93!N<$qc2WsW z0}U%0x70ViKHC7M8K7_=W^Phk4WZcE{Y@0nT)1HVZ8ZS^XYM`)`iaU}irR~9iZkxe z6i`*oW_-5z78@p{zv(f4S${#a0rptY;Tpt$U_6J8g+j9S-LP`drhEpjUoaoexcH*M zYxIEhyKAq92Y>aOA-kVU>(+ff*>kWo+dsQDo~n$F#pWJY*SsLaFpt6Tg4z$(cP!HR z?`#Uv#$*!jZX1aGUoe)FHj{`nm*jRrb&BBBQzY9ptGI-y-g}t>#&?C^PJfA_#<{kX96zdY`vmn4LyUKmD9^@<>4Gea~thY`e4CNS~zz z;5#EAtRt%I=g&V6zWd|5hNS)d=%HW!H~f}>z)<@mWDH(3^_aBXzq&Wwr0fu@TQD=x zG*_1NqY2yUNW;I7>W3ax;T$sV2P#ea>pEYH7V{A_CMNHa_QDd)GPTz!H}0?Evl)Qg zJ%sxroqxxza9ouE084^hY^)A!76r{RWw(p9xmgliC#HY`W5W?!vUA#iPohvzb-fg= zASl_-fm%QzXTJ{?4B2I$z2SeBK3esBfS3RI5Zrq9oT@t{S@L=kY$*%{D!axKiw;UO z&K5KLL=7N98hd3X1@G(mqBjki07M;o&Up$%h`LWb`mD4!J|&D#x3egy0?+tftJs?7 z@?K}DGtv5f{`_0vm~*QS0NY^4vzXx^dnb#d0M!;Et)ECf`%Yrgy6#Vmz*Q)LaT-ClDu087bicgg;mt>j&B^>k5 z^>!{(_O5SUIyD-fA$t8o%x^5_(Myo_g+dmJv33yEUu1kdC#q^rwP?lzFO&H6yO_D> z-mVC$KQHNNGK#F>+))953y21Amz|k9!V5B0>Hp z5D=hi2O?1o06-1^_AwC9W(Vei6{H-a1)v7BLD3BW*lOEtDt@n0Xv5mIaOwVsKt7ur z_{AzrbWF2=@J_OKnX+Gf)9T65x>nq1&*|6s`TYrkvJYm{5LWy2)VORq|z0+?7c zITRsnukn$93IaeWQG!wk@7+xRAZsm#x{i#^yZ`+NOg>=$L22`#)Z5hs-<-OSXK|2f zlPD+&0IX3CX&SBXN(KUT^o0b~zmcd~OH+N2Dk9ZoaevD2l-a1%r(wM)VSbvuC$sZK z#+T*l`>Fb@n$I({e@IZw5~P3U)(8O1BLL9vvo@gF*3LVmtxP)8xoY(Vt`$hO?-Gge zMMM>lUdP@K!F>UPp#ji)qY2P!BnJU}noGkizyBQ^b?U4EU3;KpXlHxv51ZF-sOocg zkq7`Q312HmwT#twP(xhkk4k@BMDk-|_rI;@19c-+*$YL6NW`cD>?Ni7IKJxR+~Yu_ z1XW+uB-m~4KWG0}?zp8U0N|=A=md0|0FK0Ug8^D|wSjyV<}J7b&baV`A?N|0=gVf{vI7r=Pu8rh>T?t$ zI<_$xNI8XQ0Ao=V1Rem8Fy8+VIVe;_`m04kg3gTjY9&cg{|id-oNlh#>p0?^C9I5^ z`~(R42_S^X_npE~bJ=ho<`CG5-2UGeZ^W&U=PNMp^ z6NIG&G(=*Vo-&OW2w*}Fdili%Fun`6zD(u!^Xi+|aDGek2Dod8$I2O>x+Pg4IP3OX z;qckj2Y@dT4FD&f*v~8U5q)N3!4Qo78=*m>(UE>=ApKCUn$y0r3ZMDu$F8NS|K&OW z*~~R${G4!a){{+(h~|kFFyp*);o61shq5cAbp5d>!hc?RrP_~Cl&~GK?Ub_#03;9q zn9yGXQK|k$q(7S-D7ygd2+XCoR87OG3arI0GO=GW4{Pg}W9J8DeB(Wge|6V! z^!dI-0AOYf0Kk_gO))e8QFG$kMr=#PE_a3wKr|cb$hNp@nhv_cU#9?$=~Jru@0?RA z0Owfyxq3Hx48ZH1}I)w=UTsUSM9UVa-3jhkaEIgG>8@c%9Sa8%T#dKbyNCz8@T9+|3-iF)4_Q*~5tj@a+)|pd>OJ=ofFbtscr1%vpY9 z!}CP-?;SugBc2(NsQpN6h)?F|PsEmw~frTmg&3B5Ee?Lz& zfCFm;0O)jJFR9NbGWlE#=42+VchFM*4ZxAfPo+y$M>K=iE(=<%H;Ob0&VoU`Ea zyB0#VX*dCZu_E(V2>@sW0I>7ZMDo9s%apxz7j|gOko=6)0e>&QoO$^HOC8k3?0naD zK&d7~6U;YvEp^5L03-Ed@75GE-A@`1w5tRti4)!t>ypxBYPFIzrYCgrTlE@>p11<52+i zc?|#v69B-ZpBK`7&=270`12!NB0Z*=%rC3MCo;bq2;_4J{Fq<$VSF~8&#V9ZdWW(l z&v2mCTa3SgfZ|3yZ`jG#{`jt%SQrEW0A~Zb+6p9q!1zzRn4fJg%`yoP1nAOk0N%E^ z$jq!0(N%=h=UTFBL%`!R#FjmI-lZ_-`s(KaTs8A3_~6aAtNI*4$pC<_Spbm1$v(NX zQ#Zeq3xOHxL+Q_^^|B!o*!!Z&@0H9$uWLH)n5cur^x{g#&Jt!0K*Z7c zna{zBd=}P|fo1qA@Hr9PYXktkf+m0f0DjC*+mZ!QP0+xcGH{C3e!9KjOCG#KaY+0! z%y2yWhd0Bi7hgE^9l{W10$zIXbl9+JO;w*GC>cC=$=Gf6 zhFl(=O7%g~8b75hxriYpbofP8I@oyTm)ZOpr;-MrxZ`C$(Bs(SMejb{&#hq0Fg`A+ z8Oaxj#81ITdVymQ)oQG7*B}7MH6geEgauNuNU8&z3e!e9H#-!g0vW};Ha|bWVNa3K zWokY9=|wsO0}T7V1OP7i)z4u17f!2Iw-{v9YS`yM=>O!?sy;_hGED#i0QpoBUM9AG zsnVZzR6+}bSn`>b{=7HZ+sjXhs{QPsl?`+;eU}^HOlF*@^0TWOqt4Pm2GCnX16ozc zacR%&-D(K{&OskQM@JxMpBMAn`+)^V2LP~l*@a&fE4A2+&r@jS+0%=`i~W{SDWON~ zoA2KLC)o4QLx!Xeyr{pY2QHkt59GRgs`?y3h?d<`t|S2PWN#Pb6t?pNT)_IQ!!%OY zpp#2}HnGR6NJlA>pI2X5Tc2OrOgxq@ayp7g`i}|Yzmm_|&*oJ?q1FHZH2^Q>_i9HZ z&7%!jkZ?-C=^Sw4cdW>lk+hJg3Gn;;f6J&808lj*?tJbk*lI%S;5L2{TEA``d~M%@ zAe6}t{9=PlHUNCNakTz+Hf`0|FE0IU8xM<0V1Y?Ru(u`5FSGesQiYp(4O(_T{S;Mx zs=BiK>C$HOxkBWaSS|-I60K*mrS8-B@@j)x0)TV(m}<`k3?lWpcJ%-Nqn$Yoif>De zISz-nIU&c~!X|(fOWX;f{>%Ifew1ivfS;~-3F73ln)J@{SK+E7jxpw6)H2cK^RTdr z(iX4RLnTOmno5cezX;>>qYN%4_!Lw5S!v}ANVmGm@8_i!YwtTN7V#C1=(CS0$woRS)mupf;EC?7r0qY8WEBg$V-OtkJcAo^dE`6A2 z0;PDbDo;=U>tVR%OJ_r!78>})29YQLV4VnMDgpq2=cFI*MC%iWNWywaR`Sc@{3>0& z$0N6ZmHt`@5=+MX;;O~0t&i$#9g+G^<(|q-3o>0L4z_^=jU5-zu??!Ls$em_Ly3qlN(Bd;$Pi6_}O$vL2K%Ki#f)e0R@| zG~V9TM(l6Q5lDeI02Gt{<*NS1`4|EC%O7FS>4#Omu}h@O&iV?h`sc&O3|O|U*zxbh zl$9jeJ?J+2iDrB+R#e`NXaJ1?7M3s_WD2L=c!m0cc>B$UajUFBBtMd=<~vz^_M)Yh zexazJuYXkuHGNJ&*ik!++fBG�KmC6k}d^GnmLKWAqAyR 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 Yp1}az^^3SZqBB0}gFnpuC^s nil) and NodeNeedsKeyboard(node) then + TempMsg := TCefProcessMessageRef.New(SHOWKEYBOARD_PROCMSG) + else + TempMsg := TCefProcessMessageRef.New(HIDEKEYBOARD_PROCMSG); + + frame.SendProcessMessage(PID_BROWSER, TempMsg); + end; +end; + +procedure CreateGlobalCEFApp; +begin + GlobalCEFApp := TCefApplication.Create; + GlobalCEFApp.RootCache := 'RootCache'; + GlobalCEFApp.EnablePrintPreview := True; + GlobalCEFApp.TouchEvents := STATE_ENABLED; + GlobalCEFApp.EnableGPU := True; + {$IFDEF DEBUG} + GlobalCEFApp.LogFile := 'debug.log'; + GlobalCEFApp.LogSeverity := LOGSEVERITY_INFO; + {$ENDIF} + GlobalCEFApp.OnFocusedNodeChanged := GlobalCEFApp_OnFocusedNodeChanged; +end; + +procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean); +begin + CanClose := FCanClose; + + if not(FClosing) then + begin + FClosing := True; + Visible := False; + Chromium1.CloseBrowser(True); + TThread.ForceQueue(nil, + procedure + begin + CEFWindowParent1.Free; + end); + end; +end; + +procedure TForm1.FormCreate(Sender: TObject); +begin + // We use a normal form while debugging. + {$IFNDEF DEBUG} + BorderIcons := []; + BorderStyle := bsNone; + BorderWidth := 0; + Caption := ''; + {$ENDIF} + FCanClose := False; + FClosing := False; + Chromium1.DefaultURL := HOMEPAGE_URL; +end; + +procedure TForm1.FormShow(Sender: TObject); +begin + // We use a normal form while debugging. + {$IFNDEF DEBUG} + self.Position := wsMaximized; + {$ENDIF} + + // You *MUST* call CreateBrowser to create and initialize the browser. + // This will trigger the AfterCreated event when the browser is fully + // initialized and ready to receive commands. + + // GlobalCEFApp.GlobalContextInitialized has to be TRUE before creating any browser + // If it's not initialized yet, we use a simple timer to create the browser later. + if not(Chromium1.CreateBrowser(CEFWindowParent1)) then Timer1.Enabled := True; +end; + +procedure TForm1.Chromium1AfterCreated(Sender: TObject; + const browser: ICefBrowser); +begin + PostMessage(Handle, CEF_AFTERCREATED, 0, 0); +end; + +procedure TForm1.Chromium1BeforeClose(Sender: TObject; + const browser: ICefBrowser); +begin + FCanClose := True; + PostMessage(Handle, WM_CLOSE, 0, 0); +end; + +procedure TForm1.Chromium1BeforeContextMenu(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; + const params: ICefContextMenuParams; const model: ICefMenuModel); +begin + model.AddSeparator; + + if TouchKeyboard1.Visible then + model.AddItem(KIOSKBROWSER_CONTEXTMENU_HIDEKEYBOARD, 'Hide virtual keyboard') + else + model.AddItem(KIOSKBROWSER_CONTEXTMENU_SHOWKEYBOARD, 'Show virtual keyboard'); + + model.AddSeparator; + model.AddItem(KIOSKBROWSER_CONTEXTMENU_EXIT, 'Exit'); +end; + +procedure TForm1.Chromium1CanFocus(Sender: TObject); +begin + // The browser required some time to create associated internal objects + // before being able to accept the focus. Now we can set the focus on the + // TBufferPanel control + PostMessage(Handle, CEF_FOCUSENABLED, 0, 0); +end; + +procedure TForm1.Chromium1ContextMenuCommand(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; + const params: ICefContextMenuParams; commandId: Integer; + eventFlags: TCefEventFlags; out Result: Boolean); +begin + Result := False; + + case commandId of + KIOSKBROWSER_CONTEXTMENU_EXIT : PostMessage(Handle, WM_CLOSE, 0, 0); + KIOSKBROWSER_CONTEXTMENU_HIDEKEYBOARD : PostMessage(Handle, CEF_HIDEKEYBOARD, 0, 0); + KIOSKBROWSER_CONTEXTMENU_SHOWKEYBOARD : PostMessage(Handle, CEF_SHOWKEYBOARD, 0, 0); + end; +end; + +procedure TForm1.Chromium1KeyEvent(Sender: TObject; const browser: ICefBrowser; + const event: PCefKeyEvent; osEvent: TCefEventHandle; out Result: Boolean); +var + TempMsg : TMsg; +begin + Result := False; + + if (event <> nil) and (osEvent <> nil) then + case osEvent.Message of + WM_KEYUP : + begin + TempMsg := osEvent^; + + HandleKeyUp(TempMsg, Result); + end; + + WM_KEYDOWN : + begin + TempMsg := osEvent^; + + HandleKeyDown(TempMsg, Result); + end; + end; +end; + +procedure TForm1.Chromium1BeforePopup(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; popup_id: Integer; + const targetUrl, targetFrameName: ustring; targetDisposition: TCefWindowOpenDisposition; + userGesture: Boolean; const popupFeatures: TCefPopupFeatures; + var windowInfo: TCefWindowInfo; var client: ICefClient; + var settings: TCefBrowserSettings; var extra_info: ICefDictionaryValue; + var noJavascriptAccess, Result: Boolean); +begin + // For simplicity, this demo blocks all popup windows and new tabs + Result := (targetDisposition in [CEF_WOD_NEW_FOREGROUND_TAB, CEF_WOD_NEW_BACKGROUND_TAB, CEF_WOD_NEW_POPUP, CEF_WOD_NEW_WINDOW]); +end; + +procedure TForm1.Chromium1OpenUrlFromTab(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; + const targetUrl: ustring; targetDisposition: TCefWindowOpenDisposition; + userGesture: Boolean; out Result: Boolean); +begin + // For simplicity, this demo blocks all popup windows and new tabs + Result := (targetDisposition in [CEF_WOD_NEW_FOREGROUND_TAB, CEF_WOD_NEW_BACKGROUND_TAB, CEF_WOD_NEW_POPUP, CEF_WOD_NEW_WINDOW]); +end; + +procedure TForm1.Chromium1PreKeyEvent(Sender: TObject; + const browser: ICefBrowser; const event: PCefKeyEvent; + osEvent: TCefEventHandle; out isKeyboardShortcut, Result: Boolean); +begin + Result := False; + + if (event <> nil) and + (event.kind in [KEYEVENT_KEYDOWN, KEYEVENT_KEYUP]) and + (event.windows_key_code = VK_ESCAPE) then + isKeyboardShortcut := True; +end; + +procedure TForm1.Chromium1ProcessMessageReceived(Sender: TObject; + const browser: ICefBrowser; const frame: ICefFrame; + sourceProcess: TCefProcessId; const message: ICefProcessMessage; + out Result: Boolean); +begin + // This function receives the process message from the render process to show or hide the virtual keyboard. + // This event is not executed in the main thread so it has to send a custom windows message to the form + // to handle the keyboard in the main thread. + + if (message.Name = SHOWKEYBOARD_PROCMSG) then + begin + PostMessage(Handle, CEF_SHOWKEYBOARD, 0 ,0); + Result := True; + end + else + if (message.Name = HIDEKEYBOARD_PROCMSG) then + begin + PostMessage(Handle, CEF_HIDEKEYBOARD, 0 ,0); + Result := True; + end; +end; + +procedure TForm1.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := False; + if not(Chromium1.CreateBrowser(CEFWindowParent1)) and not(Chromium1.Initialized) then + Timer1.Enabled := True; +end; + +procedure TForm1.WMMove(var aMessage : TWMMove); +begin + inherited; + + if (Chromium1 <> nil) then + Chromium1.NotifyMoveOrResizeStarted; +end; + +procedure TForm1.WMMoving(var aMessage : TMessage); +begin + inherited; + + if (Chromium1 <> nil) then + Chromium1.NotifyMoveOrResizeStarted; +end; + +procedure TForm1.WMEnterMenuLoop(var aMessage: TMessage); +begin + inherited; + + if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then + GlobalCEFApp.OsmodalLoop := True; +end; + +procedure TForm1.WMExitMenuLoop(var aMessage: TMessage); +begin + inherited; + + if (aMessage.wParam = 0) and (GlobalCEFApp <> nil) then + GlobalCEFApp.OsmodalLoop := False; +end; + +procedure TForm1.ShowKeyboardMsg(var aMessage : TMessage); +begin + TouchKeyboard1.Visible := True; +end; + +procedure TForm1.HideKeyboardMsg(var aMessage : TMessage); +begin + TouchKeyboard1.Visible := False; +end; + +procedure TForm1.FocusEnabledMsg(var aMessage : TMessage); +begin + Chromium1.SetFocus(True); +end; + +procedure TForm1.BrowserCreatedMsg(var aMessage : TMessage); +begin + CEFWindowParent1.UpdateSize; +end; + +procedure TForm1.HandleKeyUp(const aMsg : TMsg; var aHandled : boolean); +var + TempMessage : TMessage; + TempKeyMsg : TWMKey; +begin + TempMessage.Msg := aMsg.message; + TempMessage.wParam := aMsg.wParam; + TempMessage.lParam := aMsg.lParam; + TempKeyMsg := TWMKey(TempMessage); + + if (TempKeyMsg.CharCode = VK_ESCAPE) then + begin + aHandled := True; + + PostMessage(Handle, WM_CLOSE, 0, 0); + end; +end; + +procedure TForm1.HandleKeyDown(const aMsg : TMsg; var aHandled : boolean); +var + TempMessage : TMessage; + TempKeyMsg : TWMKey; +begin + TempMessage.Msg := aMsg.message; + TempMessage.wParam := aMsg.wParam; + TempMessage.lParam := aMsg.lParam; + TempKeyMsg := TWMKey(TempMessage); + + if (TempKeyMsg.CharCode = VK_ESCAPE) then aHandled := True; +end; + +end. diff --git a/update_CEF4Delphi.json b/update_CEF4Delphi.json index 8e9bb783..c6507d70 100644 --- a/update_CEF4Delphi.json +++ b/update_CEF4Delphi.json @@ -2,7 +2,7 @@ "UpdateLazPackages" : [ { "ForceNotify" : true, - "InternalVersion" : 758, + "InternalVersion" : 759, "Name" : "cef4delphi_lazarus.lpk", "Version" : "138.0.33" }