From 0e58cb04c0b7a22005173ee74d006032332af96e Mon Sep 17 00:00:00 2001 From: david Date: Thu, 9 Aug 2007 17:04:40 +0000 Subject: [PATCH] git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.FastReport@3 475b051d-3a53-6940-addd-820bf0cfe0d7 --- official/4.2/Dealers.rus.txt | 135 + official/4.2/Dealers.txt | 405 + .../4.2/Demos/ClientServer/CGI/fastreport.dpr | 57 + .../4.2/Demos/ClientServer/CGI/fastreport.ini | 3 + .../4.2/Demos/ClientServer/CGI/index.html | 6 + .../ClientServer/Client/Advanced/FRClient.dpr | 14 + .../ClientServer/Client/Advanced/FRClient.res | Bin 0 -> 3372 bytes .../ClientServer/Client/Advanced/main.dfm | Bin 0 -> 21638 bytes .../ClientServer/Client/Advanced/main.pas | 463 + .../Client/Simple/FRClientSimple.dpr | 14 + .../Client/Simple/FRClientSimple.res | Bin 0 -> 3372 bytes .../Demos/ClientServer/Client/Simple/main.dfm | Bin 0 -> 11872 bytes .../Demos/ClientServer/Client/Simple/main.pas | 124 + .../Demos/ClientServer/Server/FRServer.dpr | 15 + .../Demos/ClientServer/Server/FRServer.res | Bin 0 -> 3372 bytes .../4.2/Demos/ClientServer/Server/Main.dfm | Bin 0 -> 15343 bytes .../4.2/Demos/ClientServer/Server/Main.pas | 280 + .../4.2/Demos/ClientServer/Server/allow.conf | 0 .../4.2/Demos/ClientServer/Server/config.xml | 156 + .../Demos/ClientServer/Server/config_demo.xml | 135 + .../4.2/Demos/ClientServer/Server/deny.conf | 0 .../ClientServer/Server/htdocs/about.html | 35 + .../ClientServer/Server/htdocs/bottom.html | 1 + .../ClientServer/Server/htdocs/default.css | 131 + ...lications for client-server technology.htm | 50 + ...nents of FastReport Enterprise Edition.htm | 54 + .../TfrxHTTPClient.htm | 45 + .../TfrxReportClient.htm | 44 + .../TfrxReportServer.htm | 52 + .../TfrxServerConnection.htm | 46 + .../index.html | 0 .../Developers contact information.htm | 49 + .../Developing the reports.htm | 43 + ...ices concerning the design of a report.htm | 42 + .../Some client-server restrictions.htm | 43 + .../Developing the reports/index.html | 0 .../Client side with threads.htm | 47 + .../Client side.htm | 45 + ... of a simple client-server application.htm | 42 + .../Server side.htm | 46 + .../index.html | 0 .../htdocs/documentation/Examples/index.html | 0 ...erprise - Client-Server reporting tool.htm | 48 + .../Important security issues.htm | 45 + .../htdocs/documentation/Introduction.htm | 64 + .../htdocs/documentation/References.htm | 43 + .../Report client/Other clients.htm | 43 + .../Report client/Report client.htm | 43 + .../TfrxReportClient-based report client.htm | 41 + .../documentation/Report client/index.html | 0 .../Access restriction by IP address.htm | 62 + .../The Report server/Authentication.htm | 44 + .../Database connections.htm | 44 + .../Increasing servers processing power.htm | 44 + .../Internal architecture.htm | 106 + .../Internal server variables.htm | 44 + .../documentation/The Report server/Logs.htm | 47 + .../The Report server/Query syntax.htm | 77 + ...upported formats of the report results.htm | 46 + .../The Report server/The Report server.htm | 45 + .../Transferring parameters to the report.htm | 42 + .../Using HTML documents.htm | 47 + ... other HTTP servers (Apache, IIS, etc).htm | 46 + .../Using the reports cache.htm | 49 + .../The Report server/index.html | 0 .../Server/htdocs/documentation/banner.htm | 18 + .../Server/htdocs/documentation/content.htm | 51 + .../htdocs/documentation/image/freepm_001.gif | Bin 0 -> 85315 bytes .../htdocs/documentation/image/freepm_002.gif | Bin 0 -> 26163 bytes .../htdocs/documentation/image/freepm_003.gif | Bin 0 -> 13118 bytes .../htdocs/documentation/image/freepm_004.png | Bin 0 -> 798 bytes .../htdocs/documentation/image/freepm_005.png | Bin 0 -> 958 bytes .../htdocs/documentation/image/freepm_006.png | Bin 0 -> 998 bytes .../htdocs/documentation/image/freepm_007.png | Bin 0 -> 1027 bytes .../htdocs/documentation/image/freepm_008.gif | Bin 0 -> 13357 bytes .../htdocs/documentation/image/freepm_009.gif | Bin 0 -> 9690 bytes .../htdocs/documentation/image/freepm_010.gif | Bin 0 -> 3192 bytes .../htdocs/documentation/image/freepm_011.gif | Bin 0 -> 2415 bytes .../htdocs/documentation/image/freepm_012.gif | Bin 0 -> 2904 bytes .../htdocs/documentation/image/freepm_013.gif | Bin 0 -> 9916 bytes .../htdocs/documentation/image/freepm_014.gif | Bin 0 -> 9817 bytes .../htdocs/documentation/image/freepm_015.gif | Bin 0 -> 9868 bytes .../htdocs/documentation/image/freepm_016.gif | Bin 0 -> 6384 bytes .../htdocs/documentation/image/freepm_017.gif | Bin 0 -> 9991 bytes .../htdocs/documentation/image/freepm_018.gif | Bin 0 -> 2182 bytes .../htdocs/documentation/image/freepm_019.gif | Bin 0 -> 2909 bytes .../htdocs/documentation/image/freepm_020.gif | Bin 0 -> 9930 bytes .../htdocs/documentation/image/freepm_021.gif | Bin 0 -> 9853 bytes .../htdocs/documentation/image/freepm_022.gif | Bin 0 -> 9241 bytes .../htdocs/documentation/image/freepm_023.gif | Bin 0 -> 9786 bytes .../htdocs/documentation/image/freepm_024.gif | Bin 0 -> 3253 bytes .../htdocs/documentation/image/freepm_025.gif | Bin 0 -> 2481 bytes .../htdocs/documentation/image/freepm_026.gif | Bin 0 -> 2907 bytes .../htdocs/documentation/image/freepm_027.gif | Bin 0 -> 9925 bytes .../htdocs/documentation/image/freepm_028.gif | Bin 0 -> 10555 bytes .../htdocs/documentation/image/freepm_029.gif | Bin 0 -> 10539 bytes .../htdocs/documentation/image/freepm_030.gif | Bin 0 -> 3355 bytes .../htdocs/documentation/image/freepm_031.gif | Bin 0 -> 10126 bytes .../htdocs/documentation/image/freepm_032.gif | Bin 0 -> 20279 bytes .../htdocs/documentation/image/freepm_033.gif | Bin 0 -> 20416 bytes .../htdocs/documentation/image/freepm_034.gif | Bin 0 -> 11908 bytes .../htdocs/documentation/image/freepm_035.gif | Bin 0 -> 6717 bytes .../htdocs/documentation/image/freepm_036.gif | Bin 0 -> 13315 bytes .../htdocs/documentation/image/freepm_037.gif | Bin 0 -> 12530 bytes .../htdocs/documentation/image/freepm_038.gif | Bin 0 -> 26503 bytes .../htdocs/documentation/image/freepm_039.gif | Bin 0 -> 31611 bytes .../htdocs/documentation/image/freepm_039.jpg | Bin 0 -> 18923 bytes .../htdocs/documentation/image/freepm_040.gif | Bin 0 -> 19775 bytes .../htdocs/documentation/image/freepm_040.jpg | Bin 0 -> 12199 bytes .../htdocs/documentation/image/freepm_041.gif | Bin 0 -> 31576 bytes .../htdocs/documentation/image/freepm_041.jpg | Bin 0 -> 17496 bytes .../htdocs/documentation/image/freepm_042.gif | Bin 0 -> 48120 bytes .../htdocs/documentation/image/freepm_042.jpg | Bin 0 -> 28573 bytes .../htdocs/documentation/image/index.html | 0 .../Server/htdocs/documentation/index.html | 9 + .../ClientServer/Server/htdocs/favicon.ico | Bin 0 -> 894 bytes .../ClientServer/Server/htdocs/features.html | 33 + .../ClientServer/Server/htdocs/header.html | 3 + .../ClientServer/Server/htdocs/index.html | 70 + .../ClientServer/Server/htdocs/index2.html | 19 + .../Demos/ClientServer/Server/htdocs/logo.gif | Bin 0 -> 514 bytes .../ClientServer/Server/htdocs/reports.html | 19 + .../ClientServer/Server/htdocs/statistic.html | 20 + .../Demos/ClientServer/Server/htdocs/top.html | 15 + .../4.2/Demos/ClientServer/Server/readme.txt | 4 + .../1.Basic reports/01.Simple list.fr3 | 31 + .../1.Basic reports/02.Simple group.fr3 | 32 + .../1.Basic reports/03.Nested groups.fr3 | 51 + .../04.Master-Detail-Subdetail.fr3 | 58 + .../05.Master-Detail-Detail.fr3 | 20 + .../1.Basic reports/06.Multi-column list.fr3 | 25 + .../1.Basic reports/07.Multi-column bands.fr3 | 13 + .../1.Basic reports/08.Memos and pictures.fr3 | 21 + .../1.Basic reports/09.Split bands.fr3 | 20 + .../reports/1.Basic reports/10.Subreports.fr3 | 61 + .../11.Side-by-Side subreports.fr3 | 26 + .../12.Report with title page.fr3 | 30 + .../1.Basic reports/13.URLs, anchors.fr3 | 64 + .../14.Keep group together.fr3 | 51 + .../15.Totals in group header.fr3 | 52 + .../reports/2.Cross-tabs/01.One row.fr3 | 10 + .../reports/2.Cross-tabs/02.One column.fr3 | 10 + .../2.Cross-tabs/03.One row, one column.fr3 | 10 + .../reports/2.Cross-tabs/04.Two rows.fr3 | 10 + .../2.Cross-tabs/05.Two rows, one column.fr3 | 10 + .../2.Cross-tabs/06.Two columns, one row.fr3 | 10 + .../2.Cross-tabs/07.Two cell values.fr3 | 10 + .../reports/2.Cross-tabs/08.Highlight.fr3 | 10 + .../2.Cross-tabs/09.Two cross-tabs.fr3 | 18 + .../10.Cross from non-DB data.fr3 | 9 + .../reports/2.Cross-tabs/11.Cross-bands.fr3 | 21 + .../reports/2.Cross-tabs/12.Calendar.fr3 | 43 + .../Server/reports/3.Charts/01.Countries.fr3 | 57 + .../reports/3.Charts/02.Exchange rates.fr3 | 40 + .../4.Misc/01.Rotation, fills and shapes.fr3 | 24 + .../Server/reports/4.Misc/02.Barcode.fr3 | 51 + .../reports/4.Misc/03.HTML and text.fr3 | 10 + .../reports/4.Misc/04.Preview outline.fr3 | 51 + .../Server/reports/4.Misc/05.Unicode.fr3 | 20 + .../01.Ask for parameters.fr3 | 13 + .../02.Client-server dialogs.fr3 | 40 + .../5.Dialogs and script/03.Dialog query.fr3 | 33 + .../04.Dialog and script.fr3 | 51 + .../Server/templates/error403.html | 1 + .../Server/templates/error404.html | 1 + .../Server/templates/error500.html | 1 + .../Server/templates/form_begin.html | 16 + .../Server/templates/form_button.html | 1 + .../Server/templates/form_checkbox.html | 3 + .../Server/templates/form_end.html | 6 + .../Server/templates/form_label.html | 4 + .../Server/templates/form_memo.html | 1 + .../Server/templates/form_radio.html | 1 + .../Server/templates/form_select.html | 1 + .../Server/templates/form_text.html | 1 + .../Server/templates/list_begin.html | 1 + .../Server/templates/list_end.html | 1 + .../Server/templates/list_header.html | 1 + .../Server/templates/list_line.html | 1 + .../ClientServer/Server/templates/main.html | 1 + .../Server/templates/navigator.html | 1 + .../Server/templates/outline.html | 1 + .../ClientServer/Server/templates/readme.txt | 21 + .../ClientServer/Server/templates/report.html | 1 + .../4.2/Demos/ClientServer/Server/users.xml | 20 + .../4.2/Demos/ClientServer/Service/allow.conf | 0 .../4.2/Demos/ClientServer/Service/config.xml | 135 + .../4.2/Demos/ClientServer/Service/deny.conf | 0 .../Demos/ClientServer/Service/frxserv.dpr | 13 + .../Demos/ClientServer/Service/frxserv.res | Bin 0 -> 3372 bytes .../Demos/ClientServer/Service/install.bat | 1 + .../4.2/Demos/ClientServer/Service/main.dfm | Bin 0 -> 1643 bytes .../4.2/Demos/ClientServer/Service/main.pas | 138 + .../Demos/ClientServer/Service/service.txt | 8 + .../Demos/ClientServer/Service/servmain.dfm | Bin 0 -> 1643 bytes .../Demos/ClientServer/Service/servmain.pas | 176 + .../4.2/Demos/ClientServer/Service/start.bat | 1 + .../4.2/Demos/ClientServer/Service/stop.bat | 1 + .../Demos/ClientServer/Service/uninstall.bat | 1 + .../ClientServer/UserManager/GroupEditor.dfm | Bin 0 -> 1203 bytes .../ClientServer/UserManager/GroupEditor.pas | 46 + .../ClientServer/UserManager/UserEditor.dfm | Bin 0 -> 1968 bytes .../ClientServer/UserManager/UserEditor.pas | 109 + .../UserManager/frxUserManager.dpr | 26 + .../UserManager/frxUserManager.res | Bin 0 -> 17744 bytes .../Demos/ClientServer/UserManager/main.dfm | Bin 0 -> 1763 bytes .../Demos/ClientServer/UserManager/main.pas | 314 + .../Demos/ClientServer/UserManager/readme.txt | 1 + .../Demos/ClientServer/UserManager/users.xml | 19 + official/4.2/Demos/Dll/CALLDLL.DPR | 13 + official/4.2/Demos/Dll/CALLDLL.RES | Bin 0 -> 876 bytes official/4.2/Demos/Dll/FormDLL.dfm | Bin 0 -> 2610 bytes official/4.2/Demos/Dll/FormDLL.pas | 62 + official/4.2/Demos/Dll/RPTDLL.RES | Bin 0 -> 876 bytes official/4.2/Demos/Dll/Rptdll.dpr | 11 + official/4.2/Demos/Dll/TestDLL.dfm | Bin 0 -> 638 bytes official/4.2/Demos/Dll/TestDLL.pas | 53 + official/4.2/Demos/EmbedDesigner/Project1.dpr | 13 + official/4.2/Demos/EmbedDesigner/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/EmbedDesigner/Unit1.dfm | Bin 0 -> 3866 bytes official/4.2/Demos/EmbedDesigner/Unit1.pas | 178 + .../4.2/Demos/InteractiveReport/Project1.dpr | 13 + .../4.2/Demos/InteractiveReport/Project1.res | Bin 0 -> 876 bytes .../4.2/Demos/InteractiveReport/Unit1.dfm | Bin 0 -> 19165 bytes .../4.2/Demos/InteractiveReport/Unit1.pas | 109 + official/4.2/Demos/Main/1.fr3 | 26 + official/4.2/Demos/Main/10.FR3 | 55 + official/4.2/Demos/Main/100.fr3 | 19 + official/4.2/Demos/Main/101.fr3 | 51 + official/4.2/Demos/Main/102.fr3 | 13 + official/4.2/Demos/Main/103.fr3 | 8 + official/4.2/Demos/Main/104.fr3 | 18 + official/4.2/Demos/Main/105.fr3 | 35 + official/4.2/Demos/Main/11.FR3 | 20 + official/4.2/Demos/Main/12.FR3 | 28 + official/4.2/Demos/Main/13.fr3 | 8 + official/4.2/Demos/Main/2.FR3 | 32 + official/4.2/Demos/Main/21.FR3 | 11 + official/4.2/Demos/Main/22.FR3 | 51 + official/4.2/Demos/Main/23.FR3 | 6 + official/4.2/Demos/Main/24.FR3 | 57 + official/4.2/Demos/Main/25.fr3 | 40 + official/4.2/Demos/Main/3.FR3 | 51 + official/4.2/Demos/Main/31.FR3 | 24 + official/4.2/Demos/Main/32.FR3 | 11 + official/4.2/Demos/Main/33.FR3 | 47 + official/4.2/Demos/Main/34.FR3 | 50 + official/4.2/Demos/Main/35.fr3 | 60 + official/4.2/Demos/Main/36.fr3 | 20 + official/4.2/Demos/Main/4.FR3 | 52 + official/4.2/Demos/Main/41.FR3 | 11 + official/4.2/Demos/Main/42.FR3 | 13 + official/4.2/Demos/Main/43.FR3 | 14 + official/4.2/Demos/Main/44.fr3 | 31 + official/4.2/Demos/Main/45.fr3 | 52 + official/4.2/Demos/Main/5.FR3 | 14 + official/4.2/Demos/Main/51.FR3 | 27 + official/4.2/Demos/Main/52.FR3 | 34 + official/4.2/Demos/Main/6.FR3 | 24 + official/4.2/Demos/Main/60.fr3 | 10 + official/4.2/Demos/Main/61.FR3 | 10 + official/4.2/Demos/Main/62.FR3 | 10 + official/4.2/Demos/Main/63.FR3 | 10 + official/4.2/Demos/Main/64.FR3 | 32 + official/4.2/Demos/Main/65.FR3 | 10 + official/4.2/Demos/Main/66.FR3 | 10 + official/4.2/Demos/Main/67.FR3 | 18 + official/4.2/Demos/Main/68.FR3 | 10 + official/4.2/Demos/Main/69.FR3 | 7 + official/4.2/Demos/Main/7.FR3 | 12 + official/4.2/Demos/Main/70.fr3 | 21 + official/4.2/Demos/Main/71.fr3 | 44 + official/4.2/Demos/Main/72.fr3 | 56 + official/4.2/Demos/Main/73.fr3 | 10 + official/4.2/Demos/Main/8.FR3 | 17 + official/4.2/Demos/Main/80.fr3 | 24 + official/4.2/Demos/Main/81.fr3 | 26 + official/4.2/Demos/Main/82.fr3 | 10 + official/4.2/Demos/Main/9.FR3 | 17 + official/4.2/Demos/Main/90.fr3 | 13 + official/4.2/Demos/Main/91.fr3 | 16 + official/4.2/Demos/Main/92.fr3 | Bin 0 -> 1587 bytes official/4.2/Demos/Main/93.fr3 | 18 + official/4.2/Demos/Main/94.fr3 | 18 + official/4.2/Demos/Main/95.fr3 | 18 + official/4.2/Demos/Main/96.fr3 | 18 + official/4.2/Demos/Main/97.fr3 | 32 + official/4.2/Demos/Main/98.fr3 | 51 + official/4.2/Demos/Main/99.fr3 | 51 + official/4.2/Demos/Main/FRDemo.bdsproj | 175 + official/4.2/Demos/Main/FRDemo.dpr | 15 + official/4.2/Demos/Main/FRDemo.res | Bin 0 -> 3372 bytes official/4.2/Demos/Main/Unit1.dfm | Bin 0 -> 18426 bytes official/4.2/Demos/Main/Unit1.pas | 136 + official/4.2/Demos/Main/Unit2.dfm | Bin 0 -> 10601 bytes official/4.2/Demos/Main/Unit2.pas | 154 + official/4.2/Demos/Main/crosstest.db | Bin 0 -> 4096 bytes official/4.2/Demos/Main/demo.mdb | Bin 0 -> 2039808 bytes .../4.2/Demos/MasterDetailUDS/Project1.dpr | 13 + .../4.2/Demos/MasterDetailUDS/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/MasterDetailUDS/Unit1.dfm | 132 + official/4.2/Demos/MasterDetailUDS/Unit1.pas | 114 + official/4.2/Demos/PrintArray/Project1.dpr | 13 + official/4.2/Demos/PrintArray/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/PrintArray/Unit1.dfm | Bin 0 -> 1729 bytes official/4.2/Demos/PrintArray/Unit1.pas | 45 + official/4.2/Demos/PrintFile/Project1.dpr | 13 + official/4.2/Demos/PrintFile/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/PrintFile/Unit1.dfm | Bin 0 -> 2010 bytes official/4.2/Demos/PrintFile/Unit1.pas | 49 + .../4.2/Demos/PrintStringGrid/Project1.dpr | 13 + .../4.2/Demos/PrintStringGrid/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/PrintStringGrid/Unit1.dfm | Bin 0 -> 4615 bytes official/4.2/Demos/PrintStringGrid/Unit1.pas | 59 + .../4.2/Demos/PrintStringList/Project1.dpr | 13 + .../4.2/Demos/PrintStringList/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/PrintStringList/Unit1.dfm | Bin 0 -> 1765 bytes official/4.2/Demos/PrintStringList/Unit1.pas | 58 + official/4.2/Demos/PrintTable/Project1.dpr | 13 + official/4.2/Demos/PrintTable/Project1.res | Bin 0 -> 876 bytes official/4.2/Demos/PrintTable/Unit1.dfm | Bin 0 -> 5261 bytes official/4.2/Demos/PrintTable/Unit1.pas | 57 + official/4.2/Extra/New DB Engine/Main.dfm | Bin 0 -> 2214 bytes official/4.2/Extra/New DB Engine/Main.pas | 202 + .../4.2/Extra/New DB Engine/NewEngine.dpr | 13 + .../4.2/Extra/New DB Engine/NewEngine.res | Bin 0 -> 876 bytes .../New DB Engine/Template/dclfrxXXX4.dpk | 38 + .../New DB Engine/Template/dclfrxXXX5.dpk | 38 + .../New DB Engine/Template/dclfrxXXX6.dpk | 39 + .../New DB Engine/Template/dclfrxXXX7.dpk | 40 + .../New DB Engine/Template/dclfrxXXX9.bdsproj | 168 + .../New DB Engine/Template/dclfrxXXX9.dpk | 40 + .../Extra/New DB Engine/Template/file_id.diz | 3 + .../Extra/New DB Engine/Template/frxXXX4.bpk | 189 + .../Extra/New DB Engine/Template/frxXXX4.cpp | 23 + .../Extra/New DB Engine/Template/frxXXX4.dpk | 47 + .../Extra/New DB Engine/Template/frxXXX4.res | Bin 0 -> 1536 bytes .../Extra/New DB Engine/Template/frxXXX5.bpk | 92 + .../Extra/New DB Engine/Template/frxXXX5.cpp | 27 + .../Extra/New DB Engine/Template/frxXXX5.dpk | 47 + .../Extra/New DB Engine/Template/frxXXX5.res | Bin 0 -> 1536 bytes .../Extra/New DB Engine/Template/frxXXX6.bpk | 148 + .../Extra/New DB Engine/Template/frxXXX6.cpp | 17 + .../Extra/New DB Engine/Template/frxXXX6.dpk | 48 + .../Extra/New DB Engine/Template/frxXXX6.res | Bin 0 -> 1536 bytes .../Extra/New DB Engine/Template/frxXXX7.dpk | 48 + .../New DB Engine/Template/frxXXX9.bdsproj | 168 + .../Extra/New DB Engine/Template/frxXXX9.dpk | 48 + .../Template/frxXXXComponents.pas | 497 + .../Template/frxXXXComponents.res | Bin 0 -> 444 bytes .../New DB Engine/Template/frxXXXEditor.pas | 162 + .../New DB Engine/Template/frxXXXRTTI.pas | 67 + .../New DB Engine/Template/frxXXXReg.dcr | Bin 0 -> 488 bytes .../New DB Engine/Template/frxXXXReg.pas | 36 + official/4.2/FastQB/adler32.zobj | Bin 0 -> 584 bytes official/4.2/FastQB/compress.zobj | Bin 0 -> 614 bytes official/4.2/FastQB/crc32.zobj | Bin 0 -> 11266 bytes official/4.2/FastQB/deflate.zobj | Bin 0 -> 6502 bytes official/4.2/FastQB/fqb.dcr | Bin 0 -> 9152 bytes official/4.2/FastQB/fqb.inc | 120 + official/4.2/FastQB/fqb.lrs | 434 + official/4.2/FastQB/fqb100.bdsproj | 161 + official/4.2/FastQB/fqb100.dpk | 47 + official/4.2/FastQB/fqb110.bdsproj | 161 + official/4.2/FastQB/fqb110.dpk | 47 + official/4.2/FastQB/fqb40.bpk | 189 + official/4.2/FastQB/fqb40.cpp | 18 + official/4.2/FastQB/fqb40.dpk | 44 + official/4.2/FastQB/fqb50.bpk | 89 + official/4.2/FastQB/fqb50.cpp | 28 + official/4.2/FastQB/fqb50.dpk | 45 + official/4.2/FastQB/fqb60.bpk | 104 + official/4.2/FastQB/fqb60.cpp | 20 + official/4.2/FastQB/fqb60.dpk | 47 + official/4.2/FastQB/fqb70.dpk | 47 + official/4.2/FastQB/fqb90.bdsproj | 161 + official/4.2/FastQB/fqb90.dpk | 47 + official/4.2/FastQB/fqbClass.pas | 2276 +++ official/4.2/FastQB/fqbDesign.dfm | Bin 0 -> 16697 bytes official/4.2/FastQB/fqbDesign.lfm | 680 + official/4.2/FastQB/fqbDesign.lrs | 453 + official/4.2/FastQB/fqbDesign.pas | 210 + official/4.2/FastQB/fqbLinkForm.dfm | Bin 0 -> 1686 bytes official/4.2/FastQB/fqbLinkForm.lfm | 159 + official/4.2/FastQB/fqbLinkForm.lrs | 50 + official/4.2/FastQB/fqbLinkForm.pas | 40 + official/4.2/FastQB/fqbReg.pas | 37 + official/4.2/FastQB/fqbRes.pas | 172 + official/4.2/FastQB/fqbSynmemo.dfm | Bin 0 -> 727 bytes official/4.2/FastQB/fqbSynmemo.lfm | 54 + official/4.2/FastQB/fqbSynmemo.lrs | 18 + official/4.2/FastQB/fqbSynmemo.pas | 2005 +++ official/4.2/FastQB/fqbUtils.pas | 334 + official/4.2/FastQB/fqbZLib.pas | 616 + official/4.2/FastQB/fqbrcDesign.pas | 48 + official/4.2/FastQB/images.res | Bin 0 -> 1644 bytes official/4.2/FastQB/infback.zobj | Bin 0 -> 7846 bytes official/4.2/FastQB/inffast.zobj | Bin 0 -> 2493 bytes official/4.2/FastQB/inflate.zobj | Bin 0 -> 10885 bytes official/4.2/FastQB/inftrees.zobj | Bin 0 -> 2485 bytes official/4.2/FastQB/trees.zobj | Bin 0 -> 11845 bytes official/4.2/FastReports.url | 2 + .../4.2/FastScript/bitmaps/TFSADORTTI.bmp | Bin 0 -> 1782 bytes official/4.2/FastScript/bitmaps/TFSBASIC.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSBDERTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSCHARTRTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSCLASSESRTTI.bmp | Bin 0 -> 1782 bytes official/4.2/FastScript/bitmaps/TFSCPP.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSDBCTRLSRTTI.bmp | Bin 0 -> 1782 bytes official/4.2/FastScript/bitmaps/TFSDBRTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSDIALOGSRTTI.bmp | Bin 0 -> 1782 bytes .../FastScript/bitmaps/TFSEXTCTRLSRTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSFORMSRTTI.bmp | Bin 0 -> 1782 bytes .../FastScript/bitmaps/TFSGRAPHICSRTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSIBXRTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSINIRTTI.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSJSCRIPT.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSMENUSRTTI.bmp | Bin 0 -> 1782 bytes official/4.2/FastScript/bitmaps/TFSPASCAL.bmp | Bin 0 -> 1782 bytes official/4.2/FastScript/bitmaps/TFSSCRIPT.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/TFSSYNTAXMEMO.bmp | Bin 0 -> 1782 bytes official/4.2/FastScript/bitmaps/TFSTREE.bmp | Bin 0 -> 1782 bytes .../4.2/FastScript/bitmaps/build_fstree.bat | 1 + official/4.2/FastScript/bitmaps/build_lrs.bat | 1 + official/4.2/FastScript/bitmaps/fstree.bmp | Bin 0 -> 2358 bytes official/4.2/FastScript/dclfs10.bdsproj | 19 + official/4.2/FastScript/dclfs10.dpk | 40 + official/4.2/FastScript/dclfs11.bdsproj | 19 + official/4.2/FastScript/dclfs11.dpk | 40 + official/4.2/FastScript/dclfs4.dpk | 39 + official/4.2/FastScript/dclfs5.dpk | 39 + official/4.2/FastScript/dclfs6.dpk | 40 + official/4.2/FastScript/dclfs7.dpk | 40 + official/4.2/FastScript/dclfs9.bdsproj | 19 + official/4.2/FastScript/dclfs9.dpk | 40 + official/4.2/FastScript/dclfsADO10.bdsproj | 19 + official/4.2/FastScript/dclfsADO10.dpk | 41 + official/4.2/FastScript/dclfsADO11.bdsproj | 19 + official/4.2/FastScript/dclfsADO11.dpk | 41 + official/4.2/FastScript/dclfsADO5.dpk | 40 + official/4.2/FastScript/dclfsADO6.dpk | 41 + official/4.2/FastScript/dclfsADO7.dpk | 41 + official/4.2/FastScript/dclfsADO9.bdsproj | 19 + official/4.2/FastScript/dclfsADO9.dpk | 41 + official/4.2/FastScript/dclfsBDE10.bdsproj | 19 + official/4.2/FastScript/dclfsBDE10.dpk | 41 + official/4.2/FastScript/dclfsBDE11.bdsproj | 19 + official/4.2/FastScript/dclfsBDE11.dpk | 41 + official/4.2/FastScript/dclfsBDE4.dpk | 40 + official/4.2/FastScript/dclfsBDE5.dpk | 40 + official/4.2/FastScript/dclfsBDE6.dpk | 41 + official/4.2/FastScript/dclfsBDE7.dpk | 41 + official/4.2/FastScript/dclfsBDE9.bdsproj | 19 + official/4.2/FastScript/dclfsBDE9.dpk | 41 + official/4.2/FastScript/dclfsDB10.bdsproj | 19 + official/4.2/FastScript/dclfsDB10.dpk | 41 + official/4.2/FastScript/dclfsDB11.bdsproj | 19 + official/4.2/FastScript/dclfsDB11.dpk | 41 + official/4.2/FastScript/dclfsDB4.dpk | 40 + official/4.2/FastScript/dclfsDB5.dpk | 40 + official/4.2/FastScript/dclfsDB6.dpk | 41 + official/4.2/FastScript/dclfsDB7.dpk | 41 + official/4.2/FastScript/dclfsDB9.bdsproj | 19 + official/4.2/FastScript/dclfsDB9.dpk | 41 + official/4.2/FastScript/dclfsIBX10.bdsproj | 19 + official/4.2/FastScript/dclfsIBX10.dpk | 41 + official/4.2/FastScript/dclfsIBX11.bdsproj | 19 + official/4.2/FastScript/dclfsIBX11.dpk | 41 + official/4.2/FastScript/dclfsIBX5.dpk | 40 + official/4.2/FastScript/dclfsIBX6.dpk | 41 + official/4.2/FastScript/dclfsIBX7.dpk | 41 + official/4.2/FastScript/dclfsIBX9.bdsproj | 168 + official/4.2/FastScript/dclfsIBX9.dpk | 41 + official/4.2/FastScript/dclfsTee10.bdsproj | 19 + official/4.2/FastScript/dclfsTee10.dpk | 41 + official/4.2/FastScript/dclfsTee11.bdsproj | 19 + official/4.2/FastScript/dclfsTee11.dpk | 41 + official/4.2/FastScript/dclfsTee4.dpk | 40 + official/4.2/FastScript/dclfsTee5.dpk | 40 + official/4.2/FastScript/dclfsTee6.dpk | 41 + official/4.2/FastScript/dclfsTee7.dpk | 41 + official/4.2/FastScript/dclfsTee9.bdsproj | 19 + official/4.2/FastScript/dclfsTee9.dpk | 41 + official/4.2/FastScript/dclfsx.dpk | 46 + official/4.2/FastScript/dclfsx.res | Bin 0 -> 1536 bytes official/4.2/FastScript/fs.inc | 157 + official/4.2/FastScript/fs10.bdsproj | 19 + official/4.2/FastScript/fs10.dpk | 66 + official/4.2/FastScript/fs11.bdsproj | 19 + official/4.2/FastScript/fs11.dpk | 66 + official/4.2/FastScript/fs4.bpk | 187 + official/4.2/FastScript/fs4.cpp | 19 + official/4.2/FastScript/fs4.dpk | 65 + official/4.2/FastScript/fs4.res | Bin 0 -> 1536 bytes official/4.2/FastScript/fs5.bpk | 108 + official/4.2/FastScript/fs5.cpp | 23 + official/4.2/FastScript/fs5.dpk | 66 + official/4.2/FastScript/fs5.res | Bin 0 -> 1536 bytes official/4.2/FastScript/fs6.bpk | 122 + official/4.2/FastScript/fs6.cpp | 17 + official/4.2/FastScript/fs6.dpk | 66 + official/4.2/FastScript/fs6.res | Bin 0 -> 1536 bytes official/4.2/FastScript/fs7.dpk | 66 + official/4.2/FastScript/fs9.bdsproj | 19 + official/4.2/FastScript/fs9.dpk | 66 + official/4.2/FastScript/fsADO10.bdsproj | 19 + official/4.2/FastScript/fsADO10.dpk | 42 + official/4.2/FastScript/fsADO11.bdsproj | 19 + official/4.2/FastScript/fsADO11.dpk | 42 + official/4.2/FastScript/fsADO5.bpk | 108 + official/4.2/FastScript/fsADO5.cpp | 25 + official/4.2/FastScript/fsADO5.dpk | 42 + official/4.2/FastScript/fsADO6.bpk | 124 + official/4.2/FastScript/fsADO6.cpp | 17 + official/4.2/FastScript/fsADO6.dpk | 42 + official/4.2/FastScript/fsADO7.dpk | 42 + official/4.2/FastScript/fsADO9.bdsproj | 168 + official/4.2/FastScript/fsADO9.dpk | 42 + official/4.2/FastScript/fsBDE10.bdsproj | 19 + official/4.2/FastScript/fsBDE10.dpk | 42 + official/4.2/FastScript/fsBDE11.bdsproj | 19 + official/4.2/FastScript/fsBDE11.dpk | 42 + official/4.2/FastScript/fsBDE4.bpk | 187 + official/4.2/FastScript/fsBDE4.cpp | 20 + official/4.2/FastScript/fsBDE4.dpk | 41 + official/4.2/FastScript/fsBDE5.bpk | 108 + official/4.2/FastScript/fsBDE5.cpp | 25 + official/4.2/FastScript/fsBDE5.dpk | 42 + official/4.2/FastScript/fsBDE6.bpk | 125 + official/4.2/FastScript/fsBDE6.cpp | 17 + official/4.2/FastScript/fsBDE6.dpk | 42 + official/4.2/FastScript/fsBDE7.dpk | 42 + official/4.2/FastScript/fsBDE9.bdsproj | 168 + official/4.2/FastScript/fsBDE9.dpk | 42 + official/4.2/FastScript/fsDB10.bdsproj | 19 + official/4.2/FastScript/fsDB10.dpk | 41 + official/4.2/FastScript/fsDB11.bdsproj | 19 + official/4.2/FastScript/fsDB11.dpk | 41 + official/4.2/FastScript/fsDB4.bpk | 187 + official/4.2/FastScript/fsDB4.cpp | 19 + official/4.2/FastScript/fsDB4.dpk | 41 + official/4.2/FastScript/fsDB5.bpk | 108 + official/4.2/FastScript/fsDB5.cpp | 23 + official/4.2/FastScript/fsDB5.dpk | 41 + official/4.2/FastScript/fsDB6.bpk | 123 + official/4.2/FastScript/fsDB6.cpp | 17 + official/4.2/FastScript/fsDB6.dpk | 41 + official/4.2/FastScript/fsDB7.dpk | 41 + official/4.2/FastScript/fsDB9.bdsproj | 19 + official/4.2/FastScript/fsDB9.dpk | 41 + official/4.2/FastScript/fsIBX10.bdsproj | 19 + official/4.2/FastScript/fsIBX10.dpk | 42 + official/4.2/FastScript/fsIBX11.bdsproj | 19 + official/4.2/FastScript/fsIBX11.dpk | 42 + official/4.2/FastScript/fsIBX5.bpk | 108 + official/4.2/FastScript/fsIBX5.cpp | 26 + official/4.2/FastScript/fsIBX5.dpk | 42 + official/4.2/FastScript/fsIBX6.bpk | 125 + official/4.2/FastScript/fsIBX6.cpp | 17 + official/4.2/FastScript/fsIBX6.dpk | 42 + official/4.2/FastScript/fsIBX7.dpk | 42 + official/4.2/FastScript/fsIBX9.bdsproj | 168 + official/4.2/FastScript/fsIBX9.dpk | 42 + official/4.2/FastScript/fsTee10.bdsproj | 19 + official/4.2/FastScript/fsTee10.dpk | 48 + official/4.2/FastScript/fsTee11.bdsproj | 19 + official/4.2/FastScript/fsTee11.dpk | 48 + official/4.2/FastScript/fsTee4.bpk | 187 + official/4.2/FastScript/fsTee4.cpp | 21 + official/4.2/FastScript/fsTee4.dpk | 47 + official/4.2/FastScript/fsTee5.bpk | 108 + official/4.2/FastScript/fsTee5.cpp | 25 + official/4.2/FastScript/fsTee5.dpk | 47 + official/4.2/FastScript/fsTee6.bpk | 124 + official/4.2/FastScript/fsTee6.cpp | 17 + official/4.2/FastScript/fsTee6.dpk | 47 + official/4.2/FastScript/fsTee7.dpk | 47 + official/4.2/FastScript/fsTee9.bdsproj | 19 + official/4.2/FastScript/fsTee9.dpk | 47 + official/4.2/FastScript/fs_iadoreg.pas | 39 + official/4.2/FastScript/fs_iadortti.pas | 126 + official/4.2/FastScript/fs_ibasic.pas | 171 + official/4.2/FastScript/fs_ibdereg.pas | 39 + official/4.2/FastScript/fs_ibdertti.pas | 164 + official/4.2/FastScript/fs_ichartrtti.pas | 121 + official/4.2/FastScript/fs_iclassesrtti.pas | 476 + official/4.2/FastScript/fs_iconst.pas | 59 + official/4.2/FastScript/fs_icpp.pas | 159 + official/4.2/FastScript/fs_idbctrlsrtti.pas | 182 + official/4.2/FastScript/fs_idbreg.pas | 39 + official/4.2/FastScript/fs_idbrtti.pas | 562 + official/4.2/FastScript/fs_idialogsrtti.pas | 157 + official/4.2/FastScript/fs_idisp.pas | 126 + official/4.2/FastScript/fs_ievents.pas | 228 + official/4.2/FastScript/fs_iexpression.pas | 878 + official/4.2/FastScript/fs_iextctrlsrtti.pas | 425 + official/4.2/FastScript/fs_iformsrtti.pas | 428 + official/4.2/FastScript/fs_igraphicsrtti.pas | 249 + official/4.2/FastScript/fs_iibxreg.pas | 39 + official/4.2/FastScript/fs_iibxrtti.pas | 81 + official/4.2/FastScript/fs_iilparser.pas | 2014 +++ official/4.2/FastScript/fs_iinirtti.pas | 327 + official/4.2/FastScript/fs_iinterpreter.pas | 3128 ++++ official/4.2/FastScript/fs_ijs.pas | 145 + official/4.2/FastScript/fs_imenusrtti.pas | 176 + official/4.2/FastScript/fs_iparser.pas | 686 + official/4.2/FastScript/fs_ipascal.pas | 183 + official/4.2/FastScript/fs_ireg.dcr | Bin 0 -> 36456 bytes official/4.2/FastScript/fs_ireg.lrs | 1741 ++ official/4.2/FastScript/fs_ireg.pas | 73 + official/4.2/FastScript/fs_isysrtti.pas | 530 + official/4.2/FastScript/fs_iteereg.pas | 40 + official/4.2/FastScript/fs_itools.pas | 620 + official/4.2/FastScript/fs_lazarus.lpk | 149 + official/4.2/FastScript/fs_lazarus.pas | 25 + official/4.2/FastScript/fs_synmemo.dfm | Bin 0 -> 717 bytes official/4.2/FastScript/fs_synmemo.lfm | 54 + official/4.2/FastScript/fs_synmemo.lrs | 20 + official/4.2/FastScript/fs_synmemo.pas | 2033 +++ official/4.2/FastScript/fs_tree.lrs | 102 + official/4.2/FastScript/fs_tree.pas | 485 + official/4.2/FastScript/fs_tree.res | Bin 0 -> 2420 bytes official/4.2/FastScript/fs_xml.pas | 720 + official/4.2/FastScript/fsx.dpk | 76 + official/4.2/FastScript/fsx.res | Bin 0 -> 876 bytes official/4.2/FastScript/readme_lazarus.txt | 6 + official/4.2/FastScript/tee.inc | 49 + official/4.2/INSTALL.LOG | 3 + official/4.2/Res/Arabic/frxrcClass.frc | 192 + official/4.2/Res/Arabic/frxrcDesgn.frc | 918 + official/4.2/Res/Arabic/frxrcExports.frc | 186 + official/4.2/Res/Arabic/frxrcInsp.frc | 258 + official/4.2/Res/Arabic/mk.bat | 18 + official/4.2/Res/Arabic/mkall.bat | 5 + official/4.2/Res/Brazil/frxrcClass.frc | 185 + official/4.2/Res/Brazil/frxrcDesgn.frc | 879 + official/4.2/Res/Brazil/frxrcExports.frc | 178 + official/4.2/Res/Brazil/frxrcInsp.frc | 258 + official/4.2/Res/Brazil/mk.bat | 18 + official/4.2/Res/Brazil/mkall.bat | 5 + official/4.2/Res/Bulgarian/frxrcClass.frc | 192 + official/4.2/Res/Bulgarian/frxrcDesgn.frc | 926 + official/4.2/Res/Bulgarian/frxrcExports.frc | 186 + official/4.2/Res/Bulgarian/frxrcInsp.frc | 258 + official/4.2/Res/Bulgarian/mk.bat | 18 + official/4.2/Res/Bulgarian/mkall.bat | 5 + official/4.2/Res/Catalon/frxrcClass.frc | 192 + official/4.2/Res/Catalon/frxrcDesgn.frc | 920 + official/4.2/Res/Catalon/frxrcExports.frc | 186 + official/4.2/Res/Catalon/frxrcInsp.frc | 258 + official/4.2/Res/Catalon/mk.bat | 18 + official/4.2/Res/Catalon/mkall.bat | 5 + official/4.2/Res/Chinese/frxrcClass.frc | 192 + official/4.2/Res/Chinese/frxrcDesgn.frc | 920 + official/4.2/Res/Chinese/frxrcExports.frc | 186 + official/4.2/Res/Chinese/frxrcInsp.frc | 258 + official/4.2/Res/Chinese/mk.bat | 18 + official/4.2/Res/Chinese/mkall.bat | 5 + official/4.2/Res/Croatian/frxrcClass.frc | 192 + official/4.2/Res/Croatian/frxrcDesgn.frc | 919 + official/4.2/Res/Croatian/frxrcExports.frc | 185 + official/4.2/Res/Croatian/frxrcInsp.frc | 259 + official/4.2/Res/Croatian/mk.bat | 18 + official/4.2/Res/Croatian/mkall.bat | 5 + official/4.2/Res/Czech/Info.txt | 4 + official/4.2/Res/Czech/frxrcClass.frc | 192 + official/4.2/Res/Czech/frxrcDesgn.frc | 922 + official/4.2/Res/Czech/frxrcExports.frc | 186 + official/4.2/Res/Czech/frxrcInsp.frc | 258 + official/4.2/Res/Czech/mk.bat | 18 + official/4.2/Res/Czech/mkall.bat | 5 + official/4.2/Res/Danish/frxrcClass.frc | 192 + official/4.2/Res/Danish/frxrcDesgn.frc | 918 + official/4.2/Res/Danish/frxrcExports.frc | 186 + official/4.2/Res/Danish/frxrcInsp.frc | 258 + official/4.2/Res/Danish/mk.bat | 18 + official/4.2/Res/Danish/mkall.bat | 5 + official/4.2/Res/Dutch/frxrcClass.frc | 192 + official/4.2/Res/Dutch/frxrcDesgn.frc | 918 + official/4.2/Res/Dutch/frxrcExports.frc | 186 + official/4.2/Res/Dutch/frxrcInsp.frc | 258 + official/4.2/Res/Dutch/mk.bat | 18 + official/4.2/Res/Dutch/mkall.bat | 5 + official/4.2/Res/English/frxrcClass.frc | 192 + official/4.2/Res/English/frxrcDesgn.frc | 918 + official/4.2/Res/English/frxrcExports.frc | 186 + official/4.2/Res/English/frxrcInsp.frc | 258 + official/4.2/Res/English/mk.bat | 18 + official/4.2/Res/English/mkall.bat | 5 + official/4.2/Res/Farsi/frxrcClass.frc | 192 + official/4.2/Res/Farsi/frxrcDesgn.frc | 928 + official/4.2/Res/Farsi/frxrcExports.frc | 186 + official/4.2/Res/Farsi/frxrcInsp.frc | 259 + official/4.2/Res/Farsi/mk.bat | 18 + official/4.2/Res/Farsi/mkall.bat | 5 + official/4.2/Res/Farsi/readme.txt | 17 + official/4.2/Res/French/Info.txt | 4 + official/4.2/Res/French/frxrcClass.frc | 194 + official/4.2/Res/French/frxrcDesgn.frc | 931 + official/4.2/Res/French/frxrcExports.frc | 186 + official/4.2/Res/French/frxrcInsp.frc | 258 + official/4.2/Res/French/mk.bat | 18 + official/4.2/Res/French/mkall.bat | 5 + official/4.2/Res/German/frxrcClass.frc | 192 + official/4.2/Res/German/frxrcDesgn.frc | 919 + official/4.2/Res/German/frxrcExports.frc | 188 + official/4.2/Res/German/frxrcInsp.frc | 259 + official/4.2/Res/German/mk.bat | 18 + official/4.2/Res/German/mkall.bat | 5 + official/4.2/Res/Greek/frxrcClass.frc | 192 + official/4.2/Res/Greek/frxrcDesgn.frc | 918 + official/4.2/Res/Greek/frxrcExports.frc | 186 + official/4.2/Res/Greek/frxrcInsp.frc | 259 + official/4.2/Res/Greek/mk.bat | 18 + official/4.2/Res/Greek/mkall.bat | 5 + official/4.2/Res/Hungarian/frxrcClass.frc | 192 + official/4.2/Res/Hungarian/frxrcDesgn.frc | 918 + official/4.2/Res/Hungarian/frxrcExports.frc | 186 + official/4.2/Res/Hungarian/frxrcInsp.frc | 259 + official/4.2/Res/Hungarian/mk.bat | 18 + official/4.2/Res/Hungarian/mkall.bat | 5 + official/4.2/Res/Indonesian/frxrcClass.frc | 192 + official/4.2/Res/Indonesian/frxrcDesgn.frc | 918 + official/4.2/Res/Indonesian/frxrcExports.frc | 186 + official/4.2/Res/Indonesian/frxrcInsp.frc | 258 + official/4.2/Res/Indonesian/mk.bat | 18 + official/4.2/Res/Indonesian/mkall.bat | 5 + official/4.2/Res/Italian/frxrcClass.frc | 192 + official/4.2/Res/Italian/frxrcDesgn.frc | 918 + official/4.2/Res/Italian/frxrcExports.frc | 186 + official/4.2/Res/Italian/frxrcInsp.frc | 258 + official/4.2/Res/Italian/mk.bat | 18 + official/4.2/Res/Italian/mkall.bat | 5 + official/4.2/Res/Japanese/frxrcClass.frc | 192 + official/4.2/Res/Japanese/frxrcDesgn.frc | 918 + official/4.2/Res/Japanese/frxrcExports.frc | 186 + official/4.2/Res/Japanese/frxrcInsp.frc | 258 + official/4.2/Res/Japanese/mk.bat | 18 + official/4.2/Res/Japanese/mkall.bat | 5 + official/4.2/Res/Latvian/frxrcClass.frc | 192 + official/4.2/Res/Latvian/frxrcDesgn.frc | 918 + official/4.2/Res/Latvian/frxrcExports.frc | 186 + official/4.2/Res/Latvian/frxrcInsp.frc | 258 + official/4.2/Res/Latvian/mk.bat | 18 + official/4.2/Res/Latvian/mkall.bat | 5 + official/4.2/Res/Polish/Info.txt | 8 + official/4.2/Res/Polish/frxrcClass.frc | 192 + official/4.2/Res/Polish/frxrcDesgn.frc | 919 + official/4.2/Res/Polish/frxrcExports.frc | 186 + official/4.2/Res/Polish/frxrcInsp.frc | 258 + official/4.2/Res/Polish/mk.bat | 18 + official/4.2/Res/Polish/mkall.bat | 5 + official/4.2/Res/Portuguese/frxrcClass.frc | 192 + official/4.2/Res/Portuguese/frxrcDesgn.frc | 917 + official/4.2/Res/Portuguese/frxrcExports.frc | 186 + official/4.2/Res/Portuguese/frxrcInsp.frc | 258 + official/4.2/Res/Portuguese/mk.bat | 18 + official/4.2/Res/Portuguese/mkall.bat | 5 + official/4.2/Res/Romanian/frxrcClass.frc | 192 + official/4.2/Res/Romanian/frxrcDesgn.frc | 918 + official/4.2/Res/Romanian/frxrcExports.frc | 186 + official/4.2/Res/Romanian/frxrcInsp.frc | 258 + official/4.2/Res/Romanian/mk.bat | 18 + official/4.2/Res/Romanian/mkall.bat | 5 + official/4.2/Res/Russian/frxrcClass.frc | 193 + official/4.2/Res/Russian/frxrcDesgn.frc | 919 + official/4.2/Res/Russian/frxrcExports.frc | 186 + official/4.2/Res/Russian/frxrcInsp.frc | 258 + official/4.2/Res/Russian/mk.bat | 18 + official/4.2/Res/Russian/mkall.bat | 5 + official/4.2/Res/Serbian/frxrcClass.frc | 192 + official/4.2/Res/Serbian/frxrcDesgn.frc | 920 + official/4.2/Res/Serbian/frxrcExports.frc | 186 + official/4.2/Res/Serbian/frxrcInsp.frc | 258 + official/4.2/Res/Serbian/mk.bat | 18 + official/4.2/Res/Serbian/mkall.bat | 5 + official/4.2/Res/Slovak/Info.txt | 4 + official/4.2/Res/Slovak/frxrcClass.frc | 192 + official/4.2/Res/Slovak/frxrcDesgn.frc | 923 + official/4.2/Res/Slovak/frxrcExports.frc | 186 + official/4.2/Res/Slovak/frxrcInsp.frc | 258 + official/4.2/Res/Slovak/mk.bat | 17 + official/4.2/Res/Slovak/mkall.bat | 5 + official/4.2/Res/Slovene/frxrcClass.frc | 192 + official/4.2/Res/Slovene/frxrcDesgn.frc | 918 + official/4.2/Res/Slovene/frxrcExports.frc | 186 + official/4.2/Res/Slovene/frxrcInsp.frc | 258 + official/4.2/Res/Slovene/mk.bat | 18 + official/4.2/Res/Slovene/mkall.bat | 5 + official/4.2/Res/Spanish/frxrcClass.frc | 192 + official/4.2/Res/Spanish/frxrcDesgn.frc | 920 + official/4.2/Res/Spanish/frxrcExports.frc | 186 + official/4.2/Res/Spanish/frxrcInsp.frc | 259 + official/4.2/Res/Spanish/mk.bat | 18 + official/4.2/Res/Spanish/mkall.bat | 5 + official/4.2/Res/Swedish/frxrcClass.frc | 192 + official/4.2/Res/Swedish/frxrcDesgn.frc | 918 + official/4.2/Res/Swedish/frxrcExports.frc | 186 + official/4.2/Res/Swedish/frxrcInsp.frc | 258 + official/4.2/Res/Swedish/mk.bat | 18 + official/4.2/Res/Swedish/mkall.bat | 5 + official/4.2/Res/Swiss/frxrcClass.frc | 192 + official/4.2/Res/Swiss/frxrcDesgn.frc | 918 + official/4.2/Res/Swiss/frxrcExports.frc | 186 + official/4.2/Res/Swiss/frxrcInsp.frc | 258 + official/4.2/Res/Swiss/mk.bat | 18 + official/4.2/Res/Swiss/mkall.bat | 5 + official/4.2/Res/Taiwan/frxrcClass.frc | 192 + official/4.2/Res/Taiwan/frxrcDesgn.frc | 918 + official/4.2/Res/Taiwan/frxrcExports.frc | 186 + official/4.2/Res/Taiwan/frxrcInsp.frc | 258 + official/4.2/Res/Taiwan/mk.bat | 18 + official/4.2/Res/Taiwan/mkall.bat | 5 + official/4.2/Res/Turkish/frxrcClass.frc | 192 + official/4.2/Res/Turkish/frxrcDesgn.frc | 920 + official/4.2/Res/Turkish/frxrcExports.frc | 186 + official/4.2/Res/Turkish/frxrcInsp.frc | 258 + official/4.2/Res/Turkish/mk.bat | 18 + official/4.2/Res/Turkish/mkall.bat | 5 + official/4.2/Res/Ukrainian/frxrcClass.frc | 192 + official/4.2/Res/Ukrainian/frxrcDesgn.frc | 918 + official/4.2/Res/Ukrainian/frxrcExports.frc | 186 + official/4.2/Res/Ukrainian/frxrcInsp.frc | 259 + official/4.2/Res/Ukrainian/mk.bat | 18 + official/4.2/Res/Ukrainian/mkall.bat | 5 + official/4.2/Res/frcc.exe | Bin 0 -> 61440 bytes official/4.2/Res/install_res.txt | 16 + official/4.2/Source/ADO/dclfrxADO10.bdsproj | 19 + official/4.2/Source/ADO/dclfrxADO10.dpk | 40 + official/4.2/Source/ADO/dclfrxADO11.bdsproj | 19 + official/4.2/Source/ADO/dclfrxADO11.dpk | 40 + official/4.2/Source/ADO/dclfrxADO5.dpk | 38 + official/4.2/Source/ADO/dclfrxADO6.dpk | 39 + official/4.2/Source/ADO/dclfrxADO7.dpk | 40 + official/4.2/Source/ADO/dclfrxADO9.bdsproj | 19 + official/4.2/Source/ADO/dclfrxADO9.dpk | 40 + official/4.2/Source/ADO/frxADO10.bdsproj | 19 + official/4.2/Source/ADO/frxADO10.dpk | 49 + official/4.2/Source/ADO/frxADO11.bdsproj | 19 + official/4.2/Source/ADO/frxADO11.dpk | 49 + official/4.2/Source/ADO/frxADO5.bpk | 92 + official/4.2/Source/ADO/frxADO5.cpp | 28 + official/4.2/Source/ADO/frxADO5.dpk | 48 + official/4.2/Source/ADO/frxADO5.res | Bin 0 -> 1536 bytes official/4.2/Source/ADO/frxADO6.bpk | 149 + official/4.2/Source/ADO/frxADO6.cpp | 17 + official/4.2/Source/ADO/frxADO6.dpk | 49 + official/4.2/Source/ADO/frxADO6.res | Bin 0 -> 1536 bytes official/4.2/Source/ADO/frxADO7.dpk | 49 + official/4.2/Source/ADO/frxADO9.bdsproj | 19 + official/4.2/Source/ADO/frxADO9.dpk | 49 + official/4.2/Source/ADO/frxADOComponents.pas | 898 + official/4.2/Source/ADO/frxADOEditor.pas | 159 + official/4.2/Source/ADO/frxADORTTI.pas | 101 + official/4.2/Source/ADO/frxADOReg.dcr | Bin 0 -> 1864 bytes official/4.2/Source/ADO/frxADOReg.pas | 37 + official/4.2/Source/BDE/dclfrxBDE10.bdsproj | 19 + official/4.2/Source/BDE/dclfrxBDE10.dpk | 40 + official/4.2/Source/BDE/dclfrxBDE11.bdsproj | 19 + official/4.2/Source/BDE/dclfrxBDE11.dpk | 40 + official/4.2/Source/BDE/dclfrxBDE4.dpk | 39 + official/4.2/Source/BDE/dclfrxBDE5.dpk | 39 + official/4.2/Source/BDE/dclfrxBDE6.dpk | 39 + official/4.2/Source/BDE/dclfrxBDE7.dpk | 40 + official/4.2/Source/BDE/dclfrxBDE9.bdsproj | 19 + official/4.2/Source/BDE/dclfrxBDE9.dpk | 40 + official/4.2/Source/BDE/frxBDE10.bdsproj | 19 + official/4.2/Source/BDE/frxBDE10.dpk | 49 + official/4.2/Source/BDE/frxBDE11.bdsproj | 19 + official/4.2/Source/BDE/frxBDE11.dpk | 49 + official/4.2/Source/BDE/frxBDE4.bpk | 189 + official/4.2/Source/BDE/frxBDE4.cpp | 23 + official/4.2/Source/BDE/frxBDE4.dpk | 47 + official/4.2/Source/BDE/frxBDE4.res | Bin 0 -> 1536 bytes official/4.2/Source/BDE/frxBDE5.bpk | 92 + official/4.2/Source/BDE/frxBDE5.cpp | 28 + official/4.2/Source/BDE/frxBDE5.dpk | 48 + official/4.2/Source/BDE/frxBDE5.res | Bin 0 -> 1536 bytes official/4.2/Source/BDE/frxBDE6.bpk | 149 + official/4.2/Source/BDE/frxBDE6.cpp | 17 + official/4.2/Source/BDE/frxBDE6.dpk | 49 + official/4.2/Source/BDE/frxBDE6.res | Bin 0 -> 1536 bytes official/4.2/Source/BDE/frxBDE7.dpk | 49 + official/4.2/Source/BDE/frxBDE9.bdsproj | 19 + official/4.2/Source/BDE/frxBDE9.dpk | 49 + official/4.2/Source/BDE/frxBDEComponents.pas | 476 + official/4.2/Source/BDE/frxBDEEditor.pas | 199 + official/4.2/Source/BDE/frxBDERTTI.pas | 102 + official/4.2/Source/BDE/frxBDEReg.dcr | Bin 0 -> 1864 bytes official/4.2/Source/BDE/frxBDEReg.pas | 37 + official/4.2/Source/ClientServer/FRXCS10.DPK | 55 + official/4.2/Source/ClientServer/FRXCS11.DPK | 55 + official/4.2/Source/ClientServer/FRXCS9.DPK | 55 + .../Source/ClientServer/dclfrxcs10.bdsproj | 19 + .../4.2/Source/ClientServer/dclfrxcs10.dpk | 39 + .../Source/ClientServer/dclfrxcs11.bdsproj | 19 + .../4.2/Source/ClientServer/dclfrxcs11.dpk | 39 + .../4.2/Source/ClientServer/dclfrxcs4.dpk | 38 + .../4.2/Source/ClientServer/dclfrxcs5.dpk | 38 + .../4.2/Source/ClientServer/dclfrxcs6.dpk | 39 + .../4.2/Source/ClientServer/dclfrxcs7.dpk | 39 + .../4.2/Source/ClientServer/dclfrxcs9.bdsproj | 19 + .../4.2/Source/ClientServer/dclfrxcs9.dpk | 39 + .../4.2/Source/ClientServer/frxCGIClient.pas | 671 + .../4.2/Source/ClientServer/frxHTTPClient.pas | 614 + official/4.2/Source/ClientServer/frxMD5.pas | 520 + official/4.2/Source/ClientServer/frxRegCS.dcr | Bin 0 -> 7364 bytes official/4.2/Source/ClientServer/frxRegCS.pas | 40 + .../4.2/Source/ClientServer/frxServer.pas | 1364 ++ .../Source/ClientServer/frxServerCache.pas | 457 + .../Source/ClientServer/frxServerClient.pas | 356 + .../Source/ClientServer/frxServerConfig.pas | 469 + .../Source/ClientServer/frxServerConfig.res | Bin 0 -> 9712 bytes .../ClientServer/frxServerFormControls.pas | 641 + .../Source/ClientServer/frxServerForms.pas | 239 + .../4.2/Source/ClientServer/frxServerLog.pas | 398 + .../Source/ClientServer/frxServerReports.pas | 740 + .../ClientServer/frxServerReportsList.pas | 222 + .../4.2/Source/ClientServer/frxServerSSI.pas | 192 + .../ClientServer/frxServerSessionManager.pas | 400 + .../4.2/Source/ClientServer/frxServerStat.pas | 146 + .../ClientServer/frxServerTemplates.pas | 169 + .../Source/ClientServer/frxServerUtils.pas | 342 + .../ClientServer/frxServerVariables.pas | 77 + .../Source/ClientServer/frxServerVersion.inc | 1 + official/4.2/Source/ClientServer/frxUsers.pas | 488 + .../4.2/Source/ClientServer/frxcs10.bdsproj | 19 + official/4.2/Source/ClientServer/frxcs10.res | Bin 0 -> 1536 bytes .../4.2/Source/ClientServer/frxcs11.bdsproj | 19 + official/4.2/Source/ClientServer/frxcs4.bpk | 189 + official/4.2/Source/ClientServer/frxcs4.cpp | 19 + official/4.2/Source/ClientServer/frxcs4.dpk | 55 + official/4.2/Source/ClientServer/frxcs4.res | Bin 0 -> 1536 bytes official/4.2/Source/ClientServer/frxcs5.bpk | 92 + official/4.2/Source/ClientServer/frxcs5.cpp | 23 + official/4.2/Source/ClientServer/frxcs5.dpk | 55 + official/4.2/Source/ClientServer/frxcs5.res | Bin 0 -> 1536 bytes official/4.2/Source/ClientServer/frxcs6.bpk | 143 + official/4.2/Source/ClientServer/frxcs6.cpp | 17 + official/4.2/Source/ClientServer/frxcs6.dpk | 55 + official/4.2/Source/ClientServer/frxcs6.res | Bin 0 -> 1536 bytes official/4.2/Source/ClientServer/frxcs7.dpk | 55 + official/4.2/Source/ClientServer/frxcs7.res | Bin 0 -> 1536 bytes .../4.2/Source/ClientServer/frxcs9.bdsproj | 19 + official/4.2/Source/ClientServer/frxcs9.res | Bin 0 -> 1536 bytes official/4.2/Source/DBX/dclfrxDBX10.bdsproj | 19 + official/4.2/Source/DBX/dclfrxDBX10.dpk | 40 + official/4.2/Source/DBX/dclfrxDBX11.bdsproj | 19 + official/4.2/Source/DBX/dclfrxDBX11.dpk | 40 + official/4.2/Source/DBX/dclfrxDBX6.dpk | 39 + official/4.2/Source/DBX/dclfrxDBX7.dpk | 40 + official/4.2/Source/DBX/dclfrxDBX9.bdsproj | 19 + official/4.2/Source/DBX/dclfrxDBX9.dpk | 40 + official/4.2/Source/DBX/frxDBX10.bdsproj | 19 + official/4.2/Source/DBX/frxDBX10.dpk | 49 + official/4.2/Source/DBX/frxDBX11.bdsproj | 19 + official/4.2/Source/DBX/frxDBX11.dpk | 49 + official/4.2/Source/DBX/frxDBX6.bpk | 149 + official/4.2/Source/DBX/frxDBX6.cpp | 17 + official/4.2/Source/DBX/frxDBX6.dpk | 49 + official/4.2/Source/DBX/frxDBX6.res | Bin 0 -> 1536 bytes official/4.2/Source/DBX/frxDBX7.dpk | 49 + official/4.2/Source/DBX/frxDBX9.bdsproj | 19 + official/4.2/Source/DBX/frxDBX9.dpk | 49 + official/4.2/Source/DBX/frxDBXComponents.pas | 635 + official/4.2/Source/DBX/frxDBXEditor.pas | 170 + official/4.2/Source/DBX/frxDBXRTTI.pas | 72 + official/4.2/Source/DBX/frxDBXReg.dcr | Bin 0 -> 1864 bytes official/4.2/Source/DBX/frxDBXReg.pas | 37 + official/4.2/Source/ExportPack/DCLFRXE10.DPK | 40 + official/4.2/Source/ExportPack/DCLFRXE11.DPK | 40 + official/4.2/Source/ExportPack/DCLFRXE9.DPK | 40 + official/4.2/Source/ExportPack/FRXE10.DPK | 55 + official/4.2/Source/ExportPack/FRXE11.DPK | 55 + official/4.2/Source/ExportPack/FRXE7.RES | Bin 0 -> 1536 bytes official/4.2/Source/ExportPack/FRXE9.DPK | 55 + official/4.2/Source/ExportPack/FRXE9.RES | Bin 0 -> 1536 bytes .../4.2/Source/ExportPack/dclfrxe10.bdsproj | 19 + .../4.2/Source/ExportPack/dclfrxe11.bdsproj | 19 + official/4.2/Source/ExportPack/dclfrxe4.dpk | 39 + official/4.2/Source/ExportPack/dclfrxe5.dpk | 39 + official/4.2/Source/ExportPack/dclfrxe6.dpk | 40 + official/4.2/Source/ExportPack/dclfrxe7.dpk | 40 + .../4.2/Source/ExportPack/dclfrxe9.bdsproj | 19 + .../4.2/Source/ExportPack/frxExportCSV.dfm | Bin 0 -> 1875 bytes .../4.2/Source/ExportPack/frxExportCSV.pas | 308 + .../4.2/Source/ExportPack/frxExportHTML.dfm | Bin 0 -> 2458 bytes .../4.2/Source/ExportPack/frxExportHTML.pas | 1042 ++ .../4.2/Source/ExportPack/frxExportImage.dfm | Bin 0 -> 2056 bytes .../4.2/Source/ExportPack/frxExportImage.pas | 1172 ++ .../4.2/Source/ExportPack/frxExportMail.dfm | Bin 0 -> 3476 bytes .../4.2/Source/ExportPack/frxExportMail.pas | 477 + .../4.2/Source/ExportPack/frxExportMatrix.pas | 1631 ++ .../4.2/Source/ExportPack/frxExportODF.dfm | Bin 0 -> 2110 bytes .../4.2/Source/ExportPack/frxExportODF.pas | 1128 ++ .../4.2/Source/ExportPack/frxExportPDF.dfm | Bin 0 -> 2088 bytes .../4.2/Source/ExportPack/frxExportPDF.pas | 307 + .../4.2/Source/ExportPack/frxExportRTF.dfm | Bin 0 -> 2221 bytes .../4.2/Source/ExportPack/frxExportRTF.pas | 1105 ++ .../4.2/Source/ExportPack/frxExportTXT.dfm | Bin 0 -> 5596 bytes .../4.2/Source/ExportPack/frxExportTXT.pas | 1514 ++ .../4.2/Source/ExportPack/frxExportText.dfm | Bin 0 -> 2088 bytes .../4.2/Source/ExportPack/frxExportText.pas | 528 + .../4.2/Source/ExportPack/frxExportTxtPrn.dfm | Bin 0 -> 5357 bytes .../4.2/Source/ExportPack/frxExportTxtPrn.pas | 189 + .../4.2/Source/ExportPack/frxExportXLS.dfm | Bin 0 -> 2434 bytes .../4.2/Source/ExportPack/frxExportXLS.pas | 1365 ++ .../4.2/Source/ExportPack/frxExportXML.dfm | Bin 0 -> 2027 bytes .../4.2/Source/ExportPack/frxExportXML.pas | 669 + .../4.2/Source/ExportPack/frxFileUtils.pas | 156 + .../4.2/Source/ExportPack/frxNetUtils.pas | 361 + official/4.2/Source/ExportPack/frxPDFFile.pas | 1780 ++ official/4.2/Source/ExportPack/frxSMTP.pas | 450 + official/4.2/Source/ExportPack/frxZip.pas | 549 + official/4.2/Source/ExportPack/frxe10.bdsproj | 16 + official/4.2/Source/ExportPack/frxe11.bdsproj | 16 + official/4.2/Source/ExportPack/frxe4.bpk | 189 + official/4.2/Source/ExportPack/frxe4.cpp | 21 + official/4.2/Source/ExportPack/frxe4.dpk | 55 + official/4.2/Source/ExportPack/frxe4.res | Bin 0 -> 1536 bytes official/4.2/Source/ExportPack/frxe5.bpk | 105 + official/4.2/Source/ExportPack/frxe5.cpp | 21 + official/4.2/Source/ExportPack/frxe5.dpk | 55 + official/4.2/Source/ExportPack/frxe5.res | Bin 0 -> 1536 bytes official/4.2/Source/ExportPack/frxe6.bpk | 133 + official/4.2/Source/ExportPack/frxe6.cpp | 18 + official/4.2/Source/ExportPack/frxe6.dpk | 55 + official/4.2/Source/ExportPack/frxe6.res | Bin 0 -> 1536 bytes official/4.2/Source/ExportPack/frxe7.dpk | 55 + official/4.2/Source/ExportPack/frxe9.bdsproj | 16 + official/4.2/Source/ExportPack/frxeReg.dcr | Bin 0 -> 27424 bytes official/4.2/Source/ExportPack/frxeReg.pas | 46 + .../4.2/Source/ExportPack/frxrcExports.pas | 212 + official/4.2/Source/FIB/dclfrxFIB10.bdsproj | 19 + official/4.2/Source/FIB/dclfrxFIB10.dpk | 40 + official/4.2/Source/FIB/dclfrxFIB11.bdsproj | 19 + official/4.2/Source/FIB/dclfrxFIB11.dpk | 40 + official/4.2/Source/FIB/dclfrxFIB5.dpk | 38 + official/4.2/Source/FIB/dclfrxFIB6.dpk | 39 + official/4.2/Source/FIB/dclfrxFIB7.dpk | 40 + official/4.2/Source/FIB/dclfrxFIB9.bdsproj | 19 + official/4.2/Source/FIB/dclfrxFIB9.dpk | 40 + official/4.2/Source/FIB/frxFIB5.bpk | 92 + official/4.2/Source/FIB/frxFIB5.cpp | 31 + official/4.2/Source/FIB/frxFIB5.dpk | 48 + official/4.2/Source/FIB/frxFIB5.res | Bin 0 -> 1536 bytes official/4.2/Source/FIB/frxFIB6.bpk | 152 + official/4.2/Source/FIB/frxFIB6.cpp | 17 + official/4.2/Source/FIB/frxFIB6.dpk | 48 + official/4.2/Source/FIB/frxFIB6.res | Bin 0 -> 1536 bytes official/4.2/Source/FIB/frxFIB7.dpk | 48 + official/4.2/Source/FIB/frxFIBComponents.pas | 444 + official/4.2/Source/FIB/frxFIBEditor.pas | 100 + official/4.2/Source/FIB/frxFIBRTTI.pas | 84 + official/4.2/Source/FIB/frxFIBReg.dcr | Bin 0 -> 1864 bytes official/4.2/Source/FIB/frxFIBReg.pas | 34 + official/4.2/Source/FIB/frxFib10.dpk | 48 + official/4.2/Source/FIB/frxFib11.dpk | 48 + official/4.2/Source/FIB/frxFib9.dpk | 48 + official/4.2/Source/IBX/dclfrxIBX10.bdsproj | 19 + official/4.2/Source/IBX/dclfrxIBX10.dpk | 40 + official/4.2/Source/IBX/dclfrxIBX11.bdsproj | 19 + official/4.2/Source/IBX/dclfrxIBX11.dpk | 40 + official/4.2/Source/IBX/dclfrxIBX5.dpk | 38 + official/4.2/Source/IBX/dclfrxIBX6.dpk | 39 + official/4.2/Source/IBX/dclfrxIBX7.dpk | 40 + official/4.2/Source/IBX/dclfrxIBX9.bdsproj | 19 + official/4.2/Source/IBX/dclfrxIBX9.dpk | 40 + official/4.2/Source/IBX/frxIBX10.bdsproj | 19 + official/4.2/Source/IBX/frxIBX10.dpk | 49 + official/4.2/Source/IBX/frxIBX11.bdsproj | 19 + official/4.2/Source/IBX/frxIBX11.dpk | 49 + official/4.2/Source/IBX/frxIBX5.bpk | 92 + official/4.2/Source/IBX/frxIBX5.cpp | 31 + official/4.2/Source/IBX/frxIBX5.dpk | 48 + official/4.2/Source/IBX/frxIBX5.res | Bin 0 -> 1536 bytes official/4.2/Source/IBX/frxIBX6.bpk | 152 + official/4.2/Source/IBX/frxIBX6.cpp | 17 + official/4.2/Source/IBX/frxIBX6.dpk | 49 + official/4.2/Source/IBX/frxIBX6.res | Bin 0 -> 1536 bytes official/4.2/Source/IBX/frxIBX7.dpk | 49 + official/4.2/Source/IBX/frxIBX9.bdsproj | 19 + official/4.2/Source/IBX/frxIBX9.dpk | 49 + official/4.2/Source/IBX/frxIBXComponents.pas | 511 + official/4.2/Source/IBX/frxIBXEditor.pas | 164 + official/4.2/Source/IBX/frxIBXRTTI.pas | 101 + official/4.2/Source/IBX/frxIBXReg.dcr | Bin 0 -> 1864 bytes official/4.2/Source/IBX/frxIBXReg.pas | 37 + official/4.2/Source/adler32.zobj | Bin 0 -> 1148 bytes official/4.2/Source/compress.zobj | Bin 0 -> 674 bytes official/4.2/Source/crc32.zobj | Bin 0 -> 11372 bytes official/4.2/Source/dclfrx10.bdsproj | 19 + official/4.2/Source/dclfrx10.dpk | 40 + official/4.2/Source/dclfrx11.bdsproj | 19 + official/4.2/Source/dclfrx11.dpk | 40 + official/4.2/Source/dclfrx4.dpk | 39 + official/4.2/Source/dclfrx5.dpk | 39 + official/4.2/Source/dclfrx6.dpk | 40 + official/4.2/Source/dclfrx7.dpk | 40 + official/4.2/Source/dclfrx9.bdsproj | 19 + official/4.2/Source/dclfrx9.dpk | 40 + official/4.2/Source/dclfrxDB10.bdsproj | 19 + official/4.2/Source/dclfrxDB10.dpk | 41 + official/4.2/Source/dclfrxDB11.bdsproj | 182 + official/4.2/Source/dclfrxDB11.dpk | 41 + official/4.2/Source/dclfrxDB4.dpk | 40 + official/4.2/Source/dclfrxDB5.dpk | 40 + official/4.2/Source/dclfrxDB6.dpk | 41 + official/4.2/Source/dclfrxDB7.dpk | 41 + official/4.2/Source/dclfrxDB9.bdsproj | 19 + official/4.2/Source/dclfrxDB9.dpk | 41 + official/4.2/Source/dclfrxIBO4.dpk | 39 + official/4.2/Source/dclfrxIBO5.dpk | 40 + official/4.2/Source/dclfrxIBO6.dpk | 41 + official/4.2/Source/dclfrxIBO7.dpk | 41 + official/4.2/Source/dclfrxTee10.bdsproj | 19 + official/4.2/Source/dclfrxTee10.dpk | 40 + official/4.2/Source/dclfrxTee11.bdsproj | 19 + official/4.2/Source/dclfrxTee11.dpk | 40 + official/4.2/Source/dclfrxTee4.dpk | 39 + official/4.2/Source/dclfrxTee5.dpk | 39 + official/4.2/Source/dclfrxTee6.dpk | 40 + official/4.2/Source/dclfrxTee7.dpk | 40 + official/4.2/Source/dclfrxTee9.bdsproj | 19 + official/4.2/Source/dclfrxTee9.dpk | 40 + official/4.2/Source/deflate.zobj | Bin 0 -> 9466 bytes official/4.2/Source/frx.inc | 200 + official/4.2/Source/frx10.bdsproj | 19 + official/4.2/Source/frx10.dpk | 146 + official/4.2/Source/frx11.bdsproj | 19 + official/4.2/Source/frx11.dpk | 146 + official/4.2/Source/frx2xto30.pas | 2771 +++ official/4.2/Source/frx4.bpk | 189 + official/4.2/Source/frx4.cpp | 25 + official/4.2/Source/frx4.dpk | 146 + official/4.2/Source/frx4.res | Bin 0 -> 1536 bytes official/4.2/Source/frx5.bpk | 105 + official/4.2/Source/frx5.cpp | 25 + official/4.2/Source/frx5.dpk | 146 + official/4.2/Source/frx5.res | Bin 0 -> 1536 bytes official/4.2/Source/frx6.bpk | 136 + official/4.2/Source/frx6.cpp | 18 + official/4.2/Source/frx6.dpk | 146 + official/4.2/Source/frx6.res | Bin 0 -> 1536 bytes official/4.2/Source/frx7.dpk | 146 + official/4.2/Source/frx9.bdsproj | 19 + official/4.2/Source/frx9.dpk | 146 + official/4.2/Source/frxAbout.dfm | Bin 0 -> 7602 bytes official/4.2/Source/frxAbout.pas | 93 + official/4.2/Source/frxAdoWizard.dfm | Bin 0 -> 8114 bytes official/4.2/Source/frxAdoWizard.pas | 1114 ++ official/4.2/Source/frxAdoWizard.res | Bin 0 -> 880 bytes official/4.2/Source/frxAggregate.pas | 696 + official/4.2/Source/frxBarcod.pas | 2014 +++ official/4.2/Source/frxBarcode.pas | 243 + official/4.2/Source/frxBarcodeEditor.dfm | Bin 0 -> 2657 bytes official/4.2/Source/frxBarcodeEditor.pas | 274 + official/4.2/Source/frxBarcodeRTTI.pas | 59 + official/4.2/Source/frxChBox.pas | 182 + official/4.2/Source/frxChBoxRTTI.pas | 56 + official/4.2/Source/frxChart.pas | 1242 ++ official/4.2/Source/frxChartEditor.dfm | Bin 0 -> 5228 bytes official/4.2/Source/frxChartEditor.pas | 675 + official/4.2/Source/frxChartHelpers.pas | 534 + official/4.2/Source/frxChartRTTI.pas | 107 + official/4.2/Source/frxChm.pas | 62 + official/4.2/Source/frxClass.pas | 14573 ++++++++++++++++ official/4.2/Source/frxClass.res | Bin 0 -> 1248 bytes official/4.2/Source/frxClassRTTI.pas | 565 + official/4.2/Source/frxCodeUtils.pas | 247 + official/4.2/Source/frxConnEditor.dfm | Bin 0 -> 1459 bytes official/4.2/Source/frxConnEditor.pas | 209 + official/4.2/Source/frxConnWizard.dfm | Bin 0 -> 2853 bytes official/4.2/Source/frxConnWizard.pas | 538 + official/4.2/Source/frxConnWizard.res | Bin 0 -> 1312 bytes official/4.2/Source/frxCross.pas | 4623 +++++ official/4.2/Source/frxCrossEditor.dfm | Bin 0 -> 6385 bytes official/4.2/Source/frxCrossEditor.pas | 935 + official/4.2/Source/frxCrossRTTI.pas | 133 + official/4.2/Source/frxCrypt.pas | 121 + official/4.2/Source/frxCtrls.pas | 1354 ++ official/4.2/Source/frxCtrls.res | Bin 0 -> 1220 bytes official/4.2/Source/frxCustomDB.pas | 793 + official/4.2/Source/frxCustomDBEditor.pas | 353 + official/4.2/Source/frxCustomDBRTTI.pas | 188 + official/4.2/Source/frxCustomEditors.pas | 177 + official/4.2/Source/frxDB10.bdsproj | 19 + official/4.2/Source/frxDB10.dpk | 51 + official/4.2/Source/frxDB11.bdsproj | 19 + official/4.2/Source/frxDB11.dpk | 51 + official/4.2/Source/frxDB4.bpk | 189 + official/4.2/Source/frxDB4.cpp | 22 + official/4.2/Source/frxDB4.dpk | 51 + official/4.2/Source/frxDB5.bpk | 105 + official/4.2/Source/frxDB5.cpp | 22 + official/4.2/Source/frxDB5.dpk | 51 + official/4.2/Source/frxDB6.bpk | 135 + official/4.2/Source/frxDB6.cpp | 18 + official/4.2/Source/frxDB6.dpk | 51 + official/4.2/Source/frxDB7.dpk | 51 + official/4.2/Source/frxDB9.bdsproj | 19 + official/4.2/Source/frxDB9.dpk | 51 + official/4.2/Source/frxDBSet.pas | 460 + official/4.2/Source/frxDCtrl.pas | 1624 ++ official/4.2/Source/frxDCtrlRTTI.pas | 133 + official/4.2/Source/frxDMPClass.pas | 581 + official/4.2/Source/frxDMPExport.dfm | Bin 0 -> 3089 bytes official/4.2/Source/frxDMPExport.pas | 1021 ++ official/4.2/Source/frxDataTree.dfm | Bin 0 -> 3019 bytes official/4.2/Source/frxDataTree.pas | 684 + official/4.2/Source/frxDesgn.dfm | Bin 0 -> 24041 bytes official/4.2/Source/frxDesgn.inc | 18 + official/4.2/Source/frxDesgn.pas | 5821 ++++++ official/4.2/Source/frxDesgn.res | Bin 0 -> 53948 bytes official/4.2/Source/frxDesgnCtrls.pas | 1070 ++ official/4.2/Source/frxDesgnEditors.pas | 1437 ++ official/4.2/Source/frxDesgnIcon.res | Bin 0 -> 9948 bytes official/4.2/Source/frxDesgnWorkspace.pas | 3034 ++++ official/4.2/Source/frxDesgnWorkspace.res | Bin 0 -> 676 bytes official/4.2/Source/frxDesgnWorkspace1.pas | 1094 ++ official/4.2/Source/frxDialogForm.dfm | Bin 0 -> 328 bytes official/4.2/Source/frxDialogForm.pas | 80 + official/4.2/Source/frxDock.dfm | Bin 0 -> 650 bytes official/4.2/Source/frxDock.pas | 543 + official/4.2/Source/frxDsgnIntf.pas | 1955 +++ official/4.2/Source/frxEditAliases.dfm | Bin 0 -> 1364 bytes official/4.2/Source/frxEditAliases.pas | 206 + official/4.2/Source/frxEditDataBand.dfm | Bin 0 -> 1247 bytes official/4.2/Source/frxEditDataBand.pas | 150 + official/4.2/Source/frxEditExpr.dfm | Bin 0 -> 1390 bytes official/4.2/Source/frxEditExpr.pas | 149 + official/4.2/Source/frxEditFormat.dfm | Bin 0 -> 1397 bytes official/4.2/Source/frxEditFormat.pas | 213 + official/4.2/Source/frxEditFrame.dfm | Bin 0 -> 2725 bytes official/4.2/Source/frxEditFrame.pas | 180 + official/4.2/Source/frxEditGroup.dfm | Bin 0 -> 2085 bytes official/4.2/Source/frxEditGroup.pas | 188 + official/4.2/Source/frxEditHighlight.dfm | Bin 0 -> 2011 bytes official/4.2/Source/frxEditHighlight.pas | 216 + official/4.2/Source/frxEditMD.dfm | Bin 0 -> 1542 bytes official/4.2/Source/frxEditMD.pas | 162 + official/4.2/Source/frxEditMemo.dfm | Bin 0 -> 1436 bytes official/4.2/Source/frxEditMemo.pas | 303 + official/4.2/Source/frxEditOptions.dfm | Bin 0 -> 4368 bytes official/4.2/Source/frxEditOptions.pas | 290 + official/4.2/Source/frxEditPage.dfm | Bin 0 -> 6196 bytes official/4.2/Source/frxEditPage.pas | 358 + official/4.2/Source/frxEditPicture.dfm | Bin 0 -> 1409 bytes official/4.2/Source/frxEditPicture.pas | 185 + official/4.2/Source/frxEditQueryParams.dfm | Bin 0 -> 1577 bytes official/4.2/Source/frxEditQueryParams.pas | 172 + official/4.2/Source/frxEditReport.dfm | Bin 0 -> 4106 bytes official/4.2/Source/frxEditReport.pas | 290 + official/4.2/Source/frxEditReportData.dfm | Bin 0 -> 844 bytes official/4.2/Source/frxEditReportData.pas | 214 + official/4.2/Source/frxEditSQL.dfm | Bin 0 -> 881 bytes official/4.2/Source/frxEditSQL.inc | 18 + official/4.2/Source/frxEditSQL.pas | 222 + official/4.2/Source/frxEditStrings.dfm | Bin 0 -> 770 bytes official/4.2/Source/frxEditStrings.pas | 95 + official/4.2/Source/frxEditStyle.dfm | Bin 0 -> 1900 bytes official/4.2/Source/frxEditStyle.pas | 300 + official/4.2/Source/frxEditSysMemo.dfm | Bin 0 -> 2824 bytes official/4.2/Source/frxEditSysMemo.pas | 294 + official/4.2/Source/frxEditTabOrder.dfm | Bin 0 -> 988 bytes official/4.2/Source/frxEditTabOrder.pas | 166 + official/4.2/Source/frxEditVar.dfm | Bin 0 -> 2687 bytes official/4.2/Source/frxEditVar.pas | 510 + official/4.2/Source/frxEngine.pas | 2561 +++ official/4.2/Source/frxEvaluateForm.dfm | Bin 0 -> 896 bytes official/4.2/Source/frxEvaluateForm.pas | 118 + official/4.2/Source/frxGZip.pas | 218 + official/4.2/Source/frxGradient.pas | 276 + official/4.2/Source/frxGradientRTTI.pas | 55 + official/4.2/Source/frxGraphicUtils.pas | 1663 ++ official/4.2/Source/frxIBO4.bpk | 190 + official/4.2/Source/frxIBO4.cpp | 24 + official/4.2/Source/frxIBO4.dpk | 44 + official/4.2/Source/frxIBO5.bpk | 105 + official/4.2/Source/frxIBO5.cpp | 24 + official/4.2/Source/frxIBO5.dpk | 44 + official/4.2/Source/frxIBO6.bpk | 136 + official/4.2/Source/frxIBO6.cpp | 18 + official/4.2/Source/frxIBO6.dpk | 44 + official/4.2/Source/frxIBO7.dpk | 44 + official/4.2/Source/frxIBOSet.pas | 398 + official/4.2/Source/frxInheritError.dfm | Bin 0 -> 18112 bytes official/4.2/Source/frxInheritError.pas | 76 + official/4.2/Source/frxInsp.dfm | Bin 0 -> 3106 bytes official/4.2/Source/frxInsp.pas | 1141 ++ official/4.2/Source/frxNewItem.dfm | Bin 0 -> 1127 bytes official/4.2/Source/frxNewItem.pas | 176 + official/4.2/Source/frxOLE.pas | 287 + official/4.2/Source/frxOLEEditor.dfm | Bin 0 -> 945 bytes official/4.2/Source/frxOLEEditor.pas | 148 + official/4.2/Source/frxOLERTTI.pas | 70 + official/4.2/Source/frxPBarcode.pas | 206 + official/4.2/Source/frxPBarcodeEditor.dfm | Bin 0 -> 2372 bytes official/4.2/Source/frxPBarcodeEditor.pas | 241 + official/4.2/Source/frxPBarcodeRTTI.pas | 61 + official/4.2/Source/frxPassw.dfm | Bin 0 -> 7200 bytes official/4.2/Source/frxPassw.pas | 61 + official/4.2/Source/frxPictureCache.pas | 136 + official/4.2/Source/frxPopupForm.dfm | Bin 0 -> 387 bytes official/4.2/Source/frxPopupForm.pas | 61 + official/4.2/Source/frxPreview.dfm | Bin 0 -> 3646 bytes official/4.2/Source/frxPreview.pas | 2885 +++ official/4.2/Source/frxPreview.res | Bin 0 -> 5728 bytes .../4.2/Source/frxPreviewPageSettings.dfm | Bin 0 -> 4480 bytes .../4.2/Source/frxPreviewPageSettings.pas | 257 + official/4.2/Source/frxPreviewPages.pas | 2326 +++ official/4.2/Source/frxPrintDialog.dfm | Bin 0 -> 109767 bytes official/4.2/Source/frxPrintDialog.pas | 324 + official/4.2/Source/frxPrinter.pas | 964 + official/4.2/Source/frxProgress.dfm | Bin 0 -> 987 bytes official/4.2/Source/frxProgress.pas | 161 + official/4.2/Source/frxReg.dcr | Bin 0 -> 47512 bytes official/4.2/Source/frxReg.pas | 138 + official/4.2/Source/frxRegDB.pas | 48 + official/4.2/Source/frxRegIBO.pas | 42 + official/4.2/Source/frxRegTee.pas | 43 + official/4.2/Source/frxReportTree.dfm | Bin 0 -> 598 bytes official/4.2/Source/frxReportTree.pas | 214 + official/4.2/Source/frxRes.pas | 515 + official/4.2/Source/frxRich.pas | 625 + official/4.2/Source/frxRichEdit.pas | 4362 +++++ official/4.2/Source/frxRichEditor.dfm | Bin 0 -> 4669 bytes official/4.2/Source/frxRichEditor.pas | 487 + official/4.2/Source/frxRichRTTI.pas | 71 + official/4.2/Source/frxSearchDialog.dfm | Bin 0 -> 1532 bytes official/4.2/Source/frxSearchDialog.pas | 95 + official/4.2/Source/frxStdWizard.dfm | Bin 0 -> 7773 bytes official/4.2/Source/frxStdWizard.pas | 1092 ++ official/4.2/Source/frxStdWizard.res | Bin 0 -> 880 bytes official/4.2/Source/frxSynMemo.pas | 1996 +++ official/4.2/Source/frxTee10.bdsproj | 19 + official/4.2/Source/frxTee10.dpk | 50 + official/4.2/Source/frxTee11.bdsproj | 19 + official/4.2/Source/frxTee11.dpk | 50 + official/4.2/Source/frxTee4.bpk | 189 + official/4.2/Source/frxTee4.cpp | 28 + official/4.2/Source/frxTee4.dpk | 49 + official/4.2/Source/frxTee5.bpk | 105 + official/4.2/Source/frxTee5.cpp | 28 + official/4.2/Source/frxTee5.dpk | 49 + official/4.2/Source/frxTee6.bpk | 139 + official/4.2/Source/frxTee6.cpp | 18 + official/4.2/Source/frxTee6.dpk | 49 + official/4.2/Source/frxTee7.dpk | 49 + official/4.2/Source/frxTee9.bdsproj | 19 + official/4.2/Source/frxTee9.dpk | 49 + official/4.2/Source/frxUnicodeCtrls.pas | 582 + official/4.2/Source/frxUnicodeUtils.pas | 637 + official/4.2/Source/frxUtils.pas | 1030 ++ official/4.2/Source/frxVariables.pas | 406 + official/4.2/Source/frxVersion.inc | 1 + official/4.2/Source/frxWatchForm.dfm | Bin 0 -> 1014 bytes official/4.2/Source/frxWatchForm.pas | 178 + official/4.2/Source/frxXML.pas | 944 + official/4.2/Source/frxXMLSerializer.pas | 806 + official/4.2/Source/frxZLib.pas | 629 + official/4.2/Source/frxeReg.dcr | Bin 0 -> 16460 bytes official/4.2/Source/frxrcClass.pas | 221 + official/4.2/Source/frxrcDesgn.pas | 947 + official/4.2/Source/frxrcInsp.pas | 287 + official/4.2/Source/infback.zobj | Bin 0 -> 7746 bytes official/4.2/Source/inffast.zobj | Bin 0 -> 2361 bytes official/4.2/Source/inflate.zobj | Bin 0 -> 11383 bytes official/4.2/Source/inftrees.zobj | Bin 0 -> 2397 bytes official/4.2/Source/pngimage.pas | 5827 ++++++ official/4.2/Source/pnglang.pas | 358 + official/4.2/Source/printers.xml | 20 + official/4.2/Source/rc_AlgRef.pas | 573 + official/4.2/Source/rc_ApiRef.pas | 459 + official/4.2/Source/rc_Crypt.pas | 116 + official/4.2/Source/tee.inc | 49 + official/4.2/Source/trees.zobj | Bin 0 -> 11677 bytes official/4.2/Source/wizstyle.xml | 35 + official/4.2/changes.txt | 114 + official/4.2/changes_rus.txt | 114 + official/4.2/comp_developers.txt | 15 + official/4.2/comp_developers_rus.txt | 16 + official/4.2/compatibility.txt | 32 + official/4.2/compatibility_rus.txt | 32 + official/4.2/file_id.diz | 9 + official/4.2/frx_icon.ico | Bin 0 -> 12862 bytes official/4.2/install.txt | 262 + official/4.2/install_rus.txt | 265 + official/4.2/license.rtf | 117 + official/4.2/license_rus.rtf | 425 + official/4.2/readme.rtf | Bin 0 -> 6429 bytes official/4.2/readme_rus.rtf | 157 + official/4.2/recompile.exe | Bin 0 -> 532480 bytes official/4.2/teechart.txt | 10 + official/4.2/teechart_rus.txt | 10 + 1395 files changed, 236980 insertions(+) create mode 100644 official/4.2/Dealers.rus.txt create mode 100644 official/4.2/Dealers.txt create mode 100644 official/4.2/Demos/ClientServer/CGI/fastreport.dpr create mode 100644 official/4.2/Demos/ClientServer/CGI/fastreport.ini create mode 100644 official/4.2/Demos/ClientServer/CGI/index.html create mode 100644 official/4.2/Demos/ClientServer/Client/Advanced/FRClient.dpr create mode 100644 official/4.2/Demos/ClientServer/Client/Advanced/FRClient.res create mode 100644 official/4.2/Demos/ClientServer/Client/Advanced/main.dfm create mode 100644 official/4.2/Demos/ClientServer/Client/Advanced/main.pas create mode 100644 official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.dpr create mode 100644 official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.res create mode 100644 official/4.2/Demos/ClientServer/Client/Simple/main.dfm create mode 100644 official/4.2/Demos/ClientServer/Client/Simple/main.pas create mode 100644 official/4.2/Demos/ClientServer/Server/FRServer.dpr create mode 100644 official/4.2/Demos/ClientServer/Server/FRServer.res create mode 100644 official/4.2/Demos/ClientServer/Server/Main.dfm create mode 100644 official/4.2/Demos/ClientServer/Server/Main.pas create mode 100644 official/4.2/Demos/ClientServer/Server/allow.conf create mode 100644 official/4.2/Demos/ClientServer/Server/config.xml create mode 100644 official/4.2/Demos/ClientServer/Server/config_demo.xml create mode 100644 official/4.2/Demos/ClientServer/Server/deny.conf create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/about.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/bottom.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/default.css create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Adapting your applications for client-server technology.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/Components of FastReport Enterprise Edition.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxHTTPClient.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportClient.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportServer.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxServerConnection.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developers contact information.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Developing the reports.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some advices concerning the design of a report.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some client-server restrictions.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side with threads.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Example of a simple client-server application.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Server side.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/FastReport 3 Enterprise - Client-Server reporting tool.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Important security issues.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Introduction.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/References.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Other clients.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Report client.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/TfrxReportClient-based report client.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Access restriction by IP address.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Authentication.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Database connections.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Increasing servers processing power.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal architecture.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal server variables.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Logs.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Query syntax.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Supported formats of the report results.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/The Report server.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Transferring parameters to the report.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using HTML documents.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the FastReport server together with other HTTP servers (Apache, IIS, etc).htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the reports cache.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/banner.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/content.htm create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_001.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_002.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_003.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_004.png create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_005.png create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_006.png create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_007.png create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_008.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_009.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_010.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_011.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_012.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_013.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_014.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_015.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_016.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_017.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_018.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_019.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_020.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_021.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_022.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_023.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_024.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_025.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_026.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_027.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_028.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_029.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_030.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_031.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_032.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_033.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_034.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_035.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_036.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_037.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_038.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_039.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_039.jpg create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_040.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_040.jpg create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_041.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_041.jpg create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_042.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_042.jpg create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/documentation/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/favicon.ico create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/features.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/header.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/index.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/index2.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/logo.gif create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/reports.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/statistic.html create mode 100644 official/4.2/Demos/ClientServer/Server/htdocs/top.html create mode 100644 official/4.2/Demos/ClientServer/Server/readme.txt create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/01.Simple list.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/02.Simple group.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/03.Nested groups.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/04.Master-Detail-Subdetail.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/05.Master-Detail-Detail.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/06.Multi-column list.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/07.Multi-column bands.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/08.Memos and pictures.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/09.Split bands.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/10.Subreports.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/11.Side-by-Side subreports.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/12.Report with title page.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/13.URLs, anchors.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/14.Keep group together.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/1.Basic reports/15.Totals in group header.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/01.One row.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/02.One column.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/03.One row, one column.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/04.Two rows.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/05.Two rows, one column.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/06.Two columns, one row.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/07.Two cell values.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/08.Highlight.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/09.Two cross-tabs.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/10.Cross from non-DB data.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/11.Cross-bands.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/2.Cross-tabs/12.Calendar.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/3.Charts/01.Countries.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/3.Charts/02.Exchange rates.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/4.Misc/01.Rotation, fills and shapes.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/4.Misc/02.Barcode.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/4.Misc/03.HTML and text.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/4.Misc/04.Preview outline.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/4.Misc/05.Unicode.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/5.Dialogs and script/01.Ask for parameters.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/5.Dialogs and script/02.Client-server dialogs.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/5.Dialogs and script/03.Dialog query.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/reports/5.Dialogs and script/04.Dialog and script.fr3 create mode 100644 official/4.2/Demos/ClientServer/Server/templates/error403.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/error404.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/error500.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_begin.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_button.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_checkbox.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_end.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_label.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_memo.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_radio.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_select.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/form_text.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/list_begin.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/list_end.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/list_header.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/list_line.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/main.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/navigator.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/outline.html create mode 100644 official/4.2/Demos/ClientServer/Server/templates/readme.txt create mode 100644 official/4.2/Demos/ClientServer/Server/templates/report.html create mode 100644 official/4.2/Demos/ClientServer/Server/users.xml create mode 100644 official/4.2/Demos/ClientServer/Service/allow.conf create mode 100644 official/4.2/Demos/ClientServer/Service/config.xml create mode 100644 official/4.2/Demos/ClientServer/Service/deny.conf create mode 100644 official/4.2/Demos/ClientServer/Service/frxserv.dpr create mode 100644 official/4.2/Demos/ClientServer/Service/frxserv.res create mode 100644 official/4.2/Demos/ClientServer/Service/install.bat create mode 100644 official/4.2/Demos/ClientServer/Service/main.dfm create mode 100644 official/4.2/Demos/ClientServer/Service/main.pas create mode 100644 official/4.2/Demos/ClientServer/Service/service.txt create mode 100644 official/4.2/Demos/ClientServer/Service/servmain.dfm create mode 100644 official/4.2/Demos/ClientServer/Service/servmain.pas create mode 100644 official/4.2/Demos/ClientServer/Service/start.bat create mode 100644 official/4.2/Demos/ClientServer/Service/stop.bat create mode 100644 official/4.2/Demos/ClientServer/Service/uninstall.bat create mode 100644 official/4.2/Demos/ClientServer/UserManager/GroupEditor.dfm create mode 100644 official/4.2/Demos/ClientServer/UserManager/GroupEditor.pas create mode 100644 official/4.2/Demos/ClientServer/UserManager/UserEditor.dfm create mode 100644 official/4.2/Demos/ClientServer/UserManager/UserEditor.pas create mode 100644 official/4.2/Demos/ClientServer/UserManager/frxUserManager.dpr create mode 100644 official/4.2/Demos/ClientServer/UserManager/frxUserManager.res create mode 100644 official/4.2/Demos/ClientServer/UserManager/main.dfm create mode 100644 official/4.2/Demos/ClientServer/UserManager/main.pas create mode 100644 official/4.2/Demos/ClientServer/UserManager/readme.txt create mode 100644 official/4.2/Demos/ClientServer/UserManager/users.xml create mode 100644 official/4.2/Demos/Dll/CALLDLL.DPR create mode 100644 official/4.2/Demos/Dll/CALLDLL.RES create mode 100644 official/4.2/Demos/Dll/FormDLL.dfm create mode 100644 official/4.2/Demos/Dll/FormDLL.pas create mode 100644 official/4.2/Demos/Dll/RPTDLL.RES create mode 100644 official/4.2/Demos/Dll/Rptdll.dpr create mode 100644 official/4.2/Demos/Dll/TestDLL.dfm create mode 100644 official/4.2/Demos/Dll/TestDLL.pas create mode 100644 official/4.2/Demos/EmbedDesigner/Project1.dpr create mode 100644 official/4.2/Demos/EmbedDesigner/Project1.res create mode 100644 official/4.2/Demos/EmbedDesigner/Unit1.dfm create mode 100644 official/4.2/Demos/EmbedDesigner/Unit1.pas create mode 100644 official/4.2/Demos/InteractiveReport/Project1.dpr create mode 100644 official/4.2/Demos/InteractiveReport/Project1.res create mode 100644 official/4.2/Demos/InteractiveReport/Unit1.dfm create mode 100644 official/4.2/Demos/InteractiveReport/Unit1.pas create mode 100644 official/4.2/Demos/Main/1.fr3 create mode 100644 official/4.2/Demos/Main/10.FR3 create mode 100644 official/4.2/Demos/Main/100.fr3 create mode 100644 official/4.2/Demos/Main/101.fr3 create mode 100644 official/4.2/Demos/Main/102.fr3 create mode 100644 official/4.2/Demos/Main/103.fr3 create mode 100644 official/4.2/Demos/Main/104.fr3 create mode 100644 official/4.2/Demos/Main/105.fr3 create mode 100644 official/4.2/Demos/Main/11.FR3 create mode 100644 official/4.2/Demos/Main/12.FR3 create mode 100644 official/4.2/Demos/Main/13.fr3 create mode 100644 official/4.2/Demos/Main/2.FR3 create mode 100644 official/4.2/Demos/Main/21.FR3 create mode 100644 official/4.2/Demos/Main/22.FR3 create mode 100644 official/4.2/Demos/Main/23.FR3 create mode 100644 official/4.2/Demos/Main/24.FR3 create mode 100644 official/4.2/Demos/Main/25.fr3 create mode 100644 official/4.2/Demos/Main/3.FR3 create mode 100644 official/4.2/Demos/Main/31.FR3 create mode 100644 official/4.2/Demos/Main/32.FR3 create mode 100644 official/4.2/Demos/Main/33.FR3 create mode 100644 official/4.2/Demos/Main/34.FR3 create mode 100644 official/4.2/Demos/Main/35.fr3 create mode 100644 official/4.2/Demos/Main/36.fr3 create mode 100644 official/4.2/Demos/Main/4.FR3 create mode 100644 official/4.2/Demos/Main/41.FR3 create mode 100644 official/4.2/Demos/Main/42.FR3 create mode 100644 official/4.2/Demos/Main/43.FR3 create mode 100644 official/4.2/Demos/Main/44.fr3 create mode 100644 official/4.2/Demos/Main/45.fr3 create mode 100644 official/4.2/Demos/Main/5.FR3 create mode 100644 official/4.2/Demos/Main/51.FR3 create mode 100644 official/4.2/Demos/Main/52.FR3 create mode 100644 official/4.2/Demos/Main/6.FR3 create mode 100644 official/4.2/Demos/Main/60.fr3 create mode 100644 official/4.2/Demos/Main/61.FR3 create mode 100644 official/4.2/Demos/Main/62.FR3 create mode 100644 official/4.2/Demos/Main/63.FR3 create mode 100644 official/4.2/Demos/Main/64.FR3 create mode 100644 official/4.2/Demos/Main/65.FR3 create mode 100644 official/4.2/Demos/Main/66.FR3 create mode 100644 official/4.2/Demos/Main/67.FR3 create mode 100644 official/4.2/Demos/Main/68.FR3 create mode 100644 official/4.2/Demos/Main/69.FR3 create mode 100644 official/4.2/Demos/Main/7.FR3 create mode 100644 official/4.2/Demos/Main/70.fr3 create mode 100644 official/4.2/Demos/Main/71.fr3 create mode 100644 official/4.2/Demos/Main/72.fr3 create mode 100644 official/4.2/Demos/Main/73.fr3 create mode 100644 official/4.2/Demos/Main/8.FR3 create mode 100644 official/4.2/Demos/Main/80.fr3 create mode 100644 official/4.2/Demos/Main/81.fr3 create mode 100644 official/4.2/Demos/Main/82.fr3 create mode 100644 official/4.2/Demos/Main/9.FR3 create mode 100644 official/4.2/Demos/Main/90.fr3 create mode 100644 official/4.2/Demos/Main/91.fr3 create mode 100644 official/4.2/Demos/Main/92.fr3 create mode 100644 official/4.2/Demos/Main/93.fr3 create mode 100644 official/4.2/Demos/Main/94.fr3 create mode 100644 official/4.2/Demos/Main/95.fr3 create mode 100644 official/4.2/Demos/Main/96.fr3 create mode 100644 official/4.2/Demos/Main/97.fr3 create mode 100644 official/4.2/Demos/Main/98.fr3 create mode 100644 official/4.2/Demos/Main/99.fr3 create mode 100644 official/4.2/Demos/Main/FRDemo.bdsproj create mode 100644 official/4.2/Demos/Main/FRDemo.dpr create mode 100644 official/4.2/Demos/Main/FRDemo.res create mode 100644 official/4.2/Demos/Main/Unit1.dfm create mode 100644 official/4.2/Demos/Main/Unit1.pas create mode 100644 official/4.2/Demos/Main/Unit2.dfm create mode 100644 official/4.2/Demos/Main/Unit2.pas create mode 100644 official/4.2/Demos/Main/crosstest.db create mode 100644 official/4.2/Demos/Main/demo.mdb create mode 100644 official/4.2/Demos/MasterDetailUDS/Project1.dpr create mode 100644 official/4.2/Demos/MasterDetailUDS/Project1.res create mode 100644 official/4.2/Demos/MasterDetailUDS/Unit1.dfm create mode 100644 official/4.2/Demos/MasterDetailUDS/Unit1.pas create mode 100644 official/4.2/Demos/PrintArray/Project1.dpr create mode 100644 official/4.2/Demos/PrintArray/Project1.res create mode 100644 official/4.2/Demos/PrintArray/Unit1.dfm create mode 100644 official/4.2/Demos/PrintArray/Unit1.pas create mode 100644 official/4.2/Demos/PrintFile/Project1.dpr create mode 100644 official/4.2/Demos/PrintFile/Project1.res create mode 100644 official/4.2/Demos/PrintFile/Unit1.dfm create mode 100644 official/4.2/Demos/PrintFile/Unit1.pas create mode 100644 official/4.2/Demos/PrintStringGrid/Project1.dpr create mode 100644 official/4.2/Demos/PrintStringGrid/Project1.res create mode 100644 official/4.2/Demos/PrintStringGrid/Unit1.dfm create mode 100644 official/4.2/Demos/PrintStringGrid/Unit1.pas create mode 100644 official/4.2/Demos/PrintStringList/Project1.dpr create mode 100644 official/4.2/Demos/PrintStringList/Project1.res create mode 100644 official/4.2/Demos/PrintStringList/Unit1.dfm create mode 100644 official/4.2/Demos/PrintStringList/Unit1.pas create mode 100644 official/4.2/Demos/PrintTable/Project1.dpr create mode 100644 official/4.2/Demos/PrintTable/Project1.res create mode 100644 official/4.2/Demos/PrintTable/Unit1.dfm create mode 100644 official/4.2/Demos/PrintTable/Unit1.pas create mode 100644 official/4.2/Extra/New DB Engine/Main.dfm create mode 100644 official/4.2/Extra/New DB Engine/Main.pas create mode 100644 official/4.2/Extra/New DB Engine/NewEngine.dpr create mode 100644 official/4.2/Extra/New DB Engine/NewEngine.res create mode 100644 official/4.2/Extra/New DB Engine/Template/dclfrxXXX4.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/dclfrxXXX5.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/dclfrxXXX6.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/dclfrxXXX7.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/dclfrxXXX9.bdsproj create mode 100644 official/4.2/Extra/New DB Engine/Template/dclfrxXXX9.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/file_id.diz create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX4.bpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX4.cpp create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX4.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX4.res create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX5.bpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX5.cpp create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX5.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX5.res create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX6.bpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX6.cpp create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX6.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX6.res create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX7.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX9.bdsproj create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXX9.dpk create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXXComponents.pas create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXXComponents.res create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXXEditor.pas create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXXRTTI.pas create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXXReg.dcr create mode 100644 official/4.2/Extra/New DB Engine/Template/frxXXXReg.pas create mode 100644 official/4.2/FastQB/adler32.zobj create mode 100644 official/4.2/FastQB/compress.zobj create mode 100644 official/4.2/FastQB/crc32.zobj create mode 100644 official/4.2/FastQB/deflate.zobj create mode 100644 official/4.2/FastQB/fqb.dcr create mode 100644 official/4.2/FastQB/fqb.inc create mode 100644 official/4.2/FastQB/fqb.lrs create mode 100644 official/4.2/FastQB/fqb100.bdsproj create mode 100644 official/4.2/FastQB/fqb100.dpk create mode 100644 official/4.2/FastQB/fqb110.bdsproj create mode 100644 official/4.2/FastQB/fqb110.dpk create mode 100644 official/4.2/FastQB/fqb40.bpk create mode 100644 official/4.2/FastQB/fqb40.cpp create mode 100644 official/4.2/FastQB/fqb40.dpk create mode 100644 official/4.2/FastQB/fqb50.bpk create mode 100644 official/4.2/FastQB/fqb50.cpp create mode 100644 official/4.2/FastQB/fqb50.dpk create mode 100644 official/4.2/FastQB/fqb60.bpk create mode 100644 official/4.2/FastQB/fqb60.cpp create mode 100644 official/4.2/FastQB/fqb60.dpk create mode 100644 official/4.2/FastQB/fqb70.dpk create mode 100644 official/4.2/FastQB/fqb90.bdsproj create mode 100644 official/4.2/FastQB/fqb90.dpk create mode 100644 official/4.2/FastQB/fqbClass.pas create mode 100644 official/4.2/FastQB/fqbDesign.dfm create mode 100644 official/4.2/FastQB/fqbDesign.lfm create mode 100644 official/4.2/FastQB/fqbDesign.lrs create mode 100644 official/4.2/FastQB/fqbDesign.pas create mode 100644 official/4.2/FastQB/fqbLinkForm.dfm create mode 100644 official/4.2/FastQB/fqbLinkForm.lfm create mode 100644 official/4.2/FastQB/fqbLinkForm.lrs create mode 100644 official/4.2/FastQB/fqbLinkForm.pas create mode 100644 official/4.2/FastQB/fqbReg.pas create mode 100644 official/4.2/FastQB/fqbRes.pas create mode 100644 official/4.2/FastQB/fqbSynmemo.dfm create mode 100644 official/4.2/FastQB/fqbSynmemo.lfm create mode 100644 official/4.2/FastQB/fqbSynmemo.lrs create mode 100644 official/4.2/FastQB/fqbSynmemo.pas create mode 100644 official/4.2/FastQB/fqbUtils.pas create mode 100644 official/4.2/FastQB/fqbZLib.pas create mode 100644 official/4.2/FastQB/fqbrcDesign.pas create mode 100644 official/4.2/FastQB/images.res create mode 100644 official/4.2/FastQB/infback.zobj create mode 100644 official/4.2/FastQB/inffast.zobj create mode 100644 official/4.2/FastQB/inflate.zobj create mode 100644 official/4.2/FastQB/inftrees.zobj create mode 100644 official/4.2/FastQB/trees.zobj create mode 100644 official/4.2/FastReports.url create mode 100644 official/4.2/FastScript/bitmaps/TFSADORTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSBASIC.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSBDERTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSCHARTRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSCLASSESRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSCPP.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSDBCTRLSRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSDBRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSDIALOGSRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSEXTCTRLSRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSFORMSRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSGRAPHICSRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSIBXRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSINIRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSJSCRIPT.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSMENUSRTTI.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSPASCAL.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSSCRIPT.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSSYNTAXMEMO.bmp create mode 100644 official/4.2/FastScript/bitmaps/TFSTREE.bmp create mode 100644 official/4.2/FastScript/bitmaps/build_fstree.bat create mode 100644 official/4.2/FastScript/bitmaps/build_lrs.bat create mode 100644 official/4.2/FastScript/bitmaps/fstree.bmp create mode 100644 official/4.2/FastScript/dclfs10.bdsproj create mode 100644 official/4.2/FastScript/dclfs10.dpk create mode 100644 official/4.2/FastScript/dclfs11.bdsproj create mode 100644 official/4.2/FastScript/dclfs11.dpk create mode 100644 official/4.2/FastScript/dclfs4.dpk create mode 100644 official/4.2/FastScript/dclfs5.dpk create mode 100644 official/4.2/FastScript/dclfs6.dpk create mode 100644 official/4.2/FastScript/dclfs7.dpk create mode 100644 official/4.2/FastScript/dclfs9.bdsproj create mode 100644 official/4.2/FastScript/dclfs9.dpk create mode 100644 official/4.2/FastScript/dclfsADO10.bdsproj create mode 100644 official/4.2/FastScript/dclfsADO10.dpk create mode 100644 official/4.2/FastScript/dclfsADO11.bdsproj create mode 100644 official/4.2/FastScript/dclfsADO11.dpk create mode 100644 official/4.2/FastScript/dclfsADO5.dpk create mode 100644 official/4.2/FastScript/dclfsADO6.dpk create mode 100644 official/4.2/FastScript/dclfsADO7.dpk create mode 100644 official/4.2/FastScript/dclfsADO9.bdsproj create mode 100644 official/4.2/FastScript/dclfsADO9.dpk create mode 100644 official/4.2/FastScript/dclfsBDE10.bdsproj create mode 100644 official/4.2/FastScript/dclfsBDE10.dpk create mode 100644 official/4.2/FastScript/dclfsBDE11.bdsproj create mode 100644 official/4.2/FastScript/dclfsBDE11.dpk create mode 100644 official/4.2/FastScript/dclfsBDE4.dpk create mode 100644 official/4.2/FastScript/dclfsBDE5.dpk create mode 100644 official/4.2/FastScript/dclfsBDE6.dpk create mode 100644 official/4.2/FastScript/dclfsBDE7.dpk create mode 100644 official/4.2/FastScript/dclfsBDE9.bdsproj create mode 100644 official/4.2/FastScript/dclfsBDE9.dpk create mode 100644 official/4.2/FastScript/dclfsDB10.bdsproj create mode 100644 official/4.2/FastScript/dclfsDB10.dpk create mode 100644 official/4.2/FastScript/dclfsDB11.bdsproj create mode 100644 official/4.2/FastScript/dclfsDB11.dpk create mode 100644 official/4.2/FastScript/dclfsDB4.dpk create mode 100644 official/4.2/FastScript/dclfsDB5.dpk create mode 100644 official/4.2/FastScript/dclfsDB6.dpk create mode 100644 official/4.2/FastScript/dclfsDB7.dpk create mode 100644 official/4.2/FastScript/dclfsDB9.bdsproj create mode 100644 official/4.2/FastScript/dclfsDB9.dpk create mode 100644 official/4.2/FastScript/dclfsIBX10.bdsproj create mode 100644 official/4.2/FastScript/dclfsIBX10.dpk create mode 100644 official/4.2/FastScript/dclfsIBX11.bdsproj create mode 100644 official/4.2/FastScript/dclfsIBX11.dpk create mode 100644 official/4.2/FastScript/dclfsIBX5.dpk create mode 100644 official/4.2/FastScript/dclfsIBX6.dpk create mode 100644 official/4.2/FastScript/dclfsIBX7.dpk create mode 100644 official/4.2/FastScript/dclfsIBX9.bdsproj create mode 100644 official/4.2/FastScript/dclfsIBX9.dpk create mode 100644 official/4.2/FastScript/dclfsTee10.bdsproj create mode 100644 official/4.2/FastScript/dclfsTee10.dpk create mode 100644 official/4.2/FastScript/dclfsTee11.bdsproj create mode 100644 official/4.2/FastScript/dclfsTee11.dpk create mode 100644 official/4.2/FastScript/dclfsTee4.dpk create mode 100644 official/4.2/FastScript/dclfsTee5.dpk create mode 100644 official/4.2/FastScript/dclfsTee6.dpk create mode 100644 official/4.2/FastScript/dclfsTee7.dpk create mode 100644 official/4.2/FastScript/dclfsTee9.bdsproj create mode 100644 official/4.2/FastScript/dclfsTee9.dpk create mode 100644 official/4.2/FastScript/dclfsx.dpk create mode 100644 official/4.2/FastScript/dclfsx.res create mode 100644 official/4.2/FastScript/fs.inc create mode 100644 official/4.2/FastScript/fs10.bdsproj create mode 100644 official/4.2/FastScript/fs10.dpk create mode 100644 official/4.2/FastScript/fs11.bdsproj create mode 100644 official/4.2/FastScript/fs11.dpk create mode 100644 official/4.2/FastScript/fs4.bpk create mode 100644 official/4.2/FastScript/fs4.cpp create mode 100644 official/4.2/FastScript/fs4.dpk create mode 100644 official/4.2/FastScript/fs4.res create mode 100644 official/4.2/FastScript/fs5.bpk create mode 100644 official/4.2/FastScript/fs5.cpp create mode 100644 official/4.2/FastScript/fs5.dpk create mode 100644 official/4.2/FastScript/fs5.res create mode 100644 official/4.2/FastScript/fs6.bpk create mode 100644 official/4.2/FastScript/fs6.cpp create mode 100644 official/4.2/FastScript/fs6.dpk create mode 100644 official/4.2/FastScript/fs6.res create mode 100644 official/4.2/FastScript/fs7.dpk create mode 100644 official/4.2/FastScript/fs9.bdsproj create mode 100644 official/4.2/FastScript/fs9.dpk create mode 100644 official/4.2/FastScript/fsADO10.bdsproj create mode 100644 official/4.2/FastScript/fsADO10.dpk create mode 100644 official/4.2/FastScript/fsADO11.bdsproj create mode 100644 official/4.2/FastScript/fsADO11.dpk create mode 100644 official/4.2/FastScript/fsADO5.bpk create mode 100644 official/4.2/FastScript/fsADO5.cpp create mode 100644 official/4.2/FastScript/fsADO5.dpk create mode 100644 official/4.2/FastScript/fsADO6.bpk create mode 100644 official/4.2/FastScript/fsADO6.cpp create mode 100644 official/4.2/FastScript/fsADO6.dpk create mode 100644 official/4.2/FastScript/fsADO7.dpk create mode 100644 official/4.2/FastScript/fsADO9.bdsproj create mode 100644 official/4.2/FastScript/fsADO9.dpk create mode 100644 official/4.2/FastScript/fsBDE10.bdsproj create mode 100644 official/4.2/FastScript/fsBDE10.dpk create mode 100644 official/4.2/FastScript/fsBDE11.bdsproj create mode 100644 official/4.2/FastScript/fsBDE11.dpk create mode 100644 official/4.2/FastScript/fsBDE4.bpk create mode 100644 official/4.2/FastScript/fsBDE4.cpp create mode 100644 official/4.2/FastScript/fsBDE4.dpk create mode 100644 official/4.2/FastScript/fsBDE5.bpk create mode 100644 official/4.2/FastScript/fsBDE5.cpp create mode 100644 official/4.2/FastScript/fsBDE5.dpk create mode 100644 official/4.2/FastScript/fsBDE6.bpk create mode 100644 official/4.2/FastScript/fsBDE6.cpp create mode 100644 official/4.2/FastScript/fsBDE6.dpk create mode 100644 official/4.2/FastScript/fsBDE7.dpk create mode 100644 official/4.2/FastScript/fsBDE9.bdsproj create mode 100644 official/4.2/FastScript/fsBDE9.dpk create mode 100644 official/4.2/FastScript/fsDB10.bdsproj create mode 100644 official/4.2/FastScript/fsDB10.dpk create mode 100644 official/4.2/FastScript/fsDB11.bdsproj create mode 100644 official/4.2/FastScript/fsDB11.dpk create mode 100644 official/4.2/FastScript/fsDB4.bpk create mode 100644 official/4.2/FastScript/fsDB4.cpp create mode 100644 official/4.2/FastScript/fsDB4.dpk create mode 100644 official/4.2/FastScript/fsDB5.bpk create mode 100644 official/4.2/FastScript/fsDB5.cpp create mode 100644 official/4.2/FastScript/fsDB5.dpk create mode 100644 official/4.2/FastScript/fsDB6.bpk create mode 100644 official/4.2/FastScript/fsDB6.cpp create mode 100644 official/4.2/FastScript/fsDB6.dpk create mode 100644 official/4.2/FastScript/fsDB7.dpk create mode 100644 official/4.2/FastScript/fsDB9.bdsproj create mode 100644 official/4.2/FastScript/fsDB9.dpk create mode 100644 official/4.2/FastScript/fsIBX10.bdsproj create mode 100644 official/4.2/FastScript/fsIBX10.dpk create mode 100644 official/4.2/FastScript/fsIBX11.bdsproj create mode 100644 official/4.2/FastScript/fsIBX11.dpk create mode 100644 official/4.2/FastScript/fsIBX5.bpk create mode 100644 official/4.2/FastScript/fsIBX5.cpp create mode 100644 official/4.2/FastScript/fsIBX5.dpk create mode 100644 official/4.2/FastScript/fsIBX6.bpk create mode 100644 official/4.2/FastScript/fsIBX6.cpp create mode 100644 official/4.2/FastScript/fsIBX6.dpk create mode 100644 official/4.2/FastScript/fsIBX7.dpk create mode 100644 official/4.2/FastScript/fsIBX9.bdsproj create mode 100644 official/4.2/FastScript/fsIBX9.dpk create mode 100644 official/4.2/FastScript/fsTee10.bdsproj create mode 100644 official/4.2/FastScript/fsTee10.dpk create mode 100644 official/4.2/FastScript/fsTee11.bdsproj create mode 100644 official/4.2/FastScript/fsTee11.dpk create mode 100644 official/4.2/FastScript/fsTee4.bpk create mode 100644 official/4.2/FastScript/fsTee4.cpp create mode 100644 official/4.2/FastScript/fsTee4.dpk create mode 100644 official/4.2/FastScript/fsTee5.bpk create mode 100644 official/4.2/FastScript/fsTee5.cpp create mode 100644 official/4.2/FastScript/fsTee5.dpk create mode 100644 official/4.2/FastScript/fsTee6.bpk create mode 100644 official/4.2/FastScript/fsTee6.cpp create mode 100644 official/4.2/FastScript/fsTee6.dpk create mode 100644 official/4.2/FastScript/fsTee7.dpk create mode 100644 official/4.2/FastScript/fsTee9.bdsproj create mode 100644 official/4.2/FastScript/fsTee9.dpk create mode 100644 official/4.2/FastScript/fs_iadoreg.pas create mode 100644 official/4.2/FastScript/fs_iadortti.pas create mode 100644 official/4.2/FastScript/fs_ibasic.pas create mode 100644 official/4.2/FastScript/fs_ibdereg.pas create mode 100644 official/4.2/FastScript/fs_ibdertti.pas create mode 100644 official/4.2/FastScript/fs_ichartrtti.pas create mode 100644 official/4.2/FastScript/fs_iclassesrtti.pas create mode 100644 official/4.2/FastScript/fs_iconst.pas create mode 100644 official/4.2/FastScript/fs_icpp.pas create mode 100644 official/4.2/FastScript/fs_idbctrlsrtti.pas create mode 100644 official/4.2/FastScript/fs_idbreg.pas create mode 100644 official/4.2/FastScript/fs_idbrtti.pas create mode 100644 official/4.2/FastScript/fs_idialogsrtti.pas create mode 100644 official/4.2/FastScript/fs_idisp.pas create mode 100644 official/4.2/FastScript/fs_ievents.pas create mode 100644 official/4.2/FastScript/fs_iexpression.pas create mode 100644 official/4.2/FastScript/fs_iextctrlsrtti.pas create mode 100644 official/4.2/FastScript/fs_iformsrtti.pas create mode 100644 official/4.2/FastScript/fs_igraphicsrtti.pas create mode 100644 official/4.2/FastScript/fs_iibxreg.pas create mode 100644 official/4.2/FastScript/fs_iibxrtti.pas create mode 100644 official/4.2/FastScript/fs_iilparser.pas create mode 100644 official/4.2/FastScript/fs_iinirtti.pas create mode 100644 official/4.2/FastScript/fs_iinterpreter.pas create mode 100644 official/4.2/FastScript/fs_ijs.pas create mode 100644 official/4.2/FastScript/fs_imenusrtti.pas create mode 100644 official/4.2/FastScript/fs_iparser.pas create mode 100644 official/4.2/FastScript/fs_ipascal.pas create mode 100644 official/4.2/FastScript/fs_ireg.dcr create mode 100644 official/4.2/FastScript/fs_ireg.lrs create mode 100644 official/4.2/FastScript/fs_ireg.pas create mode 100644 official/4.2/FastScript/fs_isysrtti.pas create mode 100644 official/4.2/FastScript/fs_iteereg.pas create mode 100644 official/4.2/FastScript/fs_itools.pas create mode 100644 official/4.2/FastScript/fs_lazarus.lpk create mode 100644 official/4.2/FastScript/fs_lazarus.pas create mode 100644 official/4.2/FastScript/fs_synmemo.dfm create mode 100644 official/4.2/FastScript/fs_synmemo.lfm create mode 100644 official/4.2/FastScript/fs_synmemo.lrs create mode 100644 official/4.2/FastScript/fs_synmemo.pas create mode 100644 official/4.2/FastScript/fs_tree.lrs create mode 100644 official/4.2/FastScript/fs_tree.pas create mode 100644 official/4.2/FastScript/fs_tree.res create mode 100644 official/4.2/FastScript/fs_xml.pas create mode 100644 official/4.2/FastScript/fsx.dpk create mode 100644 official/4.2/FastScript/fsx.res create mode 100644 official/4.2/FastScript/readme_lazarus.txt create mode 100644 official/4.2/FastScript/tee.inc create mode 100644 official/4.2/INSTALL.LOG create mode 100644 official/4.2/Res/Arabic/frxrcClass.frc create mode 100644 official/4.2/Res/Arabic/frxrcDesgn.frc create mode 100644 official/4.2/Res/Arabic/frxrcExports.frc create mode 100644 official/4.2/Res/Arabic/frxrcInsp.frc create mode 100644 official/4.2/Res/Arabic/mk.bat create mode 100644 official/4.2/Res/Arabic/mkall.bat create mode 100644 official/4.2/Res/Brazil/frxrcClass.frc create mode 100644 official/4.2/Res/Brazil/frxrcDesgn.frc create mode 100644 official/4.2/Res/Brazil/frxrcExports.frc create mode 100644 official/4.2/Res/Brazil/frxrcInsp.frc create mode 100644 official/4.2/Res/Brazil/mk.bat create mode 100644 official/4.2/Res/Brazil/mkall.bat create mode 100644 official/4.2/Res/Bulgarian/frxrcClass.frc create mode 100644 official/4.2/Res/Bulgarian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Bulgarian/frxrcExports.frc create mode 100644 official/4.2/Res/Bulgarian/frxrcInsp.frc create mode 100644 official/4.2/Res/Bulgarian/mk.bat create mode 100644 official/4.2/Res/Bulgarian/mkall.bat create mode 100644 official/4.2/Res/Catalon/frxrcClass.frc create mode 100644 official/4.2/Res/Catalon/frxrcDesgn.frc create mode 100644 official/4.2/Res/Catalon/frxrcExports.frc create mode 100644 official/4.2/Res/Catalon/frxrcInsp.frc create mode 100644 official/4.2/Res/Catalon/mk.bat create mode 100644 official/4.2/Res/Catalon/mkall.bat create mode 100644 official/4.2/Res/Chinese/frxrcClass.frc create mode 100644 official/4.2/Res/Chinese/frxrcDesgn.frc create mode 100644 official/4.2/Res/Chinese/frxrcExports.frc create mode 100644 official/4.2/Res/Chinese/frxrcInsp.frc create mode 100644 official/4.2/Res/Chinese/mk.bat create mode 100644 official/4.2/Res/Chinese/mkall.bat create mode 100644 official/4.2/Res/Croatian/frxrcClass.frc create mode 100644 official/4.2/Res/Croatian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Croatian/frxrcExports.frc create mode 100644 official/4.2/Res/Croatian/frxrcInsp.frc create mode 100644 official/4.2/Res/Croatian/mk.bat create mode 100644 official/4.2/Res/Croatian/mkall.bat create mode 100644 official/4.2/Res/Czech/Info.txt create mode 100644 official/4.2/Res/Czech/frxrcClass.frc create mode 100644 official/4.2/Res/Czech/frxrcDesgn.frc create mode 100644 official/4.2/Res/Czech/frxrcExports.frc create mode 100644 official/4.2/Res/Czech/frxrcInsp.frc create mode 100644 official/4.2/Res/Czech/mk.bat create mode 100644 official/4.2/Res/Czech/mkall.bat create mode 100644 official/4.2/Res/Danish/frxrcClass.frc create mode 100644 official/4.2/Res/Danish/frxrcDesgn.frc create mode 100644 official/4.2/Res/Danish/frxrcExports.frc create mode 100644 official/4.2/Res/Danish/frxrcInsp.frc create mode 100644 official/4.2/Res/Danish/mk.bat create mode 100644 official/4.2/Res/Danish/mkall.bat create mode 100644 official/4.2/Res/Dutch/frxrcClass.frc create mode 100644 official/4.2/Res/Dutch/frxrcDesgn.frc create mode 100644 official/4.2/Res/Dutch/frxrcExports.frc create mode 100644 official/4.2/Res/Dutch/frxrcInsp.frc create mode 100644 official/4.2/Res/Dutch/mk.bat create mode 100644 official/4.2/Res/Dutch/mkall.bat create mode 100644 official/4.2/Res/English/frxrcClass.frc create mode 100644 official/4.2/Res/English/frxrcDesgn.frc create mode 100644 official/4.2/Res/English/frxrcExports.frc create mode 100644 official/4.2/Res/English/frxrcInsp.frc create mode 100644 official/4.2/Res/English/mk.bat create mode 100644 official/4.2/Res/English/mkall.bat create mode 100644 official/4.2/Res/Farsi/frxrcClass.frc create mode 100644 official/4.2/Res/Farsi/frxrcDesgn.frc create mode 100644 official/4.2/Res/Farsi/frxrcExports.frc create mode 100644 official/4.2/Res/Farsi/frxrcInsp.frc create mode 100644 official/4.2/Res/Farsi/mk.bat create mode 100644 official/4.2/Res/Farsi/mkall.bat create mode 100644 official/4.2/Res/Farsi/readme.txt create mode 100644 official/4.2/Res/French/Info.txt create mode 100644 official/4.2/Res/French/frxrcClass.frc create mode 100644 official/4.2/Res/French/frxrcDesgn.frc create mode 100644 official/4.2/Res/French/frxrcExports.frc create mode 100644 official/4.2/Res/French/frxrcInsp.frc create mode 100644 official/4.2/Res/French/mk.bat create mode 100644 official/4.2/Res/French/mkall.bat create mode 100644 official/4.2/Res/German/frxrcClass.frc create mode 100644 official/4.2/Res/German/frxrcDesgn.frc create mode 100644 official/4.2/Res/German/frxrcExports.frc create mode 100644 official/4.2/Res/German/frxrcInsp.frc create mode 100644 official/4.2/Res/German/mk.bat create mode 100644 official/4.2/Res/German/mkall.bat create mode 100644 official/4.2/Res/Greek/frxrcClass.frc create mode 100644 official/4.2/Res/Greek/frxrcDesgn.frc create mode 100644 official/4.2/Res/Greek/frxrcExports.frc create mode 100644 official/4.2/Res/Greek/frxrcInsp.frc create mode 100644 official/4.2/Res/Greek/mk.bat create mode 100644 official/4.2/Res/Greek/mkall.bat create mode 100644 official/4.2/Res/Hungarian/frxrcClass.frc create mode 100644 official/4.2/Res/Hungarian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Hungarian/frxrcExports.frc create mode 100644 official/4.2/Res/Hungarian/frxrcInsp.frc create mode 100644 official/4.2/Res/Hungarian/mk.bat create mode 100644 official/4.2/Res/Hungarian/mkall.bat create mode 100644 official/4.2/Res/Indonesian/frxrcClass.frc create mode 100644 official/4.2/Res/Indonesian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Indonesian/frxrcExports.frc create mode 100644 official/4.2/Res/Indonesian/frxrcInsp.frc create mode 100644 official/4.2/Res/Indonesian/mk.bat create mode 100644 official/4.2/Res/Indonesian/mkall.bat create mode 100644 official/4.2/Res/Italian/frxrcClass.frc create mode 100644 official/4.2/Res/Italian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Italian/frxrcExports.frc create mode 100644 official/4.2/Res/Italian/frxrcInsp.frc create mode 100644 official/4.2/Res/Italian/mk.bat create mode 100644 official/4.2/Res/Italian/mkall.bat create mode 100644 official/4.2/Res/Japanese/frxrcClass.frc create mode 100644 official/4.2/Res/Japanese/frxrcDesgn.frc create mode 100644 official/4.2/Res/Japanese/frxrcExports.frc create mode 100644 official/4.2/Res/Japanese/frxrcInsp.frc create mode 100644 official/4.2/Res/Japanese/mk.bat create mode 100644 official/4.2/Res/Japanese/mkall.bat create mode 100644 official/4.2/Res/Latvian/frxrcClass.frc create mode 100644 official/4.2/Res/Latvian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Latvian/frxrcExports.frc create mode 100644 official/4.2/Res/Latvian/frxrcInsp.frc create mode 100644 official/4.2/Res/Latvian/mk.bat create mode 100644 official/4.2/Res/Latvian/mkall.bat create mode 100644 official/4.2/Res/Polish/Info.txt create mode 100644 official/4.2/Res/Polish/frxrcClass.frc create mode 100644 official/4.2/Res/Polish/frxrcDesgn.frc create mode 100644 official/4.2/Res/Polish/frxrcExports.frc create mode 100644 official/4.2/Res/Polish/frxrcInsp.frc create mode 100644 official/4.2/Res/Polish/mk.bat create mode 100644 official/4.2/Res/Polish/mkall.bat create mode 100644 official/4.2/Res/Portuguese/frxrcClass.frc create mode 100644 official/4.2/Res/Portuguese/frxrcDesgn.frc create mode 100644 official/4.2/Res/Portuguese/frxrcExports.frc create mode 100644 official/4.2/Res/Portuguese/frxrcInsp.frc create mode 100644 official/4.2/Res/Portuguese/mk.bat create mode 100644 official/4.2/Res/Portuguese/mkall.bat create mode 100644 official/4.2/Res/Romanian/frxrcClass.frc create mode 100644 official/4.2/Res/Romanian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Romanian/frxrcExports.frc create mode 100644 official/4.2/Res/Romanian/frxrcInsp.frc create mode 100644 official/4.2/Res/Romanian/mk.bat create mode 100644 official/4.2/Res/Romanian/mkall.bat create mode 100644 official/4.2/Res/Russian/frxrcClass.frc create mode 100644 official/4.2/Res/Russian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Russian/frxrcExports.frc create mode 100644 official/4.2/Res/Russian/frxrcInsp.frc create mode 100644 official/4.2/Res/Russian/mk.bat create mode 100644 official/4.2/Res/Russian/mkall.bat create mode 100644 official/4.2/Res/Serbian/frxrcClass.frc create mode 100644 official/4.2/Res/Serbian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Serbian/frxrcExports.frc create mode 100644 official/4.2/Res/Serbian/frxrcInsp.frc create mode 100644 official/4.2/Res/Serbian/mk.bat create mode 100644 official/4.2/Res/Serbian/mkall.bat create mode 100644 official/4.2/Res/Slovak/Info.txt create mode 100644 official/4.2/Res/Slovak/frxrcClass.frc create mode 100644 official/4.2/Res/Slovak/frxrcDesgn.frc create mode 100644 official/4.2/Res/Slovak/frxrcExports.frc create mode 100644 official/4.2/Res/Slovak/frxrcInsp.frc create mode 100644 official/4.2/Res/Slovak/mk.bat create mode 100644 official/4.2/Res/Slovak/mkall.bat create mode 100644 official/4.2/Res/Slovene/frxrcClass.frc create mode 100644 official/4.2/Res/Slovene/frxrcDesgn.frc create mode 100644 official/4.2/Res/Slovene/frxrcExports.frc create mode 100644 official/4.2/Res/Slovene/frxrcInsp.frc create mode 100644 official/4.2/Res/Slovene/mk.bat create mode 100644 official/4.2/Res/Slovene/mkall.bat create mode 100644 official/4.2/Res/Spanish/frxrcClass.frc create mode 100644 official/4.2/Res/Spanish/frxrcDesgn.frc create mode 100644 official/4.2/Res/Spanish/frxrcExports.frc create mode 100644 official/4.2/Res/Spanish/frxrcInsp.frc create mode 100644 official/4.2/Res/Spanish/mk.bat create mode 100644 official/4.2/Res/Spanish/mkall.bat create mode 100644 official/4.2/Res/Swedish/frxrcClass.frc create mode 100644 official/4.2/Res/Swedish/frxrcDesgn.frc create mode 100644 official/4.2/Res/Swedish/frxrcExports.frc create mode 100644 official/4.2/Res/Swedish/frxrcInsp.frc create mode 100644 official/4.2/Res/Swedish/mk.bat create mode 100644 official/4.2/Res/Swedish/mkall.bat create mode 100644 official/4.2/Res/Swiss/frxrcClass.frc create mode 100644 official/4.2/Res/Swiss/frxrcDesgn.frc create mode 100644 official/4.2/Res/Swiss/frxrcExports.frc create mode 100644 official/4.2/Res/Swiss/frxrcInsp.frc create mode 100644 official/4.2/Res/Swiss/mk.bat create mode 100644 official/4.2/Res/Swiss/mkall.bat create mode 100644 official/4.2/Res/Taiwan/frxrcClass.frc create mode 100644 official/4.2/Res/Taiwan/frxrcDesgn.frc create mode 100644 official/4.2/Res/Taiwan/frxrcExports.frc create mode 100644 official/4.2/Res/Taiwan/frxrcInsp.frc create mode 100644 official/4.2/Res/Taiwan/mk.bat create mode 100644 official/4.2/Res/Taiwan/mkall.bat create mode 100644 official/4.2/Res/Turkish/frxrcClass.frc create mode 100644 official/4.2/Res/Turkish/frxrcDesgn.frc create mode 100644 official/4.2/Res/Turkish/frxrcExports.frc create mode 100644 official/4.2/Res/Turkish/frxrcInsp.frc create mode 100644 official/4.2/Res/Turkish/mk.bat create mode 100644 official/4.2/Res/Turkish/mkall.bat create mode 100644 official/4.2/Res/Ukrainian/frxrcClass.frc create mode 100644 official/4.2/Res/Ukrainian/frxrcDesgn.frc create mode 100644 official/4.2/Res/Ukrainian/frxrcExports.frc create mode 100644 official/4.2/Res/Ukrainian/frxrcInsp.frc create mode 100644 official/4.2/Res/Ukrainian/mk.bat create mode 100644 official/4.2/Res/Ukrainian/mkall.bat create mode 100644 official/4.2/Res/frcc.exe create mode 100644 official/4.2/Res/install_res.txt create mode 100644 official/4.2/Source/ADO/dclfrxADO10.bdsproj create mode 100644 official/4.2/Source/ADO/dclfrxADO10.dpk create mode 100644 official/4.2/Source/ADO/dclfrxADO11.bdsproj create mode 100644 official/4.2/Source/ADO/dclfrxADO11.dpk create mode 100644 official/4.2/Source/ADO/dclfrxADO5.dpk create mode 100644 official/4.2/Source/ADO/dclfrxADO6.dpk create mode 100644 official/4.2/Source/ADO/dclfrxADO7.dpk create mode 100644 official/4.2/Source/ADO/dclfrxADO9.bdsproj create mode 100644 official/4.2/Source/ADO/dclfrxADO9.dpk create mode 100644 official/4.2/Source/ADO/frxADO10.bdsproj create mode 100644 official/4.2/Source/ADO/frxADO10.dpk create mode 100644 official/4.2/Source/ADO/frxADO11.bdsproj create mode 100644 official/4.2/Source/ADO/frxADO11.dpk create mode 100644 official/4.2/Source/ADO/frxADO5.bpk create mode 100644 official/4.2/Source/ADO/frxADO5.cpp create mode 100644 official/4.2/Source/ADO/frxADO5.dpk create mode 100644 official/4.2/Source/ADO/frxADO5.res create mode 100644 official/4.2/Source/ADO/frxADO6.bpk create mode 100644 official/4.2/Source/ADO/frxADO6.cpp create mode 100644 official/4.2/Source/ADO/frxADO6.dpk create mode 100644 official/4.2/Source/ADO/frxADO6.res create mode 100644 official/4.2/Source/ADO/frxADO7.dpk create mode 100644 official/4.2/Source/ADO/frxADO9.bdsproj create mode 100644 official/4.2/Source/ADO/frxADO9.dpk create mode 100644 official/4.2/Source/ADO/frxADOComponents.pas create mode 100644 official/4.2/Source/ADO/frxADOEditor.pas create mode 100644 official/4.2/Source/ADO/frxADORTTI.pas create mode 100644 official/4.2/Source/ADO/frxADOReg.dcr create mode 100644 official/4.2/Source/ADO/frxADOReg.pas create mode 100644 official/4.2/Source/BDE/dclfrxBDE10.bdsproj create mode 100644 official/4.2/Source/BDE/dclfrxBDE10.dpk create mode 100644 official/4.2/Source/BDE/dclfrxBDE11.bdsproj create mode 100644 official/4.2/Source/BDE/dclfrxBDE11.dpk create mode 100644 official/4.2/Source/BDE/dclfrxBDE4.dpk create mode 100644 official/4.2/Source/BDE/dclfrxBDE5.dpk create mode 100644 official/4.2/Source/BDE/dclfrxBDE6.dpk create mode 100644 official/4.2/Source/BDE/dclfrxBDE7.dpk create mode 100644 official/4.2/Source/BDE/dclfrxBDE9.bdsproj create mode 100644 official/4.2/Source/BDE/dclfrxBDE9.dpk create mode 100644 official/4.2/Source/BDE/frxBDE10.bdsproj create mode 100644 official/4.2/Source/BDE/frxBDE10.dpk create mode 100644 official/4.2/Source/BDE/frxBDE11.bdsproj create mode 100644 official/4.2/Source/BDE/frxBDE11.dpk create mode 100644 official/4.2/Source/BDE/frxBDE4.bpk create mode 100644 official/4.2/Source/BDE/frxBDE4.cpp create mode 100644 official/4.2/Source/BDE/frxBDE4.dpk create mode 100644 official/4.2/Source/BDE/frxBDE4.res create mode 100644 official/4.2/Source/BDE/frxBDE5.bpk create mode 100644 official/4.2/Source/BDE/frxBDE5.cpp create mode 100644 official/4.2/Source/BDE/frxBDE5.dpk create mode 100644 official/4.2/Source/BDE/frxBDE5.res create mode 100644 official/4.2/Source/BDE/frxBDE6.bpk create mode 100644 official/4.2/Source/BDE/frxBDE6.cpp create mode 100644 official/4.2/Source/BDE/frxBDE6.dpk create mode 100644 official/4.2/Source/BDE/frxBDE6.res create mode 100644 official/4.2/Source/BDE/frxBDE7.dpk create mode 100644 official/4.2/Source/BDE/frxBDE9.bdsproj create mode 100644 official/4.2/Source/BDE/frxBDE9.dpk create mode 100644 official/4.2/Source/BDE/frxBDEComponents.pas create mode 100644 official/4.2/Source/BDE/frxBDEEditor.pas create mode 100644 official/4.2/Source/BDE/frxBDERTTI.pas create mode 100644 official/4.2/Source/BDE/frxBDEReg.dcr create mode 100644 official/4.2/Source/BDE/frxBDEReg.pas create mode 100644 official/4.2/Source/ClientServer/FRXCS10.DPK create mode 100644 official/4.2/Source/ClientServer/FRXCS11.DPK create mode 100644 official/4.2/Source/ClientServer/FRXCS9.DPK create mode 100644 official/4.2/Source/ClientServer/dclfrxcs10.bdsproj create mode 100644 official/4.2/Source/ClientServer/dclfrxcs10.dpk create mode 100644 official/4.2/Source/ClientServer/dclfrxcs11.bdsproj create mode 100644 official/4.2/Source/ClientServer/dclfrxcs11.dpk create mode 100644 official/4.2/Source/ClientServer/dclfrxcs4.dpk create mode 100644 official/4.2/Source/ClientServer/dclfrxcs5.dpk create mode 100644 official/4.2/Source/ClientServer/dclfrxcs6.dpk create mode 100644 official/4.2/Source/ClientServer/dclfrxcs7.dpk create mode 100644 official/4.2/Source/ClientServer/dclfrxcs9.bdsproj create mode 100644 official/4.2/Source/ClientServer/dclfrxcs9.dpk create mode 100644 official/4.2/Source/ClientServer/frxCGIClient.pas create mode 100644 official/4.2/Source/ClientServer/frxHTTPClient.pas create mode 100644 official/4.2/Source/ClientServer/frxMD5.pas create mode 100644 official/4.2/Source/ClientServer/frxRegCS.dcr create mode 100644 official/4.2/Source/ClientServer/frxRegCS.pas create mode 100644 official/4.2/Source/ClientServer/frxServer.pas create mode 100644 official/4.2/Source/ClientServer/frxServerCache.pas create mode 100644 official/4.2/Source/ClientServer/frxServerClient.pas create mode 100644 official/4.2/Source/ClientServer/frxServerConfig.pas create mode 100644 official/4.2/Source/ClientServer/frxServerConfig.res create mode 100644 official/4.2/Source/ClientServer/frxServerFormControls.pas create mode 100644 official/4.2/Source/ClientServer/frxServerForms.pas create mode 100644 official/4.2/Source/ClientServer/frxServerLog.pas create mode 100644 official/4.2/Source/ClientServer/frxServerReports.pas create mode 100644 official/4.2/Source/ClientServer/frxServerReportsList.pas create mode 100644 official/4.2/Source/ClientServer/frxServerSSI.pas create mode 100644 official/4.2/Source/ClientServer/frxServerSessionManager.pas create mode 100644 official/4.2/Source/ClientServer/frxServerStat.pas create mode 100644 official/4.2/Source/ClientServer/frxServerTemplates.pas create mode 100644 official/4.2/Source/ClientServer/frxServerUtils.pas create mode 100644 official/4.2/Source/ClientServer/frxServerVariables.pas create mode 100644 official/4.2/Source/ClientServer/frxServerVersion.inc create mode 100644 official/4.2/Source/ClientServer/frxUsers.pas create mode 100644 official/4.2/Source/ClientServer/frxcs10.bdsproj create mode 100644 official/4.2/Source/ClientServer/frxcs10.res create mode 100644 official/4.2/Source/ClientServer/frxcs11.bdsproj create mode 100644 official/4.2/Source/ClientServer/frxcs4.bpk create mode 100644 official/4.2/Source/ClientServer/frxcs4.cpp create mode 100644 official/4.2/Source/ClientServer/frxcs4.dpk create mode 100644 official/4.2/Source/ClientServer/frxcs4.res create mode 100644 official/4.2/Source/ClientServer/frxcs5.bpk create mode 100644 official/4.2/Source/ClientServer/frxcs5.cpp create mode 100644 official/4.2/Source/ClientServer/frxcs5.dpk create mode 100644 official/4.2/Source/ClientServer/frxcs5.res create mode 100644 official/4.2/Source/ClientServer/frxcs6.bpk create mode 100644 official/4.2/Source/ClientServer/frxcs6.cpp create mode 100644 official/4.2/Source/ClientServer/frxcs6.dpk create mode 100644 official/4.2/Source/ClientServer/frxcs6.res create mode 100644 official/4.2/Source/ClientServer/frxcs7.dpk create mode 100644 official/4.2/Source/ClientServer/frxcs7.res create mode 100644 official/4.2/Source/ClientServer/frxcs9.bdsproj create mode 100644 official/4.2/Source/ClientServer/frxcs9.res create mode 100644 official/4.2/Source/DBX/dclfrxDBX10.bdsproj create mode 100644 official/4.2/Source/DBX/dclfrxDBX10.dpk create mode 100644 official/4.2/Source/DBX/dclfrxDBX11.bdsproj create mode 100644 official/4.2/Source/DBX/dclfrxDBX11.dpk create mode 100644 official/4.2/Source/DBX/dclfrxDBX6.dpk create mode 100644 official/4.2/Source/DBX/dclfrxDBX7.dpk create mode 100644 official/4.2/Source/DBX/dclfrxDBX9.bdsproj create mode 100644 official/4.2/Source/DBX/dclfrxDBX9.dpk create mode 100644 official/4.2/Source/DBX/frxDBX10.bdsproj create mode 100644 official/4.2/Source/DBX/frxDBX10.dpk create mode 100644 official/4.2/Source/DBX/frxDBX11.bdsproj create mode 100644 official/4.2/Source/DBX/frxDBX11.dpk create mode 100644 official/4.2/Source/DBX/frxDBX6.bpk create mode 100644 official/4.2/Source/DBX/frxDBX6.cpp create mode 100644 official/4.2/Source/DBX/frxDBX6.dpk create mode 100644 official/4.2/Source/DBX/frxDBX6.res create mode 100644 official/4.2/Source/DBX/frxDBX7.dpk create mode 100644 official/4.2/Source/DBX/frxDBX9.bdsproj create mode 100644 official/4.2/Source/DBX/frxDBX9.dpk create mode 100644 official/4.2/Source/DBX/frxDBXComponents.pas create mode 100644 official/4.2/Source/DBX/frxDBXEditor.pas create mode 100644 official/4.2/Source/DBX/frxDBXRTTI.pas create mode 100644 official/4.2/Source/DBX/frxDBXReg.dcr create mode 100644 official/4.2/Source/DBX/frxDBXReg.pas create mode 100644 official/4.2/Source/ExportPack/DCLFRXE10.DPK create mode 100644 official/4.2/Source/ExportPack/DCLFRXE11.DPK create mode 100644 official/4.2/Source/ExportPack/DCLFRXE9.DPK create mode 100644 official/4.2/Source/ExportPack/FRXE10.DPK create mode 100644 official/4.2/Source/ExportPack/FRXE11.DPK create mode 100644 official/4.2/Source/ExportPack/FRXE7.RES create mode 100644 official/4.2/Source/ExportPack/FRXE9.DPK create mode 100644 official/4.2/Source/ExportPack/FRXE9.RES create mode 100644 official/4.2/Source/ExportPack/dclfrxe10.bdsproj create mode 100644 official/4.2/Source/ExportPack/dclfrxe11.bdsproj create mode 100644 official/4.2/Source/ExportPack/dclfrxe4.dpk create mode 100644 official/4.2/Source/ExportPack/dclfrxe5.dpk create mode 100644 official/4.2/Source/ExportPack/dclfrxe6.dpk create mode 100644 official/4.2/Source/ExportPack/dclfrxe7.dpk create mode 100644 official/4.2/Source/ExportPack/dclfrxe9.bdsproj create mode 100644 official/4.2/Source/ExportPack/frxExportCSV.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportCSV.pas create mode 100644 official/4.2/Source/ExportPack/frxExportHTML.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportHTML.pas create mode 100644 official/4.2/Source/ExportPack/frxExportImage.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportImage.pas create mode 100644 official/4.2/Source/ExportPack/frxExportMail.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportMail.pas create mode 100644 official/4.2/Source/ExportPack/frxExportMatrix.pas create mode 100644 official/4.2/Source/ExportPack/frxExportODF.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportODF.pas create mode 100644 official/4.2/Source/ExportPack/frxExportPDF.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportPDF.pas create mode 100644 official/4.2/Source/ExportPack/frxExportRTF.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportRTF.pas create mode 100644 official/4.2/Source/ExportPack/frxExportTXT.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportTXT.pas create mode 100644 official/4.2/Source/ExportPack/frxExportText.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportText.pas create mode 100644 official/4.2/Source/ExportPack/frxExportTxtPrn.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportTxtPrn.pas create mode 100644 official/4.2/Source/ExportPack/frxExportXLS.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportXLS.pas create mode 100644 official/4.2/Source/ExportPack/frxExportXML.dfm create mode 100644 official/4.2/Source/ExportPack/frxExportXML.pas create mode 100644 official/4.2/Source/ExportPack/frxFileUtils.pas create mode 100644 official/4.2/Source/ExportPack/frxNetUtils.pas create mode 100644 official/4.2/Source/ExportPack/frxPDFFile.pas create mode 100644 official/4.2/Source/ExportPack/frxSMTP.pas create mode 100644 official/4.2/Source/ExportPack/frxZip.pas create mode 100644 official/4.2/Source/ExportPack/frxe10.bdsproj create mode 100644 official/4.2/Source/ExportPack/frxe11.bdsproj create mode 100644 official/4.2/Source/ExportPack/frxe4.bpk create mode 100644 official/4.2/Source/ExportPack/frxe4.cpp create mode 100644 official/4.2/Source/ExportPack/frxe4.dpk create mode 100644 official/4.2/Source/ExportPack/frxe4.res create mode 100644 official/4.2/Source/ExportPack/frxe5.bpk create mode 100644 official/4.2/Source/ExportPack/frxe5.cpp create mode 100644 official/4.2/Source/ExportPack/frxe5.dpk create mode 100644 official/4.2/Source/ExportPack/frxe5.res create mode 100644 official/4.2/Source/ExportPack/frxe6.bpk create mode 100644 official/4.2/Source/ExportPack/frxe6.cpp create mode 100644 official/4.2/Source/ExportPack/frxe6.dpk create mode 100644 official/4.2/Source/ExportPack/frxe6.res create mode 100644 official/4.2/Source/ExportPack/frxe7.dpk create mode 100644 official/4.2/Source/ExportPack/frxe9.bdsproj create mode 100644 official/4.2/Source/ExportPack/frxeReg.dcr create mode 100644 official/4.2/Source/ExportPack/frxeReg.pas create mode 100644 official/4.2/Source/ExportPack/frxrcExports.pas create mode 100644 official/4.2/Source/FIB/dclfrxFIB10.bdsproj create mode 100644 official/4.2/Source/FIB/dclfrxFIB10.dpk create mode 100644 official/4.2/Source/FIB/dclfrxFIB11.bdsproj create mode 100644 official/4.2/Source/FIB/dclfrxFIB11.dpk create mode 100644 official/4.2/Source/FIB/dclfrxFIB5.dpk create mode 100644 official/4.2/Source/FIB/dclfrxFIB6.dpk create mode 100644 official/4.2/Source/FIB/dclfrxFIB7.dpk create mode 100644 official/4.2/Source/FIB/dclfrxFIB9.bdsproj create mode 100644 official/4.2/Source/FIB/dclfrxFIB9.dpk create mode 100644 official/4.2/Source/FIB/frxFIB5.bpk create mode 100644 official/4.2/Source/FIB/frxFIB5.cpp create mode 100644 official/4.2/Source/FIB/frxFIB5.dpk create mode 100644 official/4.2/Source/FIB/frxFIB5.res create mode 100644 official/4.2/Source/FIB/frxFIB6.bpk create mode 100644 official/4.2/Source/FIB/frxFIB6.cpp create mode 100644 official/4.2/Source/FIB/frxFIB6.dpk create mode 100644 official/4.2/Source/FIB/frxFIB6.res create mode 100644 official/4.2/Source/FIB/frxFIB7.dpk create mode 100644 official/4.2/Source/FIB/frxFIBComponents.pas create mode 100644 official/4.2/Source/FIB/frxFIBEditor.pas create mode 100644 official/4.2/Source/FIB/frxFIBRTTI.pas create mode 100644 official/4.2/Source/FIB/frxFIBReg.dcr create mode 100644 official/4.2/Source/FIB/frxFIBReg.pas create mode 100644 official/4.2/Source/FIB/frxFib10.dpk create mode 100644 official/4.2/Source/FIB/frxFib11.dpk create mode 100644 official/4.2/Source/FIB/frxFib9.dpk create mode 100644 official/4.2/Source/IBX/dclfrxIBX10.bdsproj create mode 100644 official/4.2/Source/IBX/dclfrxIBX10.dpk create mode 100644 official/4.2/Source/IBX/dclfrxIBX11.bdsproj create mode 100644 official/4.2/Source/IBX/dclfrxIBX11.dpk create mode 100644 official/4.2/Source/IBX/dclfrxIBX5.dpk create mode 100644 official/4.2/Source/IBX/dclfrxIBX6.dpk create mode 100644 official/4.2/Source/IBX/dclfrxIBX7.dpk create mode 100644 official/4.2/Source/IBX/dclfrxIBX9.bdsproj create mode 100644 official/4.2/Source/IBX/dclfrxIBX9.dpk create mode 100644 official/4.2/Source/IBX/frxIBX10.bdsproj create mode 100644 official/4.2/Source/IBX/frxIBX10.dpk create mode 100644 official/4.2/Source/IBX/frxIBX11.bdsproj create mode 100644 official/4.2/Source/IBX/frxIBX11.dpk create mode 100644 official/4.2/Source/IBX/frxIBX5.bpk create mode 100644 official/4.2/Source/IBX/frxIBX5.cpp create mode 100644 official/4.2/Source/IBX/frxIBX5.dpk create mode 100644 official/4.2/Source/IBX/frxIBX5.res create mode 100644 official/4.2/Source/IBX/frxIBX6.bpk create mode 100644 official/4.2/Source/IBX/frxIBX6.cpp create mode 100644 official/4.2/Source/IBX/frxIBX6.dpk create mode 100644 official/4.2/Source/IBX/frxIBX6.res create mode 100644 official/4.2/Source/IBX/frxIBX7.dpk create mode 100644 official/4.2/Source/IBX/frxIBX9.bdsproj create mode 100644 official/4.2/Source/IBX/frxIBX9.dpk create mode 100644 official/4.2/Source/IBX/frxIBXComponents.pas create mode 100644 official/4.2/Source/IBX/frxIBXEditor.pas create mode 100644 official/4.2/Source/IBX/frxIBXRTTI.pas create mode 100644 official/4.2/Source/IBX/frxIBXReg.dcr create mode 100644 official/4.2/Source/IBX/frxIBXReg.pas create mode 100644 official/4.2/Source/adler32.zobj create mode 100644 official/4.2/Source/compress.zobj create mode 100644 official/4.2/Source/crc32.zobj create mode 100644 official/4.2/Source/dclfrx10.bdsproj create mode 100644 official/4.2/Source/dclfrx10.dpk create mode 100644 official/4.2/Source/dclfrx11.bdsproj create mode 100644 official/4.2/Source/dclfrx11.dpk create mode 100644 official/4.2/Source/dclfrx4.dpk create mode 100644 official/4.2/Source/dclfrx5.dpk create mode 100644 official/4.2/Source/dclfrx6.dpk create mode 100644 official/4.2/Source/dclfrx7.dpk create mode 100644 official/4.2/Source/dclfrx9.bdsproj create mode 100644 official/4.2/Source/dclfrx9.dpk create mode 100644 official/4.2/Source/dclfrxDB10.bdsproj create mode 100644 official/4.2/Source/dclfrxDB10.dpk create mode 100644 official/4.2/Source/dclfrxDB11.bdsproj create mode 100644 official/4.2/Source/dclfrxDB11.dpk create mode 100644 official/4.2/Source/dclfrxDB4.dpk create mode 100644 official/4.2/Source/dclfrxDB5.dpk create mode 100644 official/4.2/Source/dclfrxDB6.dpk create mode 100644 official/4.2/Source/dclfrxDB7.dpk create mode 100644 official/4.2/Source/dclfrxDB9.bdsproj create mode 100644 official/4.2/Source/dclfrxDB9.dpk create mode 100644 official/4.2/Source/dclfrxIBO4.dpk create mode 100644 official/4.2/Source/dclfrxIBO5.dpk create mode 100644 official/4.2/Source/dclfrxIBO6.dpk create mode 100644 official/4.2/Source/dclfrxIBO7.dpk create mode 100644 official/4.2/Source/dclfrxTee10.bdsproj create mode 100644 official/4.2/Source/dclfrxTee10.dpk create mode 100644 official/4.2/Source/dclfrxTee11.bdsproj create mode 100644 official/4.2/Source/dclfrxTee11.dpk create mode 100644 official/4.2/Source/dclfrxTee4.dpk create mode 100644 official/4.2/Source/dclfrxTee5.dpk create mode 100644 official/4.2/Source/dclfrxTee6.dpk create mode 100644 official/4.2/Source/dclfrxTee7.dpk create mode 100644 official/4.2/Source/dclfrxTee9.bdsproj create mode 100644 official/4.2/Source/dclfrxTee9.dpk create mode 100644 official/4.2/Source/deflate.zobj create mode 100644 official/4.2/Source/frx.inc create mode 100644 official/4.2/Source/frx10.bdsproj create mode 100644 official/4.2/Source/frx10.dpk create mode 100644 official/4.2/Source/frx11.bdsproj create mode 100644 official/4.2/Source/frx11.dpk create mode 100644 official/4.2/Source/frx2xto30.pas create mode 100644 official/4.2/Source/frx4.bpk create mode 100644 official/4.2/Source/frx4.cpp create mode 100644 official/4.2/Source/frx4.dpk create mode 100644 official/4.2/Source/frx4.res create mode 100644 official/4.2/Source/frx5.bpk create mode 100644 official/4.2/Source/frx5.cpp create mode 100644 official/4.2/Source/frx5.dpk create mode 100644 official/4.2/Source/frx5.res create mode 100644 official/4.2/Source/frx6.bpk create mode 100644 official/4.2/Source/frx6.cpp create mode 100644 official/4.2/Source/frx6.dpk create mode 100644 official/4.2/Source/frx6.res create mode 100644 official/4.2/Source/frx7.dpk create mode 100644 official/4.2/Source/frx9.bdsproj create mode 100644 official/4.2/Source/frx9.dpk create mode 100644 official/4.2/Source/frxAbout.dfm create mode 100644 official/4.2/Source/frxAbout.pas create mode 100644 official/4.2/Source/frxAdoWizard.dfm create mode 100644 official/4.2/Source/frxAdoWizard.pas create mode 100644 official/4.2/Source/frxAdoWizard.res create mode 100644 official/4.2/Source/frxAggregate.pas create mode 100644 official/4.2/Source/frxBarcod.pas create mode 100644 official/4.2/Source/frxBarcode.pas create mode 100644 official/4.2/Source/frxBarcodeEditor.dfm create mode 100644 official/4.2/Source/frxBarcodeEditor.pas create mode 100644 official/4.2/Source/frxBarcodeRTTI.pas create mode 100644 official/4.2/Source/frxChBox.pas create mode 100644 official/4.2/Source/frxChBoxRTTI.pas create mode 100644 official/4.2/Source/frxChart.pas create mode 100644 official/4.2/Source/frxChartEditor.dfm create mode 100644 official/4.2/Source/frxChartEditor.pas create mode 100644 official/4.2/Source/frxChartHelpers.pas create mode 100644 official/4.2/Source/frxChartRTTI.pas create mode 100644 official/4.2/Source/frxChm.pas create mode 100644 official/4.2/Source/frxClass.pas create mode 100644 official/4.2/Source/frxClass.res create mode 100644 official/4.2/Source/frxClassRTTI.pas create mode 100644 official/4.2/Source/frxCodeUtils.pas create mode 100644 official/4.2/Source/frxConnEditor.dfm create mode 100644 official/4.2/Source/frxConnEditor.pas create mode 100644 official/4.2/Source/frxConnWizard.dfm create mode 100644 official/4.2/Source/frxConnWizard.pas create mode 100644 official/4.2/Source/frxConnWizard.res create mode 100644 official/4.2/Source/frxCross.pas create mode 100644 official/4.2/Source/frxCrossEditor.dfm create mode 100644 official/4.2/Source/frxCrossEditor.pas create mode 100644 official/4.2/Source/frxCrossRTTI.pas create mode 100644 official/4.2/Source/frxCrypt.pas create mode 100644 official/4.2/Source/frxCtrls.pas create mode 100644 official/4.2/Source/frxCtrls.res create mode 100644 official/4.2/Source/frxCustomDB.pas create mode 100644 official/4.2/Source/frxCustomDBEditor.pas create mode 100644 official/4.2/Source/frxCustomDBRTTI.pas create mode 100644 official/4.2/Source/frxCustomEditors.pas create mode 100644 official/4.2/Source/frxDB10.bdsproj create mode 100644 official/4.2/Source/frxDB10.dpk create mode 100644 official/4.2/Source/frxDB11.bdsproj create mode 100644 official/4.2/Source/frxDB11.dpk create mode 100644 official/4.2/Source/frxDB4.bpk create mode 100644 official/4.2/Source/frxDB4.cpp create mode 100644 official/4.2/Source/frxDB4.dpk create mode 100644 official/4.2/Source/frxDB5.bpk create mode 100644 official/4.2/Source/frxDB5.cpp create mode 100644 official/4.2/Source/frxDB5.dpk create mode 100644 official/4.2/Source/frxDB6.bpk create mode 100644 official/4.2/Source/frxDB6.cpp create mode 100644 official/4.2/Source/frxDB6.dpk create mode 100644 official/4.2/Source/frxDB7.dpk create mode 100644 official/4.2/Source/frxDB9.bdsproj create mode 100644 official/4.2/Source/frxDB9.dpk create mode 100644 official/4.2/Source/frxDBSet.pas create mode 100644 official/4.2/Source/frxDCtrl.pas create mode 100644 official/4.2/Source/frxDCtrlRTTI.pas create mode 100644 official/4.2/Source/frxDMPClass.pas create mode 100644 official/4.2/Source/frxDMPExport.dfm create mode 100644 official/4.2/Source/frxDMPExport.pas create mode 100644 official/4.2/Source/frxDataTree.dfm create mode 100644 official/4.2/Source/frxDataTree.pas create mode 100644 official/4.2/Source/frxDesgn.dfm create mode 100644 official/4.2/Source/frxDesgn.inc create mode 100644 official/4.2/Source/frxDesgn.pas create mode 100644 official/4.2/Source/frxDesgn.res create mode 100644 official/4.2/Source/frxDesgnCtrls.pas create mode 100644 official/4.2/Source/frxDesgnEditors.pas create mode 100644 official/4.2/Source/frxDesgnIcon.res create mode 100644 official/4.2/Source/frxDesgnWorkspace.pas create mode 100644 official/4.2/Source/frxDesgnWorkspace.res create mode 100644 official/4.2/Source/frxDesgnWorkspace1.pas create mode 100644 official/4.2/Source/frxDialogForm.dfm create mode 100644 official/4.2/Source/frxDialogForm.pas create mode 100644 official/4.2/Source/frxDock.dfm create mode 100644 official/4.2/Source/frxDock.pas create mode 100644 official/4.2/Source/frxDsgnIntf.pas create mode 100644 official/4.2/Source/frxEditAliases.dfm create mode 100644 official/4.2/Source/frxEditAliases.pas create mode 100644 official/4.2/Source/frxEditDataBand.dfm create mode 100644 official/4.2/Source/frxEditDataBand.pas create mode 100644 official/4.2/Source/frxEditExpr.dfm create mode 100644 official/4.2/Source/frxEditExpr.pas create mode 100644 official/4.2/Source/frxEditFormat.dfm create mode 100644 official/4.2/Source/frxEditFormat.pas create mode 100644 official/4.2/Source/frxEditFrame.dfm create mode 100644 official/4.2/Source/frxEditFrame.pas create mode 100644 official/4.2/Source/frxEditGroup.dfm create mode 100644 official/4.2/Source/frxEditGroup.pas create mode 100644 official/4.2/Source/frxEditHighlight.dfm create mode 100644 official/4.2/Source/frxEditHighlight.pas create mode 100644 official/4.2/Source/frxEditMD.dfm create mode 100644 official/4.2/Source/frxEditMD.pas create mode 100644 official/4.2/Source/frxEditMemo.dfm create mode 100644 official/4.2/Source/frxEditMemo.pas create mode 100644 official/4.2/Source/frxEditOptions.dfm create mode 100644 official/4.2/Source/frxEditOptions.pas create mode 100644 official/4.2/Source/frxEditPage.dfm create mode 100644 official/4.2/Source/frxEditPage.pas create mode 100644 official/4.2/Source/frxEditPicture.dfm create mode 100644 official/4.2/Source/frxEditPicture.pas create mode 100644 official/4.2/Source/frxEditQueryParams.dfm create mode 100644 official/4.2/Source/frxEditQueryParams.pas create mode 100644 official/4.2/Source/frxEditReport.dfm create mode 100644 official/4.2/Source/frxEditReport.pas create mode 100644 official/4.2/Source/frxEditReportData.dfm create mode 100644 official/4.2/Source/frxEditReportData.pas create mode 100644 official/4.2/Source/frxEditSQL.dfm create mode 100644 official/4.2/Source/frxEditSQL.inc create mode 100644 official/4.2/Source/frxEditSQL.pas create mode 100644 official/4.2/Source/frxEditStrings.dfm create mode 100644 official/4.2/Source/frxEditStrings.pas create mode 100644 official/4.2/Source/frxEditStyle.dfm create mode 100644 official/4.2/Source/frxEditStyle.pas create mode 100644 official/4.2/Source/frxEditSysMemo.dfm create mode 100644 official/4.2/Source/frxEditSysMemo.pas create mode 100644 official/4.2/Source/frxEditTabOrder.dfm create mode 100644 official/4.2/Source/frxEditTabOrder.pas create mode 100644 official/4.2/Source/frxEditVar.dfm create mode 100644 official/4.2/Source/frxEditVar.pas create mode 100644 official/4.2/Source/frxEngine.pas create mode 100644 official/4.2/Source/frxEvaluateForm.dfm create mode 100644 official/4.2/Source/frxEvaluateForm.pas create mode 100644 official/4.2/Source/frxGZip.pas create mode 100644 official/4.2/Source/frxGradient.pas create mode 100644 official/4.2/Source/frxGradientRTTI.pas create mode 100644 official/4.2/Source/frxGraphicUtils.pas create mode 100644 official/4.2/Source/frxIBO4.bpk create mode 100644 official/4.2/Source/frxIBO4.cpp create mode 100644 official/4.2/Source/frxIBO4.dpk create mode 100644 official/4.2/Source/frxIBO5.bpk create mode 100644 official/4.2/Source/frxIBO5.cpp create mode 100644 official/4.2/Source/frxIBO5.dpk create mode 100644 official/4.2/Source/frxIBO6.bpk create mode 100644 official/4.2/Source/frxIBO6.cpp create mode 100644 official/4.2/Source/frxIBO6.dpk create mode 100644 official/4.2/Source/frxIBO7.dpk create mode 100644 official/4.2/Source/frxIBOSet.pas create mode 100644 official/4.2/Source/frxInheritError.dfm create mode 100644 official/4.2/Source/frxInheritError.pas create mode 100644 official/4.2/Source/frxInsp.dfm create mode 100644 official/4.2/Source/frxInsp.pas create mode 100644 official/4.2/Source/frxNewItem.dfm create mode 100644 official/4.2/Source/frxNewItem.pas create mode 100644 official/4.2/Source/frxOLE.pas create mode 100644 official/4.2/Source/frxOLEEditor.dfm create mode 100644 official/4.2/Source/frxOLEEditor.pas create mode 100644 official/4.2/Source/frxOLERTTI.pas create mode 100644 official/4.2/Source/frxPBarcode.pas create mode 100644 official/4.2/Source/frxPBarcodeEditor.dfm create mode 100644 official/4.2/Source/frxPBarcodeEditor.pas create mode 100644 official/4.2/Source/frxPBarcodeRTTI.pas create mode 100644 official/4.2/Source/frxPassw.dfm create mode 100644 official/4.2/Source/frxPassw.pas create mode 100644 official/4.2/Source/frxPictureCache.pas create mode 100644 official/4.2/Source/frxPopupForm.dfm create mode 100644 official/4.2/Source/frxPopupForm.pas create mode 100644 official/4.2/Source/frxPreview.dfm create mode 100644 official/4.2/Source/frxPreview.pas create mode 100644 official/4.2/Source/frxPreview.res create mode 100644 official/4.2/Source/frxPreviewPageSettings.dfm create mode 100644 official/4.2/Source/frxPreviewPageSettings.pas create mode 100644 official/4.2/Source/frxPreviewPages.pas create mode 100644 official/4.2/Source/frxPrintDialog.dfm create mode 100644 official/4.2/Source/frxPrintDialog.pas create mode 100644 official/4.2/Source/frxPrinter.pas create mode 100644 official/4.2/Source/frxProgress.dfm create mode 100644 official/4.2/Source/frxProgress.pas create mode 100644 official/4.2/Source/frxReg.dcr create mode 100644 official/4.2/Source/frxReg.pas create mode 100644 official/4.2/Source/frxRegDB.pas create mode 100644 official/4.2/Source/frxRegIBO.pas create mode 100644 official/4.2/Source/frxRegTee.pas create mode 100644 official/4.2/Source/frxReportTree.dfm create mode 100644 official/4.2/Source/frxReportTree.pas create mode 100644 official/4.2/Source/frxRes.pas create mode 100644 official/4.2/Source/frxRich.pas create mode 100644 official/4.2/Source/frxRichEdit.pas create mode 100644 official/4.2/Source/frxRichEditor.dfm create mode 100644 official/4.2/Source/frxRichEditor.pas create mode 100644 official/4.2/Source/frxRichRTTI.pas create mode 100644 official/4.2/Source/frxSearchDialog.dfm create mode 100644 official/4.2/Source/frxSearchDialog.pas create mode 100644 official/4.2/Source/frxStdWizard.dfm create mode 100644 official/4.2/Source/frxStdWizard.pas create mode 100644 official/4.2/Source/frxStdWizard.res create mode 100644 official/4.2/Source/frxSynMemo.pas create mode 100644 official/4.2/Source/frxTee10.bdsproj create mode 100644 official/4.2/Source/frxTee10.dpk create mode 100644 official/4.2/Source/frxTee11.bdsproj create mode 100644 official/4.2/Source/frxTee11.dpk create mode 100644 official/4.2/Source/frxTee4.bpk create mode 100644 official/4.2/Source/frxTee4.cpp create mode 100644 official/4.2/Source/frxTee4.dpk create mode 100644 official/4.2/Source/frxTee5.bpk create mode 100644 official/4.2/Source/frxTee5.cpp create mode 100644 official/4.2/Source/frxTee5.dpk create mode 100644 official/4.2/Source/frxTee6.bpk create mode 100644 official/4.2/Source/frxTee6.cpp create mode 100644 official/4.2/Source/frxTee6.dpk create mode 100644 official/4.2/Source/frxTee7.dpk create mode 100644 official/4.2/Source/frxTee9.bdsproj create mode 100644 official/4.2/Source/frxTee9.dpk create mode 100644 official/4.2/Source/frxUnicodeCtrls.pas create mode 100644 official/4.2/Source/frxUnicodeUtils.pas create mode 100644 official/4.2/Source/frxUtils.pas create mode 100644 official/4.2/Source/frxVariables.pas create mode 100644 official/4.2/Source/frxVersion.inc create mode 100644 official/4.2/Source/frxWatchForm.dfm create mode 100644 official/4.2/Source/frxWatchForm.pas create mode 100644 official/4.2/Source/frxXML.pas create mode 100644 official/4.2/Source/frxXMLSerializer.pas create mode 100644 official/4.2/Source/frxZLib.pas create mode 100644 official/4.2/Source/frxeReg.dcr create mode 100644 official/4.2/Source/frxrcClass.pas create mode 100644 official/4.2/Source/frxrcDesgn.pas create mode 100644 official/4.2/Source/frxrcInsp.pas create mode 100644 official/4.2/Source/infback.zobj create mode 100644 official/4.2/Source/inffast.zobj create mode 100644 official/4.2/Source/inflate.zobj create mode 100644 official/4.2/Source/inftrees.zobj create mode 100644 official/4.2/Source/pngimage.pas create mode 100644 official/4.2/Source/pnglang.pas create mode 100644 official/4.2/Source/printers.xml create mode 100644 official/4.2/Source/rc_AlgRef.pas create mode 100644 official/4.2/Source/rc_ApiRef.pas create mode 100644 official/4.2/Source/rc_Crypt.pas create mode 100644 official/4.2/Source/tee.inc create mode 100644 official/4.2/Source/trees.zobj create mode 100644 official/4.2/Source/wizstyle.xml create mode 100644 official/4.2/changes.txt create mode 100644 official/4.2/changes_rus.txt create mode 100644 official/4.2/comp_developers.txt create mode 100644 official/4.2/comp_developers_rus.txt create mode 100644 official/4.2/compatibility.txt create mode 100644 official/4.2/compatibility_rus.txt create mode 100644 official/4.2/file_id.diz create mode 100644 official/4.2/frx_icon.ico create mode 100644 official/4.2/install.txt create mode 100644 official/4.2/install_rus.txt create mode 100644 official/4.2/license.rtf create mode 100644 official/4.2/license_rus.rtf create mode 100644 official/4.2/readme.rtf create mode 100644 official/4.2/readme_rus.rtf create mode 100644 official/4.2/recompile.exe create mode 100644 official/4.2/teechart.txt create mode 100644 official/4.2/teechart_rus.txt diff --git a/official/4.2/Dealers.rus.txt b/official/4.2/Dealers.rus.txt new file mode 100644 index 0000000..df6e733 --- /dev/null +++ b/official/4.2/Dealers.rus.txt @@ -0,0 +1,135 @@ +Дилеры + + Россия + +ЗАО "Софткей" + + Жители России, Украины, Белоруссии, Казахстана, Эстонии, Литвы, Латвии, Болгарии, Польши, Израиля могут приобретать лицензии у крупнейшего регистратора СНГ - ЗАО "Софткей" и оплатить их в местной валюте. + +129626, Россия, г. Москва, ул. Староалексеевская, д. 21, стр. 11, офис 411 Тел./факс (095) 775-1286 (многоканальный), (095) 991-7693 + +www.softkey.ru + + +ООО "Айбэйз", Москва + + ООО "Айбэйз" (iBase) +Россия, Москва, 1-ый Новокузнецкий переулок, д. 10, п. 2, к. 1. +тел (095) 953-13-34 +http://shop.ibase.ru/russia.htm +sales@ibase.ru + + +ООО "Сфера" + + ООО "Сфера" +Россия, Самара, ул. Арцыбушевская, 13, 4 этаж +тел (8462) 72-57-56 +http://www.sphere-ltd.ru +info@sphere-ltd.ru + + +компания "СофтЛайн", Москва + + Allsoft.ru +E-mail:info@allsoft.ru +119991, г. Москва, ул. Губкина, д. 8, компания "СофтЛайн" +Тел.: 8-800-200-2233 + + +ООО "Программ плюс" + + ООО "Программ плюс" +тел.: (0932) 41-18-53 +e-mail: plus@kodeks37.ru +сайт: www.vcl-soft.ru +Адрес: +153000, г. Иваново +ул. Почтовая,6-А, офис 105 + + + +ООО "ЮСК:Дистрибьюция" + +тел.: (863) 236-0483 +факс: (863) 236-8383 +e-mail: info@uskd.ru +сайт: www.uskd.ru www.softcatalog.ru +Адреса: +400000, Волгоград, Профсоюзная, 12 +350000, Краснодар, Селезнева, 84 +355000, Ставрополь, Доваторцев, 57/1 +344004, Ростов-на-Дону, 2-я Володарского, 76/23а + + +Украина + +"Десктоп-Софт" + +контактное лицо: Виталий Лысенко; +тел./факс: 0522-29-51-42 +e-mail: vlysenko@dswsoft.com + + +ООО "СОФТПРОМ" + +тел./факс (044)242-53-00, +zhdan@softprom.com +http://www.softprom.com + + +"I.T. Pro" Ltd. + + 03039, Kiev +av.40 let Oktyabrya 50 of.65 +tel.+380 44 258 0528 +tel.+380 44 264 0598 +tel.+380 44 264 4427 +tel.+380 67 502 4800 +tel.+380 97 936 2011 +http://www.itpro.kiev.ua/ + + +ЗАО "Софткей" + + Жители России, Украины, Белоруссии, Казахстана, Эстонии, Литвы, Латвии, Болгарии, Польши, Израиля могут приобретать лицензии у крупнейшего регистратора СНГ - ЗАО "Софткей" и оплатить их в местной валюте. + +129626, Россия, г. Москва, ул. Староалексеевская, д. 21, стр. 11, офис 411 Тел./факс (095) 775-1286 (многоканальный), (095) 991-7693 + +www.softkey.com.ua + + + Беларусь + + ЗАО "Софткей" + + Жители России, Украины, Белоруссии, Казахстана, Эстонии, Литвы, Латвии, Болгарии, Польши, Израиля могут приобретать лицензии у крупнейшего регистратора СНГ - ЗАО "Софткей" и оплатить их в местной валюте. + +129626, Россия, г. Москва, ул. Староалексеевская, д. 21, стр. 11, офис 411 Тел./факс (095) 775-1286 (многоканальный), (095) 991-7693 + +www.softkey.by + + + Туркмения + +Хозяйственное общество "Инфоком" + +744000, Туркменистан, г. Ашгабат, ул. Азади, 65 +тел: (+993 12) 35-79-54, 35-25-76 +contact@in4com.com + + Казахстан + + + ЗАО "Софткей" + + Жители России, Украины, Белоруссии, Казахстана, Эстонии, Литвы, Латвии, Болгарии, Польши, Израиля могут приобретать лицензии у крупнейшего регистратора СНГ - ЗАО "Софткей" и оплатить их в местной валюте. + +129626, Россия, г. Москва, ул. Староалексеевская, д. 21, стр. 11, офис 411 Тел./факс (095) 775-1286 (многоканальный), (095) 991-7693 + +www.softkey.kz + + + + + diff --git a/official/4.2/Dealers.txt b/official/4.2/Dealers.txt new file mode 100644 index 0000000..100b191 --- /dev/null +++ b/official/4.2/Dealers.txt @@ -0,0 +1,405 @@ +Dealers + + 1. United Kingdom + 1.1 QBS Software Ltd + 2. Germany + 2.1 BITA GmbH + 2.2 HK-Software + 3. Austria + 3.1 BITA GmbH + 4. Switzerland + 4.1 BITA GmbH + 5. Poland + 5.1 WebKomp + 5.2 Przedsiebiorstwo Komputerowo Obliczeniowe + 5.3 JSC "SoftKey" + 6. Czech + 6.1 Petr Zahradnik, Computer Laboratory + 6.2 HTK Pro s.r.o. + 7. Slovak + 7.1 HTK Pro s.r.o. + 8. Brazil + 8.1 EXPERTNET + 8.2 PRMAS SYSTEM + 9. South Korea + 9.1 DevTools Inc. + 9.2 Buysoft Inc. + 10. Taiwan, R.O.C. + 10.1 Crispin, Chen + 11. China + 11.1 Nora Xu + 11.2 CSTSOFT + 11.3 Chongqing Huidu Technology Co., Ltd. + 12. Nederland + 12.1 FastReport ook in Nederland verkrijgbaar + 13. Lithuania + 13.1 JSC "SoftKey" + 14. Latvia + 14.1 JSC "SoftKey" + 15. Estonia + 15.1 JSC "SoftKey" + 16. Bulgaria + 16.1 JSC "SoftKey" + 17. Colombia + 17.1 Luz Zapata Velasquez + 18. Latin America + 18.1 Danysoft + 19. Spain + 19.1 Danysoft + 20. Portugal + 20.1 Danysoft + 21. Israel + 21.1 Software Sources Ltd. + + + + 1. United Kingdom + + 1.1 QBS Software Ltd + + QBS Software Ltd +7 Wharfside +Rosemont Rd +Wembley HA0 4QB + +Tel +44 (0) 8456 580 580 +Fax +44 (0) 20 8902 7600 +email: sales@qbssoftware.com +http://www.qbssoftware.com/FASTREPORT + + + 2. Germany + + 2.1 BITA GmbH + + BITA GmbH +A-1070 Wien, Wimbergergasse 14/3-1-3 +E-mail: fastreport@bita.at +Tel: +43 (1) 9832873 +Fax: +43 (1) 9832873-30 +www.bita.at +Contact person: Robert Szuszkiewicz + + 3. Austria + + 3.1 BITA GmbH + + BITA GmbH +A-1070 Wien, Wimbergergasse 14/3-1-3 +E-mail: fastreport@bita.at +Tel: +43 (1) 9832873 +Fax: +43 (1) 9832873-30 +www.bita.at +Contact person: Robert Szuszkiewicz + + 4. Switzerland + + 4.1 BITA GmbH + + BITA GmbH +A-1070 Wien, Wimbergergasse 14/3-1-3 +E-mail: fastreport@bita.at +Tel: +43 (1) 9832873 +Fax: +43 (1) 9832873-30 +www.bita.at +Contact person: Robert Szuszkiewicz + + + 5. Poland + + 5.1 WebKomp + + WebKomp: +info@webkomp.net +ul. Sosnowskiego 3/18 +02-784 Warszawa +Poland +tel.: +48 501 232 256 +fax. +48 22 750 96 80 + +http://www.webkomp.net + + 5.2 Przedsiebiorstwo Komputerowo Obliczeniowe + + Przedsiebiorstwo Komputerowo Obliczeniowe +30-415 Krakow ul. Wadowicka 12 +fastreport@pko.pl +tel : +48 12 296 52 22 +fax: +48 12 296 52 23 +mobile: +48 602 801 659 +http://www.laptop.net.pl +http://www.laptop.net.pl/fastreport + + 5.3 JSC "SoftKey" + + Postal address: Zvezdny boulevard, 21, office 801, +129085, Moscow, Russia + +Tel./ fax: (095) 215-66-13, 797-26-64 + +www.softkey.net +www.softkey.lt +www.softkey.lv +www.softkey.pl +www.softkey.ee +www.softkeybg.com +email: sales@softkey.ru + + + 6. Czech + + 6.1 Petr Zahradnik, Computer Laboratory + + Petr Zahradnik, Computer Laboratory +Obvodova 740/14, CZ-40007 Usti nad Labem, Czech Republic +Phones: +420-47-5500610, +420-47-5501627 +Fax: +420-47-5511338 +WWW: http://www.clexpert.cz, http://www.zahradnik.cz +E-Mail: clexpert@clexpert.cz, petr@zahradnik.cz +ICQ: 21215917 + + + 6.2 HTK Pro s.r.o. + + HTK Pro s.r.o. +Prosecka 76a, Praha 9 +http://www.dev-shop.cz, http://www.dev-shop.sk +tel : +420-2-83880361, fax : +420-2-86891391 + + + 7. Slovak + + 7.1 HTK Pro s.r.o. + + HTK Pro s.r.o. +Prosecka 76a, Praha 9 +http://www.dev-shop.cz, http://www.dev-shop.sk +tel : +420-2-83880361, fax : +420-2-86891391 + + + 8. Brazil + + 8.1 EXPERTNET + + EXPERTNET +Phone: +55-11-9309-8017 +mailto:ndiay@expertnet.com.br +WWW:www.expertnet.com.br + + 8.2 PRMAS SYSTEM + + PRMAS SYSTEM +Phone: 55-11-97489924 +web: http://www.prmas.com.br +Email: vendas@prmas.com.br + + + 9. South Korea + + 9.1 DevTools Inc. + + DevTools Inc. +Tel : +82 (2) 521-7900 +Fac : +82 (2) 2297-7900 +email : midmee@devtools.co.kr +http://www.devtools.co.kr + + 9.2 Buysoft Inc. + + Buysoft Inc. +10F HungEun bldg., +824-22 Yeoksam-Dong, +Kangnam-Gu, +Seoul,Korea + +email: Irene Kwon +http://www.buysoft.co.kr + + + 10. Taiwan, R.O.C. + + + 10.1 Crispin, Chen + + Crispin, Chen +Tel: (04)2358-8484 +Mobile Phone: (0918)427-079 +E-Mail: crispin@pchome.com.tw +Web Site: +http://www.jane.com.tw/bbs/default.asp + + + 11. China + + 11.1 Nora Xu + + Nora Xu +ViewSlip SoftWare +mail:eric@viewslip.com +http://www.viewslip.com +Tel:+86-21-64069587 + + + 11.2 CSTSOFT + + CSTSOFT +Tel:+86 10 88416081 +Fax:+86 10 68767223 +Email:cstsoft@public3.bta.net.cn +http://www.cstsoft.com.cn + + + 11.3 Chongqing Huidu Technology Co., Ltd. + + Chongqing Huidu Technology Co., Ltd. +No.23, shixin Road, shiqiaopu, +Chongqing +China. 400039 +E-mail: sales@eVget.com +Tel: +86- (0) 23- 68690297 +Fax: +86- (0) 23- 68623874 +www.eVget.com + + + 12. Nederland + + 12.1 FastReport ook in Nederland verkrijgbaar + + FastReport producten worden in Nederland geleverd door TeoWin Software. +Wij geven graag meer informatie over de FastReport producten of antwoorden op vragen die voortkomen uit de kennismaking met FastReport. +Voor meer informatie +email:info@teowin-software.nl + + + 13. Lithuania + + + 13.1 JSC "SoftKey" + + Postal address: Zvezdny boulevard, 21, office 801, +129085, Moscow, Russia + +Tel./ fax: (095) 215-66-13, 797-26-64 + +www.softkey.net +www.softkey.lt +www.softkey.lv +www.softkey.pl +www.softkey.ee +www.softkeybg.com +email: sales@softkey.ru + + + 14. Latvia + + + 14.1 JSC "SoftKey" + + Postal address: Zvezdny boulevard, 21, office 801, +129085, Moscow, Russia + +Tel./ fax: (095) 215-66-13, 797-26-64 + +www.softkey.net +www.softkey.lt +www.softkey.lv +www.softkey.pl +www.softkey.ee +www.softkeybg.com +email: sales@softkey.ru + + + 15. Estonia + + 15.1 JSC "SoftKey" + + Postal address: Zvezdny boulevard, 21, office 801, +129085, Moscow, Russia + +Tel./ fax: (095) 215-66-13, 797-26-64 + +www.softkey.net +www.softkey.lt +www.softkey.lv +www.softkey.pl +www.softkey.ee +www.softkeybg.com +email: sales@softkey.ru + + + 16. Bulgaria + + 16.1 JSC "SoftKey" + + Postal address: Zvezdny boulevard, 21, office 801, +129085, Moscow, Russia + +Tel./ fax: (095) 215-66-13, 797-26-64 + +www.softkey.net +www.softkey.lt +www.softkey.lv +www.softkey.pl +www.softkey.ee +www.softkeybg.com +email: sales@softkey.ru + + + 17. Colombia + + 17.1 Luz Zapata Velasquez + + Luz Zapata Velasquez +Tr. 41 #146 A 40 Interior 17 sala 501 City: Bogota - D.C +Country: Colombia +Tel/Fax: (+57)-1-625-3024 +mail: info@safsoft.com +http://www.safsoft.com + + + 18. Latin America + + 18.1 Danysoft + + Danysoft Internatioal S.L. +Avda Industria 4, Edif 1, +28108 Accobendaj-Ma-Spain +email: sales@danysoft.com +http://www.danysoft.com + + + 19. Spain + + 19.1 Danysoft + + Danysoft Internatioal S.L. +Avda Industria 4, Edif 1, +28108 Accobendaj-Ma-Spain +email: sales@danysoft.com +http://www.danysoft.com + + + 20. Portugal + + 20.1 Danysoft + + Danysoft Internatioal S.L. +Avda Industria 4, Edif 1, +28108 Accobendaj-Ma-Spain +email: sales@danysoft.com +http://www.danysoft.com + + + + 21. Israel + + 21.1 Software Sources Ltd. + + Software Sources Ltd. +64B Hasharon St. +P.O.Box 639 +Ra'anana 43106 +Tel. +972-9-7714578 +Fax. +972-9-7712194 +email: chen@software-sources.co.il +http://www.software-sources.co.il \ No newline at end of file diff --git a/official/4.2/Demos/ClientServer/CGI/fastreport.dpr b/official/4.2/Demos/ClientServer/CGI/fastreport.dpr new file mode 100644 index 0000000..b4663ed --- /dev/null +++ b/official/4.2/Demos/ClientServer/CGI/fastreport.dpr @@ -0,0 +1,57 @@ + +{******************************************} +{ } +{ FastReport v4.0 } +{ FastReport CGI wrapper demo } +{ } +{ Copyright (c) 1998-2007 } +{ by Alexander Fediachov, } +{ Fast Reports Inc. } +{ } +{******************************************} + +program fastreport; + +{$APPTYPE CONSOLE} + +uses + Windows, SysUtils, Classes, frxCGIClient, IniFiles, frxServerUtils; + +const + CONFIG_FILENAME = 'fastreport.ini'; + DEFAULT_CONFIG_PATH = ''; + DEFAULT_PORT = 8097; + DEFAULT_HOST = '127.0.0.1'; + +var + FHost: String; + FPort: Integer; + FIni: TIniFile; + c: TfrxCGIClient; + s: String; + +begin + if DEFAULT_CONFIG_PATH = '' then + s := ExtractFilePath(ParamStr(0)) + CONFIG_FILENAME + else + s := DEFAULT_CONFIG_PATH + CONFIG_FILENAME; + if FileExists(s) then + begin + FIni := TIniFile.Create(s); + FHost := FIni.ReadString('REPORTSERVER', 'Host', DEFAULT_HOST); + FPort := FIni.ReadInteger('REPORTSERVER', 'Port', DEFAULT_PORT); + FIni.Free; + end + else begin + FHost := DEFAULT_HOST; + FPort := DEFAULT_PORT; + end; + c := TfrxCGIClient.Create; + c.Host := FHost; + c.Port := FPort; + try + c.Open; + finally + c.Free; + end; +end. diff --git a/official/4.2/Demos/ClientServer/CGI/fastreport.ini b/official/4.2/Demos/ClientServer/CGI/fastreport.ini new file mode 100644 index 0000000..e0494d4 --- /dev/null +++ b/official/4.2/Demos/ClientServer/CGI/fastreport.ini @@ -0,0 +1,3 @@ +[REPORTSERVER] +Host=127.0.0.1 +Port=8097 diff --git a/official/4.2/Demos/ClientServer/CGI/index.html b/official/4.2/Demos/ClientServer/CGI/index.html new file mode 100644 index 0000000..0c049e7 --- /dev/null +++ b/official/4.2/Demos/ClientServer/CGI/index.html @@ -0,0 +1,6 @@ + + +1. Connect to the FastReport Server through the Apache Web Server
+2. Direct connect to the FastReport Server + + \ No newline at end of file diff --git a/official/4.2/Demos/ClientServer/Client/Advanced/FRClient.dpr b/official/4.2/Demos/ClientServer/Client/Advanced/FRClient.dpr new file mode 100644 index 0000000..3bed53c --- /dev/null +++ b/official/4.2/Demos/ClientServer/Client/Advanced/FRClient.dpr @@ -0,0 +1,14 @@ +program FRClient; + +uses + Forms, + main in 'main.pas' {main}; + +{$R *.res} + +begin + Application.Initialize; + Application.Title := 'FastReport Client Demo'; + Application.CreateForm(TMainForm, MainForm); + Application.Run; +end. diff --git a/official/4.2/Demos/ClientServer/Client/Advanced/FRClient.res b/official/4.2/Demos/ClientServer/Client/Advanced/FRClient.res new file mode 100644 index 0000000000000000000000000000000000000000..06b79d788939ce5da8b28e583024f76af57fa580 GIT binary patch literal 3372 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 E04l{m6#xJL literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Client/Advanced/main.pas b/official/4.2/Demos/ClientServer/Client/Advanced/main.pas new file mode 100644 index 0000000..cfa6cc2 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Client/Advanced/main.pas @@ -0,0 +1,463 @@ + +{******************************************} +{ } +{ FastReport v4.0 } +{ FastReport client demo } +{ Copyright (c) 1998-2007 } +{ by Alexander Fediachov, } +{ Fast Reports Inc. } +{ } +{******************************************} + +unit main; + +{$I frx.inc} + +interface + +uses + Windows, SysUtils, Classes, Controls, Forms, + Dialogs, StdCtrls, ShellApi, frxClass, frxServerClient, + frxGZip, frxDCtrl, frxChBox, frxCross, frxRich, frxChart, + frxOLE, frxBarcode, ExtCtrls, frxExportPDF, frxExportImage, + frxExportRTF, frxExportXML, frxExportXLS, frxExportHTML, + frxExportTXT, frxGradient, Graphics, ComCtrls, Menus, ImgList +{$IFDEF Delphi6} +, Variants +{$ENDIF} +, frxExportMail, frxExportText, frxExportCSV; + +type + TMainForm = class(TForm) + frxServerConnection1: TfrxServerConnection; + TestBtn: TButton; + Log: TMemo; + Rep: TEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + ShowBtn: TButton; + CloseBtn: TButton; + Label4: TLabel; + Label5: TLabel; + Port: TEdit; + Threads: TEdit; + Label6: TLabel; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxChartObject1: TfrxChartObject; + frxRichObject1: TfrxRichObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxDialogControls1: TfrxDialogControls; + Label7: TLabel; + Login: TEdit; + Label8: TLabel; + Password: TEdit; + StopBtn: TButton; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Image1: TImage; + frxGradientObject1: TfrxGradientObject; + frxHTMLExport1: TfrxHTMLExport; + frxXLSExport1: TfrxXLSExport; + frxXMLExport1: TfrxXMLExport; + frxRTFExport1: TfrxRTFExport; + frxBMPExport1: TfrxBMPExport; + frxJPEGExport1: TfrxJPEGExport; + frxTIFFExport1: TfrxTIFFExport; + frxPDFExport1: TfrxPDFExport; + ProxyHost: TEdit; + Label12: TLabel; + Label13: TLabel; + ProxyPort: TEdit; + Label14: TLabel; + Label15: TLabel; + Panel2: TPanel; + Panel4: TPanel; + Host: TEdit; + ReportsTree: TTreeView; + Description: TMemo; + Label16: TLabel; + Panel5: TPanel; + ExportBtn: TButton; + Label17: TLabel; + Panel10: TPanel; + ConnectBtn: TButton; + Panel11: TPanel; + Panel9: TPanel; + Panel12: TPanel; + Panel13: TPanel; + Panel14: TPanel; + Label18: TLabel; + PopupMenu1: TPopupMenu; + Clear1: TMenuItem; + frxReportClient1: TfrxReportClient; + ImageList1: TImageList; + frxCSVExport1: TfrxCSVExport; + frxSimpleTextExport1: TfrxSimpleTextExport; + frxMailExport1: TfrxMailExport; + procedure TestBtnClick(Sender: TObject); + procedure CloseBtnClick(Sender: TObject); + procedure ShowBtnClick(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure StopBtnClick(Sender: TObject); + procedure ListBox1DblClick(Sender: TObject); + procedure ListBox1KeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + procedure Label11Click(Sender: TObject); + procedure ConnectBtnClick(Sender: TObject); + procedure Clear1Click(Sender: TObject); + procedure ReportsTreeChange(Sender: TObject; Node: TTreeNode); + procedure ReportsTreeCustomDrawItem(Sender: TCustomTreeView; + Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); + procedure ExportBtnClick(Sender: TObject); + private + ThreadList: TList; + ReportsList: TStringList; + procedure ClearThreads; + end; + + TfrxClientTestThread = class (TThread) + protected + procedure Execute; override; + private + CountRep: Integer; + ErrorsCount: Integer; + Log: TMemo; + ThreadID: Integer; + FConnection: TfrxServerConnection; + FRepName: String; + procedure AppendLog; + procedure FinishLog; + public + Report: TfrxReportClient; + Done: Boolean; + constructor Create(C: TfrxServerConnection; RepName: String; + Id: Integer; Rep: Integer; L: TMemo); + end; + +var + MainForm: TMainForm; + +implementation + +{$IFDEF Delphi7} +uses XPMan; +{$ENDIF} + +{$R *.dfm} + +procedure TMainForm.TestBtnClick(Sender: TObject); +var + i, j, k: Integer; + Thread: TfrxClientTestThread; + s: String; +begin + frxServerConnection1.Host := Host.Text; + frxServerConnection1.Port := StrToInt(Port.Text); + frxServerConnection1.Login := Login.Text; + frxServerConnection1.Password := Password.Text; + if (Length(ProxyHost.Text) > 0) then + begin + frxServerConnection1.ProxyHost := ProxyHost.Text; + frxServerConnection1.ProxyPort := StrToInt(ProxyPort.Text); + end; + ClearThreads; + j := StrToInt(Threads.Text); + k := StrToInt(Rep.Text); + i := Integer(ReportsTree.Selected.Data); + if i <> -1 then + begin + Log.Lines.Add('Start test'); + s := ReportsList[i + 1]; + for i := 1 to j do + begin + Thread := TfrxClientTestThread.Create(frxServerConnection1, s, i, k, Log); + ThreadList.Add(Thread); + end; + end; +end; + +procedure TMainForm.CloseBtnClick(Sender: TObject); +begin + Close; +end; + +procedure TMainForm.ShowBtnClick(Sender: TObject); +var + t: Cardinal; + tf: Double; + i: Integer; +begin + frxServerConnection1.Host := Host.Text; + frxServerConnection1.Port := StrToInt(Port.Text); + frxServerConnection1.Login := Login.Text; + frxServerConnection1.Password := Password.Text; + if (Length(ProxyHost.Text) > 0) then + begin + frxServerConnection1.ProxyHost := ProxyHost.Text; + frxServerConnection1.ProxyPort := StrToInt(ProxyPort.Text); + end; + i := Integer(ReportsTree.Selected.Data); + if i <> -1 then + begin + frxReportClient1.LoadFromFile(ReportsList[i + 1]); + t := GetTickCount; + if frxReportClient1.PrepareReport then + begin + tf := (GetTickCount - t) / 1000; + Log.Lines.Add(frxReportClient1.ReportName + + ' Time=' + FloatToStr(tf) + ' Size=' + IntToStr(frxReportClient1.Client.StreamSize)); + frxReportClient1.ShowPreparedReport; + end; + Log.Lines.AddStrings(frxReportClient1.Errors); + end; +end; + +procedure TMainForm.FormCreate(Sender: TObject); +begin + Label14.Caption := #174; + Label15.Caption := #169 + Label15.Caption; + ThreadList := TList.Create; + ReportsList := TStringList.Create; +end; + +procedure TMainForm.ClearThreads; +var + i: Integer; +begin + for i := 0 to ThreadList.Count - 1 do + if Assigned(TfrxClientTestThread(ThreadList[i])) then + begin + TfrxClientTestThread(ThreadList[i]).Terminate; + TfrxClientTestThread(ThreadList[i]).Free; + end; + ThreadList.Clear; +end; + +procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + ReportsList.Free; + ClearThreads; + ThreadList.Free; +end; + +procedure TMainForm.StopBtnClick(Sender: TObject); +begin + ClearThreads; +end; + +procedure TMainForm.ListBox1DblClick(Sender: TObject); +begin + ShowBtnClick(Sender); +end; + +procedure TMainForm.ListBox1KeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if Key = 13 then + ShowBtnClick(Sender); +end; + +procedure TMainForm.Label11Click(Sender: TObject); +begin + ShellExecute(GetDesktopWindow, 'open', PChar(Label11.Caption), nil, nil, SW_SHOW); +end; + +procedure TMainForm.ConnectBtnClick(Sender: TObject); +var + t: Cardinal; + tf: Double; + s, s1: String; + AccessFlag: Boolean; + i: Integer; + Node: TTreeNode; + TopNode: TTreeNode; + OldName: String; + +begin + ReportsTree.Items.Clear; + ReportsList.Clear; + Log.Clear; + + frxServerConnection1.Host := Host.Text; + frxServerConnection1.Port := StrToInt(Port.Text); + frxServerConnection1.Login := Login.Text; + frxServerConnection1.Password := Password.Text; + if (Length(ProxyHost.Text) > 0) then + begin + frxServerConnection1.ProxyHost := ProxyHost.Text; + frxServerConnection1.ProxyPort := StrToInt(ProxyPort.Text); + end; + t := GetTickCount; + Log.Lines.Text := Log.Lines.Text + + frxReportClient1.GetServerVariable('SERVER_NAME'); + tf := (GetTickCount - t) / 1000; + if frxReportClient1.Errors.Count = 0 then + begin + Log.Lines.Text := Log.Lines.Text + + 'Version: ' + frxReportClient1.GetServerVariable('SERVER_SOFTWARE'); + Log.Lines.Text := Log.Lines.Text + + 'From: ' + frxReportClient1.GetServerVariable('SERVER_LAST_UPDATE'); + Log.Lines.Text := Log.Lines.Text + + 'Uptime: ' + frxReportClient1.GetServerVariable('SERVER_UPTIME'); + Log.Lines.Add('Ping:' + FloatToStr(tf) + 'ms.'); + end; + Log.Lines.AddStrings(frxReportClient1.Errors); + + AccessFlag := frxReportClient1.Errors.Count = 0; + + if AccessFlag then + begin + ReportsList.Text := frxReportClient1.GetServerVariable('SERVER_REPORTS_LIST'); + if ReportsList.Count > 0 then + begin + ReportsTree.Items.BeginUpdate; + TopNode := nil; + Oldname := ''; + for i := 0 to (ReportsList.Count div 3) - 1 do + begin + s := ReportsList[(i * 3) + 1]; + s := StringReplace(StringReplace(s, ExtractFileName(s), '', []), '\', ' ', [rfReplaceAll]); + if s <> OldName then + begin + if s = '' then + s1 := 'Reports' + else + s1 := s; + Node := ReportsTree.Items.AddChild(nil, s1); + Node.Data := Pointer(-1); + Node.ImageIndex := 0; + TopNode := Node; + OldName := s; + end; + Node := ReportsTree.Items.AddChild(TopNode, ReportsList[i * 3]); + Node.Data := Pointer((i * 3)); + Node.ImageIndex := 1; + end; + ReportsTree.Items.EndUpdate; + ReportsTree.TopItem := ReportsTree.Items[0]; + ReportsTree.Selected := ReportsTree.Items[0]; + ReportsTree.SetFocus; + end else + Log.Lines.Add('Nothing reports is available or information restricted.'); + end; +end; + +procedure TMainForm.Clear1Click(Sender: TObject); +begin + Log.Clear; +end; + +procedure TMainForm.ReportsTreeChange(Sender: TObject; Node: TTreeNode); +var + i: Integer; +begin + i := Integer(Node.Data); + if i <> -1 then + Description.Text := ReportsList[i + 2] + else + Description.Text := Node.Text; + ShowBtn.Enabled := i <> -1; + ExportBtn.Enabled := ShowBtn.Enabled; + TestBtn.Enabled := ShowBtn.Enabled; +end; + +procedure TMainForm.ReportsTreeCustomDrawItem(Sender: TCustomTreeView; + Node: TTreeNode; State: TCustomDrawState; var DefaultDraw: Boolean); +begin + if Node.Count <> 0 then + ReportsTree.Canvas.Font.Style := [fsBold]; +end; + +procedure TMainForm.ExportBtnClick(Sender: TObject); +var + t: Cardinal; + tf: Double; + i: Integer; +begin + frxServerConnection1.Host := Host.Text; + frxServerConnection1.Port := StrToInt(Port.Text); + frxServerConnection1.Login := Login.Text; + frxServerConnection1.Password := Password.Text; + if (Length(ProxyHost.Text) > 0) then + begin + frxServerConnection1.ProxyHost := ProxyHost.Text; + frxServerConnection1.ProxyPort := StrToInt(ProxyPort.Text); + end; + i := Integer(ReportsTree.Selected.Data); + if i <> -1 then + begin + frxReportClient1.LoadFromFile(ReportsList[i + 1]); + t := GetTickCount; + if frxReportClient1.PrepareReport then + begin + tf := (GetTickCount - t) / 1000; + Log.Lines.Add(frxReportClient1.ReportName + + ' Time=' + FloatToStr(tf) + ' Size=' + IntToStr(frxReportClient1.Client.StreamSize)); + frxReportClient1.Export(frxPDFExport1); + end; + Log.Lines.AddStrings(frxReportClient1.Errors); + end; +end; + +{ TfrxClientTestThread } + +constructor TfrxClientTestThread.Create(C: TfrxServerConnection; RepName: String; + Id: Integer; Rep: Integer; L: TMemo); +begin + inherited Create(True); + ErrorsCount := 0; + ThreadId := Id; + CountRep := Rep; + FConnection := C; + FRepName := RepName; + Log := L; + Done := False; + Resume; +end; + +procedure TfrxClientTestThread.Execute; +var + i: Integer; +begin + Done := False; + Report := TfrxReportClient.Create(nil); + Report.EngineOptions.EnableThreadSafe := True; + Report.ShowProgress := False; + Report.EngineOptions.SilentMode := True; + Report.Connection := FConnection; + Report.ReportName := FRepName; + i := 0; + while (i < CountRep) and (not Terminated) do + begin + Report.Clear; + Report.PrepareReport; + Synchronize(AppendLog); + ErrorsCount := ErrorsCount + Report.Errors.Count; + Inc(i); + end; + Synchronize(FinishLog); + Report.Free; + Done := True; +end; + +procedure TfrxClientTestThread.AppendLog; +begin + if Assigned(Log) and (Report.Errors.Count > 0) then + begin + Log.Lines.Add('Thread#' + IntToStr(ThreadID)); + Log.Lines.AddStrings(Report.Errors); + end; +end; + +procedure TfrxClientTestThread.FinishLog; +begin + if Assigned(Log) and (not Terminated) then + Log.Lines.Add('Thread#' + IntToStr(ThreadID) + ' finished. Errors:' + IntToStr(ErrorsCount)); +end; + +end. diff --git a/official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.dpr b/official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.dpr new file mode 100644 index 0000000..330bd0c --- /dev/null +++ b/official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.dpr @@ -0,0 +1,14 @@ +program FRClientSimple; + +uses + Forms, + main in 'main.pas' {main}; + +{$R *.res} + +begin + Application.Initialize; + Application.Title := 'FastReport Simple Client Demo'; + Application.CreateForm(TMainForm, MainForm); + Application.Run; +end. diff --git a/official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.res b/official/4.2/Demos/ClientServer/Client/Simple/FRClientSimple.res new file mode 100644 index 0000000000000000000000000000000000000000..06b79d788939ce5da8b28e583024f76af57fa580 GIT binary patch literal 3372 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Client/Simple/main.pas b/official/4.2/Demos/ClientServer/Client/Simple/main.pas new file mode 100644 index 0000000..14cbfd2 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Client/Simple/main.pas @@ -0,0 +1,124 @@ + +{******************************************} +{ } +{ FastReport v4.0 } +{ FastReport simple client demo } +{ Copyright (c) 1998-2007 } +{ by Alexander Fediachov, } +{ Fast Reports Inc. } +{ } +{******************************************} + +unit main; + +{$I frx.inc} + +interface + +uses + Windows, SysUtils, Classes, Controls, Forms, + Dialogs, StdCtrls, ShellApi, frxClass, frxServerClient, + frxGZip, frxDCtrl, frxChBox, frxCross, frxRich, frxChart, + frxOLE, frxBarcode, ExtCtrls, frxExportPDF, frxExportImage, + frxExportRTF, frxExportXML, frxExportXLS, frxExportHTML, + frxExportTXT, frxGradient, Graphics +{$IFDEF Delphi6} +, Variants +{$ENDIF}; + +type + TMainForm = class(TForm) + frxServerConnection1: TfrxServerConnection; + frxReportClient1: TfrxReportClient; + Memo1: TMemo; + Label3: TLabel; + ShowBtn: TButton; + CloseBtn: TButton; + Label4: TLabel; + Label5: TLabel; + Port: TEdit; + frxBarCodeObject1: TfrxBarCodeObject; + frxOLEObject1: TfrxOLEObject; + frxChartObject1: TfrxChartObject; + frxRichObject1: TfrxRichObject; + frxCrossObject1: TfrxCrossObject; + frxCheckBoxObject1: TfrxCheckBoxObject; + frxDialogControls1: TfrxDialogControls; + Label7: TLabel; + Login: TEdit; + Label8: TLabel; + Password: TEdit; + Label9: TLabel; + Label10: TLabel; + Label11: TLabel; + Image1: TImage; + Panel1: TPanel; + frxHTMLExport1: TfrxHTMLExport; + frxXLSExport1: TfrxXLSExport; + frxRTFExport1: TfrxRTFExport; + frxPDFExport1: TfrxPDFExport; + Label14: TLabel; + Label15: TLabel; + Panel2: TPanel; + Host: TEdit; + Label1: TLabel; + RepName: TEdit; + Label2: TLabel; + Label6: TLabel; + Param1: TEdit; + Param1Value: TEdit; + Label12: TLabel; + Label13: TLabel; + Param2: TEdit; + Param2Value: TEdit; + procedure CloseBtnClick(Sender: TObject); + procedure ShowBtnClick(Sender: TObject); + procedure Label11Click(Sender: TObject); + procedure FormCreate(Sender: TObject); + end; + +var + MainForm: TMainForm; + +implementation + +{$R *.dfm} + +{$IFDEF Delphi7} +uses XPMan; +{$ENDIF} + +procedure TMainForm.CloseBtnClick(Sender: TObject); +begin + Close; +end; + +procedure TMainForm.ShowBtnClick(Sender: TObject); +begin + frxServerConnection1.Host := Host.Text; + frxServerConnection1.Port := StrToInt(Port.Text); + frxServerConnection1.Login := Login.Text; + frxServerConnection1.Password := Password.Text; + frxReportClient1.LoadFromFile(RepName.Text); + frxReportClient1.Variables.Clear; + if Length(Param1Value.Text) > 0 then + frxReportClient1.Variables[Param1.Text] := Param1Value.Text; + if Length(Param2Value.Text) > 0 then + frxReportClient1.Variables[Param2.Text] := Param2Value.Text; + if frxReportClient1.PrepareReport then + frxReportClient1.ShowPreparedReport; + Memo1.Lines.AddStrings(frxReportClient1.Errors); +end; + +procedure TMainForm.Label11Click(Sender: TObject); +begin + ShellExecute(GetDesktopWindow, 'open', PChar(Label11.Caption), nil, nil, SW_SHOW); +end; + +procedure TMainForm.FormCreate(Sender: TObject); +begin + Label14.Caption := #174; + Label15.Caption := #169 + label15.Caption; +end; + +end. diff --git a/official/4.2/Demos/ClientServer/Server/FRServer.dpr b/official/4.2/Demos/ClientServer/Server/FRServer.dpr new file mode 100644 index 0000000..70a5bea --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/FRServer.dpr @@ -0,0 +1,15 @@ +program FRServer; + +uses + Windows, + Forms, + Main in 'Main.pas' {main}; + +{$R *.RES} + +begin + Application.Initialize; + Application.Title := 'FastReport Server Demo'; + Application.CreateForm(TMainForm, MainForm); + Application.Run; +end. diff --git a/official/4.2/Demos/ClientServer/Server/FRServer.res b/official/4.2/Demos/ClientServer/Server/FRServer.res new file mode 100644 index 0000000000000000000000000000000000000000..06b79d788939ce5da8b28e583024f76af57fa580 GIT binary patch literal 3372 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 nil then + StopBtnClick(Sender); + TrayIcon(2, Icon); + Icon.Free; + if DemoDatabase.Connected then + DemoDatabase.Close; +end; + +procedure TMainForm.MinimizeBtnClick(Sender: TObject); +begin + PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0); +end; + +procedure TMainForm.ShutBtnClick(Sender: TObject); +begin + Close; +end; + +procedure TMainForm.ShowWinClick(Sender: TObject); +begin + ShowWindow(Application.Handle, SW_SHOWNORMAL); + ShowWindow(Handle, SW_SHOWNORMAL); +end; + +procedure TMainForm.StartBtnClick(Sender: TObject); +begin + if DemoDatabase.Connected then + begin + Screen.Cursor := crHourGlass; + try + Serv.Open; + if Serv.Active then + begin + StartBtn.Enabled := False; + StopBtn.Enabled := True; + LBActive.Visible := True; + LBInactive.Visible := False; + Timer1.Enabled := True; + ImageList1.GetIcon(0, Icon); + TrayIcon(3, Icon); + Start1.Enabled := False; + Stop1.Enabled := True; + end; + finally + Screen.Cursor := crDefault; + end; + end; +end; + +procedure TMainForm.StopBtnClick(Sender: TObject); +begin + Screen.Cursor := crHourGlass; + try + Timer1.Enabled := False; + Serv.Close; + StartBtn.Enabled := True; + StopBtn.Enabled := False; + LBActive.Visible := False; + LBInactive.Visible := True; + ImageList1.GetIcon(1, Icon); + TrayIcon(3, Icon); + Start1.Enabled := True; + Stop1.Enabled := False; + finally + Screen.Cursor := crDefault; + end; +end; + +procedure TMainForm.Timer1Timer(Sender: TObject); +begin + ETotalSessions.Text := IntToStr(ServerStatistic.TotalSessionsCount); + ETotalReports.Text := IntToStr(ServerStatistic.TotalReportsCount); + EMaxSessions.Text := IntToStr(ServerStatistic.MaxSessionsCount); + EMaxReports.Text := IntToStr(ServerStatistic.MaxReportsCount); + EErrors.Text := IntToStr(ServerStatistic.TotalErrors); + ECurrentSessions.Text := IntToStr(ServerStatistic.CurrentSessionsCount); + ECurrentReports.Text := IntToStr(ServerStatistic.CurrentReportsCount); + Uptime.Caption := ServerStatistic.FormatUpTime; + Label2.Caption := 'Version: ' + Serv.Variables.GetValue('SERVER_SOFTWARE'); +end; + +procedure TMainForm.DesignBtnClick(Sender: TObject); +begin + OpenDialog1.InitialDir := Serv.Configuration.ReportPath; + if OpenDialog1.Execute then + begin + frReport1 := TfrxReport.Create(nil); + frReport1.LoadFromFile(OpenDialog1.FileName); + frReport1.Variables['PathToDataBase'] := '''' + DATABASE_FILE + ''''; + frReport1.DesignReport; + frReport1.Free; + end; +end; + +procedure TMainForm.Label3Click(Sender: TObject); +begin + ShellExecute(GetDesktopWindow, 'open', PChar(Label3.Caption), nil, nil, SW_SHOW); +end; + +end. diff --git a/official/4.2/Demos/ClientServer/Server/allow.conf b/official/4.2/Demos/ClientServer/Server/allow.conf new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/config.xml b/official/4.2/Demos/ClientServer/Server/config.xml new file mode 100644 index 0000000..9854e41 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/config.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/official/4.2/Demos/ClientServer/Server/config_demo.xml b/official/4.2/Demos/ClientServer/Server/config_demo.xml new file mode 100644 index 0000000..4062b51 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/config_demo.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/official/4.2/Demos/ClientServer/Server/deny.conf b/official/4.2/Demos/ClientServer/Server/deny.conf new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/about.html b/official/4.2/Demos/ClientServer/Server/htdocs/about.html new file mode 100644 index 0000000..e697743 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/about.html @@ -0,0 +1,35 @@ + || Short description + +Back to main page
+
+Short description
+

1. Introduction

+

+FastReport server provides many features for server side reporting in +internet/intranet networks. FastReport 3 is the kernel of the +reporting engine. Fast and poweful server engine use +Hypertext Transfer Protocol (HTTP, RFC 2068). The FastReport Server +completely autonomous and does not require using other HTTP server (Apache, IIS etc). +Detailed expected features list you will to read here.

+

2. FastReport Server Purpose

+

+

    +
  • Internet/intranet reporting +
  • Web-development +
  • End-user solutions providing functionality for business analytics, financials, human capital management, operations, corporate services +
  • Industrial client-server application +
+

+

3. Requirements

+

Operation system: Microsoft Windows NT4/2000/2003 + Server.
+ Network: based on TCP/IP protocol.

+

+

4. Feedback

+

All wishes, bug-reports and opinions send to e-mail.

+
+Back to main page
+
+ + + \ No newline at end of file diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/bottom.html b/official/4.2/Demos/ClientServer/Server/htdocs/bottom.html new file mode 100644 index 0000000..ee74d0b --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/bottom.html @@ -0,0 +1 @@ +
diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/default.css b/official/4.2/Demos/ClientServer/Server/htdocs/default.css new file mode 100644 index 0000000..586edaf --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/default.css @@ -0,0 +1,131 @@ +.copyright { + font : 8pt Tahoma; +} + +.topcopyright { + font : 8pt Tahoma; + COLOR : #ffffff; +} + +a { + font : 10pt Tahoma; + COLOR : #2b4a7f; + FONT-WEIGHT : bold; + TEXT-DECORATION : none; +} + +a:hover { + font : 10pt Tahoma; + COLOR : #283e66; + FONT-WEIGHT : bold; + TEXT-DECORATION : underline; +} + +.nav { + font : 9pt Tahoma; + COLOR : white; + FONT-WEIGHT : bold; + TEXT-DECORATION : none; +} + +.nav:hover { + font : 9pt Tahoma; + COLOR : black; + FONT-WEIGHT : bold; + TEXT-DECORATION : underline; +} + +.bottomnav { + font : 10pt Tahoma; + COLOR : black; + FONT-WEIGHT : bold; + TEXT-DECORATION : none; +} + +.bottomnav:hover { + font : 10pt Tahoma; + COLOR : black; + FONT-WEIGHT : bold; + TEXT-DECORATION : underline; +} + +.txtbody +{ + font : 10pt Tahoma; + vertical-align: top ; + height:100%; + width :100%; +} + +.right { + font : 9pt Tahoma; + COLOR : black; + FONT-WEIGHT : bold; + padding-left : 8px; + padding-right : 6px; + text-align : center; +} + +.tit { + font : 12pt Tahoma; + COLOR : black; + FONT-WEIGHT : bold; + padding-left : 8px; + padding-right : 6px; + margin-left : 6px; + margin-right : 4px; + height : 20; + background-color : #e2e2e2; +} + + +td.title { + font : 9pt Tahoma; + COLOR : white; + FONT-WEIGHT : bold; + TEXT-DECORATION : none; + text-align : center; + height : 18; + background-color : #2b4a7f; +} + +td.down{ + font : 10pt Tahoma; + } + +th.down{ + font : 10pt Tahoma; + FONT-WEIGHT : bold; + } + + +a.copyright { + font : 8pt Tahoma; + COLOR : black; + TEXT-DECORATION : none; +} + +a.copyright:hover { + font : 8pt Tahoma; + COLOR : black; + TEXT-DECORATION : underline; +} + +PRE{ + font : 10pt Curier; + } + +.pagetitle { + font : 18pt Verdana; + color : #ffffff; + FONT-WEIGHT : bold; + FONT-style: italic; + +} + +.pageheader +{ + background-color : #2b4a7f; + background-repeat: no-repeat; + background-position:top left +} \ No newline at end of file diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Adapting your applications for client-server technology.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Adapting your applications for client-server technology.htm new file mode 100644 index 0000000..1374368 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Adapting your applications for client-server technology.htm @@ -0,0 +1,50 @@ + + + +6. Adapting your applications for client-server technology + + + + + + + + + + + + + + + + + +
+ +6. Adapting your applications for client-server technology + +

When adapting previously developed applications to the client-server technology, use the following recommendations:

- Clearly define the interaction between client and server sides;

- Take into account the recommendations from topics +4.1 and +4.2 of this manual;

- When working with databases, take into account the recommendations from +topic 3.10 of this manual;

- To improve the level information security, take into account the recommendations from +topic 8 of this manual.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/Components of FastReport Enterprise Edition.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/Components of FastReport Enterprise Edition.htm new file mode 100644 index 0000000..e12f5ee --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/Components of FastReport Enterprise Edition.htm @@ -0,0 +1,54 @@ + + + +2. Components of FastReport Enterprise Edition + + + + + + + + + + + + + + +
+ +2. Components of FastReport Enterprise Edition + +

After you install the packages of FastReport 3 Enterprise, a bookmark +"FastReport 3 Client/Server" in component palette IDE Delphi/C++Builder +will be available.

+

+

Components of the "FastReport 3 Client/Server":

+

- TfrxReportServer - a server component, report server and HTTP server in a single whole;

+

- TfrxServerConnection - a client component, which contains information for connections with TfrxReportServer;

+

- TfrxReportClient - client component (a TfrxReport analogue) inquires the report on the server, and then displays the resulting report on client side;

TfrxHTTPClient - client component, intended for requests of the files over HTTP protocol.

+
+
+ +
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxHTTPClient.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxHTTPClient.htm new file mode 100644 index 0000000..bfb45b0 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxHTTPClient.htm @@ -0,0 +1,45 @@ + + + +2.4. TfrxHTTPClient + + + + + + + + + + + + + + +
+ +2.4. TfrxHTTPClient

 TfrxHTTPClient - client component for receiving any file via HTTP protocol.

TfrxHTTPClient class inherited from TComponet

Properties:

Active: Boolean - executes a query if "True" is set;

Host: String - host name or host IP address; "127.0.0.1" by default;

Port: Integer - host port, "80" by default;

ProxyHost: String - HTTP-proxy name or proxy IP address;

ProxyPort: Integer - proxy port;

RetryCount: Integer - retry count, default - 3;

RetryTimeOut: Integer - delay between retry in seconds, default - 5;

TimeOut: Integer - idle time in seconds, default - 30;

ClientFields: TfrxHTTPClientFields - fields the request's header; TfrxHTTPClientFields is described below;

ServerFields: TfrxHTTPServerFields - parsed answer header; TfrxHTTPServerFields is described below;

MIC: Boolean - checking the message's integrity checksum, "True" by default;

Header: TStrings - raw request header; it is filled in automatically from ClientFields;

Answer: TStrings - raw answer header, parsed fields will be stored in ServerFields;

Stream: TMemoryStream - data received from server;

Breaked: Boolean - sign of emergency disconnection;

Errors: TStrings - errors list.

Methods:

procedure Connect - connect to remote server and get the file, after disconnect;

procedure Disconnect - disconnect from server;

procedure Open -same as "Connect";

procedure Close - same as "Disconnect".

TfrxHTTPClientFields class inherited from TPersistent

Properties:

AcceptEncoding: String - accepted compression formats, default - 'gzip';

FileName: String - requested filename;

Host: String - address or client's hostname; fills automatically if empty;

HTTPVer: String - http protocol version, default - 'HTTP/1.1';

Login: String - user name for authentication;

Password: String - password for authentication;

QueryType: TfrxHTTPQueryType - query type, qtGet - GET query, qtPost - POST query; "qtGet" by default;

Referer: String - referencing document name; blank by default;

UserAgent: String - client program name, default - 'FastReport/3.0'.

TfrxHTTPServerFields class inherited from TPersistent

Properties:

AnswerCode: Integer - server response code;

ContentEncoding: String - received data compression format;

ContentMD5: String - MD5 checksum;

ContentLength: Integer - received data length;

Location: String - actual location of the document.

+
+
+ +
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportClient.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportClient.htm new file mode 100644 index 0000000..c785a3e --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportClient.htm @@ -0,0 +1,44 @@ + + + +2.3. TfrxReportClient + + + + + + + + + + + + + + +
+ +2.3. TfrxReportClient

 TfrxReportClient is a client component for query. It receives and shows the reports from the server. Required component: TfrxServerConnection. TfrxReportClient is analogy of TfrxReport in previous versions of the applications based on traditional architecture.

TfrxReportClient class inherited from TfrxReport

Properties:

Connection: TfrxServerConnection - link to object of TfrxServerConnection;

ReportName: String - name of the requested report, use method LoadFromFile for setting this property (see below).

Variables: TfrxVariables - contain report variables; can be used for variables transfer from client to server;

Errors: TStrings - errors list.

Methods:

procedure LoadFromFile(FileName: String) - set the name of the requested report to property ReportName; path to the file is ignored;

function PrepareReport: Boolean - performs connection to the report server, requests a report, transfers report variables to server, and downloads a report result, which then is put to the "PreviewPages" Property. Result of the function is "True" if the task is successfully accomplished, otherwise it becomes "False";

procedure ShowPreparedReport - previews the received report;

procedure ShowReport - requests and previews the report.

+
+
+ +
+ + + + + + + + +
+< previous page +main page + +next page > +
+
+ + + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportServer.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportServer.htm new file mode 100644 index 0000000..dd58754 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxReportServer.htm @@ -0,0 +1,52 @@ + + + +2.1. TfrxReportServer + + + + + + + + + + + + + + +
+ +2.1. TfrxReportServer + +

 TfrxReportServer component plays the role of +a report server and HTTP server. This component does not require any additional components.

+

TfrxReportServer class inherited from TComponent

+

Properties:

+

Active: Boolean - the value, which indicates activity of the server. +It may be used for starting the server by setting a value in "True";

Configuration: TfrxServerConfig - server configuration (TfrxServerConfig class is described below). Configuration changes become active only after you restart the server;

AllowIP: TStrings - list of authorized IP addresses. The format of the list is as following: one line contains one IP address. In cases when the server does not find a client's address in this list, the client will be forbidden to connect; if the list is empty, all addresses are allowed to connect;

DenyIP: TStrings - list of IP addresses forbidden to connect. The format of the list is as following: one line contains one IP address In cases when the server does not find a client's address in this list, the client will be forbidden to connect; if the list is empty, all addresses are allowed to connect;

PrintPDF: Boolean - pressing the "print" button in navigator's control panel (when viewing the resulting pages in a web browser) creates a PDF file, if this value is set to True. Otherwise, standard print action of the browser will be executed. Default setting is "True";

The following properties are inaccessible in object's inspector, but it is possible to access them from the code:

Statistic: TfrxServerStatistic - server statistics (TfrxServerStatistic is described below);

Totals: TStrings - readable form of server statistics information;

Variables: TfrxServerVariables - internal server variables (TfrxServerVariables is described below).

Methods:

constructor Create(AOwner: TComponent) - creation of an object;

procedure Open - startup of the server. At this moment all changes of configuration would be activated;

procedure Close - server shutdown;

Event handlers:

OnGetReport: TfrxServerGetReportEvent - may be used for loading the reports from any places (BLOB fields, files from any folders etc). Type of the handler:

TfrxServerGetReportEvent = procedure (ReportName: String; Report: TfrxReport) of object;

ReportName - name of the requested report; it may be used for identification of a specific report;

Report - an instance of the TfrxReport object, to which the report should be loaded.

OnGetVariables: TfrxServerGetVariablesEvent - can be used for manual processing of the parameters received from the client, as well as execution of any operations directly on a server.

TfrxServerGetVariablesEvent = procedure(const ReportName: String; Variables: TfrxVariables) of object;

ReportName - The name of the report transferred in query. It can be used for filtering one or another parameter directly in the handler;

Variables - The list of the parameters received from the client. See details about TfrxVariables in +"Programmer's guide FastReport 3" [8].

TfrxServerConfig class inherited from TPersistent

Object of this class contains information about server configuration.

Properties:

Port: Integer - TCP/IP port number for client connection, default value is 80;

IndexFileName: String - default filename, if the filename field in HTTP query is empty. Default value is 'index.html';

SessionTimeOut: Integer - time of storing report results on the server (in seconds). Default value is 300. As soon as the default time expires, the report results will be deleted. It is set depending on specificities of created reports and methods of client-server interaction;

время ожидания активности клиента после его подключения в секундах, по умолчанию равно 60, по истечении этого времени сессия клиента будет удалена;

SocketTimeOut: Integer - timeout of waiting for client's response (in seconds). Default value is 60. When time expires, the session will be terminated.

Logging: Boolean - log writing, "True" - enabled, "False" - disabled, "True" is set by default;

LogPath: String - path to folder with logs; current folder by default;

ReportPath: String - path to folder with reports; current folder by default;

RootPath: String - path to folder with HTML files and reports results;

Login: String - user name for authentication. If line is empty - authentication is not required. Empty line is a default setting;

Password: String - password for authentication, empty line by default;

Compression: Boolean - compression of transferred documents, client support required; "True" by default;

MIC: Boolean - Message Integrity Checksum using MD5 algorithm. "True" by default;

NoCacheHeader: Boolean - document is not cached by client, "True" by default;

OutputFormats: TfrxServerOutputFormats - supported formats for requested reports, one or more from set (sfHTM, sfXML, sfXLS, sfRTF, sfTXT, sfPDF, sfJPG, sfFRP). By default, all elements of set are included;

ReportCaching: Boolean - enable the reports cache on a server (see details in section 3.11);

ReportCachePath: String - path to a folder with reports cache;

DefaultCacheLatency: Integer - reports in cache default storage time (in seconds).

Methods:

procedure LoadFromFile(const FileName: String) - load configuration from a file;

procedure SaveToFile(const FileName: String) - save configuration to a file.

TfrxServerStatistic class inherited from TPersistent

Properties:

CurrentReportsCount: Integer - number of reports currently build;

CurrentSessionsCount: Integer - number of sessions currently connected;

MaxReportsCount: Integer - maximum number of reports simultaneously built;

MaxSessionsCount: Integer - maximum number of sessions simultaneously connected;

TotalErrors: Integer - number of errors;

TotalReportsCount: Integer - number of reports;

TotalSessionsCount: Integer - number of sessions;

UpTimeDays: Integer (days),

UpTimeHours: Integer (hours),

UpTimeMins: Integer (minutes),

UpTimeSecs: Integer (seconds) - up time of the report server.

TfrxServerVariables class inherited from TCollection

Contains server variables.

Used (reserved) names of the variables will describe in the part 3.4.

Methods:

function GetValue(const Name: String): String - returns value of the variable with Name;

procedure AddVariable(const Name: String; const Value: String) - adds a variable with Name and Value.

+
+
+ +
+ + + + + + + + +
+< previous page +main page + +next page > +
+
+ + + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxServerConnection.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxServerConnection.htm new file mode 100644 index 0000000..95faa6b --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/TfrxServerConnection.htm @@ -0,0 +1,46 @@ + + + +2.2. TfrxServerConnection + + + + + + + + + + + + + + +
+ +2.2. TfrxServerConnection + +

 TfrxServerConnection - client component keeps information for connection to report server TfrxReportServer. Object of this class is required for working of one or several TfrxReportClient components.

TfrxServerConnection class inherited from TComponent

Properties:

Host: String - server host name or server IP address, by default - 127.0.0.1;

Port: Integer - server port; "80" by default;

ProxyHost: String - HTTP-proxy name or IP address, blank by default;

ProxyPort: Integer - HTTP-proxy port; "8080" by default;

Login: String - username for authentication;

Password: String - user password for authentication;

Timeout: Integer - idle time (in seconds); "120" by default;

RetryCount: Integer - retry count; "3" by default;

RetryTimeout: Integer - delay between retries in seconds, "3" by default;

Compression: Boolean - accept compressed files; "True" by default;

MIC: Boolean - checking of the message integrity checksum; "True" by default.

+
+
+ +
+ + + + + + + + +
+< previous page +main page + +next page > +
+
+ + + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/index.html b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Components of FastReport Enterprise Edition/index.html new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developers contact information.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developers contact information.htm new file mode 100644 index 0000000..06d62c8 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developers contact information.htm @@ -0,0 +1,49 @@ + + + +10. Developers' contact information + + + + + + + + + + + + + +
+ +10. Developers' contact information + +

If you have any suggestions concerning improvement and development of FastReport Enterprise, please contact us

+ + + + + +
e-mail:

news:

web site:

fediachov@fast-report.com

+

http://fast-report.com/en/support/newsgroups.php

+

http://www.fast-report.com

+
+
+
+ + + + + + + + +
+< previous page + +main page + +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Developing the reports.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Developing the reports.htm new file mode 100644 index 0000000..d4332f4 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Developing the reports.htm @@ -0,0 +1,43 @@ + + + +4. Developing the reports + + + + + + + + + + + + + + +
+ +4. Developing the reports + +

Developing of the FastReport reports was described in the "FastReport 3 - user manual." [9]

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some advices concerning the design of a report.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some advices concerning the design of a report.htm new file mode 100644 index 0000000..99d121d --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some advices concerning the design of a report.htm @@ -0,0 +1,42 @@ + + +4.2. Some advices concerning the design of a report + + + + + + + + + + + + + + +
+ +4.2. Some advices concerning the design of a report + +

Many of the document formats use table-style data representation. For representing of resulting reports, the server uses such formats as HTML, XLS, and RTF.

Table-style documents cannot have intersected cells, while FastReport document can. FastReport uses free-form data layout - there is no "lines", "table cells" like in Word, Excel or other such formats. FastReport export filters for table-style formats (RTF, HTML, and XLS) uses special algorithm to convert intersected cells into table cells and optimally arranges them. In places where FastReport objects intersect with each other, export filter may generate additional table rows and columns. It is necessary for better WYSIWYG, but may result in increased number of rows and columns in a resulting layout, which makes the table layout unusable for further analysis and slows down the export process.

Keep in mind these export limitations when developing a report, if you intend to export your report into such table-style formats. To avoid the objects' intersection, use alignment tools of the FastReport designer. Turn on the "grid align" option.

When creating tables in a report, put the table cells side-by-side, if possible, and avoid cells' intersection. If cells are intersected, the export algorithm would make clipping, and the export result may differ from the original report.

If possible, place objects along the horizontal and vertical guide lines. Use designer's guide lines to do this.

Following these instructions would help your reports to look perfect during exporting to any of the supported formats.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some client-server restrictions.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some client-server restrictions.htm new file mode 100644 index 0000000..e4c1c1a --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/Some client-server restrictions.htm @@ -0,0 +1,43 @@ + + + +4.1. Some client/server restrictions + + + + + + + + + + + + + + +
+ +4.1. Some client/server restrictions + +

When developing reports for client-server application, please remember that:

- you cannot use script event handlers for dialogue forms' controls since dialogue forms are displayed as web forms in the browser;

- you cannot use event handlers of the TfrxReportClient component (for example, OnGetValue, OnUserFunction). All such handlers should be on the server side;

- you cannot use common data access components, such as TfrxDBDataSet (common components cannot be simultaneously used by several reports). Each report should have internal data access components, such as TfrxIBXTable, Query, and so on.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/index.html b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Developing the reports/index.html new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side with threads.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side with threads.htm new file mode 100644 index 0000000..f7d088c --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side with threads.htm @@ -0,0 +1,47 @@ + + + +7.1.3. Client side with threads + + + + + + + + + + + + + + + +
+ +7.1.3. Client side with threads + +

You can find all source files of this example in the
"\FastReport 3\Demos\ClientServer\Client\Advanced" folder.

This example shows how you can use the "TfrxReportClient" component in the threads.

Thread class:

TfrxClientTestThread = class (TThread)

protected

procedure Execute; override;

private

CountRep: Integer;

ErrorsCount: Integer;

Log: TMemo;

ThreadID: Integer;

procedure AppendLog;

procedure FinishLog;

public

Report: TfrxReportClient;

constructor Create(C: TfrxServerConnection; RepName: String;

Id: Integer; Rep: Integer; L: TMemo);

destructor Destroy; override;

end;

Constructor of the TfrxClientTestThread class:

constructor TfrxClientTestThread.Create(C: TfrxServerConnection; RepName: String;

Id: Integer; Rep: Integer; L: TMemo);

begin

inherited Create(True);

FreeOnTerminate := False;

ErrorsCount := 0;

ThreadId := Id;

CountRep := Rep;

Log := L;

Report := TfrxReportClient.Create(nil);

Report.EngineOptions.ReportThread := Self;

Report.Connection := C;

Report.ReportName := RepName;

Resume;

end;

+

The method TfrxClientTestThread.Execute sends a request to the CountRep server. All resulting information is displayed in Memo1 by the "AppendLog" and "FinishLog" methods:

procedure TfrxClientTestThread.Execute;

var

i: Integer;

begin

inherited;

for i := 1 to CountRep do

begin

if Terminated then break;

Report.PrepareReport;

if not Terminated then

begin

Synchronize(AppendLog);

ErrorsCount := ErrorsCount + Report.Errors.Count;

end;

end;

Synchronize(FinishLog);

end;

Before starting this program, launch the server application described above (topic 7.1.1.)

On press button "Thread test" execute the code below:

procedure TMainForm.TestBtnClick(Sender: TObject);

var

i, j, k: Integer;

Thread: TfrxClientTestThread;

begin

frxServerConnection1.Host := Host.Text;

frxServerConnection1.Port := StrToInt(Port.Text);

frxServerConnection1.Login := Login.Text;

frxServerConnection1.Password := Password.Text;

frxServerConnection1.Compression := Compression.Checked;

if (Length(ProxyHost.Text) > 0) then

begin

frxServerConnection1.PrxoyHost := ProxyHost.Text;

frxServerConnection1.ProxyPort := StrToInt(ProxyPort.Text);

end;

ClearThreads;

Memo1.Lines.Add('Start test');

j := StrToInt(Threads.Text);

k := StrToInt(Rep.Text);

for i := 1 to j do

begin

Thread := TfrxClientTestThread.Create(frxServerConnection1,

ReportsList[ListBox1.ItemIndex], i, k, Memo1);

ThreadList.Add(Thread);

end;

end;

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side.htm new file mode 100644 index 0000000..b969ba2 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Client side.htm @@ -0,0 +1,45 @@ + + + +7.1.2. Client side + + + + + + + + + + + + + + +
+ +7.1.2. Client side +

You can find all source files of this example in the \FastReport3\Demos\ClientServer\Client\Simple folder.

This is an example of using the TfrxReportClient component and transferring report variables to the server.

Before starting this program, launch the server application described above ( +topic 7.1.1.)

Press the "Show Report" button and type "1.fr3" in the "Report Name" field when running this example so that the program would execute the code below:

frxServerConnection1.Host := Host.Text;

frxServerConnection1.Port := StrToInt(Port.Text);

frxServerConnection1.Login := Login.Text;

frxServerConnection1.Password := Password.Text;

frxReportClient1.LoadFromFile(RepName.Text);

if Length(Param1Value.Text) > 0 then

with frxReportClient1.Variables.Add do

begin

Name := Param1.Text;

Value := Param1Value.Text;

end;

if Length(Param2Value.Text) > 0 then

with frxReportClient1.Variables.Add do

begin

Name := Param2.Text;

Value := Param2Value.Text;

end;

if frxReportClient1.PrepareReport then

frxReportClient1.ShowPreparedReport;

Memo1.Lines.AddStrings(frxReportClient1.Errors);

After successful report request, you see the preview of the result.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Example of a simple client-server application.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Example of a simple client-server application.htm new file mode 100644 index 0000000..535ca4b --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Example of a simple client-server application.htm @@ -0,0 +1,42 @@ + + +7.1. Example of a simple client-server application + + + + + + + + + + + + + + +
+ +7.1. Example of a simple client-server application + +

For familiarization with methods of using component FastReport Enterprise, see demonstration examples stored in the
"\FastReport 3\Demos\ClientServer" folder.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Server side.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Server side.htm new file mode 100644 index 0000000..5e8e2f1 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/Server side.htm @@ -0,0 +1,46 @@ + + + +7.1.1. Server side + + + + + + + + + + + + + + + +
+ +7.1.1. Server side + +

You can find all source files of this example in the \FastReport 3\Demos\ClientServer\Server folder.

Components used in this demo: server component TfrxReportServer (Serv), database connection component TADOConnection and TfrxADOComponents, along with other add-on FastReport components.

For the convenience of clients, data about configuration of the server is stored in a file, which is editable by the built-in editor.

File server.conf:

[Server]

; TCP/IP port for HTTP server

Port=80

; report session timeout in seconds

SessionTimeOut=600

; client connection timeout in seconds

SocketTimeOut=600

; index page filename

IndexFileName=index.html

; path to folder with logs

LogPath=.\logs\

; enable of log writing

WriteLogs=1

; maximum log files in history

MaxLogFles=5

; maximum log file size

MaxLogSize=1024

; path to folder with the reports (*.fr3)

ReportPath=.\reports\

; public document folder for documents and results

RootPath=.\htdocs\

; disable of the caching document by the web browser

NoCacheHeader=1

; GZIP compression enable

Compression=1

; MD5 message integrity check

MIC=1

; user login

Login=

; user password

Password=

[ReportsCache]

; enable caching of the reports with same params

Enabled=1

; path to chache folder

CachePath=.\cache\

; dafault delay for cache of the report results in seconds

DefaultLatency=300

[ReportsLatency]

; cache delay for the 1.fr3 report in seconds

1.fr3=10

; cache delay for the 1.fr3 report in seconds

2.fr3=20

; add below the any reports for the custom cache delay setup

Fields of the configuration file correspond to fields' names of the "TfrxReportServer.Configuration" property.

The "allow.conf" and "deny.conf" files contain lines with allowed and restricted addresses respectively.

Database file is stored in the "\database" folder.

In the main module, the constants with names of configuration files are defined:

const

CONFIG_FILE = 'server.conf';

ALLOW_FILE = 'allow.conf';

DENY_FILE = 'deny.conf';

After program starts, the database is connected via the MicrosoftJet OLE DB interface.

In variables ConfFile, AllowFile, DenyFile we a store path to configuration files:

AppPath := ExtractFilePath(Application.ExeName);

ConfFile := AppPath + CONFIG_FILE;

AllowFile := AppPath + ALLOW_FILE;

DenyFile := AppPath + DENY_FILE;

Load config files to the Serv component:

Serv.Configuration.LoadFromFile(ConfFile);

Serv.AllowIP.LoadFromFile(AllowFile);

Serv.DenyIP.LoadFromFile(DenyFile);

Execute the server:

Serv.Open;

After all work is done, you are ready to use a powerful report server. Launch the any web browser and type http://127.0.0.1 in address line

You can design reports with the help of the internal FastReport designer:

OpenDialog1.InitialDir := Serv.Configuration.ReportPath;

if OpenDialog1.Execute then

begin

frReport1 := TfrxReport.Create(nil);

frReport1.LoadFromFile(OpenDialog1.FileName);

frReport1.DesignReport;

frReport1.Free;

end;

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/index.html b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/Example of the simple client-server application/index.html new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/index.html b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Examples/index.html new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/FastReport 3 Enterprise - Client-Server reporting tool.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/FastReport 3 Enterprise - Client-Server reporting tool.htm new file mode 100644 index 0000000..64d7e9a --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/FastReport 3 Enterprise - Client-Server reporting tool.htm @@ -0,0 +1,48 @@ + + + +1. FastReport 3 Enterprise - Client/Server reporting tool + + + + + + + + + + + + + + +
+ +1. FastReport 3 Enterprise - Client/Server reporting tool + + +

The "client-server" technology is based on interaction between a client application (which inquires, analyzes, and displays requested information) and a server application that performs basic work related to various complex calculations.

There are several serious advantages of using client-server technology in your applications:

- low hardware requirements for client PCs;

- reducing of network traffic due to reducing the amount of information transferred between a client's application and a database server;

- simplicity of system management of the existing client-server;

- higher level of information protection.

However, the client-server technology has some considerable disadvantages:

- high hardware requirements for a PC used as a server;

- certain difficulties in development of client-server applications.

When developing FastReport 3 Enterprise, we take into account all major requirements for client-server applications. FastReport 3 Enterprise allows you to:

- run any reports on the server side on client request, without necessity to directly connect the client to the database server;

- manage several client requests simultaneously in separate threads; it minimizes response time of the server;

- since we use HyperText transfer protocol (HTTP, RFC 2068 [2]), you can use different existing applications, such as web-browsers (Internet Explorer, Netscape Navigator, Mozilla, Opera etc), proxy-servers, web-servers (Internet Information Server, Apache etc), together with FastReport 3 Enterprise without any additional requirements;

- use data compression algorithms (GZip, RFC 1952 [6]). This reduces network traffic and increases client-server processing power;

- use of MD5 algorithm for the MIC (Message Integrity Checksum, RFC 1321 [4], RFC 1864 [5]) increases data integrity;

- compatibility with FastReport 3 report files (with some restrictions) allows you to easily redesign your application to use client-server technology;

- standalone server application (without necessity to apply IIS, Apache or other web-server technologies) has a high processing power, short response time, and economical use of system resources (in comparison with solutions based on CGI technology);

- you can use the server as a simple HTTP server for storing and displaying any HTML documents;

- application of the Server Side Include (SSI) technology allows you to use the server as an engine for your web-site;

- managing the connection logs, error logs, and/or any additional system information allows you to keep record of the work, quickly track down the bugs and unauthorized access attempts;

- usage of authentications and "allow/deny" IP lists allows you to restrict access to the server;

- you can use several database connections in one report simultaneously;

- you can use FastReport client components for interaction between a client application and the server. You can use any web-browser as well;

- your reports may have a dialogue forms that will be used for entering some values before running a report;

- supported formats of the prepared reports are: HTML, PDF, RTF, XML, XLS, JPEG, and Text;

- you can use several modes of displaying the prepared report in your web-browser: single-page document, page-separated with page navigator.

+
+ +
+ +
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Important security issues.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Important security issues.htm new file mode 100644 index 0000000..6ed0e48 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Important security issues.htm @@ -0,0 +1,45 @@ + + + +8. Important security issues + + + + + + + + + + + + + + +
+ +8. Important security issues + +

1. When using a report server on Microsoft Windows platform over the Internet, it is recommended to use a firewall between server and internet network.

2. It is obligatory to use the authentication of the client program +(section 3.8).

3. Use the "allow/deny IP" function in local network +(section 3.9).

4. If you have any gateways to Internet in local network, then include IP addresses of these gateways to the "deny" list of the report server (section 3.9).

5. Do not pass parameters to database connection from client if you use reports with internal database components.

6. In reports folder, store only those reports, which you use in your application.

7. Do not store any private documents in the HTTP root folder.

9. If you find any bugs in security system of the FastReport Enterprise, send a note to the developers of the product.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Introduction.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Introduction.htm new file mode 100644 index 0000000..b6734f3 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Introduction.htm @@ -0,0 +1,64 @@ + + + +Introduction + + + + + + + + + + + + + + +
+Introduction + +

This programming guide contains information about FastReport library's extension. +This extension allows to build reports on client-server technology with using of +standard FastReport 3 components and additional components +(that are intended for organization of interaction between client and server).

+

FastReport 3 is a highly productive report generator with unique capabilities. +Read detailed description of FastReport at +"FastReport 3 - developer's guide" [7], +"FastReport 3 - programmer's guide" [8] +, "FastReport 3 - user's guide" [9].

+

+

This guide describes the structure of client components and server components, +their properties and methods, as well as architecture of a report server and +the principles of its functioning. Furthermore, it gives recommendations concerning +optimization and usage of new capabilities in already existing applications and +those developed anew.

+

The experienced FastReport users will be interested in recommendations +about increasing server components' speed, optimization of reports for their +correct export to various tabular formats, application of rules of information +safety for application protection from non-authorized access.

+

We have been constantly improving the FastReport 3 Enterprise components. +That is why there is a probability that some capabilities are not mentioned +in this manual. Descriptions of all changes will be necessarily included to +the next version of this manual.

+
+
+ +
+ + + + + + + + +
  + +next page > +
+
+ + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/References.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/References.htm new file mode 100644 index 0000000..b8b254d --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/References.htm @@ -0,0 +1,43 @@ + + + +9. References + + + + + + + + + + + + + + +
+ +9. References + +

1. Braden, R., "Requirements for Internet hosts - application and support", STD 3, RFC 1123, IETF, October 1989.

2. Berners-Lee, T., Fielding, R., and H. Frystyk, "Hypertext Transfer Protocol - HTTP/1.1" RFC 2068, January 1997.

3. Franks, J., Hallam-Baker, P., Hostetler, J., Leach, P., Luotonen, A., Sink, E., and L. Stewart, "An Extension to HTTP: Digest Access Authentication", RFC 2069, January 1997.

4. Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.

5. Meyers, J., and M. Rose "The Content-MD5 Header Field", RFC 1864, Carnegie Mellon, Dover Beach Consulting, October, 1995.

6. Deutsch, P., "GZIP file format specification version 4.3." RFC 1952, Aladdin Enterprises, May 1996.

7. Tzyganenko, A., "FastReport 3 - Developer manual." Fast Reports Inc., September 2004.

http://www.fast-report.com/pbc_download/DeveloperManual-en.pdf

8. Tzyganenko, A., "FastReport 3 - Programmer manual." Fast Reports Inc., September 2004.

http://www.fast-report.com/pbc_download/ProgrammerManual-en.pdf

9. Tzyganenko, A., "FastReport 3 - User manual." Fast Reports Inc., September 2004.

http://www.fast-report.com/pbc_download/UserManual-en.pdf

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Other clients.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Other clients.htm new file mode 100644 index 0000000..f852f10 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Other clients.htm @@ -0,0 +1,43 @@ + + + +5.2. Other clients + + + + + + + + + + + + + + +
+ +5.2. Other clients + +

The FastReport server gives you wide opportunities of choosing the client program due to using standard HTTP protocol. You can use any HTTP-compatible client such as

web-browser that supports JavaScript, tables, and frames.

When using dialogue forms in your reports, the server will convert them to web-forms and pass them to a client. Client should fill in the form and return it to the server.

This is how the dialogue form looks when running a report in a simple (non-client-server) application:

The same form appears in the Mozilla web-browser, when running a report in the client-server application.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Report client.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Report client.htm new file mode 100644 index 0000000..826d4fa --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/Report client.htm @@ -0,0 +1,43 @@ + + + +5. Report client + + + + + + + + + + + + + + +
+ +5. Report client + +

There are two kinds of clients of the FastReport server:

- applications that use TfrxReportClient component;

- any stand-alone HTTP-clients, such as web-browsers.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/TfrxReportClient-based report client.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/TfrxReportClient-based report client.htm new file mode 100644 index 0000000..864575b --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/TfrxReportClient-based report client.htm @@ -0,0 +1,41 @@ + + + +5.1. TfrxReportClient-based report client + + + + + + + + + + + + +
+ +5.1. TfrxReportClient-based report client + +

TfrxReportClient component is designed specially for client applications. This component allows querying a report from the server, passing some report parameters (variables) to the server. It receives prepared report in the FP3 format (native FastReport format). The prepared report can be displayed and printed on the client side. You can also export the prepared report to any of the supported formats, using export filter components. In most cases, this solution is optimal for client applications. Clients that use the TfrxReportClient component make low network traffic and use less server system resources.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/index.html b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/Report client/index.html new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Access restriction by IP address.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Access restriction by IP address.htm new file mode 100644 index 0000000..6b055de --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Access restriction by IP address.htm @@ -0,0 +1,62 @@ + + + +3.9. Access restriction by IP address + + + + + + + + + + + + + + + +
+ +3.9. Access restriction by IP address + +

The Server supports the restriction by client IP address.

+

Property TfrxReportServer.DenyIP can contain list of the restricted client IPs'.

+

Property TfrxReportServer.AllowIP can contain list of the allowed client IPs'.Each list must contain one IP address in one line.Here is an example of such list:

+

192.168.0.10

192.168.0.12

+

192.168.0.54

+

If the "DenyIP" and "AllowIP" lists are empty, then all clients are allowed to connect to the server.

+

If the "DenyIP" list is empty, while the "AllowIP" list contains an IP address, then only one client with this IP address can connect to the server.

+

If the IP address of a connected client is not included in the "DenyIP" list, then the server checks if this address is included in the "AllowIP" list.

+

IP addresses' masks are not supported.

+

Examples:

+

1. Only local host can connect to the server:

+

AllowIP:

+

127.0.0.1

+

DenyIP is empty.

2. IP addresses 192.168.0.2 - 192.168.0.6 can connect to the server.

+

AllowIP:

192.168.0.2

+

192.168.0.3

192.168.0.4

192.168.0.5

192.168.0.6

DenyIP is empty.

2. IP addresses from range 192.168.0.8 - 192.168.0.10 cannot be connected to the server.

AllowP is empty.

DenyIP:

192.168.0.8

192.168.0.9

192.168.0.10

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Authentication.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Authentication.htm new file mode 100644 index 0000000..36f2158 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Authentication.htm @@ -0,0 +1,44 @@ + + + +3.8. Authentication + + + + + + + + + + + + + + +
+ +3.8. Authentication + +

The server supports basic HTTP authentication. To activate authentication, set property TfrxReportServer.Configuration.Login and TfrxReportServer.Configuration.Password. If you set this properties, then request header must contain authentication info (RFC 2068 [2]). If client receives answer from server with 401 "Unauthorized" error coded, then the client must retry sending the query with correct authentication data. At that, web browser simply shows dialog window with login and password request:

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Database connections.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Database connections.htm new file mode 100644 index 0000000..8c9da5a --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Database connections.htm @@ -0,0 +1,44 @@ + + + +3.10. Database connections + + + + + + + + + + + + + + +
+ +3.10. Database connections + +

Most of reports use data from databases. To connect to a database, you should:

- specify the database connection component (for example, TADOConnection) in one of your application forms;

- use internal data access components (such as TfrxADOTable, TfrxADOQuery) in your report. To connect to the database, these components should use the application connection.

In this case, a report will be thread-safe, using single connection to the database. In case some data access components do not support simultaneous work with database through a single connection, you should use the way described below.

The other way is to use the database connection component (such as TfrxADODatabase) in each report. In this case, you will be able to connect to different databases at one time. We do not recommend this way if you do not need this functionality because each time when report starts, it will attempt to connect to the database (in some DB servers the connection may take a long time).

Read the "FastReport 3 - User manual" [9] to learn more about creating reports with internal data access components (page 134).

It is not recommended to use BDE to connect to a database. BDE has a great amount of problems when working with several threads.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Increasing servers processing power.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Increasing servers processing power.htm new file mode 100644 index 0000000..f84f1e2 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Increasing servers processing power.htm @@ -0,0 +1,44 @@ + + + +3.12. Increasing server's processing power + + + + + + + + + + + + + + +
+ +3.12. Increasing server's processing power + +

Use the following recommendations to increase the report server performance:

- do not use compression component (TfrxGZipCompressor). It considerably slows down the server;

- optimize your SQL queries. In some cases running the SQL query may take a longer time than the report execution;

- do not use high-resolution bitmaps in your reports - it will increase the report execution time and network traffic;

- do not use complex scripts in your reports;

- use TfrxReportClient component in your client application. It works with FP3 native format and allows reducing the server response time (server does not perform the export to HTML or other formats) and the network traffic.

- when developing a report, keep in mind recommendations from 4.2;

- turn off the checksum, TfrxReportServer.Configuration.MIC := False;

- increase the memory size, use the faster CPU on PC used as a report server.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal architecture.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal architecture.htm new file mode 100644 index 0000000..22e7d47 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal architecture.htm @@ -0,0 +1,106 @@ + + + +3.1. Internal architecture + + + + + + + + + + + + + + +
+ +3.1. Internal architecture + +

The scheme displays the server's internal structure:

+

+

The sessions with unique identifier are created when a request from client comes. +The line of the request is analyzed. If the requested file exists, then the server sends +a positive response with the file to the client. Logs are updated with new record about this event. +If the request contains the report query, then a special report session is created. +After the report is built, the result is saved to folder with session number as a name. +The server responses to the client, and reports a new file location. +The client sends a new request to the new file location, and receives the file with the result. +Session with the resulting file is stored by server until session time expires.

+

Below is a step-by-step graphical overview of the report query transaction with the web browser:

+ +

- client sends query; the report's title is "1.fr3"

+

+

- the server creates a new FastReport instance and delivers parameters of the request

+

+

- FastReport prepares the report and exports results to a html file into the folder, the name of the folder is the same as the session's number

+

+

- server waits for the results from FastReport

+

+

- client receives redirection to the location of the resulting file

+

+

- client sends a new query with the request of results file

+

+

- server delivers the resulting file to the client

+

+

Step-by-step graphical overview of the report query transaction with the FastReport (TfrxReportClient):

+

- a client wants to show report "1.fr3":

+

+

- client component sends a query with the name of report "1.fr3" (native result format)

+

+

...

+

- FastReport prepares the report and saves the results to a native fp3; the name of the folder is the same as the session's number

+

+

- server waits for the results from FastReport

+

+

- client receives redirection to the location of the resulting file

+

+

...

+

- server sends the result file to the client

+

+

- client displays the report

+

+

If the inquired report contains any forms, the process becomes more complicated:

+

- client client component sends a query with the name of report "1.fr3"

+

+

- the server creates a new FastReport instance and transfers parameters of the request

+

+

- FastReport prepares report and saves the web-form into the folder name according to the session number

+

+

- server wait the results from FastReport

+

+

- server redirects the client to the web-form file

+

+

- client receives the web-form, while FastReport waits

+

+

- client sends of the web-form dialog controls states to the server

+

+

- the server transfers the values of the control elements to the server

+

+

- server delivers the received information to FastReport

+

+

Format of the server request line, logging, authentication and other issues concerning server's functioning, are described below.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal server variables.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal server variables.htm new file mode 100644 index 0000000..519b447 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Internal server variables.htm @@ -0,0 +1,44 @@ + + + +3.5. Internal server variables + + + + + + + + + + + + + + +
+ +3.5. Internal server variables + +

During server's working, the "TfrxReportServer.Variables" property contains the following automatically created and updated variables:

SERVER_NAME - server name;

SERVER_COPYRIGHT - copyright;

SERVER_SOFTWARE - server version;

SERVER_LAST_UPDATE -last update date;

SERVER_UPTIME - up time of the server;

SERVER_TOTAL_SESSIONS - sum total of sessions;

SERVER_TOTAL_REPORTS - sum total of reports;

SERVER_TOTAL_ERRORS - sum total of errors;

SERVER_MAX_SESSIONS - maximal number of simultaneous sessions;

SERVER_MAX_REPORTS - maximal number of simultaneous report generations.

Example of getting a variable SERVER_TOTAL_REPORTS:

Totals := frRepotServer1.Variables.GetValue('SERVER_TOTAL_REPORTS');

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Logs.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Logs.htm new file mode 100644 index 0000000..9108d69 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Logs.htm @@ -0,0 +1,47 @@ + + + +3.7. Logs + + + + + + + + + + + + + + + +
+ +3.7. Logs + +

If the TfrxReportServer.Configuration.Logging property setting is "True," then the server writes logs to folder described in the "TfrxReportServer.Configuration.LogPath" property.

The server supports 5 logs:
- log of the accessed clients "access.log" - contains information about date, time, session id, IP and query line. Log fragment:

10/26/2004 23:56:19 sid_f1672494035    192.168.0.2  result?report=3.fr3:

10/26/2004 23:56:23 sid_f1340767011    192.168.0.2  sid_f1672494035/index.html:

10/26/2004 23:56:23 sid_f1949776310    192.168.0.2  sid_f1672494035/index.nav.html:

10/26/2004 23:56:23 sid_f1150188690    192.168.0.2  sid_f1672494035/index.1.html

- log of the connected program type "agent.log", contains information about date, time, IP, and program name. Log fragment:

10/26/2004 23:56:19 192.168.0.2 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

10/26/2004 23:56:23 192.168.0.2 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

10/26/2004 23:56:23 192.168.0.2 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

- log of the referencing URLs "referer.log", contains information about date, time, IP and referencing URL. Log fragment:

10/26/2004 23:56:19 192.168.0.2  http://192.168.0.1/

10/26/2004 23:56:23 192.168.0.2  http://192.168.0.1/

10/26/2004 23:56:23 192.168.0.2  http://192.168.0.1/sid_f1672494035/index.html

- errors log "error.log", contains information about errors:

10/25/2004 13:30:52 192.168.0.2  588864044016/index.1.html document not found

10/26/2004 0:03:11  192.168.0.2  Software caused connection abort.(10053)

10/26/2004 0:43:42  192.168.0.2  Connection reset by peer.(10054)

- server log "server.log", contains summary server information:

10/25/2004 19:38:15 Started

10/25/2004 19:38:15 HTTP server created

10/25/2004 19:58:57 HTTP server closed

10/25/2004 19:58:57 Stopped

Uptime: 0 days 0 hours 20 minutes 42 seconds

Total sessions: 654

Total reports: 327

Total errors: 0

Max sessions: 84

Max reports: 42

Do not forget to archive the log files.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Query syntax.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Query syntax.htm new file mode 100644 index 0000000..d154786 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Query syntax.htm @@ -0,0 +1,77 @@ + + + +3.3. Query syntax + + + + + + + + + + + + + + +
+ +3.3. Query syntax + +

When using an ordinary web-browser as a client, +you can use parameters of the query line:

report=name

+

name - name of the report available on server

Example: /report=1.fr3 + (query report 1.fr3, resulting format - HTML).

+

format=name

+

name - format of the required file, available formats: HTM (HTML), +XML (xml table), XLS (Excel table), RTF (rich-text document), +TXT (text file), PDF(Adobe Acrobat file), JPG (jpeg image), +FRP (internal FastReport prepared report format).

+

By default format is HTM (HTML).

Example: /report=1.fr3&format=TXT +(query report 1.fr3, resulting format - text file).

+

pagerange=value

+

value - result page range (for FRP this option is inaccessible).

+

Example of the page range: 1,3,5-12.

+Example of the query line: /report=3.fr3&pagerange=20-25 +(query report 3.fr3, pages from 20 to 25, resulting format - HTML).

+

multipage=param

+

Only for HTM format. If param value is "1", then the resulting report +will be presented as several pages (one file on each page). +If param set as "0", then a single resulting page will be +generated that will contain all report pages. +Default parameter value setting is "1".

+

Example: /report=3.fr3&multipage=0 +(query report 3.fr3, resulting format - HTML, +all pages on one HTML page).

+

pagenav=param

+

Only for HTM format. To enable page navigator, set param value as "1". +If param value is "0", then page navigator is off. +For correct page displaying, use web-browser +with javascript and frames support. Default setting of this parameter is "1".

+

Example: /report=9.fr3&multipage=0&pagenav=0 +(query report 9.fr3, resulting format - HTML, +all result pages on one HTML page, page navigator is off).

+
+ +
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Supported formats of the report results.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Supported formats of the report results.htm new file mode 100644 index 0000000..226dba5 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Supported formats of the report results.htm @@ -0,0 +1,46 @@ + + + +3.2. Supported formats of the report results + + + + + + + + + + + + + + +
+ +3.2. Supported formats of the report results + +

FR3 is a native FastReport 3 format. It is represented as a XML document. FR3 is used during transaction between TfrxReportServer and TfrxReportClient. This format is the most appropriate one for document printing. In most cases, use of this format reduces both transaction time and size of the transferred files (except reports containing high quality images).

It is undesirable to use additional compression components (TfrxGZipCompressor) on server side, since it reduces overall server performance, especially when the traffic compression option is activated (TfrxReportServer.Configuration.Compression := True; TfrxReportClient.Connection.Compression := True).

HTML format used by most web-sites in the Internet network is intended for previewing document in low resolution. It is quite difficult to perform high-quality printing of document using this format. HTML format is convenient for most web-browsers. If you use a web-browser as a client, then this format is appropriate for you (see details in topic 5.2). +FastReport server creates web pages with a report navigator, with the help of which you can scroll the pages.

+

PDF format by Adobe is designed specially for documents intended for printing.

FastReport makes high-quality export to this format. For viewing and printing PDF documents, you should install Adobe Acrobat Reader program on your computer.

If property "TfrxReportServer.PrintPDF := True" is set, then, during previewing HTML pages with report results, a file in this format is generated (by pressing the "Print" button on report navigator panel).

The Server also supports the following formats:

- RTF format. A RichText document can be opened in most text processors;

- XLS and XML. These are the Excel spreadsheets formats;

- text file (required for dot-matrix printing);

- graphic file jpeg.

The set of the formats allowed to use in queries is configured by the "TfrxReportServer.Configuration.OutputFormats" property, which may contain one or several values from the following set: sfHTM - HTML format, sfXML - XML format, sfXLS - Excel format, sfRTF - RichText format, sfTXT - text file, sfPDF - Adobe Acrobat format, sfJPG - jpeg picture, sfFRP - native FastReport 3 (FR3) format.

If type of a returned format is not specified during request, then the server generates the result in HTML format.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+ + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/The Report server.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/The Report server.htm new file mode 100644 index 0000000..e438a2e --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/The Report server.htm @@ -0,0 +1,45 @@ + + + +3. The Report server + + + + + + + + + + + + + + +
+ +3. The Report server +

Server side (TfrxReportServer component) is represented as an autonomous HTTP server with a capability of report generating. The Report server is able to transact several reports simultaneously, logging any events, and collecting the statistics.

+
+
+ +
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Transferring parameters to the report.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Transferring parameters to the report.htm new file mode 100644 index 0000000..71d4c35 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Transferring parameters to the report.htm @@ -0,0 +1,42 @@ + + + +3.4. Transferring parameters to the report + + + + + + + + + + + + +
+ +3.4. Transferring parameters to the report + +

If other parameters are presented in the request line (not listed above), then server interprets them as parameters for building a report as internal FastReport variable.

Example:

/report=myreport.fr3&param1=Hello%20World! (query report "myreport.fr3", FastReport variable "param1" setting is "Hello World!")

Below are some restrictions concerning parameters transferred:

- all strings can be converted in Unicode UTF-8 format and can be compatible with HTTP query standard (use of standard function Untf8Encode and function HTMLCodeStr declared in frxServerUtils.pas file);

- all parameters are transferred to report as strings. Please keep in mind this when you use these parameters in the report script;

- all variables contained in TfrxReportClient.Variables are automatically sent to the server.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using HTML documents.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using HTML documents.htm new file mode 100644 index 0000000..2696dd4 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using HTML documents.htm @@ -0,0 +1,47 @@ + + + +3.6. Using HTML documents + + + + + + + + + + + + + + + +
+ +3.6. Using HTML documents + +

The Server can be used as a simple HTTP server for viewing any HTML documents or any other files.

Place the HTML documents to any folder, and then correctly set the property TfrxReportServer.Configuration.RootPath.

Name of the default document must be specified in the TfrxReportServer.Configuration.IndexFileName property (default index.html). Correspondingly, a document with this name must exist in the root folder.

SSI (Server Side Include) commands description.

Include any file in document.

<!--#include virtual="filename.html" -->

Include the file with name filename.html in current document position. Path to file is specified from RootPath.

Example:

<!--#include virtual="header.html" --> || Command line help

<!--#include virtual="top.html" -->

<font face="Tahoma" size="3"><a href="index.html"><b>Back to main page</b></a><b><br>

</b></font>

<hr>

...

Insert value of server variable.

<!--#echo var="VARIABLE"-->

Insert the value of variable with the "VARIABLE" name in current document position.

Example:

...

<tr> <td align="right" width="200"><b>Uptime:</b></td>

<td width="300"><!--#echo var="SERVER_UPTIME"--></td></tr>

<tr> <td align="right"><b>Total sessions:</b></td>

<td><!--#echo var="SERVER_TOTAL_SESSIONS"--></td></tr>

<tr> <td align="right"><b>Total reports:</b></td>

<td><!--#echo var="SERVER_TOTAL_REPORTS"--></td></tr>

<tr> <td align="right"><b>Max sessions:</b></td>

<td><!--#echo var="SERVER_MAX_SESSIONS"--></td></tr>

<tr> <td align="right"><b>Max reports:</b></td>

<td><!--#echo var="SERVER_MAX_REPORTS"--></td></tr>

...

Use of SSI commands optimizes website development.

Example of the site with SSI you can see in the "\FastReport 3\Demos\ClientServer\Server\htdocs" folder.

+
+
+
+ + + + + + + + +
+< previous page + +main page + +next page > +
+
+ + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the FastReport server together with other HTTP servers (Apache, IIS, etc).htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the FastReport server together with other HTTP servers (Apache, IIS, etc).htm new file mode 100644 index 0000000..4fda348 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the FastReport server together with other HTTP servers (Apache, IIS, etc).htm @@ -0,0 +1,46 @@ + + + +3.13. Using the FastReport server together with other HTTP servers (Apache, IIS, etc) + + + + + + + + + + + + + + +
+ +3.13. Using the FastReport server together with other HTTP servers (Apache, IIS, etc) + +

To use already existing solutions based on other HTTP servers, their integration with the FastReport server is possible by means of the "CGI" mechanism. It gives an advantage in comparison with using a built-in HTTP server FastReport. Reports can be built in an already-working system (site). HTTP server and a server of reports can work on different computers. Usage "SSL" encoding for operation with HTTP a server is possible (this possibility is unavailable in HTTP server FastReport yet).

Applying such method, CGI becomes an intermediate for tranfering a query to the "FastReport" server, obtaining results from a server of reports, and return of the results to the client.

You can found example of CGI wrapper in the "Demos\ClientServer\CGI" folder.

To us the CGI wrapper:

  • compile and copy file fastreport.exe to the folder /cgi-bin of the HTTP server;
  • configure the HTTP server (Apache, IIS or other) to execute the CGI application. Read more about this in HTTP server user manual;
  • If HTTP and reports servers work on same computer:

  • if TCP/IP port 80 is used by HTTP server configure the FastReport server on other port 8097 (this port is used by CGI application by default if configuration file is missed), if you want to use other TCP/IP port, read below about using the configuration file of the CGI application;
  • If HTTP and FastReport servers work on separate computers:

  • create the configuration file of the CGI application in folder /cgi-bin with name fastreport.ini:
  • [REPORTSERVER]

    ; IP address of the FastReport server

    Host=192.168.0.34

    ; IP port of the FastReport server

    Port=80

  • launch the FastReport server and check work of the CGI application.
  • Report query example with using of CGI application:
    http://127.0.0.1/cgi-bin/fastreport.exe?report=67.fr3&multipage=0&pagenav=0

    Read more about query line syntax in 3.3 topic. Replace the "result" keyword in this point at "cgi-bin/fastreport.exe" construction.

    Attention: to restrict direct access to the report server from clients, it is necessary to specify an IP address of the HTTP server, on which CGI application works (127.0.0.1 or other).

    +
    +
    +
    + + + + + + + + +
    +< previous page + +main page + +next page > +
    +
    + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the reports cache.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the reports cache.htm new file mode 100644 index 0000000..032e2fb --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/Using the reports cache.htm @@ -0,0 +1,49 @@ + + + +3.11. Using the reports cache + + + + + + + + + + + + + + + +
    + +3.11. Using the reports cache + +

    Caching of reports allows achieving high efficiency because of saving prepared reports in temporary files of the server. Depending on server configuration, after preparation the result can be placed in cache.

    After specified time, the result of the report will be removed from the cache.

    If during this time a query with the same name of the report and the same values of parameters is received from a client, the response will be immediately returned to it. The reply will be based on the result saved in cache, and will be represented in the format requested by the client.

    In that case, the server will waste time only on conversion of the prepared report in the requested format without building a report. It considerably increases the productivity.

    Depending on tasks performed by a server, it is possible to assign an individual storage time in cache for each particular report.

    Time value is set by the administrator of a server, according to actuality of a report, after certain period of time.

    For example, the annual report about activity of an enterprise can be stored in cache long enough, since the information will be relevant for a long period of time, and it would not become outdated very soon. On the contrary, a report about a large commercial organization warehouse would be relevant during a small period, and therefore it consequently should be stored in cache not too long.

    Reports cache properties:

    TfrxServer.Configuration.ReportCaching - enable the cache (True/False);

    TfrxServer.Configuration.ReportCachePath - path to the cache folder;

    TfrxServer.Configuration.DefaultCacheLatency - latency timeout, default setting is 300 seconds.

    Server configurations file parameters:

    [ReportsCache]

    ; enable caching of the reports with same params

    Enabled=1

    ; path to chache folder

    CachePath=.\cache\

    ; dafault delay for cache of the report results in seconds

    DefaultLatency=300

    The additional section of a configuration file of a server [ReportsLatency] is for customization of a storage time in cache results of one or another report:

    [ReportsLatency]

    ; cache delay for the 1.fr3 report in seconds +

    1.fr3=10

    ; cache delay for the 2.fr3 report in seconds +

    2.fr3=20

    ; add below the any reports for the custom cache delay setup

    Correction of parameters configuration will minimize time of working clients and will reduce total traffic on the server.

    +
    +
    +
    + + + + + + + + +
    +< previous page + +main page + +next page > +
    +
    + + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/index.html b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/The Report server/index.html new file mode 100644 index 0000000..e69de29 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/banner.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/banner.htm new file mode 100644 index 0000000..e8d9085 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/banner.htm @@ -0,0 +1,18 @@ + +FastReport 3 Enterprise - on-line Guide + + + + + + + + + +
      + FastReport 3 Enterprise
    + Programmer's manual
    +
    +
    On-line guide
    + Copyright © 1998-2005 by Fast Reports Inc
    + diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/content.htm b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/content.htm new file mode 100644 index 0000000..ff1a0c9 --- /dev/null +++ b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/content.htm @@ -0,0 +1,51 @@ + +Contents + + + + + +Introduction +

    1. FastReport 3 Enterprise - Client-Server reporting tool +

    2. Components of FastReport Enterprise Edition +
       2.1. TfrxReportServer +
       2.2. TfrxServerConnection +
       2.3. TfrxReportClient +
       2.4. TfrxHTTPClient +

    3. The Report server +
       3.1. Internal architecture +
       3.2. Supported formats of the report results +
       3.3. Query syntax +
       3.4. Transferring parameters to the report +
       3.5. Internal server variables +
       3.6. Using HTML documents +
       3.7. Logs +
       3.8. Authentication +
       3.9. Access restriction by IP address +
       3.10. Database connections +
       3.11. Using the reports cache +
       3.12. Increasing server's processing power +
       3.13. Using the FastReport server together with other HTTP servers (Apache, IIS, etc) +

    4. Developing the reports +
       4.1. Some client/server restrictions +
       4.2. Some advices concerning the design of a report +

    5. Report client +
       5.1. TfrxReportClient-based report client +
       5.2. Other clients +

    6. Adapting your applications for client-server technology +

    7. Examples +
       7.1. Example of a simple client-server application +
         7.1.1. Server side +
         7.1.2. Client side +
         7.1.3. Client side with threads +

    8. Important security issues +

    9. References +

    10. Developers' contact information +


    +
    diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_001.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_001.gif new file mode 100644 index 0000000000000000000000000000000000000000..dce90a9c23090d6c05a210b90907e5158f773e46 GIT binary patch literal 85315 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

    Lep_e%$|6xyGO# z>gmOe5XP;_70itp3z$d;iMS{v;}K^Z9f&pkdN~ zLByQ6azo~jW8Tz_hkhsKqy68WR$H1i(y)>ix0-jh`*rpwcB)nn+qMpOnB=s&m&z8F zw#1fdcdK^;xwNCv^xxW+&!QnCywH|b#HX9%tn{#yRz$++I4cz=Zq9$-thybz#)4vn zU_C_p6n;6Cn$*3p>Y=OG;M!l%UX0+l0cn z_KW2{XJ8j-o02B6Py8uk6Ay12oJ!t4@QF<5?zivJH*8TlrLT2flX0xK75hVIY=*!R zPE$K0u-5~zy+R)m{dN~cTKR;d;k_9*3t&6ndTZALk9@;evc3>kRakmuAr&eYXM1P4 z@Yh@QipU~;E8D9p5t83q=6+A!G|6tQ#JziFp81y|$D2~0ch=`{$#rYiBd)dOG$jS6 zOFx~A4ziBCh+Kp69c$WtscE0*=*7|An!TeVoUNW6Wl^)ui5~ag)PwW}K*wY=WDNc8 zYdKd1x+=!(1ZHA{#30`_kU#p%3@~J`>`sHm3+1PS>xi@p84h?r3mQ#XBfO!Ga3Dz( zXkE$k332H4@0qLbCmuu(+>6879(nO*&po$t$IYA7&%;P-16p$4>+V`0*qhHG;!YfnHy*-DT8cdY5`%S5`0~obQRwV(-6sWr|a^tsG zPL@(7YE!azCQjyUjVIwEoq6$J4j~xxG}Pc}Ya!O~#9ZILx%(1;4gdopR1pJ}CWNQa z0%6zm$t>tK#{GaXz4y0)$_d$%x7PaD1*c)mYq^S<(bu~ZFJTjI=KcH>z}DLm7MBfd zZl$1$7%~CoVNS!9b-uRgwy%!FQWu@hclmN`7O0R$kD`ZIO^U{=5RI!Yx8t6_A>6CS zh$AXIaVkd)4KHl!zE53%?YplYE$Pd9M%A7Q zu$z9~_-YTlQ)1NxC^!|^hQ~+DG5lqF6C1ZnUJbv$FvVF{oV2l(qR2Ow*MbLVN#S-i zkb{&!m-Q&p`M_Sm$nOsALq~Y`>rZd9oNF({_RIay&kyw;liOAadm%x1NDw4n6e$6b zE|kLvVG}f2;@Yt+gtbu6`*3iK1hF9W*;xzdQfxdDzO({AN#U!%YGDgFcmquM0+8X~ zfD{54ONvc#_)m;P?%MvJ6GHVHo7~HOD{5_*?z` zr)Jcyo}%5Jf9hHE!FsJdXP)E=EyJ&dtqap1*+w6kZe+#~We-@y4yBw~VG77GG1s-^ zk0wpOym@kdfwks`bshwGyvGM53}1IRD6sKen{bmVP3j_|V-cT-S**;@F9$9JO!Yc= zpj31!Nu>yZDT$SBIG=iwmk5w~1XM=XHiEC1r{F<#221J5tgJ#*_Wtta`x7EqyFeZU41nRxnTaNSk zAW52MOdgSLvX1*TD(%e$d5rO!RH*~@Y)qG{L$EFfSYu?O^+gF{_7?6{Yutj>=j7k_2#B&e+Wp1* zPfXS+pW07}_k6l8UopBY^|tb3ruP`|<4Tx+wnvx9Y~4+$Y}Qulx~6--@FVEqF7m89 zVmWnno$nT8hDgi%_04aA`@i;c;ZdSP+-YU&oHRRPBC8M%3lU-oC&O8QLMU}-hFzWC zVc_lFO#Bft^*2ieju0K^x;=u6*S(IWbbY6HhtCHl-ru^PYZs%b&D-~B{Tt}M>xMc& zWarSevgm*8OP`7ghw?0^8gdg%pk%pph7~7eI2y1&L|SZtHGm0CD_W zS+|k6;8VplfznDuoZXPNVG09XOi|_edPmsbEAXB?r1|R=GG`UvPoAPdj|v)cqjjq* zKQ;7QRu$&$F6I$F;5Hcw8{{%+#e~H{>ZVcc&GF@d3P#`1Uf`&~=BWV(2R)J-BqQ*< zP07d5)44I@25eoS0Fqs}#?_*LQ^Bbt+Qry7*c$m_m0|v04X_5C45_QC0irH$j)ggc zvlO=^uMF85wocI~Gegx~git`O`8nI%3QF-qQEhcj9@hGI8dtdM3B4rLc9vBOxdE~B zlVbl&@VWQ$cP?($}>%VZzyv;SPE z*QIxRy@Qdiu}+FAxnXC!)_BTwA_swxztxhY*XHV~qmmmbbgIU~A5*qg@(N3vYjpFr zdu&m$DXN;RG2CnDsgs#@&m8B!r+hMOj(!@Oe&65|MLpap-S!dFzi87AxrmfV+~Y-k z@?5ZYfO%^9MPiN3w!N|er{mNHDg9R0xY100rR)v*rXbYj{)4q4-fYPmTE?GE=A!o8 z1bANdv)jW+Nj5I(n9$+ZY{ALoh};e{kxE$ao(O3}o(|~0CoUF&>^xLxxRf8ROLfjL z>zIxdaGK74Hn|&P$@$88+NFZirg^9}gtZ{J^sKF!{W>vuMd-*7Z1Wl$=H z-G%QQd3ab&<4F_>F9$B&+m%l~%ii8upqXcnm!WD?Xn$gTZ7l}2CP9q^(o{sJu~ zJvX2nEWOkieKf&lIC}EH>AsO@y7To~FD1kq%YpXxWBdAThCE?>)-5-=TAFk<@k8Ls z?Opai${(Eko+JeAW0}eoV^7y73ol+iCvTZU(X2~HhHIH1<1aB^ssXg-@uy)wTRk__ zuDk1jtJy~CCpl^t0z56J=E^!^oeA`^Y-G69i2YE`+Rglc3G=*KHB49R&3;Xu+Kcty1K_Z1V|Xk5u)WQkQD@)jHXJ+w+07I5QF>^%hl zIz%EL`C{=Cxc+xQBP%r`gZ@pZdo=N0W_h16?r0hH<)-~Vw6f1Gq#0y97@Cz2Up@aW z`Sr$VvSG+~MY7?BM`<&JOAqvFI)8X5`W(SP>tsg4uU`!=ZJl|2)lX_%4PO=>CApJ$ z40-y_9axq?41R{Y<;H){4#B-jGgxjJr6p@cimI`824NYulMu<`CfFR{hA!67VVY<~ zbp!Y4r0?0#(ylV&xUrGG&GE_5NOdU+dA!h%Cy)K4>2mC-xK{mZq}MzVgG-wZuhHgS z{i`|SUU0+`i&g!+${Ng8ZtoJf=&cwes zbhuqBb>GXVgtYkEpMIR6Y}n9#=FGq2%AJPWjTClyESC7U&4vSsii@X6`kdlI`bnjT zskYY-M;SP+zrq-P3xF+Wt#VT8#D1z- zuBgl~g|uz%nHVjD2;+=UeuZMWjS#1@dL<*FOn5TE5y2)4NSvbr^4%18*fVpP1b)y8 zc_p@3;HO%-8+|d-4n!6BA4N~6G;B-BLg0(|q`w!K@&Oax%4AV1*z4Ion!}xamDT~=h_5omqJjf4Il>t zhHV%ZLl=TXC#^1nEk4V*QtXLu_ntWF+TIt10!>DiEZzsexlcX#pi$YQZ zGtSLYD|aKHAYxw%j+f1pp_HxBV%wcEXdqU8E+e=@Z~GqNS0SZ;MW#uSbJQ2IW1|qR z3asG`nXHOKe`Mls$zPqlH1I)X{3sAVy`c$xH-gWLw!?W3k=Dwzq!hF=h}R53M^0&h zZRwnG+qGGPXZg<0hYMavH)8B}XI~+K*StF?P$`^h(%P~)+~5$mkLnMi1VOMnR@^d)K&zAT#9)& zkWcEDQb!`%5J#_=7obOfk0Ji+xjfR)I&^Qt!}$$sj>2!k^2jw!&zKu6wmoHtI)4>$ zR%hd;CLBD`vE%(_!&JprJ*OPlZDulOg;)o%p$=iShs^RY6#0nUi*JZIaMo`6l--P?c^UUQgKNv+!72U=E}#-M z$HJK3%&594zW1>@XG3+C^_iv*5X8X*jvb$~E)Rg<0?h3>t7;P#t`n9)6YHZVtPW0W zNT0AS39#&g{Af7cVXS>&k>-5Bk~g-lU$uq%Y?!l>Rllc&_fEg-KiY%dej_KWvO5r94g4@Rv*$E{#OvZkGG1y6?TJ$eq-P^nUxFw@I#x=~*&z9hYG{HHhe8Zj%=j;7!?69`5HtU~vgqEFkBE`9C#iIb6KuWV?@SLsvKNoX# zT6~-;JP=*LuoLgr2(qx5A zJ3Pyh?^%UiBqQ*EC;<3@*$7g&Nw_qYa4bQBmWjphsbS=~1V*@T;_){j1;W2lE$wt~ zyhhelkjhN}gz%hoY)^bz!y~!?k#4S^7VlOXa?|7WWRfZ;A5{STZ=k$#-GdzeCu#Mv zeW*g1O3x`T&QA{deUWlkzp}ZIAX{-hMGGH<|Mt+BIAs4CR&9-bcvtD(UG&*X!b2tl zR3udg(YTK0pv!H}%j~mmT%**njQ7x*55pcC=I^CS94aBh)G>}CA0Q2;DpPkLQnsDs@?vboN zD6NMA@@4qHM*YSlPAIjuKCGZ)4-VQ}xJ^jT_XGOpL)03k^K-_2NVTv1bD~5Ar!Cqe z9(cLkIr@kmTy_gp5M-fWGQ_Ml<`%K-FuSk)h`6nOhJ5R4(dD6Vb}aYgU>P9X+Rp5owEMWXty>~ z?A6wYV1)sN8V0I8!Ma%6%mnV3N2WjSjBB!xkG~C1=)G6@FOpYvMMc7;{qVKyb#B6ZNur*!^w%9 zBUJO+>9Vj}nUS^`iiYHHi;RS^8>!5V`7LIN35YX)AarM))`@K ziv6d|JlSv6c4g*trq*pgfvHInK0N<)d+Opn6SyZb1sIP8o|%IVi*LP28OCBr7zb2N z;2rY@!vu5bF|pGZpKsg&-JU8qSJqsPM#!)VPSznx)(f^Rws?4=4ksv-w;>fyg_3z) zF$9DR5Gk+1&j`YMe?VZs-L>sS%0HnB?uFZ=e5Cw=JKHC9#kMa6HU$8UY=Yic7_z=4 z2Yz>XrvOJ11h+JS81tXdXL~ZhcYUKer_?`OO<9!ty;0w!QlK*NA77av0f+}p%Yy>6dwn`L!wjqlhQ zPih$LIuU=zD!xJdY2@*z(Kny&fB)3;Z`ke6zeE?k_DQs#z|R}lwbPEDYUOQukQb)e{(2rd+McV+Wv12 z^)Y2LNS*p9973^s9j4mg2crJ$4nf#qWdm7PdAU6LfYwPUEF|3%J_T+*t0zCmCz5Etr8TwqV$>?VZ|@&K&FC?8zm>+7G2Z^;WxduMzGYZVdp`1`-*t zN3JmCHXea7jG}!tN&%HoAWfP8k{GbZvRp#!JI{fy>yEE!iIkO_f%|yI2~Lx;Jy%_J zj1@KbW@R}ss=8&|f@DZ;#@VETcPyq7=G^xU+W2ZKdbLHUj@7Sk#$h@picKZ~)g-g; zbPty^ao4e<>;(1AUoCAsYra3azjCp7uX7uB3yLde%{4&rWPMYONRSj11V07fNjxhd zM~`|KgX7AjK#UW9m@Gb7gS8xc^5fXR;S*25lgQOWva2VQS9u1jsnWx#TT;?ASJNLH zK7kBSU)&4%3-rV$gzXZ>%5&lxgZi7EA8|lEF!~=!_a4pkpOYxE&luH{I3GCEXEXnzNf8#8v}^OYO?7Dk3|@Y3$V@iUO}RFZ zbc&o9P?f3}3kV_L+=xV-#w2^aL?Q_kOXFa(tvXn+J0j^yBRIAy)t&)}b*5gEI~>tH z9JM+eJ99W5csLOlAK&pb_yF)3=;r}Ce|}`It4MU-;P$P$?*~*JmroQ{A|oVhT?oqPlBflss;ejffCC4NkYBKUZV?!?@v+-VL_yXXC+zlu7_FS-I|Ym8cSE}Rt$k0zNEj?>sQDO9i5 zL6&9%`y~n`lUv=?{rtoKUcy_OAW58}uG#xGE9%4IqVj-XZb_#vP4#AQrgDTj3?vZi z{KA&r#pe$l(tj2vz4Nk9CUUEG)2rtUI0ec2^k7@O8w55+AYz2S94CRZQZM0&CVIY{ z0$NJcu+n6I=@OCfm^qU!|D=&r^LNbTu0a}HoIg+O#m@jpN}IVX>Q%b$b4rnSIfdmn zdR_5^Lka+vY+RTl{M#Q*fi&;LHRo^F6-&ocp;?I^XY_mE+?mayE?R zcknnpZLR)w5UWIRPAPCT@|BW5D({6-A7*7P4UL1$Y2505wtSJbD+4HgzOG9|jc{1kOh~;!!%IiN|Nic_R=A3ZFq39sZ zMzu-U-dl5iM)l=vOpiqdbMof`g0ZsJDwFb*M`j}kA8Op2{VUYK3FaLd$7hH4G^K~G zQr7CARVmqkp4XSo6V?iMTc*IKN*B~SFsH!=9do9uS*t3ihXCb&r_U1l^zK$ii0>}7 zz+R2trK*ppB(H@|4f)uckLz{rt6bD0nE>E{>t~STBEEDLW#8C0JFsS_{G?{u0#!@s zr1cumnM5_a`zLS8(z!;ksntUHQt|9Ep+|Up>L@Rj7kat3R(Rf;)1)8?E7-|dU0r2u zvsa}bRLjls*0Y0h+Kh;_YW1l^BQSsV`QRg3vg$?CDmnVJ*H^Yi#lgH6FWz4i{`WO! z!|$SdEYh;9>K6tDQWBjdqG#|u)DVQP-YnueQ1(`JL)#ZOPJE$l8aeEvHHw`)<^p8U zn^w5xFW={7Uw5T*M-r^u!24-nM1ycTxmoKS7x3NisdB{OhHz4FT1T-ug+#XUbb=Zq#al(16Y1cFK{BZwyOA}t_iN+eei$R~vOA=hfqvc11a4XBequs83goB^- zrDqwm@zd)e76XlceRzBoTzESgGAp-f zdNY)+Ud?&FF_SFSmLbZ}nb?)_GY9MQ!qTB_gN+3DCCBs(-x~ap4;B)V`FR#94|EBPbSAc{yqTGVJ8eG?jT{*(K!YS+8n+U=1>Ade0A=l9mN zJFdJ^^7`}f%)OB%CrY{C==y$QbCXtARt`eFrcVTv>e%Jxq3mxrb6sF?(TBzR#0^*I zQ29b0s3vcw84$}PAqTw$(?n^9d|g}Yco@IX5buT1&=uUYpp{R?0*sy4dmZir*IYIy z_x;XY${OQPIFz*-%X9-pPgew8$kZhzu}8kOJRn3`421dWi=y1nidaW%(Z;L2q?3TvABgLk3 zJ$>_gjHD`)W*#7%uRY)wxSS%8qO{uhh-7W!8Cg&iwkanR2X_=?eJ-rWr?#r*v^a7? zi!fxF+`?s@Z@UF&M|%t0W1Aog1d3*bI#p-%-h9~AZxye?0`*7lJqiogto*Z$GFrhg zt_ps?4Y{yoB0k8-@a(POdhq_Zl`q0=Kp>LvtzsNWF-+TD(r`GP1dOHCa2)+{fzNQ# zF2M{lsTV;Ad5-eKzc*kJEPc1k)=2^ouY(UkEjrP;TD*b4JgJj3l4y)R8Hl6Pf(iCT zpECQKu^NpN=XJEje8=A3;ZE(c@c78(&xrM9@e%b#yq`wiFnBfLd3SI{41Kwf@@g;U z@?gF{DC)7nn@J@1@P}I$FH&sYfQ4v49s!Xo1zO|q8W>@TJR+yd9WpWEDM(=_(ha`a zVD(1`y*oPgEv4q60kZsp%H9CkO#ZE+SKN%_qsZd>qN~sLe~uSQeDk8Lyj6T0H+#G5 z+f9hkmdW#bjO0h46Q_lB%E5Lt@zbR~v6~{3Zsz-ub{|`A>g(P=n}%AI@NuZ;aF!wQ z>Uy%*wCh7;q)F5WYkY&P?uIJbdy{MlwH|Wgz<&JgfV6fmb^DcYVG#q5rJ65NN|e48}Ny^C;vf=l(oeOq2Ow{mBo7w1{0s=iX$rp()rg+ zoAUS|%JGfSBPH7^TKp4^!o&{@;W)pOqlUI89jO8HPh4QnQHyju%2dqo1$vK(_AEti zk$6mTh1HbDh-%C;5MMll*R-@~iLMAp@b8iGk5m_(Ej9A+7PJ8ghO_U_3b~gSCaei1 ztqJ+ybdkvuCo+>_X&QzmdXC)3ymO|w*@VE^o6~I-Ak^qleY1o5ipRf`k9Jq6L50Q9 zqnhSi02RzYyPQUyLU zsghDUbh%*<{{7X3wVQvAn5nELi|1g2O0(YYPAXAKE*-vRoxdge6;3Fe{R)_+YL~2$ zrfincFJFzOxe=8+Ct^BJ=`|+5el-#^MT=SF)KDHVvUU42W)_h0IIU1hxGOiIZaPYN zRK4|lgUrSu)|%=#w`n)^mOhs!Ez0rXS>7BmN8oG@;>?@_PTt+zT=xiZlL(jQ zbjS;r*}OQ9C@Q6JLN_h;tci-7EYquX0>m{-#X1w6y8L5x0;1;X3n=(KKgaV9W{NnI zD}HQ%zb6U={@6^43jr;E&#MzMQ45| z!Q?5&4H4f!6mTBx%+-3nc-jvcK#NS_!I8QvQi}=7hSEi@pq=e%#2>9s@x(L41uAx(PpDV_mNGk<0B# z^cPd~Y1ffVkifwd`$SwIEHEPYJ&L%d=s_|6IYphDn_o7&h^r7Nq2ZUOP_`6K`AsOW zC0p_yCSBoN3d9PJ$yUiFw}bQLy%V}Yw*As+|1yjkX;4IC%*#<|-kl^#6Kctwhy}Qw zA6+JjCNr=l6ANfYRa}~`j>_?f9v|Z`gbWxZv&FPnk|k0akhe+ZA((+v1PLTc0Qab{ zGHpF&G;5PCsh50QnrMK6sK=Vh$C?Vug8=JyuKH%kDIx(n%KkiD50X7c3UkrK=EJv# z$Pt#L8&%VG6cByqz5c=bXpLqgWc`Ot2VjO&HoXlV^_rnc7AB&Y!Cay~GrY;xtMoc< zSMy!rAfJytnB-@#(h`I18?sO*U!2-}P#A4YSpeogtdR=lGoaN(ty1FA-MQF?kS*Sn zD;oTq$`npwHFAjB>bV5Q)4{eB3Z3$&8^hR$IVGGy()a#sju$(E{bn?^uw*n*3ThYyeVz2r|tDqbgYxrF_1vSC>u4^ zHy?En^v|H4b>e#?CQP(F0wJWBg|U5Cio&-aCS39${(Lij@?5eZH>VzP*W}B)|3CedG7c9-^-6==pB825qP553tfp4*M4%CTj7t*uiXd5z!=;Dt7 z3uCkBqyoH2zdQSw%E|XwBDx*ngl1luc|U7kWIiL;W&c@rySeLQVE0egN3o0#<8oRL zS_M!oC~G=VAhUUf!b$oBvn}E{Pm@^v2##VfGTL{Jvd2_)S1a3DSVA~Q^k*>MZi8=L z+n+y!YOaBWxJSbErOkfokBVHWaJ+7QqGIgWlEieW=l~9Y$NC!*9~IUl?)OoY2y`Al zQvqAZxh$_6s+6G8B$OXf$4x;C3+S02QR_t$C{1eEWLJIS(Zv)LVOJ~YnWi+c{NUBH z*a*sSq`Wv0^t}5wAb$A~wx^3^ zo6CON!c#Q#n{h2aA|q{E1oJ$XjRyB7^H@VT*iTTS)u@`XL0h^G2)CV^TWrDwBtv;U znk(2pb1KLb`G^E!&Cd_Wn-u*{6PCgvo7m6O?_bV?ox>35+n>pEDT4nN$D1fFCh zm?IHMR|Pgtfrdn^Je|U(>{BK%-JJ5%c(TJiPVW9IEpJUb zIJAT0{tMNzE86@RvRj}U8?dE#YDtcx?$ZqAaf;`*&u49koE>`p)k1oi1MK+7@%lQjY`N9l?}(P z{vIJ+aFt2lDkq~fTrlAZWV41@4ZGT_@GAK)+h@w|%qS9)qmtodY6m4(twZYgq z+@@m-Z-&%Mxe``5grJFtLyqM!mGsi^18`5&4>RfQ-guyObFq_TxeB8J)O1fl%rvqsUf$*Mog0pWZ(yn#KYHgllGRh*Qbkq!j?b2tquq> za4NC73c>@wyuTNdw>^FbI}rYO|GoTdOJ74|f7WMNypy)ru&oftSu};qgHNn zP%=?9{r3lTwV`e$lP$;teW*HwBT-B!EO|+T2jK)a5x}0Tf-5Sy?M&_~iF`~G&`_&_kdW~gZ;*-nYXN*#KNxfW|pL&~c`FyclO(~FRH$cPh5vw(t zqkGqa&A%FiSrZQF94Vt%WI4gm(ka($`i9lzIkDCpvBqtC0@>zX0!{ALBMvR>sMn#S z7UcU>*;H$Rk!v8{^S#T3JA(!9kDE%!KMW)u6`hk_m2H#@FOpB`e;+>+m}(=fx%Qr< z$)9rN{k4EklxG=nYqeOr9y#sel7Rkl(Fo)8RxVt|JT~oTEMFtG z@o#2`{*S?i;iH} zoI{Ss4_`_)$r6xGuJafmUHphr&{TD+FZQS9op9gD+i|o~@w*wNNlgN`44s#LHMaNZJ@9FdE#uR&#IIX_KlG7jIUb=dZEr{2ipR zJxT#(A3_}97pWUn4?%uJ2YN8)wwg)wXF5@gqmU9_qK%mweQ3xhO&{3EX!?Lw?j|sk zwLMRM)%Nu`y)Z81P3@BP&iGo-BjY#swGOa-vM?!rfiLY=WsE8Dh&JtOVxxBji3sP1 zmy-C^ZHcB-Wap~+j7r~j!AS*OM-WU$=j)R>wb=>)Mqu3y`(~@s)ca&!c>#I}!~Z0{ z$6jSc@#*8^AZ}-d35N?k@tU=P0?wCOD%0!daWbt`&OWvZ1nYLX*UQYbrOT7oMN^kn@;&?a*t``G8@4P5lc zX*u4-paAS2>J`eUg?x2g3iN#V*>|PE?KnCgE96n>J43f;F9J&vp5f?K(cuz20(tiC zAL>iPUk2at*ZVH}*pxq~*RR542V~>+RBK$?FWKU{0|?`S1~&0lx+i0wy66YLy1ue= zIX5}n1*pU|EO{o}Iq|8Y!}AfLcK2QFnMNQDw0KqmbNfQDOAvcx#6sQysE662dhPr#+cs=d4I zb3K2sghT-~tOsNW(e`~hn{PTsL8&Q!L=k)eYLHgb#rPj5@s`px9 z)rpc2M)jM22VW;|U-f4EmMii7=g55l!P>nF8@o-ITLXftlCOO?n}qxjqF+<4)52&~ zfmpm0-ynz>gvx~dc@MD(OHw?iQ0-x>Cv>D?H$@?Z%iUF?uS~hw(IwmYnX$KmZQPFb zHiL$2#&8FiC%X>gi$TTJ<>)b+aJwiU{sa(r7&XK>0(%6=GfDHwNY6emogO>9Y@r^h zPF?>nid~SOP)m!*2^QGE{UIpV6#9C}yetOTdHr*F&}jdCin=J1vWcWX?-I}Ba})2Q ziY2f~QS9Gc3^ff}i^}_sknjSbmWqhUXg8#WP2SK+eWnvlkDZ&o`#|`Da#34Uy;-EG zMt)N@_dKmwZTaqK8iFFrBCe;&UV>UXzspEE_N3~1in?i2#v0g%{7$nJIUi)BSr!rT zPNVe2T$m?5t)kj}slB*wv9&>44V)6T+X+XJm=Gk{vZY2nsSgKu{pfvf^tJTye>L7X zEy=W6stHQ)H^qWlX2E{wkn&Hnio<`)MChf1;Jhi8w{6Qz#Kkd*bFo^)Xv;z@%Rw0F ziwkn|X!{sc10bqU*=}iI{VuA8s2NsJ!33Ff25k4b7vB_W4G55^e5<1%!RqOe>*@f9 zvXrPlf~c;QX$YE91!xWcval@A0wH-cRytAg;iQr4a6v0m%2I!koY~vn$32!e(af&< z5({XS;Ot~k#;t2=&kl`X(ZPuKF!AZhf zXPm?n7!spc{wg4#=d5fiC8<nfXZZZ|m`A`tbrA6GaX-Zyr4_K90A2MW=@sAU%3GYAet3wsMI5*# zqZ{dr@t1A|m*`ZNv8m0nr*&zeZ(G~K^z)TD`$)XvK_KL!AV`u#1AS`MytPviX!zy# zql9NYx5aTa&xbDlclB>5kg`A>w%4{w0nx}vr-p1jW4oUdxe2E0~ z+Z$VpFy2T61S_M5&6828J?r43@Z2ymp!`HpaLBVa&@+ixKS~mejZ9io_7nvvT1S+L zn!3Sl+`QUNqMm;&j8{31*05<5l@abI`vClU7mqnK@lj&b?^*Aomr5r^v1(^1RTm3B z`|p3w)xOg~Smet0mMYhrD6zctX&ZW?+x`|tL~s%-4om(ROXCpNS&gT z#aC-g&lKX>GoWk_fiQZc<>`7ZI8V`=yyo=VhjN)RT+aC^a!ew$kLu#_K5M68He==B zUCX{0#m3W;54+V414LwVBPYR05=Rx2^72eX*4I$~?5857OAD00B2<~2YF{-zb?da0 z){*!NeE4mNdq-8*9Y}ivbL*&&j^XkcKcz99`qL9t$U+lb86a%Q6yqbJvrHhaXh@mW z&v?u)3IXw-12VQl7D_VkdEXVT_=Ruh$dp9fsyARm17=wr5~6lL34nN16~sF5+&_Bz z3<)qM@ml%-eA68c3JV7|cu$bnz?!#Zn?==(wy=We-o?fKz(1Ynk=Az3F8dd%pd(2D z2%7Jg;^Sf%rac$_&qsR44?5m&g%NJ)x(<>B<8QRz`7FE+p@6OosjP(4@gMCZfm0nB zw&hqgCLyoKLA^JR0HIeY@ zSD)1jNZZ(9@AscW$6e)iNz$bUJ8$x+Oa!{OklM2i+Iu;&x9tt)Q?&_-07ouJsG{dI zt~(L;=6=#)1KmmwA|YBdK_4FBX{S8TiQ^0nm8D3P7km)uz0cSh;Ta~XuADbiUhl@R%U)&S0zbH#KXm zw+YQ_30Wt!sMXixZ4LuW4i7$-MEbo!@bqqj1fcC;(4*b5)?OeSUK6a342SES5;DjY zvKtk$cx>^}1mYxRBu+GXdRjS-{PQXX3nwBKvmCd-8GqG0{-p=EP80Q%((B;id0^S; zVYawOJ}B(K)m?Y2kf@JRTAA4yC&)-vagN#g;6h9;Z|BfypNqKhc{u*B4rJw zQ>`Qq>2nBGsa!l-$NGMv`n$6Hs4{1*@{FmXU1yr-Cq>=su+wAMBtU#uf(MJ|VMN*C zC?GB1XPLTjc_98cTsZB7rBRx2)ta=W-~DG*SnB&|OCKo@-+Duzf}#m z9P6QsrRW5u#ssAcPTG*7GjxKJT`x`k+6Q z{xkHRPS~_-*lclFKH$Oo7TQ+eafTu4QulNhp^;1H-YSN!ui2gbjEg>Hd``bjS-FJC%#_mb`}&BHYu(Ja#F zZj>GCSCpe}w2RQCKyR$x^XU5VQ5&|(S1la#;iAhXce1ng`MMInlw6=6g)H8lIP4urv)hV-?Z`diuK1bL|`MYo9Mb@d^e1X}s*Uu}jjb z_hw(%;`=TP*5UGjg;!2_nx46OOa78!;ME_Oul;_0Ve|RbKe`kcJ1V$*Em!JNBVF7z zRi1A^elu%h7<2hF6xYc37kkDcUe}UxSNhZf*l3`vVH(`gq%lTP(crRCA2nF&SCn|G z_~xfaV4bmliDPdycNFmpfW~nmyi$>efER7&xg)FqEGG)j zusX) zo0J4wXjz(c_rYx~4mHn!P<&3gT7PPoB2m)GZ}&@F{N5bcG3!dfEtkGhHPkguDF~84 zb-;`*GpN%1n@)1ya=(wZs?xEv(=iy~w^2asvaG0%&-oOsmmtwr#~2&hk}=CiR$%*x z^$VtMYyo)tY8(I54~RLx9*yV7*a5tJo0^R z$rm4|{96z!e>TZ`%-#!P`o-JvxK9&p4I4ERo6@|B*^V)$J%!S+p9>bsyieWHE0%ki zRX*WZ-N_(b>NPA1fQN6L)xcJ8y(_2=e@srXSFG?pDL4~;M z(bDyIE~k{Ba=#4hq8?9I1jB2n3bGyL+NYqJ9qUssPM%x7u<+YwG45hCEB5DVspc@9 zYnR4#KdOn2)#GNr^js^*Q5Lwc z6ezGf*5M|c<~{DUI^I%0Sw7Wv<`8EMaMxMf{NcXxF|=QDK+=|#3B6)f^5y=P=UR?` z-SBzyE*GeLj%~x=9dO;ZQsou{U5WMnFj^o}@Phixvy>dU{t9m{B?-M-7xmIl-Y+;c z0?~?ptmy&6JR4P+;4nQLu@b!+F?21oF1$h_vb)6XV*`%>WrD{jJGcTXsHYzZi*Qe! z{FD}68T2yCFy>Nb|4;YBr0R3Fk}vxM&mUwhDYy;W>37{Zl*K!w)St-hLza150XySu zO2QO|E@1?HkGLk5*U8=+J<=!?H`i}@MGao?o_gyxFIF&-_eaI!u2(31QAXkz0Dm>Y zWi%*vKAi8oK6{b{ra&vJ4J0RBw$mb*4-8&czq$vEo;|+;CBb;qLz2F`?W+ zu=6h;$SX4;uY=Eoi!SC=$Qwt-a80mzDv^L!vH>R6m;5H8#z4tuPIT3zJQ_LCJNSsVC0TGCxAroX{^-$aR_KJjXgM{YniueHqb$Dw^#8dxzlFRWbk-S7{ z^O~;`$M9O{F-+xnJ9cRCD%V(-*Y>)rQ6#L#B`gC z{=77sWZr9}9-mmb@tW~!IJ4p?UOf`1H{&?w{Qw3u#;TI(B%My@rDPwt%X*Q3~I zzozh6HYq-M?)>TWWwc)v!P`gqMNiN?t48I1aqEk_7woM6THXEp&~Jh|FDcvl<$PeG zy`g+yFbYQN&MdfCk%193#hHl{Yh{9mW?>8XTAF9!GC5x z9LKaiJRJdP$v_UE@(WceR+i1-8QYby)wl+$p+gGgDRbT@uNRLQ^I{U|e(~_=$G|aJ_+((pm5Gd?Y$O3d zPNbM60i3J+0KvbI$qpJ~WvDfu&ysT;1Ch1|u2KC88P)&yJO;Te}IF=)P1B z`qaiW+L%RvTX|FQj6Ajs87@!A0S}|UQSr~^6Dv9=!eejq&B~JIiLkENPyMS0X89Ie zzrpibHteEz2)fl91n1Q2oZ^t+JedR*hIdY7tqo!;`Pm#FO*>iv)7Zj-)@~LMInTbo z)Gqs>nNY~Gb$AOC%JB9d=g&^;8W%VnRzD$X7MD2XYN{}SI^F)H`F!k$@iQ9fF8e8@ z6r5!zyM(G=&foA<^b4OWZch?rs@+U`7c9h8dKVJ*3BuQPuAVkkNBt2&6M8_WZPmZI zADl8o7gDqv^mO?B8XEp?&?=fizP4T$buabku}XZkFy_gL7BR1Ws_@1_;Yv>8Qqlkg zu-P|*1CPI}+wz07)^hm-;|Ub-j+VL|;3rM66%XC?W2#-f8QzkNvD5=2rQ_KZv`+y{ zD>$Kbi|ZKBYLavuiGguvYrpFK!nQgowuJFKoz9jiU_&u4QY~z=0R8+JmrPigNB#H; z>&%D0ldmpye1-8l4`q#Qc1XU3ws=%^mj?apdw2Y$`G#yoEtDHnd2cKjL|rPq*o0XcIHmUZ8Ak{Zya&=uqrlutKWA`)L`~D^Ag|4_Ows*R z{#%Gz84U?ZgG%@Ek?QNM~HA@yQrkp5#Mz=N#JuYfO#GjuoW4piJRDCM>Y5BT;s| zH%x8sK9^?YZYEuzA^qwc&aXj|cw41Il`)m99C&QDlHpX0!a&OfrBI8?X5sUg2@O;- z)qg9|ew;9&k+eV!AoQrs5-n*3J$=`(5ZrhWT%+@Yj<2&B*3@ZvKHdR-?%f)wpIMHz zdk?vwvL)1)WSxlKd=#CvU~=Jmx!U4#9&;@ef9Rfqf=Zx|{)o6H4fTWNj&#$-13|g)kva78ZB(cV4sw zV$5>%k)iyPiqEX}T=_YKkzTNXI z=^i7sJ+f4({DbN9drw>dj#loy`32m!1qfVDd6M)Vd5c6&!CjW|%?Y)J3s+88EL$%9`>Un_ z+Wv4GtmM4vL_(Q3e1wFZTxkIR8hhB+9Ns7V`14CeP-sRMHPCiLcx8V=tGG7%3zA#( z&;I1`e>4Q&2xu71lp6rGigTQNLsb1RoHgH(iz=OB`6zd1Q~8QdS(4zn&Z=d~O&)GG z?l)7N0-E}8F6XjUD@SxXdt^e6P!GK09VmjzScvi7Az-~7sXp&E;mvz`{wQbdvF6O? z^A&L=4rv-?a)O`3vu!ACpG!>6*|vbjnkTxlk|05^q8ewf1pim;vUulNZ?h41h||*) zFAcJpo+z2empu=?ib^vO2zfJx4(>XrPcgsGk(I@A?Dh3wT3FoNQU8zP18*VFQPv?z zTv4v|{PMGk!WAVqn=|cx+<%jj@SkSP{>3}iYc~vh%CTD8F^~GiAh35iJVs9?5#M7z z`aIj9Y#!Dw_CtA}(}@=X#?588x|>8+jyjACP6bf9^CSKyY!T<=yaan3i@O6hWwGT7 zQp6Z3S+tp$x{AERin<{M9Mi99xQ))-LR7H?rwH&ID8rDilhdgOH^T-$`!ss-qF^Pv zy(E*Q5Cl_DOgRx|!&DoLCxU22-<`y(lJy$D+KTR)d_2=}@T}+GkM>-n?Lf6ZFE24| z_46%1moM9US=VL`KK#40^1^=Y&(&W6QR`oBoQhv&UHu(U_u%`5Q-434d-!8o_upQ2 z$DeJrVL_;&8;ntK}o1_qp&jL z1^|AYdfCa`)(F6MAjNJ!#U7jLj7W9WOFbi>>b{(EW;xX(Bb6kdYJ*7gl~41-a`;hD zC$MQQQ)y?H)6VUuMOvpt1*Ju}rJk~e2Ti3cSEc*yri56-6DU^f@o(TRX9wA@gPcJf z$hf|ok(ZHS&I`-HW)^2;V4c84`xzC8%<68$Eo@fKKBswC=1puSw!o=*Aggsbt9?JK zQ%~rcrI7FC07`y9@O#C!rPGFQV`6wYPSiW!?@Jt5x?G!Y8pn%5lL%mv4w#_O<0uWn z@PKJ?vt*R_s3?OME$G0_lB@$dFsMl>ok(B8c(3imE=VU*vnJhnydK5C$nAfI+Z?p}dxu#@C;fzmV^QdS6W_utCbm=g|vid`5-S5)+ z7p2t-r6nKC8F>EM;IhuRGImQtlLF=;q5Red6{j%}oB`6Kfgff6+@~{&{B5~;x0Vo+zJ*XiF*Rs?; zg4H-7sv)&HinaQKwT4%KV;^e`4r)!^YYp}5bZzQ5h_%NKYK>mj*=N<+htzQ}YLsmN zxjYUHB76eRy$1>ZDdnwe;lh^@e*VMh#6EO{T(M-a%jG*4EB4>~fLFU>E)RQ&$=@${Mo<8>ufF(?hs8fTn_wMsv<4eH%bAtEsFR zqSy@4uL9lV<(TcH)R^1sPnVn=31}V5{)=;?#X9dhz?9OQB?8Vp(5}$SYZ)AD8G6|= ze9%G@ZXMBY9TZ0FxH;>S?<5Si@~v?_$Mai3EuQFGEV{Qnd1-zv#L_EOmW47$1?{!H z7H((Gpp?mAUUK_;8=&%Ild>?V@?-n%LHnm>$Y=eIJ>iahn~sB!j&H&pf80BMgmi%J zcR&p~!S~xi2A!NO9a}aXzd1X2W;;I%gU^s5M?$->pTKSy5P=Ck`l(B7rK_LZEEx^eZLo9%TG>2qJ{b@;!MQPBw_5B5qccF@Xi4_5^Ti*bqxcs)&TA?JdYvyUj2WgC86zlqM+y1qXvhg z#EN@zyHH(Hm&9&Y?;qF)gZuql5c^%27ZaL6X1{WT^6vdngCU2`@rq8+fCZcXLoutk zH}I#=oWPzfwTT52ah5o*=^pRjfHH-rm%_7;@#%|x;OhWu%_Wu| z(4??o1qO%&z)t~i5&Xm72GfNe)AlX>*z|MZCu>$gxjUHL$lYlMo`Zp(sSBH_N6j=D z&a}kOG_RKJ4dA7K*+!4qukr>v?DjL0yHLK;RmW4qRlu@?&~Z7`x&!xQ#oW};+~na! zrYZjzk$}XkNd*3Ip0x-rj?9QOw`?PwmAApcL zA3aZO|3m$y#EPeo{OhZIqs*&7iI>;suSm;GPh>BYH>Y|&j57hu)Jqfp=JPS;C zc0u~+eicZV!NUS~0&z5$Aq`SYLA&1sOG_3NXQJvi}#!_3m&{I%xTwOecbRD+F$ju<3X4H_UNCXm8~q;solpAZip9t z)r<+Yi|3fiS?#U5?=lCbpX7MNfH>eeL>(5+Q_o3AO!z4aYlYeb4;>e@Y%u&Wk+smn zLkJYx2k-%xUuIw4#{*YA*oQsxW>xQ(a&R$Yiung>kFVItgk;$+f<33rm?ig@`cH`Q z4g)|qk(;c^Ge$yT(Dv_kx#PW2@A8D6Fi;+f+!vn;iC$g1cta=wgnkF0=b3GTtEXC$ zxmnDywK)2k=p(d<=Z1tmH(LEJ<0TZr1fEhb4>x$IwPFnX(H$Df^VKQADrh!_tNSbG z=c*v%^)?9)-au|32@e62)dqb=EFR@z*LXtN`>6jxQZFnQ(jZr>;3RVUQ9`2}iK{gm zK_GL8mBY;_fIt;Uk_ZwZLoR#f6VOKVrj1pEs`BB{;-4DP&kdrjRNw;AaMXFd*#nS^8P_@64 zZ~qJ`bPkK`LjCT8iu1sFB%~|AB#~e_VKAmKbMNTWnm}ifJ7NeYetYNVGzi=HECFL& z#%XBS4G|N6&=r!Mld;@9MQZx=?g&xT@d)tGQYa}K^Nh*mu4RQ>fJ$Rr_?o3gF!TQA zcXu4XEC%>r_-Ql)jLieE3~(p_{99MG<5v~Ln~6IpK5+c1zvr@+v;<`rJdq_QtDrJ~ zfu;tZnwL0=48Bc#zxiBhy8OT%YqACL1z6$QkJg&bBWu0VneIkO6QV=(3;J-!{$^eG|9z`NU z&JsaY2@vHfP$H457y}h!e_R0k0|BZ``gQLLSZDR4o^6LN`9t^7`vixr@eB98C?6bb z--}RS4?eG+ZAG#0uNJa8-j6oKdFI&oq!GOcErQ ziK1WtGx<;ZH2!}ior^z{|NqACorhr}Ik?_YS|@5lXky|34GJukuZBSnMte@aC$g!}Sx z;6JlVRGPUA1k}7AMH6(Ucc9j1lETrK1Mm9{vglJ7I;;KBvl@`qjgxSXVDu{?JZ5K-bh%Pkv5;MlDjhOWd-|X>{ zRBKpIF=GJ%`LU7B&bf`ZPH7<3_)~m7le&Goot-1MmY$80R?{V-J2O=98q7npM>(KM z{#Nx&ztoIVH)K?nj4_-$bA^$9I6gK9JLg(rwx1_Ds-v5TPFczz*ZciO%JthG_&W^N zDA@(I8S}f0bQw9@&5fs62^qH|mgag+8GWT>oc#9j@s*hLuB?3Q5r@op)@Ptj=j)?1 z!b(rMg(Fj9GnIX~;E0BQ^u7dvWr9%Y9ZbCR1TAyW4v&dbA1!mV4??Wat~Vfh2>sK(D_QzyBX9H@ zR3GwjHNDcd;%45O#>!!3!bdcX4)xV(q*v>yV4!^(UI&7JbE1vI03xfLqrrY( z0jw(+R^(y3MdB2=ca1XL!=MHd2ZN9h-5)P3%;uaN>w*md4D7ZuEj zG*0lB+`4m$1zVPlt}k@-8mGUE~fO$L>(r7N`gB&mZ!eu-`&Y?giIYcCsz}zWA zwnKuHc}2&uNzlq@!`)h0>E`&(o9gy@h2^qo6k)kLk0Q@gcVO$~O!QJ{veI9aIf%4! z#$+y)y}ThqJ?K8X+C2lG0cBM(baTuCn5-P5W{Qp-R6`~xyEb3tp4}49P%XBh>>&$= zkEVUlP6(k0%F!!Hb24}bEcTOZ$XX;UH~@4&d!)q|okZTkc4kSLz3r_`$aL);VncI- zA(4!WKfb2FFD^i1B1;vVb1&7lb~E?JW)~d&q!Xd}MMm>!IL$SnbSQn2 zlUy5hGIx(|kw!q9VNu;d2{jf>rGtv_AclSkFIN|G8y%{_if ztU?>(eR+9JzA(w==6F06>L!B9tcA5rA9+Pib{B(Gh}dnJ?fe zrFH;Ak9UBVqIss?vvBkRfLLPXW8n~O(h?q0nvq+EyNpRIoMe)dxIcb=?XSe zzp6ER1KvSdT*P=xq_EH%8TB&8vzg}2t=U}tNFCW!hNGck@e>7+Y!w#$Q-jE6E}gS@ z2p|m}#_X%c7QLtuakcCgPJ4?SGRZX@X#|YkKk03CW4RVvn8QtXAI=NXSLh}jNQjkk zmdeusFT+8Nw`ga8?cl-Uy@QPeWS}Nn;p`1_>LaD^$&V5S_Z^*8UtHs%%4<-uN0rV` zjzyCPw|FL9QaZO#X-H{mdX}_-bAG0@7uBijL0W_ziPD9T`ijZ`Ts{1NcPDv@FKhdv zA1^=)cx(Eyk+?U?Fo-j$K(Z{sFbOiLJ#}^b2ed#hyzJE;)HwxUIjfs{C@@peoFp!G zLT6+_K=&pM?}6PE0siVyW$z!m6~({asKzb#xKU;?22|LFha~FGjY{oG~)mg&(+h?VB^P#~9Me=5h8`+NMKc}*lI9iutuD#a* z4|gb$?@RLenJu1s5bnD>rTzIlzs1xN6|z9rzxZ@RT$D^IcOy~vW{wD=yEh4X_4u4! zos-voG#utt;!_&Lv@n|e0nRk}cpq_ho-uTkdiZOwIo7q)URR*o)nn|OcSRxSXl{X3 z&1cg)Xb^_g7;Ir`oCAx9&baH&T`f6BV4z^ygd@dlX6EqCwtGX z59=ycngSL85}BbhZfjCQ$Vfp*;jQW-C;&l7y#_O1Iu(T`)``74t-2HPtKk5_Af8IG zkLSgQ&~;y_zh?Zk#L$X#)ZpYZu$EddqClW(O>+j%6rZ-gkb}4X7wetgTvGjhQdPe~ zC3SqBRoh|knEoT%>IujHv0HLc;w^JsNiU9}OW>1TmlDh5V;xE6mQRC`U9xiVfNGj7 z(p#wr?C6uyX(0~o+hJ`Hx15W@fN<3tuXt^9I#`3<<@V0*7J->hyAVgt^jgqJWN8mn zr4S<3DgfAIP~P|FJ$5mhunDbL30@?|#yTey3t7FbF!9lz!Kxj{<7U47pgq{*1S2@o z+Z=1i*|1gs4J)kW>mYtr=);R&NaL|FuJg5@Twao7HzQH z#ooJ&!Im1fbMD_9lX&f2%o4L_wC%CE-SneUdhxB@ZPR6@;Ys;8c_JOJN@@?I`r>{F!9IdU}e-(H@VaX zJEh{@H`d$tDa<`-m}6;#bs8s{pdpk}CSRNAnL2je+awYjTV{SMFi9n;6lUjvX zo+1$v5RZy%x4pvVNf@Wc)&N9K_Oc>)KJl7-4#NE=4aLm1VsjK55vVm3V~fo((@XFG zn_>4x8*FLvt~+szI|TaX{qdW_MMcS1IuGY}n#bL_s(VKv04C8u%_27^*S7{NBh-UC zMf);hQs|Td`j)h=lzJlDTh(rWzHN$bcMolJ3bvg>vXab&X{ zT?!ms^&NqLZnsKDj{!%|DaRd)jt(72Z*xaBx`*Du^ZD!Od#IbH(XGJe$%0p7E6%_8 zjoP2HW$N6P$FSU)dy;Zoaoe%kEmf3jOnmP*+l}FN&QYC$Ds>0#XX_<%j zFLX!H(<>~~|2|IFe?U-2g64f3a$iP)-S9DF29A;G*ryXrKT*lZi_1Ow2O%e56b>*> zPBG+2K>kMnCSY{aI}#TdrBjSD57*LxzOppe@=VvW1+M2RUC+0;R(AB4nY*5P%jgcy zy|C(9@8b$f>G3T=?r&6=6W$DvgzC3aFK~-51jBk$v!bZTmI1e`Q%__{cuGy^FR2I_ zrF{8?ocFC_Etxegz$XRek3xbKgDMa2Q z2uiBU4e;*Fi}QG#=J9wnE1v5iJ+k>}_vW-+xz8my*hP=@NZwWfwAhz7cyT~}UVGHT zb3DXzVl}%ivq!woAV#EqHpy+}#+J^HJ@{Wv9k5&`B`2^M$p&oxlit*c`o@Pmv9e;la5$E+Y zglkXo8Z|Th-QxA9!|Re7bhx9V#+&!_uh#%vbX>y=YT*r&&5KDHtRE-}bLYL#5NvxY zcEar}-Y!F)JLlF*D-AT|EkAL3tG|)f+Wh&gbu5u{VX{axbr}{q4E3Xn>IZDkB4rp} zYN1@U2RqdVcS4BVIAOW`QRE25rv&S>tnc}JY)EbvSoZBYFpD%g?qgi&V{*aA=szBX zk5us-tb5`E^AiPJR6ldY>7~bpqXRvm@N125+~-O+$od@?)7nuKvti$nwK=HURbTf9z8-^P?(ZP( zeWTlyA5?%y<VLVYn@sIHIj|}yX+CNcZJZ>=M6SIH9`JYKY{DBQ0v>`%pbzTJ_mKtWJ z2XmS;SFT4AH|BdE1FgBK5O=wrIs2>bY8xQOp>~tNqxjMed;MqHU5{h_~UAY?6@*wEyV9>ScpsN>@HkH1lFTQNKAb#1L#T&uptze`T ziy(*2B7r3okn_skyVYLeKf%{J&4K^}XwvmnB=J5-XJ6dcN=R$^aJRVxQTtB_DDr`@ z<*ej2Fbn|YNz!sT8D@(8x?JRjCE%hHD#x?KHZT)X#2LN7W7Tw}JT+xA05%D{vNe1gx0IK?5LV$#iHN>Y^voY>oTKiHiu3G;C*vvyd@Nr2I;jg>ztZ1rISPMI&KQ zeO!b9?26#A`!vIty!vot7}l$>EW)$4!=jvH$A%tN%Cs-y1bGAFhdnn3NFcx&h#Y8i zyr;!UDHs@G!85G@-yB(+SN=2Vg1l1FI3HyE27%^vj?RaXUbq}+w%Aa`%0W_2mOU@9 zz~lzX#+gaXK9(ZA zw1roXVD5OjsffZn(V{fC54m?X`rw!7`1R-nxeo`*kp~PvBwXTUAjTDD{UdT7ANUcS zD)(V?5i-1nry*l%gUgKKU$@7Du?*>4QknK4FcJ$#Eb-()mN-19DIc8$AX_W%DJt-K z{CuzDk?epr8#K?D!E=%ztc!-(Ind*-K7wykn--*GLo%)6V=GR4wCZbIG6`zKXAhTk z*av`$jTRdWIVyn*YYDI`ORpdSproi)B>=Qv%T5je2sIt=J3%;;XWv&Ai)MG9{{#o~ zuN}L6VMk=iJ8^!JrExn6tas+76D8;mMABKFA)dEi7C2aeRAlz``~g`hujF@SMD@#* z8)w_~!D1Oa`2gTx6A?w^$XhEHl2jDIS7m5W#TA5X^OJV9^-nar3A9jiU!g#3_jKId7Xjwt+W14E&`w!?rW{{Q7+`IaxV%P$Z&u)rgRx6)W%Jt50B61Z4Al6ok#rPBj z+z$p-enW&a8r9NYSkk`%nfMT%6^V(>j1YkKeMrU0sYFKXhWPLzG-$db9uc-=xPJdZkNBjsoI8*oK<@$g1Bo?F0aX#(867j^z&Cg$!@dDo4-XISx|>7Gmgj8Jun3k%4EZ{N#gBK73~{ntyZwIx&k45uH6 z#sknOCQtrgw(drlY)pLDq$Yhm{-AN-#tY}~-BoAtd#3VsRgQb+PQDoV5~!5g6yJhK z>2AbFll=7fUiqb`GhcF}`R}tROvz{zy)(CdDeL`v(^Ms$x62~t zBo;#9Khn{z4d3^)e8QHK8>#rxjj|H;0)dOLr^0fa8czUcFeAHWWPGx6UOiwcMT?uNOLNa7!+ zS|DoZBW*gCzy}Owzrz`z4fRv<8IC;z1p1IfF~~iT(1qto55dUHgdc%`0THPmvkaL9 z6+~|gsS%1;FoyC;q1{ey0hSLUN4`f^ZFs8)@*2Lt^sABTPI2r$7=gKLjOWzLf%W!C znHuF7(p&xtWZTJQt&Lm+m0Rx*J?FKd3q&@)2a?v7K9_ZT4Q=pOd_BY)T^Yao?ZUU! z(ARA_S}_>j;yIQ#{eCzhpGhE76WOBqhLg)o zNDd-361_-YB3MVQ|NW&#>3qTG>yHXXQsiQGXsG{S@|atM8l%CsKy~%QS)46SSAqg`;JAOPn1JyX;9S&y zpOo2PaLA()i}SY#5f&>}Uf{G_^O=}@b4R&`sKa8CI1EprX-@bpo?L~`!lE%Hrx&1F&0wwKK zQ6oM(&Kw}#<>&<1#(Rt3%cz~%M2%4hnH7tn8E6ub1BDZJ`1PkOX9vq9h#o`pDc@9( zGRDiaOdyTa>707;Hi#G~ zJZ!`20!Af#s#GGmwbw}o5C};JX4?TZ6>|}koEShwI*Z8dCFy%^3x?HppA=;x5}9wG z7VF0^4O>$jtTU*3ln+ezD1rVitL@XcKB=uH-UD9Ihs!dNImY9@yS%m_27rCOhs$ck zI6cpXvwQEw?j8%NS5cX6e^;OgV=f7G$J&^3ByBX-$?7qMRJd{61n{tgl43 zZikkNMFUn(@vso!vH2U2c%7&RBEA!01!Os#b&z+11x_|p+St<5D!S>TOKOhNXex84S1H8t-$l`#OY4R2v+6!uC^iEn;u*kmDO3bO0dsk??&aqpp*r$8MYrkAhn_B0AyU+`{P>vdHkX@VIowP6+g)G;&ojz&o8FFXFvgIcBzfhI zUF3&1x^r%nUBl#ErW%;?^a1rpcp7j5BD)z5Vx;g8`OC#6pN!}5Q}{efk)>Qs4j0~I zoJYyw)T9q&8jr7PP2&{-_TP*Geb8CEY8hidj)Ch3@F*vAF=>9^&b`Q(JoM$wM##v` zD&UPCy~eWR_{z=db&WmRn=Q zz^W%Lm$VI<-D*mA{lV-iGK(#GUb!rD{`Ok~%UY=;>lc-(*5IWsu1|c_4E&jy8_LS8 zLjB?K1%PBr*GoZ?a7(A;J2FfMa~8}(@7}9vX|UMU{nGkgzi<9{v!rfX9=OE0ey!d5 zaCecj&*im~)ibdbp7Hb`OvCjQm58bzf6v&gNqmI`x7#jmyBh1VwdX@64|eUiMO=hg zu$&{^UURDA#QGdp;e@07#aW2_iKnpaYw==&m@2|-&mYQKQn)0`eP&Hrg3#9D?^b)B zq?~;kG&137Ff2UKRk_tE?c{`7Kj&ktgL+UI3~)``7(#kN0)ec$5{^h6~ zo?Nc*B_aR*)LZ*IcSrwW4xJ)ONT0p;-)Me`Dcw5#&HiWmH;V(u>D;#41`EB^_TZV7 z38-egu`0>tDj}b3pA78^fT^%092zw zmLgTJKH%HO-rC;<@@*aR(gJ7k)t8pC?2sIoT^P6L?_42eGC@Zq-3BLgLVz~CXpN$; zet#lQdnPA(mv5auv32vrE;my_nQpxQ$(=~1`6R>|(tGnsQ9(Fxj4Hh}Xz8|etzDZA z^ssrPb1X~*|K233u*-a{s_?)zFhgbLqdlA^=#kF^0g0tKl>eg^&9@TM#_K!{-);fR+#Wju}K#Q zuWiyL;U;{M(EN8iqhH1xU=xLEf0sFQ!&w-6$%XRuH0m}@Pd-EP!c^RLX=hn3{5bwK z)LtY94D|nw`wIYk@$xcDBNsE-*R|ZQP#D`G4ZEa9m3j-2B6Xnvm{c28>aR8wIs~)< z)~htFRgQORB${X=&E_G(k308RV{7< ztH+Pk5X!pBWT_me-3ZTBoXAtPpTjv1ltVO5yqyrt?ddD(`qG3|#d1AUAX*q5#Y7N> z0WroPv7>OS{$Ps*w7De&Y6_IRt;Lk)K+HRJMZOF?97*C@8&kFTUSv@YjLNmngkSF$ zSc-|vC7dp)4^(IRk|?=|w?gz=$ecmGD0KQ=WT?rOC+UYZcNRSZS#ExKnAKuvtvSrfZkM$r)!%a365BPC z+htY6B@tnKDY~WI3wn zcM8Wqq@!RT46Hr2bwneJKumiVnhC!?rvsD<9gFB%j>4nGgSsT{#!N?Gw%R=q#0YTr z$TS&@0QR0X+)j6`8gwLfK|5XoRL9~z+F3Fr7cC%@V4L~`YM32>m^@2r6Oin>B(RR{ zWP|H-uPswvI~D=YnL%&tYg>4^wbw9H|OpkO9uqj__f;5NrHO$Dg<_& zi+%s*kU%wb#$eBTgF~fVkCaOV3R7n792mwBc?e3|gi~D;(5x7HOuK$q(qUh`wa@~R zF$ZG~1vYeQy14>RM;f0i`>y2hjy@{qPO6xt@;F-ooE+R zn!6Pj5|@dn;b2m_bix6(iauX__sws66HhGbBWezf=80 zibzkD124RLzVl6R`Q_c+iear;4$y*LR^hSRMrq=QA9@khO9@lQW@6HMjgEhcQZV!` zcRFi5>3?Qit75t;omj10ic$SrPPc?^)rVzt44lx_QFkQ{nE+Y+LhAq!u;YG{?M2yf zH57L4r*h#Rl?ZLzC1WmPVN}ykdngc~7YI-RU8o|CL>FeSVOZ(hrOE;F{tlPTO6t1|M zbTKTmU+OW?gwm+}6xt_Z1`fBI3Z92`NK93#r!Ib59X_&?rds`f$TxM_8 zN-tBlPC8=#X=(N0rYA+qLMZ?p^o!&$>lJbT$6gNGb7F%#H+5{x8%T4j|XYw7=KF zGPxLx+_gyfN1g`DSm{r;^eV04heMm_sZD*WQkK(xkkk6tA2dbBi2v z?caIJ{@jl7(?`8W4#k67B~%;$SWkxUkMf|sD@PZK0CbjR(Lw2DfprurF?a8uXmxkZ zDuwVtH{Xp~;;pYTZ)aQ0{^z%hUqA3+T`liO-W9ZSL^uO~9}bwg2beutLG@kn26>-m z@)De!y?sg9D?Mh$f-B!MVUEJ(5H5i3LYdRAwKb93(Plq|$i@%BMIh7>Ms~co5lxL- zaKagLa!rI*V;6#?fN(Ot&6mELIuJ{xHn05*rmC<_`+8N=TcKk%|M*W)=A@nGu;uP9i|!i@Saol6*b1?0r2;BN zp>EEE0dkMCLIWslJ=Pf`N;~>~jii9c`kx8Jdh#UH5rSOhL_>8+Xb{3bU#JRf_PSlX1`PwSh$DswEnV96%85Kg0n5iRp@S6z&nX37YtIJ1;*z3Jj1+ zIcL`B8KJjeZIX+O{qO95+exw@c_raRrdB+MZfWIhuA#4ObF5qf!jquAIWTj$-p4W0 zDh<~tz2bcEm>u_xDGacq@3n4H>WhoWs zaT!YC?)_Z5G}dW0)ww4QdD|D!ZJcR)r13Yv-7I>lhJH$3+r;weid*ZFTt*}%`%s|Z zo#W=i7$j*8wM@mR`?W&?01|~8@6`nf0&FngX0bPys6kI!57M-J`gc_bq(B4bCi8byX22UCYVYEqheWy^rKhGM$rEt$M8mZ7DK>v+`fMr3-Hoou18zZ7f*Am; z^^g~^S5Vwvznqh_xSQdC6dY8%*bR7eS(_s^rEn{?>*Ud{w_G5da#Y-cx0JCkeCQlP zGMU zKPl#+>a9RDq$|ccRt7Nmv;PuA?BSp2wSThNv8c`37RU1xjB-nZPBXjQc`n%MX-_OJmt=(_7lJU8-#v2g_2NP zp%3hqm?Z$eOkkOE2{7+mA#Lfo|IzBEJ82byU+j9&yH*oLUrDm2hoLU(!)!M?t|sq% z^e<;S*=2x&`ZZ*{BG$cAlO$bhz56g+K&e0pXR%2EYiHs?L=m+embpFsVU5l5^JmYk z*)XY-O9mosn;a#R9ji`@flhf+wHEpnt^HVYO-#TaMB&rB>1Khq5A`QbJ&G((S!?Zo zGxQ|Ve;qGcQ(}A9(rpq09QOywAf({5eF~BUjm)|R;2q8?tdX~XqHh2L=d%7>!#&EkcMMcAIA@cC++=5L zZBapHb(ZuWQekw#+@y=7j-{&IdYY=H3l{yWL! zY=#n9K@wT@_pc*b+1G9Yhjn{ZqfEmO5;$TiqA=JdnA{}YwPDO#>G7jY_Glyg zUR%8p8F&3kg(t=ht34Sp_6#Zqu=frJdYt*QFw9>QPL0j&ot`7>ejZ@l4-43fYN$*ge&?wZMZGYjQ^vtukAwznr1!Y5KjwB=0in_EBga2LP7 zsbs#Z2LCrxqpU$WrXOE_f&ne=Dm&CH!GaYMh&ZH{usnE4=ct;HiW6Xj>tlt%R z@G#w$(l;98e*#`|jNgNiVQKv5+S-n{Q)HuG>ZMj>hw~;?VZbrR^u&OP&`INS0mP)v-c|)_vz}Z3 zk$vl3Y?S>lz71E$cYDboE7F@kE@~&FY5R?h)}>b+{d8IUK`zEG`@)|u55y-}Vb0!6 zwatu*_kUN1!>Zxmrj0mo>2<&NXB66*nfZUezpfUq|9f7I5;E{>=m08gJu@bM=|!|{ zy=-k(G}-COjJyA++9idrv3L4CR}2|^c_4!Dl-;|%V41@_gv}ZXMv|aQ@+>i1@7VO@ z3?w#yuI|<(CBoBa&Z11Mbx}4=Lx|<#ON!SbiO>6>R`-O32gu90J2K~S4FM9fVX=Bb zQJ?JH$)2nia=Xs;U+}0{hI^Gke4n2uF8SD~W1wAr>K=2A8lW?(lu0naQ>ETdKHiBC zKptZS~tKMW@%pKje@bLPfE+hG&;43y;r~)?gr@o|OhxBY1tpK(Lc46)DQbH^+or^ffFk zxjPVVla%jZ;_{9dUU(!$e$Ue}LsenB!1B^cLF}rYde(>DfZk$px!_R0Wq}Upgr3)s zUZYAi*Y05IMwER4do^{j*=#&e15sX}N(FgywQ#jkehUtSm)_a-WQ=@SqeGW>*023a z^#s2Fs28CImB%CRZP|ke)jJ>H;Cb>#NN#L%D<-0yucqhQWRca18Li+FbVLB2CmPks zthr28{^XTw>szm4)9C8-X(#8N?`5m+O*^wbNkp~rIv?dL?t`EFuegm@^8`{ZV+#TO zwxtK=5A1qD();S@wk=WaYh~~0Ad8rw-S-c$(ek3tdw#v#{b*g8&rx1vN(BdWX{og4 z`YndbKRp-Yda0$jtYv$OiZk-lhx#jVpTC9NC7-@#%H1hWl3Mu^^zy7>SL*i#N32A$ zgS?%))tdERTvTxI%bAJWcYFRjaQId5%=+!yt>5<_;64SAZ&{F3>NQE*(A4W0f264F zT3o&R^efZncT$TW_E=g8+oVtT`kP?m*W*>u{+aeGdAp52-c%@TeEwh~_p3La9JaB_ zui&1HBjwoh$9K*twZ)fyW`Eop1QS~ko?-!#Hz#lR*t}4Ix0GoR!jcY~>?HIq@oc78 za_M+wxtyg0jlXlK{7J|y2{c~=y&l&K8EBr+T_DBW)h?U9&l1(yKIT_ zy|WI=h=&VCBz(s{tvH&OH=AH4`qf`V8yCyUd(_n71`1x1koHCnm;K7;$7UVfc@LQ2&CJX@LkrGI) zJzJ0i?{o*c`8sF=YW=(aD7o7eMJNuY9&vz)B;&22`L!J4x@gYf=(U2F(jmyCM1(|U ze4}lPko|8BAXl-9B=R9Ju>d3UhQGNXn85l1jHFTv#H`hQc(?!~R6y8OMzc?~@r>|h z9QZA9w3Kb|M#)|{kxx(=+mqv{ZP!BVdx!7 zZ{fby#Xalw@W+fDq!2R<${fHC5-)AtWcDCB6Z`Y-^M7AbUmtrd)>;#)p7?@Vf+SB) zLi&Ic){7KS3{2T)PE3MGybhY?NWLz1J(GbZ}m znT)@+##z7m51#mQCS9>~Aw!1^z?Hon5O#AI_AExLHgFb_YZ{KX|8g=&pnj62U_QH1 z!af3PE!~*1U&8U2Zq+5WnmI@?7xdaQWlK9DX%PIBz$_AZg2#g2dyAi#rQigzCv>EP zW~bxibms-?bwudCUiBvctd1%*xdR)1(yopP#9c*9)LHy!LDUF=93APt168F|K*IH$ zAZ~~hZJ5n~!vzo($fl{;ceth-w$e9w&L#mSS+?%uZ0`8`=4&MzC+2nB%RM2^PGT8l zCIHr|gL8P%jv^d$Rbv*@IfoB_r!9e?P75K>ciM0!WNCr&qy}%euziz)CS_P@s{(HO zP8_`$=Q50QS5WpE#)(-36<`7iQk)qQbfU_>VinH_NH~3Bj~l+1rhZ9Y64;E@I`!P6 z3!kq*@Qjd^u0@_3CR7j0JtN{AX$Xu^PP+CVIQtkgN4VdLG^8Oa6HwAD1vXK(c^R`; zAia*@)B&;;I?~AzvLObi_ON6b0w}UZ>XcC18E|j|)usS=eS8s4@Y|dyjYZ%auRWWf zLh2xDa1NftR5*G7m;$ArN_YlKuqq+Y2f|gn0R~m70wRV*l7Kdn^u@W28MX2%LfMiz z`Fi4eTb~FGiM&XI;E2)f@n&$EX6d}P256@OftA!Ef@<)l}WDnX=t!CI9cSVE*g z^BfIQI;%1>D}atxHPgNyk|OMpz)Pd_cQc(`+804NEVWB>`nTd`MMl!_ z68Lk$a2f=*q6<_&j<>~c`Ih6k9xf(g0GM0N(;$KB$q2P6&gOr7xGmJSnguXsVY4w4 z9zK|xb@0AO^t1pHDS07Nr852x*tH;{BKvf7Ya#ZF5egj;?J{7?v+T_Xmb%+4#hq%0 z0zQiPRyg(;^x_!xiR@0}aeH^U7*{jD=BiB*8U;dp=3Ij_LbEhGvjDPbkDG>wreWWv zwn@*i>@oh6$qx^hCbiU{(uI^XR<&oZ%AQi+hjRv6N^NnN7mY4}>1ncM5^4;BwoOvR zKx|Be3XCL_pcR>1gOjFd1%1n*p!-S;_ zj6Oo`66?!J&Io@%Rs?+bVSpbHX=ii+z2Dr;iN23_NHJ>Ur#c_Tp-mq(6^xKv*zG_Dwcw{~Zj1?--;4AZm9UrjYWO+LR<)ngVz0+BvCIBAx(Y%TVXj;5=% zvK9o^=!bkpMHtdFeFYFT$ovxP4TgB$v=iX5@DqXsQzsnz(zX`J9)j+9w5P+~=xCmh zFtQqn|L+4&M~~VI`0_*x1FAC{^k$XANrgIAxsisOqW4~U_LBPyIsYHUnYOSPYGx2U zV=j&){}|LSrycwdV@thGHuP=!j9|cJ*6TcNE-!fph$G{{x*drMy$1C-d0*l)M zHFcD$5>Ocv3EDKo2oseICYt?BJR$%liuEV`>!*@SsYlK`?vL6Q!PaF2xHdS%{BUsk zd{AcbOo0xN$Fj2{PueqIdcz26Ne1?9j)9%{6Ur}|uRixV6MyQ6!HF_uSEpp|ocL&F zsUPIv5CzA9uy8 zC=l#xFoMJ*xpYPm4U1f!fYXqQNvj!G_cFjU8LX_y9YCpasw%|>t}}@QeFF{xX=4FL z@(vzPwvwq$xO#?rUjbb)0Cxz;beV+jskuLSIBi$Tp^raq1eME%-7X8?BM?O9x|JzSW z;++hxf|VsDVGv)YsRMY-LN_pxLBF8gR808YGQyma?VXcJTZ$P!Z}^yy$ui>s^%n!q z@b>*U<<~4Z!G@r|OGWKJ%HL?WIc8?e(TiiAXZ+NTd^dTHqnW3pWJ9PF&#C3GQe7MH zxC(>Lc0bWw<`aC`RaJLSrV^5+?90S%nuAhV<)LSx%>#*PwVJ;H^~us2nU^*4YPCv1 zwW{Z8)nC?XtJUcR)fw5=w${pvh_VRz%9SA}(oom^zdDKGerKHe_mm2$c4v5Ry9fal{!*vvclMe7nK(7A zn%v|GBrD#u4!*hh{LQWRZ|)zwNe^ywIp5~~s?AIN)~?`N+tk}E0Bw66{9NZ3nfABkT*giJkxRSHm30)&Q8#!e_7B0Tk0-hNj2YOBUNQ6p1Nqa>&*6Zi|dcu%f~itHw~$DWg9y0!H6`A(bf8ihLw@#%&u6th`g6XLb#-YXB}@Oto4n9#9!;Hx{Eh1XK=iIZ9}Y8?%_b*`+nzxy97#QR2X z%Y+^%R@aT!sQGVI7ZbYgs*c{X{NdrxFmu6h`+0(?p52|J8up*Auzr+v+qPZmc;fOe z+1xscB zyJf{p<)Boo2Nfad`_E_dv({yji>dUXCFjsmIv#X? z4#nK>Kss3UC5N>y5Yhz0nNUEH$k&cc-t#Q9u0eBgRrOh@vGH3kd+I|iL!J4C={xuD z2ja^@k~@qVJG`D$m>he3e^2~zCSssg)6{- z^S->}sM1ZbKliBq*z;99^A)BYt2rm{K`rlLDq+LQm9%jim@i%HUiwwRfPM?Q&qp53 zj^Ljbq@_!dKt*bNC;~M*j{IAJ5>de9@&(p^^-0fkJHNRG}6Dsb+M*i+YqliyXsC@Gl&ZSv;slD6pkk#cJ>1tO` zf6tt|dC%eAytgecZ@E?L*d`_&~@6tf}Jf4Ix;BaLB2%*CYk#+l1NTB2YyH_`F2$Hy0jZGx()#|tX zrDnm`DkH<-x)S%QcnO0c^CkAxkabnebVrRS39of+FE~)PNaqRF(Ifs|T-- zEHt%Rt_=&)&08BFjr@-YiK3XM+;lAxws z1i&V+aYQf@eBH7Om}D?NI6Nn$2zoi3a;x%wuH5Gu&*;?8f(hm!&t0C*4tUKal8|IJ znBSJnzIx@>m(tcmS`Uv;GPS1r=3#?NJ^b!!nmrg}kDYF5`Hh`2lKGfP+;f1eY$=Vf zkC(!^2~Z#or1wNHZyqroEN(w}rb_2d1ZPksBC0LzR93^gA$eiF_mfb19^Y1zB1Xzd zSe~FgjPNq~map+V2(4pzG>208FgWgCC;WNM?n#-0>O!`&7I#8H8DG+Yk6v3sw}$hF zgI-h>kW;Pi6_uAu6c>kq<Nmzz4nC)uN(~ENRPVO`X2hGi1!cBo-%nGWYc|5h-(xAAz*N0 zM3=x7`vm##O!$dpQ=vM1q6$G4etMUClH5)ps4eqeOzxK6ASWH$D(AmBU=pEcVj$X@ zxe?IK%CHzd#4728!er^l8m8gdsETWnigYJ6B2RKoJh#1FQ`DB7c1@uB@I4%l1fDG> z*onBYQINNiVwD*|7&M$s>aW~gGXFvIbqxDJZ~1*mZl!oJx$y3R+7EU%j_*nq0T=oa z3jy5()w89hx%YH_*F$>|6rjtyi!_GM(-Nsd8{#M!x)~s4>yLKW9VA@`@(vQJaOc+s z0j|ij0o4z;S~mef&*rsr(*2dQkSF~lwTp&5?rG;EM*=Lr6-}gjgXwyAc<*JN#<;&j ziIKp{VO@uWfmIb-;E5gZ5?V3<;T2=?CRu}!d}K${cqK@*9O#NL5d?{{Z?SRmV_Z|K zF}X@euiiD2co|exi4UDn;pF+lVtA?qR<^93K}FuE?v04p0e|zL zbT0+ZnWzz4ey1lG&jq!t9*la}a8QttH+Fw^@XDjs`}Z#dZe|?bt>AzB>Hfu7L-aG( z_u*-8OY--#)5C~oa%fVyiVpCzT_F=%odV|gMqlbZmCJztZZ-sLU+k0T4U`J9?P%o` zkTgx`L$t-QSLf1P+A5*uarfXu0_j4CC5ZpnBp|&#Phx!)eXrhmJawmt^r4eHfS{L# zKSD|5EsH%N}&Vg~i)a(CP(7XA2^i-Tuw@->x)u$)3%@&zAQb3H9+DELrxS7h^l z!uQ1zIZE`=8;@FWMAJhAzSB34G+nE^a6daMT`*XY^upHC4162)QR$@qpkrxE{+(ez zEz$>z+K!fj`r!{6?nN)gaD$E&dBm=^G%6-)*k+z!GWtQaL+i(kM58;3XQ~Ud6V$0* z0i++}mM%hq$VfZ`e)aaUSlSxaE{p1ABJHaXuLr@eg%0^nu*Uz`X^g_Kw29<10*eOp zYXv(+M%*B;3Fw2-#=*Dpy+QtMN$wizwwRmIGaa9Gl5hSS1el#jr9zDD#ftQ z+&czJSXkl!v)QU}i|6y)6KVHY*ncIDjH0UrqKlWx6iWt(+3BBOd7h4u4to4#5&eY| zJ>ioKdHdV0g-X4A)tNpq%z!qLe5*0R~su zsy0k052XdVj3pzXvdOU?l9TM8I!z^*AJxW@J=NWJQ+&HwX~F+amsoA}wJlusKRuj2 z|JK##$!Lwa=ofIdoEryNIvR#|`;25hnJ>8htK)s#mzXcH3!Krb?7idL2{KO?#<9CS z2RwJ;ytE1=_^)-z@4tv@dh!PPJlPjZJD505!wcn}K}-yJ?*2)C?vvVS7tXNh45??oRw@TqUU(4@{C=vGpy#m_pavZ1}H$10JB@!^e~|-fY-2Wt33OtAcO{SpRD98Z{{~CqYiYn+z6-cHE2T`R8sX}Yi z12xoxhIxPOW9l|vUtuk63!=zZp*6(G!8OWGNs7W(*cUbZ2$v{gRin@)YYFj@ZCl@G4>RX+! z6U6gw^A503BisBV*w{WRsUfBphbTRSMU5=!4RNr5(JV?|9yRNY`Wr1}^aBKGHv!Kv z+Qw1kJN&(5KEN%TL&js0!Z66gSIOXm_81EXW#wxZt^0BkKIEwW&QV9^YAfgJNaX5T z=jsLL>c7Y}T+cN?<{g*FOK45?CqhjqymAys%{J7Ug?c!k*q$tbD1XQl$EqPAX@^ zWynss)buZ|No0Mg7i74refXJd<*_kn(bvLEWKphiQNBb`fpt+~a8c2VqLTHZVr20h ziQ+Ql;wtOnYW?Ec;NtA{LJMnXG=~Thq44^WGO1YFa4-4jTBg9N##aRX!~xVV7GeNE z?FALy7X*08+KJ8~V#KqdKhDQ5VT5#rIG1m;WD7vdYrIEMPNG2UZ&0lxS{;v8BuYdk z8w^I@Y0NIX5TzAvChAzOw)2}?vs?y{%63x9eifB{oh$qCq6}15#%V8us4(}hF@X>! zUn&z-$K)pC{3_)<(F4cF_WnWi6Bq=Olva6{#x3Z7nx6X&s1E>&)?AiDuF(> z7ly@HziL#IPh`a3_^9yQArTV`HsqlQ41 z6ocLF9Z>-@(IM5>2CHK?s$+O-;x^QReinap&7?A67nx+jIjK*G^I!DNt8A2<3n?7w zl;mYp<;C2tjVe{Rg`Z*8HjS4mt@A}Nw5%?jxDq8&drqVwRj_e`pQ{h8>8N{HSNFI> zq$Q;Oen)-N>-wE<^&P48&m~1`2M>S)^VG;l>+MwQZJ3-&jG9G^QisNWxZ3j6`%gM+ z<_5D8$7|=HsLukDX_SMn$>OW29_y)GacSeH!NxBejXS(eh#B4UgYte1nT1`|>Gv1^ z4Tf_zn*P-_ec=eRfKV3C=Ee3@-5?k$dJN=7Mjj+1Lj-6WvmS{LN>YSt^O`H(cHD=2 zYkpf-d({-&J%(B$VMd7PJ|gM?5!J(P(d2uet@=Rcgu(jMpfZ@)9tUUCxriHJI{+OF~qBrXtDw%J}^ z-%-X11sT~NIUOG`IR=+s;#00oJ#6Sn=klG#*lHD@9+qV@e`5I*o*Wg`lp=w)*bQ>Tk~${ug>Cd^ zeVcj>>|5x6zYN=~x$TIm_R8I$?(H`9BEQE{>e1hI6aZkDba7Mw%{P3^Q{GrG?6|O6 z=hw(5;)>|Io5m>vMo=f>l)Uk$KK7`6r$|_r&@f0$4RvzoAwLT-xebzMq*{0b7zK@I zdyUcJBm#T>0$_VQcweAR2RjwcBk*HyHuY&j9}sEKP|b8 zb?(9kuegVa3A9;L@=gP37sej%4h>`+`!9X7?dOiA_&B_C4DNqPP%lR?bV=w)k%&mS zyS4KP>sWSg4)8=2KzCsY6UXj9wQt%QjDU(Aju06e!~8df$u1FVK>?3WCZFsC$uObA z6!{r#upI-CArG>KhnxQn{tY}@)4@WRKPgTZ92_G)wx$W)Ey)@zah1SJ-UYxFw_!i; zG%N!F5*R%=N`V;3M?x+7IN4xdMx>x1+qayg`E2l>J#0)o3suZHA%s^tP?-ZCW8V3V z1LSqR@x_r}bs`T2_ct#CYrQcG6OvxF&=D4}s#YjTc|M$)M-@o>vI+XJIgmLVuiiG1 zaT|Js!m~YQyt=~2i-kO7$h~9$4x}ezOQ_E2@S-l2ci&KAn&2@O%wm30Ojc|RKWL>1 zR$##bzy};y2%9B|y7&{Zej+fU>zgq!h6GsNc@g40HUACeXb6^P!LsHi9fwr>1CCsy z!XQl4_%=wLe14J%)gCq)M@=jI=mKG9W<0vn%O8=uFh9E_s*@^SNj`RKM=cX02PGVj zdr0{I0DT}{vPpF06F}vz0MiU1Ucm8>6YL_=nU^B~lskxD4eqi2;kf7n0%H+djJ}2p z6tPOFJiAh?UyK(&-g=3D?XqL@_N|8OvpWLb7}E0zZ_ptoFDnHuM*-@Xu+4hjBZ##5 zXY-3A^BGU)m;a?MU07Hcng1j8LMc~kMSuseM{&^*=V^>09zDr|jj~{hBq8sEfCF|q zo(T=#?h$9fAadM+fc#0WD02+n%>-;1+}kdY{-l_Bvr(&uh%^zLwgjs-b>bxn@s7bq zw?V|mFm(YQjvZJj9JG6oM;r^J*@I;*ykv!j#g_Qfw)sFt43?%-DoMt&lMaN>cxnp4CUZA zHs&Q7X2XECB*S+}$d9wI3qacE*!j}W&lS-dmHX>er#8wnH)@Y;)bFoXEW~F>+21l{ zKNsNnghzvkFpaQxQQ5D@mt+7u_p7w%Ab<*6CZ%noLP-iE0xpwdSO>xBm&E06038pY z^=TjwW!d4q$oV1ABolC8%ZLf^K(R-NU@PC`R|5aJzn^qI=p1W4gZJCkxe2QGa z%4x~)Ur!nf){R$Je$2J+qTv|e;2|F9yU}nmcKS0g$`bJ@hxTI;aZB9cA9G^R+u3v#@Q+3|I^}NAVmZ(68{@6p5NvS zVdh5uSdaa=|K*Rhz+RK_-ouxFl+?j(Hzz{K6OX>^HGcuIN{_G71(lZh6!2(l6#y&& zyBTO0ep=Lf32CogeG(Rw1rj5|Kui1-GHK><7E^8_A0aQZHjjV5^QOB;Ou;f*fBfl#}9+hG|H{pY2} zp%Q2An)%2dJSy8A)=dLV{vn=)O%VTooVj?a^myF<_ZO$k{tt|=$E#L5VF9M>^TD>( zr%Jm-0K;2Oo6e2rpWWb*a^7-n@gFI*C~^Mu+I{yF<@cD{NzSd42R8zC@C|MTI@kYo zIY0_Eq}k*NL8IHV+djQXpfY*XH8QCy4)RM8rFUv6YKTo*CoL6e04SM=?Z6AO_?y!7 z-w{XC&CF(=Uw^hQI`T-{>w!O~;sWKNb+Y_D6W_i!kBn!#Q;dJ<4)^y@J}>_MQxyFx z0`v4HTATdl@ddB0cK*ntIo)u@wd0R|1|Iqo8LD{VxfE6X^`OO(6KWR+iik$nnB2bk z@e~!FSQ}G_d8(;REka(Jt<0=AM^^EUM>5U$jiH+6f+rN3&4o{!Yg&l9_%&OI(5O3R znB%uE^-~NpuOHzTes6KCL_4lWD@SuU0-SZf7{wvSkTcHp+=peO4D92?mse zJ*w3zlFjfC8diA#I%5^^85jZl^OWzG|4vR@x6{vnEEOF7TmJb}Qfc|A(cHTd^bRA7 zmcG+w2hW{O@%q^_S$5b+((%;BmK0JkpH~4S5u7t_S*TKUt>Q2wau9D;E{6rvkcy5Q zrMzWbEJwG%s)x?*7khPF&R?33Pgjr8N>cKU|JN^lVPy^}aN)-5rCix!M&+F=08^|u zxQU1KI^$QWqt>t&)34qL(yem!fm@fp*~cz^_fIgoo86am zBkp&>qW7+18;Qm*W?3A2;OL72D1e16QIS8dzN2XzndNwS+jjAnoP@JUXu<#wGezkX zZkr9gdSTlHm3~gA7W9hZRCoSjpMKz-t1Cs$)i`Ivy#_%Ogtq^LHa|Noztz%hSrW#YKKf?!;mcEo;q9v!_e`u2QvKdh ziIoyPANuduhwPLc@9i#rrDNO-x1iDU`Fju7;;_5&*LBz~?jDy$1p7S<-r2v-s=~cm zGuVQDKujOL?fmM8Bf{-`NU@7XYkT0Ei~Yy1&c_xf3P-kNC*-ONW#6Tm=Nu7R6Ln_Y z+Z9##os=#rIVOqnkMTh3tyIWg+@n9gDop(H_}3xM^_B3w8-KsgxGcu{b9n$l($CLN z_8GIfGS|QUT)oM${Pfsse{jYad_^NJJI1R2$aI;}-=t$-_@INR1nljHTbEgtjKmv4 z_4AjyObuzqzlXV)aJK-z{+Y8H!OQQJlZhDf(@e-^_K5^`Kmt-893UzWefu9#(*c8pfLX)g+{G2S4 zkW88$%SK&7_%crl-KtNkL6f?UFNHd}EJOC0OlyX4`i&&lFPrYWgB9fGSd%GMaHzrOkk4bG3 zWB`)f<5O6nY{`dVI>fmbRG2xwB7JH;!BN-Hsm@1C)+KmMN&0V~kLVNE+d6zGLZT&5!9sX7fFNL8 zXNctz#UF>|6-$oCT9GD#+aQ2^G)((mHt^yUtwNn>DI?|(Fa4S>H@bB1S)K#Ncl0IU zIhKmW1L$R731Z_1Lqf4Lk6!oPuW+M9ehkVvY+H#0t##v%#>0a2xXV&;!miJFvvn9) zNnQaiH==94-tkb^^&#M#l8bu@h5!p#5U?(p^EaWi+0hXSZf;UyVLGreW-g%?%=2J<7*LFOPy8%p0vAqMxxg@gvyASygdLR@Y>|89MY z@hOz2*LM>n;A+OFwhg-6^Z3Rd&kMwWK*ue@*nuhTR%JZZz~Me7@P>558Na~UQgaLO zMLfLD=}w4q)9dN`^dI&92Sd-jeEsTS-;ev3?}U1Oc|G$C_OmJRVAwe+U$N<22p2QU zf$DLF!5p{l%YSl(eln?1&gN!!PB35Nqz_2)u9*pwCAm^4CX($Ikty?Q()aMB>;(A% zfM0Sm`3?fqaouZ$4)HIKnBJ@Iq3C9sfZ>jaJncSMwAlny*EJhDyv+l9yYx=Tl{tJ- zQrt?9oL=HX;R5JHJ}^Eb7+_22{9^-RvWUFrwx9)ojxu5;15>SYhpk1l^Oy;K%yMYc zb;6~u?@{{=-;9espA+UiW@7YCrIUN@HR5*%`*9Vtdc44^i>;Rh=90}imn>hkm;Vr= zKHHT06EhnuLTMhVF>}&2eDmV7T*u7(=d1m(%9o)qh>~Oi<-f=UiBfpnss)$ChZx+{F3kiE6z`&#c zP-2bE7~=I2lu5P}Ni~^JwOp3T?X?`V-bR@Sm<_Y>DpAFMP>MJTVGL(ti2DPAhzxof zA*Rf(lihT$6Wc5yY+}=!4$1cHrcEec zjRDU<$3xXl;oI3{0RTnlY}y039!t?Jw)l4<#(_fGg(y-4IYNFW{N^T&-#W3-F4@1G zaw4Yk3SIJ!T?&4t3Tj>Im^ zTMB}kOEMraR0Nz0A|}T(WD#7Wosd8R{{Reyg=ir(MJk&!w)J?HD8Xw+k|&Mc4IHTM z>JBV~!R;x6Z4Emu1?h$vK|XXNh8_wBQ52wLMZzww(XIfnnR5x+Yew+G+F&vr1JTw6 zntr%K`0T*}fHoZHc)o7DBHocd0C5Cp0tl+1K%aLMx7r(jt5(U$A(bb$<4h&n1qXus zHW-e7B4I)od&1kM+G(Lj_o-1HR#7HJ*K&kBOvNRDkn4tUJ$n6n0Y5~)5RNK^qLalb zv5XTjA{5Xr#YG_D9HZYC+b=Z6KI~ztbZj7jFpy|&MRy#aZ!w^3IJyRz+B%ThGXQ6D zEv5q*-v_v2(#)-aY?L+QuT}bAD;-B+FZ*XP64b+7&l;QVO@R?`gs=fsFA6tregUPx zieq7DdB~mb$xtkfWZxDTq7u?c_e$0_G#RvTE3A3fG)}x9h}8|+O$?;KLZhuQ$=!lL zl^`CdR2U4z4|+(aBvUE@?Ll+D!br&!jyn=YqU5w%W!Oq^HD9Ntcssk8&etrFB2YP1 z7!OVvV%<-2O*m(z&jAr(Hw{yDa5Q(WK2DtCi=b=as2B%e6h+aZ42wyd7OR3lR_!k0 z6cFP?y)Z=!sP&B=sfW;~MSz~C9r1g%VFR>L52&cfh&Xj1N#RryVRZS}=)1orD03Ju z3AoN0TFV<1PMoT33)psRK^^OGyA7giBV!N=7G5Zp+~a3K#m zPiua4XkSel`%WRdPD%@l2BsQLfDjb^0XBd0oB*;){Da$_^VztM4BY%2nRt#LG{Ilv zP&GeSa^9ro<6OzSn?x(6Y~;!PkFOhlyv8|E++EX}$h2k)zUFCO6J8hrpv4VH-Ew>! zUf0tWU*A#X-k$TuZ284ZoBNX=Z|0I!+CFGx)ykW&fJpPVBqH5^?IhKo zJQ{M=mF|P1hqB)e&3g>@zKz;`JB*$mgV_%Xl8v#=z(u&lT+Z$W>bn0*|=JdknkDjZdUTaPsYxxUg0jTc)%r^$M9o7BxVL>23F;XZoYF*sxUHtpZ ziy&Tg#mZ(Eol>kO^-pmLe9vp&g7)?d)4+fZkUV^YV2Gpii+DP3z?}P~Id;QHVPb0B zhD1URtGaDT;FOwo4gHQFUBt7&pA6g~3Ns^IfdCbuHI{VCGDoU!S^Cwow2HpZfU86R z#_sL1>|r0NE9$;L)Bd@X<6oIX1>b4;-=mqytBiI9q2|D0HLwGCkRfx!vSL zn;ARi6${aHPEcT0^6EP*HPc@1M_rjVgxdu{+r-+-YRM`19G440yh>Xg-<=FJP-VS6 zty1i0{Upz6;h_B_>1>Ao8)fP_1TdY@|7PmrxjW+|0l>tbawUpF=6278YX-Mc;v*@3 z3&_;e)OvSHfZi-WW97|Xz}q!JE*y?nnLI}0sd4pMLgG$3&LmPlB_jWex34XPz7X zf&?G8={Kkub6@}H=V~9lkO)>#UaO!-?}nYf)K{tX7-rIc?;QLZ2$Yzl6TD~5wAGTMxi zRTH0Rv>eSqhkrbgQrtor(F397yW#4>IMs13-cu=iNDMjIVEuCSrPR2B|b}q z8cX3XVXl+Wu)zq}S}1I;d0UJPd*wG15lZz1vWmW$*V14r``lWxN%CM?CJEMWz^UF4u8#YCP`nh#4uWX5$@H9W%Zzk4Nk7se;d${J3e1GO4 z<9L+v8NX%_I!j*7KDhk2JF!Xzo!We(ZkT%GAXnxvuBeC1`pwFtzUz?ruFbFm0= z_bMw27dUc2GU)kV?~%I8sxytA|3w@WWFK$~p15A5o_6Ka+@r9?3dO@{wfT-K|9*4t zT>D=?4(I&wFL9P^Zjv7`f3wX@2m4v&n~o0r-!K+^FjYc))dGAB1`#V-k>NAQ(lI~G zrqUSxnGW@er1560E|@f*%Mdl*7vzT%*nJ6V*GdyXv85YaQ-nr}`3BV~Jrt6R*wmkI zyyD?0mH*NBo5l-ifMr&Dtl}{C{Y$w6&xAOa?xed9W!4@NV9sgsU{XQfY%IQB?#Vmr z%JyYzKL=RDPFGFDWnH=j-kT+gVtj`a#Uk3ulMY7c4by~jtO__9Jxs*AB-Of_cOITP zR6CzEouA@VS;caY+^yh8MOl!xeup642*+$q1uoth@*q)oLUjcp-wnJ#PN2fUx63JD ze`xNBi@eG20WG+)z5VGS#F;(`NFF(hrv|r84TF4eD3j{HEz5>K7MQCplR(NJ&S6U@ z4a5Ciu|x(|A5Y1MJ0kq@CPwYSN1Y?TS1Eb@&~K|}?EZaogu`%^D8M{Ls)+spjRz&#CRs?iLLf6(@9(H-oL`>oVd?N9t=M^Sw*wOZ_poD<$iz> zN89>XzUetb(j~0u5yT`)t5?Jq6>{guWUbZoVUI5lVY+8Cz@S;xixLCUp`;pn3Cc{Z z{QjR%;ZR(80*~fPHSH12H`gDG>i4H-@T)@(wx0izj;-|RHL4?L8v2ln9+aS2^j2P( zp;NvGWqs4FHsh8)osc|x@X@TV5>IBkB2A^v@i~K9H`Z>XJt7%*eH%1?c_!}heDvnL z?!x6g?cp~x;mm2)i5a~sEyp5$ekY7yAt=n{p7m`1Sa7p|kbO9(m zYajkH?~ARAJOcp4$Z+HU6Ht8m-la?R5ahBGApkq-I{4;<|B-G9nczO{vri7e4c9vP zbJSxi&y5Xk`+$TRWC3I}?C2i`aNsZi@CKa#-xH+pqnP}#pd>!fm_dZ?d&uaT*(NtH zGBID40NHmTTvzyjul7jp{Wb6eKww?6(avX~ps? z7WNVFEJT=|FZxl>N7Zw9^u;!iIB&ExQW~Ezx0R)8M}`1}vVs8$Oeo0yeB*USuX=p$ z5eqX<@!F&OgRU#_Tw7o3ks?8zpDD-ofA?P*6yV-=cAt~cLNXd~XDd$qF_$$ZE1mr1w zc<2&3klAR?hf;F+Z=zR2?m`%s(>ADl)M+eRso!f);kn*j;!80XpK_Q|Z4j+qhEkZ< zD1F9YY;y45Zt=@#J7kVLkZco`EmA&p6H01kTn8FUL+BRS`&A-*njlvhXtG5^oP!kTIt*}NlzE) z2EQP_p;{`w9?Ry@2);3`VOgE-b|>7q(p|Rxx?ugioR4knij}qPw_3q}ZC}LSz+UOU za>`$S(Yfz^A=Kr+m{*S%bRJ(hzv;DSFv~vlh?Qoy|RMZMyb4W&Cgi<$oOX1s+;Tsp_Zdx;&(E? zK3)AJZ!sjb`2E$@XTLvviGw^{1aTg-%dT9!EO%@Xc{(~vym32G{^>HGabNq1NSpji z(Qnm&<|(k!jOY!xLBQ-h2x8W*=M8D$^ec4gXg1{@AL)qW;U+ z&)>=*^Q(P$x;|lQ(T)A|KW!z;n@LAd_xQ}#dy)-?12umXdYzZHQR>i304X+fOWVB1 zaXN(C z-0nCwk@`|g!kHC+#V#ru#+ViRt~zQ3;$r;k~kV^E`EEv)3`+zd5Tmjj3&Z0 z^_mlJ64*apEhQ*eH3_OMS|!x^x;p_&dy5d`-7XoUowSR8-^&~S9`rK$R`TWgyGl?Y zty(hAA;U6*5VP|-@a|FPF~EBm{NuKj`TG+raOB_aolKcdgd~e+s{00djRBQhVnsi+etm z_2hy&KLuqG?Vf+0E$%&}{kjDHqr+bBUD&fW{kT)M=~k}rbdlG}bPGv4nrx;+ST=s@ z^(UiLL4f)GH+#LP{AgJD=6%3&=@8XJy7b@qgRhqlzVkk`v3#iGAl$ZWqUQFq^NWUP zZ$Zg-Kcv04tmFUPXLBFN*oQ!07x#47ynyNcB``;VBsWG?c->-l6X= z@m3$q&-huK`(WX7*Zf|V&Q^t4%-s{Oi)1Q1YBe*kb?3Ay?!pymk68+q(eidZ4E2dsg`O(&HoO8GF)LrQ_OvfOe{vGdu48TR?c=Q~atvxaKJO{q>vWzIV!-b1jN(CL9`%o`d_~M~^FSBpI{@ zM6c%C7oHpbUL7DWZpy;D;`vqaw3;cO?E&wxk3Ns8cmRqsUDUd?xKq^kDIxI*DIg$Z zB_JXoFlHq%J|HM{B`7B#xOgSFA|Rx0C8Q-F^v22~ZrSnFyA%O_c!J2i@xyxAM42s5 zVKqlB$22!9Gi@uHzKD`uA7U1bA*Qwzr$JLJaR)$hZT4zw-U_o;uMj#D-%ug>;S&aF@~(X7o2STC@F7SJIDHaX?jZSgo__PHcL zAkS7WIPacPZr}Rt!QeX+>vvuUb1kN&8^L8?*USC{Gr=27-jH&kjq;URz})0?9s0!4 z>4b>hHIloGT5^-eYx+6GyW!GaK}s606T#buJ&&1*5W3+^s`^hGVMbzI=_z4WnR?42 zvC*~e=b*zMQyH$TuNBZeP9snxJ<~@WL7XBDy*gvW=6Sv8tKn7pmlZX&UaLyKI#CPL zvV|0|f{UP#qfzlZP)cdot5%G%$+)Eif?b$EQ>?1?ovT(vCWZ_YROmV5YwAlsI>&g5sX`&((+cnEy^ z-F+2e!pe$07zq7NHP?c8N`Hcrx%Lb7-+0=ZIPk~`SD#LS050I~60CC+9y|o;N(AE} z+9+C9@91Ad_Uz!x$m7YNF^*mO;Q*$NC?Oi6p-j|D&NLP$0t~9CVmI8Drfp7JLwue% z^vV8IZj0r;tXm2Ut#e2<2wvLkc-RZgr|~G(I3SP^l1G)+u_+R;z~!?GS4>1$DFE3L z`4nuT4`8bjp53CL@`x93z~upUsDKR_-o?RglX zg8)RCx2%01fG~U*kPXi|QxUXL`jYK0<1ZH z38vqQJVj24@oD-I@&zjuAuF#XtNK+|qop^8M!n@0ZxrIf6*(r}mkL4(JqwfIDhtg! zM=YrvV2%b>|Hr#+j5FctyZL(7!XtLzd6YjYAcqeVawN)BD*kHDhGg<~-^eX2p2K$} zcw3?s2q2sl0f-_E;e2YQ;QlW|N4nl%6w_lah%{L8>2+`Tun|$8w3H)d5b;JL!IZ^f*DXC^(U(UoOOgVua_$_Bu+jc% zqoj4RKI&xm_n${pUca~(f29{6ePNc@1&}`BD0@#T+EUZpWI0~rUgK86?TDg03J*mE zPbk2mx(RCWf)XdB_`m?^4fwr9*IGg3SY91PF}KKNKH%t$_mqq~XZFvwh`M zi^s(HpDH!;rx$%b>zH$)Qkrfn1z2mn%vEpx?Uu7OqlkVZaHrP^nf%{^^p%Ip|6!l! zEB&1A(y>yGi8z@HgXohX`a#Mj*$^$g=34=^&)4|!f4*)bn+3wt0}PdQv1Ymo>$f)2 zvLn)RH~4~vu6VW=hr)^5oU1v$|34zoNXZ zUiSTUCG_gmz+YD*b)#diMxVZVAqm1`({kJ9S`VI`aOM@WdHS#oIc_t#}kTc;y z$`^V5afO};FgOe|zkPEZ$l zS#giq!+JnMc(3+e4k3^Sjv(@p*r10H7_Jkl8Z!RVq>=%|M%GJ-biaW*PE*?A*ZL_t1yAV$yDRXl0uoRxB7yst4|HfFPb!rfpAR0;M4K_RTI86uY zDeM~J67=v$C=LquYry_V{SB$$zgur=_GT9%K>(epFv<9$;!Ij~_J}bgS2wRDIJ64~nd8aCg)7G@tp#?FdtG2R)4OvpLtT&tC zs3$FZ9nXFmJUH;g^qT?eQo>;T zpI>rSzjn>4pV`QSrge?f!3i@Agcxja?v5&hq^HW$FF52j8f${|apm(KvC%mxzS#67yBZkzB35le!Lr zDipOgA6t{M@h|mr+~T)?i-9a5)ctgy#HLqn^VEMcsyFT&?|!Kf>ZhyPc-qbF%#Dv4 zIe5LN>ZQr`mN9p8XHzfjYg6{uZa!aqqSEO1w_6y}6!m=V@jimkxn5?J(*AsH(r9bO z=(9`EMN1R>Qr$chXoMLzPKE>QHXK(1gy-7|+E|9MKNJy=1@1-#} zVq3Pvc2arx4-;xwSUU9i-``&!;<8X_2UG_Kf;2h47Fh>0Lr}_Er_;RmvWkh6((vh6_^tz7*7ILfZ2(Aw$*3>;?yiYxTi6ox5FvarP1pd zoyX8Q%&jGGK|G{9#Tv?>juFu>>Qb2Jq z5O@t@94m_OA1YAK3QBK5`VE(va2=C&a{>Bs168M3RWCP;f*dbWGgfpiymmh`)Ht7{ zQ@ju)6!bH2WCroFB3nLb<>ld1caEi478nsyVCL3E2GbbZjWK@+JL!ON>Gf;hR>!Md z{ws}({q<$JzreWcM%>=Ux3a+Ci@YpR*=9oez<9Sn+%mqx%lUgEz$(hYSuSfN34wF5oz~oF0lNgj?48c{zqSjHjjwCQQiBi1XWWDUb*eR zApT1_@}-^2{N=d|y7Lk9PFIVfC+`$2#Liuyy^S2aGvj%4{6gho%S;WKJoY-cviy+2Ms?MdqCu^kouAaWw$HCO zn>v4#{Bcq4`!KUh-u$_VW<&+1r~6DNAr5%si%HZSg6O8 zb?TwH|E*&k`Kt#DG?zdGE>M9DWZ(lG7(ob5P=Xbt-~}6K4s@7;76oj^|4eZ}Q|!-v z7BnFSQFuZHcA|s-2p}!sQNVf3PlYM8VGVJ3Lmftt9NTCg8AuR?MGTRMMKod&Ww40y z3^5N2aH0$bP{bA-aS>A-q7|t~ME@*iQHxdd;uN=d#4vKvi&PvV8I5>GDV7n9WW-__ zUZH?uv3#MmC1QjA8h|DutBBFaoJZXE0-t&dA0%m;uO04kH_U z^kXC!sYgw2l9QeEPrIl$*2)A03$uRSJ@kf6PWHVHrzUCPRhElre z&25VFo8%PdHoIBQbb@o7?bIea)!9ySrqi43J+Co#pzCc8dMA5ZV|u`KrjLj45TJC08CvfQlZ+^ zr%KhSRki9=m3mdCRyC?!-Re}e8r85;6{}=5YgxxS)?grG8OG2?Ltk}ASTq3|b&X6r zpfQ@fMkcR)9nD?)idVdjMh?&z>|Oydg24(F8Y8ePGzx22$UZi*c&+SYC0kek_~03R zfDC0po7vD>cC?r!t!Pnu*uU0Q4vbxGJMd~+*nqhUFaqNy3(z#b*r0zCb&QYc_@JriqQ;XjF-ISHSc-R zn_l%AV;<~X?|b1JU-{0LzVQ_XL*XhN@!`P$8wwGOMkFH`4H!l(l8A>4%%UGbq`(0- zutW^t3>Yy7!3Zw!fF*)q3um~(5+Ozt`oMt|UAV#;HgSnjOkx#tSj7cCu!}p4;tkLE z#4Dz8idmfF8S8k*HP*3@Z){^A4;jZn{&A5td|)LDXvs}>@{=ZCGCSg$bq|gI72uV znreB^o8I*X3YY~^0tYByiosZf1p*)l02rVTWdJ}FiV=k}M4<(~ESfrQ z=RNm%mj90g(I`NJ86Q}L0yuyT2ee=s$L@mzlF@>F3qk=OXh8s!Ac%I50U}XY2EUas zjS>jrA4>-Yz=r{VH4Fd%AHcxLQ9gnMuzcoqxBK1ko_9z~qcs2^$CTX-Z~Xq8@P#*g zQO1UcX~=;CeTae*f?a|H9K#z1NPu_O@Bs&uKmiyy#v0CGfnZD{8onsQBBp^2U@XE7 z0w{qD0>I4W_+l89_Xak6VGVIVBjw-L`|p7teBq0m@7QQZ05}i=4KN@Iq(1!fq5t!T zj-ed>Xae0w@QfLaz!!bMfQWyQ{bz8$2_yK$J6P@jG|1@M1Q&!Gd{KUs(7i#|2aq!E zpZ|Y<;D7)6=l}ojPtSbM{|K=E3=jYhumBNo0Tr+T6Yv2U5CR=A0x56;El>h6umUsi z0yVG$Iq(B9urXSL4EmrQ&|m|)D+&ZJ`dF|9Q>{9%fCU8UDtv$#YOpPA5G$yG7z&9P zs=^0(kS(Oa91iJ_YLFU&fd<>h2M)Y@e-DGF_HkOpZAr7#Ms5DSIDAC_Slau5rl zkP5@_3dPV0v#<=o&sl4%4s>(eMu4P!8=d59tsO;jj<+a1Z}b z5cSXx3(*aUVHpy@8WMmS0H6t!FXx=k1u3x-fldRk00v;-3pTM6Iq?fX5fnEu6#q%F z6h+Y#KM@sGaTQsy6+zJ!Trn19aTaN@7H#nsaWNNlaTj^97klvpx=RqOZ160x7>$uA zvZgwEWpEyV8J)2idF2@g=NX|98l}-1v2hxsF&nv28@-VmtMMDfu^Y*89L=#D(eWJB zF&)`)9o?}V;qe{iF&^QO9_Mi$!*Ls_WYpf^82#}dqk{uzfe7#+4-E1k5i%haav>SA zAszA|Au=K*av~|RA}#VFF)|}Haw9piBRz5>2SDclawGvVYyLqSh9MY&s03KDC0+6* zVKOFVawciACT;R2aWW@$awmDRCw+1!Tc8AjawvuJCynwbS&}G;5-FL|CjU_(9s-~l zu#6#d0jkvMkN=EYUJ872p=uvMp_jE!DCs*>W!1 z5-!E^EpMtW<8m+gvM>GeF99LzGB7`&7>uDR71J1n!5Eg|8j8UbkO6(p2N_Hu z4oty(E;BPJvok4EG9xoGCzCThvoy~KG&2)5Mbk7p6Es<~HBWOiS2Hzb^EE$nGDA}{ zZ!$>eKylJHIq1Lvp7l9IGJ-crBgMLGY%^AHIK77m2*2I z6EjZ}Gq0f@jDZ*zvpk>gzR)v0)pI@BvpwDOJ>fGx<#Rsivp((fJ|OWkKlO7z`LjR$ b^FIL;9n5n;3A8{B^gt0bK^1f{0|Ed$50|u> literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_002.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_002.gif new file mode 100644 index 0000000000000000000000000000000000000000..fa7c8b952ecaf51305c071b48e95672a6e518a51 GIT binary patch literal 26163 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

    *gE0f^80bO#I{e%P1rXb)1=v)Ao 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_004.png b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_004.png new file mode 100644 index 0000000000000000000000000000000000000000..455751c806277470148a00c3659fa4457b0eadbe GIT binary patch literal 798 zcmV+(1L6FMP) zfD(YJplVT~6_yMuE%f}Jyl^5bl1qjt50BImzP2bMYj#6b!NjWpA*Rwm{^#D4Y1V|O z4H}DD+sJUMG)CHEJo68<>dI# zkYBvscxk{mWl*j&M)B1#UI-&t4$)}@QLQJ~5_yJO2^=7ZRaoZ~vA_~YG!M4_xp=mR zbqNfOsA{Y#tVFn?v7)f1ouXzX)BElD@N8e=ce;n1BKBZrMu^lDaT!!1>(0w%8MIGj z4_rUJ^Y&Y{vQR#>JcI2)J;l-}tFGOB7WEJ8@9f&tUxmpJpO0@8b~oxBIj!OGM^p+z z1uB9t1hSRFP$6~6jv~q-zR4L+89H}tp{i)!o;LAmsd8)ZFxGFWdlWbg$##zdw{!yF z#$7&$zB4akMfV@PX^7m{nd4R4n#qqIS1ZhT>}K-0RrCQ5U8A~I@y7`|4a<(*|XDEsX`aNa$0@BQE3S?;qDi2&H}%M6g%@|Z`K z1U13#(|b34XD3}Myb5t1n>UkIK~`}@)jv{cv2P)&DOQ=}8x&7P384d`q1uQ%^Do3M z>fWb_RmKe-Gv{a_yB@b|&*+mKiA*fS$C5sr-ERjAkXeWkA$^nEsPO6)#rbUCH9Rl5 zSM-;b%@~Pu&l%^(p()AjSu{>N_w)CrM0c-zZ?6)6J1tuhwH}!&bws3Dq#iiI5=d&z zE^~tq80zrp8nZ2PMDoO(ez9DN$UX18alRfXNLhHXV&4;E)z^>M$?lpjHt(sTpTTF-`Umnv2jI@`)~OOG^GT@lAh9ym}oS9j%! zdP_t=%8EJJrN^GdvV`o={iIwq%Gx*pOH1CPZU^LmEgFrD$H5It9}mm=cFX26?I;=~ z&>T)>v$J)M$gmVtcilgxwPUdQNtnF*7q`Ot@vg1cb8HT3&8d1T61Ipo&&t|d)s6^~ zN3z*-{1xcFjS3QyqEQ(U%8nf{;WIo83P_Mr5pA8GCeU03DxI0B6J+TwryDioD02Bs zOcMEQA(0gyG+rOlR2|GySyVady~wH5>&pC!6ED;zupHZSxS3LsazWG&gapZGf(B+J zN54=|s6*5hY1rqJQYQsr-Hc3%xwki~Ne2aODhz^BC>(ZOwI?HpN{ES~s3e4QT@l;5 z(OeyU{}hf?K@m%^<;BYCeDQ#DWTCX{Yj64e{y233D}6nH!7-`fxYT}O&``;Rh5AI; zyw2LWe@?pjZnf3xP`ZzlF@R zdO?=r0tyKTL@5xamI(cfQcIXxqne1X$iF3qzPY;W!|=G%k{dx6W{8wnZE=NY?q@|>G9~Hp8*WP6GNXQ-U zY6@mNdeP!NljxuJvGdT3%96!-p90}f2>T~OaUa!a+&gJWl%1aXzJ|4cwf>7}@4nmd gruqWR=*n-`Z@+ZOdBv`Y@Bjb+07*qoM6N<$f-=d?f&c&j literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_006.png b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_006.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1296ddcd77e81cfcae628a54b06846776c7c47 GIT binary patch literal 998 zcmV7@Z3@E3mB#h60P$#FQv1w#inSm?jp}CtgI2B$A3IJ`|d$FE({4KWRb0=xbw2 z^+8RvCQTckY)q}8A*rTKO*ERQfr4Fy1u0vWh27aZGhffl+}$k8GTF?2Gk3mo&pF>W z*FEvoEg~i*d4hSK@;u^PWw_#5mB}c?oKuDqmWZ=i%6g;}U5r+-&BF!CM@J&W7y_Ii z#S|gdrw2oCL>(|NFwb#ltEzrav z-7{P`>#{t>)%dkmUA4ot5gr3FcKi$7^_WU&H2t`8RCP_~y?kOQj3Wa`7OWk9xP3Zll^WE-t z9bD=>TZok_wz(W6^^XadBQz*jdxFvechvv^<;_$w&oIIj$)DC(lbtWLK0F)x{mX@K-Uz>j&8OzByglDitT#WTG*?76xigzQvb+Mp z^6$mhm#5CJu53ITJ~X{>?a|%UPbWWf(v^RQ_6&D4eEc(CTTDE@IzyG|ciKYM8@K2k zw(95!7SzTqv0uOIxN_!lc5iD#ZC%yAl$!W)u4!l4frEiWy6LySl5O8sOuiJ~ByB64 z9YEF7{|};z1&-Rffk3UwFRpLu^PtW+|=xYxU4Z0NS(?AqsC-0;frRv%zYR!YDShU z`dQh1F10`D+}Y{nV|5sCp-|3H;Rd1mwBVu%d$&TG1pI9G3*sYR1B!;QsXn|XU}jlHFN z28)3hr!O=>?M7JB0=0>8SqvafdyewJ2Z*Tim;cnaRaV(He&U?2OI5`0zOFlCXX;A6 z{$p+;hfb!djujBr)V9O_{us3Ou{=FJ**JNw9wJgEis*{|;?v8IfL2Pq8xTHZ{o&`X zwgY}++p$kuFT7~Ksa$G#V2EN!b-(EdQi=>9Y-{$kUJA_CLxDqED#>?N6YX|1-MI5B z;HMM;aJT`S=-j} z7^tmIWk+?`@2}7Upp`Rm)TGQr$1TN7u&mTJ1y!F&=(G<)Ehz|mzpWBad$)RXsV!2n z*jip_SzyCd7>y1D`#e$jtU=m%^KS2^&#G0>8>Au>ch8@LtgTxAh2OiH2HXP9^i(PmQ}=P^ zaXRx{Pz1J+df3;wwA9IvxSE=p_k)(K{D`9RApn91B9RFb{)^@wMPCZC2sy3*Qi)f> zDD!@VZrH>|5lE!Ky?$w8@*gQ32@Oh_6oxXxnK8$+vBcAyKp_E6rt?OIQ={SMwxU2X zuDl8t%NZ%(Di$x2#FRx8KFA3a4u^-u($JHBkNZj_J-JeiEM=A_f^a29`9R>bM6{{y$ZLvkn2epvtj002ovPDHLkV1jrp^^E`k literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_008.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_008.gif new file mode 100644 index 0000000000000000000000000000000000000000..8cf86923e15068f8556e37ee2c25e7a1dfbe496e GIT binary patch literal 13357 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_009.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_009.gif new file mode 100644 index 0000000000000000000000000000000000000000..9e4d2fbce388bcd5de4f5aecb6568fc02c56ad07 GIT binary patch literal 9690 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_010.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_010.gif new file mode 100644 index 0000000000000000000000000000000000000000..c82a3215331ea78587eb3f5d050496cb82d432e4 GIT binary patch literal 3192 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 JLKgtE{tGg~tK9$q literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_011.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_011.gif new file mode 100644 index 0000000000000000000000000000000000000000..80adae85d516a6387ddda7f1d13a6127856baf0d GIT binary patch literal 2415 zcmV-#36S%MR-&vb3ycusG8@BhG{a7Zi~kI18L$!t2G&{A?r zty-_xsCLWkF0tUSc%1Z_&uBDx&2EF!@VNZuuG{azxqi==;{SkdeS?H%frp4=g^P?$ ziI0#}jgyozk(Zc50hOGcD4C$48=Ib`oT8|g0i>p_i>a`WtFE+zvA2Pt{M;-=Q?4x)> zA<1PYNB_nJNm8p0@aym|frwT4c6OK;KmmddId}Fnk(B2upGX4) zEs;PU)Tlb$ji8w=T2m1V9Cm~`P^QRuElGuC@H4>C4h*C=To9E(L$)0X95oPtK-9N! z2h5e{7Ova?bXVC8fVV?f!HC~U=QGfasfgnMF zS*3BJPAkInX3MKH%Wi8EZDpLw8U}O{3R|)t6M{_u!ePRLRSza`=wTciDzhs>r)J8^ z_;!W>`EI)T`8znv-GTF7&%LC2!U8c>U-iR5Fb6*}*vIBz`l$KziGrO9+Wj_yX}zho z9{+5tAlP094t|%LWIE25?n}nFK>basg1e9CfQ`z=H)+ z{?H{X11^;0i)0$MkpWRP#8C(N5Rd?aB*b+lnQ|V0CQutuMSz}Np+MSPh`m}zL&gr&plv?jnRME|Gr zg$hIlqXvMVm%gUTssXPtmK~+k_Q{}ks*1*53)Th!0e}$j;3y9oKntz0Xqljy0em$E zs1^{NQE&+dw{T&fQ5B|(c1F<)xBr=&4rQ8=? z3+VHn3ljUlWdIfYP{Aq|@GvibkaB#>#|ZaDU^aa1^qP26jZl@7X(iNd)BG%zCILc; zu=G_)eWumbAgkPTL$}Ac zSPHpv(!J(2EQbo=+6w%V5Phs^0CFmUMj;fBhCB&y0pSWmkzt$%FwvgJL8=7OIMI$( z$Edy1x|M;pP6UWU>a&5&<+0^sTi|@I!%J5>4G=myCR@f&iU$sfN^L!4hzYH~$CVq3oa+mY?1(8?aSd0Lo}c zdL}B6`K(nij;h;S>~ljeaH&WO7@_CY7XfiujdTrK)e5CRn@I7Cci{V)^^lY)9C~do zeQ+~xA@xhXtW~qvnBEOE_*)g8>OSFW(vxWBC_~amlYkQd^2NwU&qLtRz* zsusu+gN8K4~iqBR(s zNNwo38hq}vH2(aIKnprkgg%C$5B;h{8)MOoF3y&te*x)8(_+$;ey^pEh-q9@def%p zw5K%0nP{ z*oR8Bu{(imNK|Lp!fy6r2Mq0LNL$Lvt~Rr;jnQmtyArqbXX-Hik|;yT{7u(!VV&F_Bu``-Z9H@@o;@PZrs;0Q4PSU7 hAx`m%Tin|cAI8Nu&hdX|{No@GxyVOO@)?8x06U`*R8{~0 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_012.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_012.gif new file mode 100644 index 0000000000000000000000000000000000000000..1814afea949d311a876cf49fe0897e72f2662fab GIT binary patch literal 2904 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_013.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_013.gif new file mode 100644 index 0000000000000000000000000000000000000000..8724c4675399e14dee58e4338f848e2fa32b3567 GIT binary patch literal 9916 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_014.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_014.gif new file mode 100644 index 0000000000000000000000000000000000000000..c4d3595a7f52eb8b3f4e5373032ba1fcaec5a160 GIT binary patch literal 9817 zcmWk!cTm$y7yYFd0!aYrNI;}0Xb^;eln`2|hALG;ldhpkm4qa8C4eGL4GM~g8bo=3 zsG&(wG!_&UHHc`iy{J4z1@igrA9r@<+?hMG_w4MsbJoq>m1G^Y1PTRy0>H0dzi!{Y zt?6%N!U<-xD>E{S>*|g*H8r=jpH)`T%rB^5b80tj-rCY~IyE&fE-tOIvhK>2o*)1H z$jjqKL?qVKp7{FpE78n+8K#>Avl3roB8^)-=5^y%~G?Cfk!ErPC|zPGpc{QNwf z9+jJ$>*(k*JNwMV#U(sEqOI+M&+bqzw}iOEIxX$c%*>3Py}O@ZK*Zj-kkGiaw5)`L zgrK0{1B}Ay>4$swM!C57rlw}ISge46z_hgVjRXV3Y#*a7X0~=Njudy3Z9Ai)V?#nB zoWKsP5h_t{%O;{kge? zAt9kOnr}j4nxPRfHg11bR$kn`1aBYOzWB^7COZOyBH|O04U9}j$EHfl>YZJ@U%nKl zr0h4{W-Ssu-eO|GVwLPLx3;sV7;o8DUVhk;MBZiVLNv2WPs?@ppt(~0fudS^|()VR$7TN4_%sH4Jv?rS4OkH1Fr}^#?-WtZ@H}Lsw z##=1Nj!wUS|MvIadoZWKKOi(FChp6Zf7jPmzkmPk>E-wI>CK_@CwQ;3ll#Gg#mOl->wg=$wzj&uiruColdUV;8?Ud+j0^p@AKtsVy7uSK zpZ|mZ&sbZR$&!-~_y_DsPR{!I^XJ<7T6RXk>R(`WbzQa=78bd@y!`g<+kyh7n;SJO zEJ!^6a{2pmb#>kQ_mVw(;);s6A3uIvSy@?FczfVLURYTC<;y)QD?gHxQ!+9#Gcpfm zW@HnIX8HLAp8sDy$B#D*4c(56jQq3qr?iv@0DyVpKAB9W`wRMa4*(|r5C6Xt08$3X zP+C+0e~67#+7dn?XdNlVZSrWLcAp-rR5MSSo9I3>UQKYS&~m@hHd$x1^>^6hmG(Qw zi7`_x?mcIxn=So6%uV*3yMKzT`bNv+YR7{!RQ8sLsjKJx&r;8LobcH2{?Ucto}`!0 z1)WbX)6b-9d-isP9F2O^8L{ho*NcA`3)yj=|LhO#&-wo0Wzs*FUw7t1QZt$iz4-O=~9?S7?2y7KPvHDam ze)k>I{rBr5x_&0lj`{q&S%?wtOjj9n?|U~*xu~jrw?-mjLFKmxGZOB@MqNq@Hn}oo z4hzLK+&lkdW$fLpay5TqP1zuM$TZ|iz>PZfk)V|3xCB$lL9f)YxqV^Db5ev{=DRMo zwnBfOm;!*_*6rqAsA9N6zepZVfe5|dT0x6PMG%m8LMvCta;NOSF-FgqXi$)?9y@2WYFssJBxiQZ2SJluHDgM| zStcB_`|cx8)H_@ErS?zo_ND8Y|Bak?y#IFI2O_VhbobtRjsTowRiPWh~=3hm5RSHjvf3UQM8fv)-Ez)YOAfM_x6YOy5H|w zu#=ta_7hvj`qX@(0`nH*7DSG9EKi!IZs!xA1@~DdDsvTICO{Yvrh2PUvyp-|x zZC&o3S?N9dIHuV6du+F>wTiTNo2cQ;&gFN3le_*+xh(~OjGx#F9XB77?wCRuUd2zL zT1Q{q{&b!5@HX1zsMyDz^cW1N)CznjlpCua{CGH&`RK5Mjge!=%bgNCiO~a{DXX5X z=LW$$y_D}k=Rb{Zs=oFgY42`)@=;=9p5f9CCkJy0r3U62EY5uZxv`ywKuqKd$=iq& zhbj@PXzp^t>i0;;-+OSs=c{$GRaB_q4#!iBFU5XewH(REp-2o{O&7^p+TzHu9@WEN ztaL(_4MDR7Be=svj&8xcoE6_uZeU_uouLb%Gg#;tF%&Dy8MJyYLq>d|;&!c9S06eWgYY0a+63Wrt5c}3g%uuE1YqXxiRI8V0E84H94tWE5p6KJXaGhb=#|YNZ*NdE zE47(+M`orMD;*)+-KutB_toHlJ6#D7C5u)>F>Z7SLuW!P_#2FfHuz)B~R3ev0QXMX)8#iqQWo|=1roMG;%o^bz#WKh z()ICt%I~Mu$hSSk>#=YDyj{VnN}`LGS5K{D-V|R^(Z2-FU4X8kM2AFlxH%(!?_t^= zpPHF2c2_AG8Y*N>+<`H(44uEDo~d&TuYf}&?pjkJOh9n9P)YU+B>w~l+Di6?1vIeGYIHzzf{e{uVZxdL5J9Vkefl2L$K&Eq zYZLl>b4U-u&S=Q;!iQ;X@xn$1A7c7po@>}RT6;jA9O1^>Jup>Wqn&VObv+8|aL<$J zI?;t!n+*E><4iha=rZN~;*%fm{CQF(YToOnw&hDdb(S%J-7`;I?ou@G*G?(x^V4cP zoz%1P$vxf;Q+HosRLxyHPCP`$Jc?UZ){qJf(YWHOJic75+K3u%C}yKhG^Ui~Y~U;` z_Y*`z(#f!m`xzkkV@LGp4Iyl!S(%^7KmEozUv~To=rF#$aQ^ABBx{WDWsn+KDUNzn zK0U1wd|pYWUsxy(M|8}yBox7s{|ptD(f2Lackex?_trsimzyKIfpE~05eeJzUVqwp zWUa-qWNS;Ci%#f+V+v-wsdp3W8)hxl#R%isA*ia-ys|CN%nS*_z{&G7f_IyhIbkpi zqZOS_9#tlHgN)074SF5JU8lms^Hv@4?Ag(+4b9;Egpl1fl63!DDK9&c{?Q7sV>W6> z!M92&Dk(nin;rCMK=KOntK&z91%L45o1TRFv*$vddM6gIC_OsfYcT*jJ)Zki^YyQL z%k3{`5`Bt(>)fM$?bx0-;GfKwgArVD%%KwdPeU6n(IJ{@0A|nQymR3z5ICv(qx|D} z_^>Porp_lo<~>?xi^O20huPzIHevE%*{>#-3FgGeM|A(O@!snfA>ZKcRJ~TilZ%-9 zC_lf}0z1NEnXbswycUjd7sOcqmsz+gR4i+_a05##R&UrPhWz|3Wce}J2WkmMKM0Cl z4@w@L0AIslhZKL%%5MJDhHz({HozTL?A1=n*%F|apGlMPJYD#X1ZxNwl;INmYijx= z>&Ow2;nK}k-;f5kzOG;26|4H27a1I)YYkjY#3!e2bGO?^BilXi*FoO<7rF_@9Q(29 z=32w$nWEROJ+8CW-#764=fhTuWbB^_R*bx*XY{$Eh7%TKd!gx#LV?oY=M#20GKsB( zS*f6l*F5HIlAu*$$8f}R#b8}zce!6mG;Z=0RJBbAsARS(4+bIh$S^$|5{1jH{h7YZ z0F4I~S&;*#>%9t2LpOiV_1T%{P0NcZ!ERdMUiEtF4ZY_J-{3tCWfE}5LZXyaao5R9Ec&fQR28c1)BBWXfHvfsX=0Wg%xhLG@ zTtz!}lT+K?yF`w%E)!ukJh%%09RLM2_EhNAlLKw>mw6+iRwxr<@F}> z+%;Ui$q*)z+8kiroHThX`$0WU0RJpS9h9Oz(>>aWg~&%{y+TN$>sI4b)q06ud(v)H18*EFmC~}hyiPP zuON_~x@gSzn!-Ul`KYF2@xhhJs1~d-Z@X_hjnpbLw$Z|YH!u*9ba~BAkS-2kOFsOt z!LpQzY!a6`TEOocq0UK>Rg-|D_;eR=#_V}|77jTYmr|Q^2G)t|aZH{|(?0wR)ch9kM8m;H1+FM7k zpJ_k?10hEQX)%**rGTyw!uf?Ds3ZMo2*XJroexSUL6e2hI_kFzS${LW8u~n8DaGur^Yi*CV-j3i?2H6+_&J?NS78gn%8CgX518i^Vv(==a2aX z*T)!dk83)-8yg`xebydhaZ*`#iYwjP$vPJ!350YLM?XnL85x5 z#nu93P0$u4bYrC?ukV{*XXt6T-`A9HN|lTuTf@5@XVEXxRtQXJD6> z2(BxHJ`uoM8K`4Y#GnC$KrCVjldoSpr+wjMooa_F?jI((Toh`!Yrx6~Qf-w138Wcz ziqHV=5@%PR>-_S1z}WdJ1qmt-!O z&%muz9HNn*ws|S(5w&{kh^Rnu(hdMN zs0_!yuq&ZK-S2{bjKiyB{UG@2XyF!!Rbq;S+7VpuHQszhT-%*QKr!fmqIh3y`0a}B z14=cw=f~T}m@pg}BnOPk2>=J_Wepr6jft!yBS#lNwt};6IB3!QAXy14wz=&NX~mVrF!rFq&`-#2*b>?a!H_!N!^l@mbz z{D#38;EpUXRf?iYOR!QKzY&|R@4$89E=C!sN*z+$hhhmpYogKHA10P2(@n?WcWmMa zv?Bfdavvh=;X(LT0o+M^e+>{#j*Wi1GI6J%t9rE;vx1m_A+4BkKY$43>3}>jGM0gD zVIUCz5c3Jw-8U2da%S(^3|;$4wB3`~h$pdYxJ@r<$te#9dG~HH5C@4Mjj6vZg{0ZW z?2xC#{|2sVd1MOUSfN~?u)%5d5g+#$UMNcSY<#QMVaGl4A*WpA%JPbX$I`KV^qB`A ziM6p$POd%UYd=42_q^@pP~r*q#VQz_hEfs%x>*SI513g^A{vgx;iEy+z?t#aH1AJ604cAv>&)WbMa)xjQ+HUUF~LKn$8l{cG03?Vs6R#VMpSUpCQ! zr_!UZ?9_D+-%d%ZT$aBHGk#r@eB;}2^9|$eaGQnh;LfO;=PN|CgH-MW6Q%YXen(Aw z@bC+ZHP{w%OujavCj&OD4H+MU3F&hudnSCm9;3R1tf>=?zq*1ksX^p7IlPyPV)-pM z-|X|6(wkNpC~tq}Ih=LK0fOrPp4ap3N~P_glKl0B&4s`g=eMqx0IW<<6@de{R6fmC z13M6okMf_M4nWNiV6v3taN_*WO^;LVTt`jMeX{PrCS*|C4S&<%?%BvDzJ2k>cZWgm z(|r1Oe!<#@HE$cd(bqp*cu$dchi8*~b;$iDz2^A|y1XF`wED7NS;{aJdSpw0PhtSQ z5y4!uQJ<0TA;Y2CkfxK1z7vZT@?$q&%*m}BY9_*t2vdHD$K2Z?ok!67pF^(k+XNdw zhJSdI>{u`HzPyxoHSE``ug@>p%eD4j>H!^it;vC`hyiCl_>#A88X1(S20o*i)_U~o zW%zx@yic408k}LwwVxqfVLE@qOpY~Ht zXa7w~`?yAbRePb&;uRLx`M&?zM;D!Tn@dtdICO;|_g*x0f)74RMrcVHRSKScpIa~W zeAQy!_ZLNvO#;$#g&>l!MVF`^kt_#_=@aJdIMGOQIX(xvkA`3}u=~jWUf#Iko2a^=J?#DOO5e%K z_E4$iE9~dr?-6b1$I7Qjbl?!tV*@Z=LPi)0A+|CcLeLJFTi$QiL@0>h|LyY7B0@9h zKh}7_wfY~OI$x^hCiq{vP3|-81JNAZOK*9cl^S5f@u=h$-L6=RnH9}DmEkx0v;{wS z<5H!*bN}1f2Mgn+>&{2?Lms|$KdRsCvh)=DY@&Y6?{}r~Hz!Zf=H_b!+4W{u= zmJjws-fMI}22Vw$sjCzm(i-)Xe)LpHY8{Z4^@uBr!46uavPY6V_7Pq_U5lb1B!sr6 zxI83u@tAAKjoB~04pQDqV})!k!$T@CqnKGQZeG@q9V)G3NLs*QK6F}JISTkZMCuV|9 zJLf|fD9CZf<5YB^II=UD1`SA`(A6^UAhy;QRhSv<#F#&3I4M|Jd~rJS_K)|?!3K@Q zbM;`S|f@ zO;ujv!x=_qM}uv)^EeOD)p!mW-K86ip-{?vCUxGda1>3x1;0P8^jz<>VqmPu@6xs# zU2G72HO5K7dSG=SRK*}F>P2cleIB1;s2*E4an@+FBfgjq-u+i1!D()Hi3`Vao^<1` zQoqj}j67sUxz>k0n&{q$B`zLy_H$EQF{-6J_6|@}Qc0YDy?)Kq;M|i$F5qCmV4g_9 z7!L>e{1EF7Y<41?WnqjGnJDzORwfdCmYCu>Fu42>aWelkGR{^NHt)l?-v<;oq`z?qVIR_wwN&0o6Byz=v$ zQc4@rk+r)wgV}(ajd~A4gB^P1Ece%YqA{HlA@L`2-<^IxzUk+DwYPp_J0{f;h+6V% zQejnSruTt(n#)(auJ~06TVZlT*=t#|?&kT~&y%e*KbP3dvKCNO)~@Eb>~$Q&!Z@KkR!_1aru-V7*o^MjaE8)f9zjXM&^qRHc)Vk*L1$ zgdURCQHl{7&1z!A}L=mJthI` z@g=us`xbdyiZL@yOmzuzDwBd`p+R0;>a}xzb@^nI#QXrGr$7BB)}{f(Ag> zH=%#Ua7{jx)wRXms?Txvs+D)Eu_&>*M}s=x#Bw(_xoo=f6@q3&W9sNaNQ7>2FpaP6 zEG4Uw@NgY6NG+7eS zKr~*B=4>p+flw)jTg=P4FN=$7EuZT;-V<=WiOn)JhN(-vE8mU-yeDX2NmZ94{|N9}W_% zYkM8#q;gcAMlcOx(W>H|fsIlTTT$gJd6-D|o{R+&Q}btrSIiwasL@Tst(=XqLb=yO zH-w24@k#fSgI>z8s={f^EmNB!YnbfaCt!~Q;cTv@9){w-*vmEd|@ zTO5V+k3y#|f&<&7UC&RG;7LM|WnWsA0-qp1BUg1cr7LV?f`AL8Gadfzd9gMjcBt$a z$8KW43AIkj4`vZor&lHK{6ZeC^`vj9(nZH7^vf9{9nTF_h3u_u?1b+8n)iMyl+b6b zeme)D;2}k>t~YowExn4~P)p+UI?!waJ9d`Fb>M*@$UN8vz>H%~6{?Mk;B6j`9zn%3h!=_Onwu z^^CC(?=ghxlhMuMo|d;nlnx^bUFS~$09w^(QuwF3PdU$0+m4qp4r@-5 zO%+z~2nB}Tc}KO3m3!WSKaU;<**A-o)15i6dK`7S2QRUh-nkd0)hZo}lvH^YG+Ik)qAq5kV zfEKm%#T_o51UTdrn~)(85=4Vm8qX;C1G2|F=FPtlwi(%12zUVivtVW0#o%HB;U9_T zka9q$ow(S0n$@CM2%Ndpt=7dLSzdVS-KS}tlF$}pgU z1EuOhF|!-F(ASCW<%~cT@|YB`46{j^EQnQG4Ztn<^BU( z01ZncJB+By!Kkh4QN1_jl)Dk^XG8JVMvfg5gF%8flSZNiOhrlcKj~Wr_z3&!r2tdk z^6r>rfs?{fY!$I2URaXAgnE$Jrn4+l>g^b3mia_!0kzl`UO?P%g)QY{$Q0N(E2wEmstUDj7(Ze>XaQRt^=&KzSQTayM> zrXm0}R+5x;Hj1?w2eLGRWlFhjMBqR$JfemAY<_I-vQUQga*7edJsI%egtmC(B+sks zw=w)03&3@N?`gPM8g0kSvOSzz(kxm%Y+amc&)$t;kAq4a1-FbWbaBBH9Z{Dfj^!<6 zZ{~xY#jM~4SRjoZLMq-*DpqEeJ{sU+5`d5f7`cO^qxN?`EOlW5ax|w3+dJ>CPSNpR31-W{Fe+zW9`4hOf5LYy0Xd?wDB z3AsG5cNDI~i_ASZ3H7Eyw29yx1|(AihLD*^{;ArlxGbPpTLOxda7{W&gXmD-GS3%t z_bVmJb1gf(mw3@sgu^V`Tlwyg31?td>z*PgJ=rUH(8N~APBZT{?h_d^bOK1wz>boT zzT*9o65U{sny5Hvws_xNX86Qk%Z`=V0h9athl5z6U)eTl1AoDWx~`ODN=r6B+P#i> zSl)41#@Xh*RO*_@iWjhhji6v%UK?Ijn!D8+1iG(b{=*CsPGeio!hTyo8300wd>=w) z6-+QOK(Vb9EOV7GRm*&{h&#BviNN`$d`Cev6>gUbdSZPg2Iohm|zvl@kM^O@m_Wf?~ac;v$0dvy@?#B|-D0 z=?P5j1gbKp0a7FUUnkL=a)-@T?jC-mq;srtaK^r_|cE z{uJbErJ%x8VY3# zeX-~8;#215;Oezm=F8w3?PpQ2kUG1Nqt|xSMugOQha4|_78e)Ncp{|fVo39ikS2K~ Gu+&YierFJ6yspIH|kU@a);fl$6}q*tBEED!aR{{`&bVHNCMC<$aANcr$B9Q2P`x6%z7ySbwb>f_@ZOHxow-XYw97*n_rDY#J z%u^#%^7HfC+dI6xypENgNk~kwu(aRUSQiR~pTB&Wo14qZ%2HFuYwK+B@$s3ReMY55 z=H%p%$*%t)JUpVQscrY3P!6Y%Xl|31c4T^b+TOu)?_U3ieX${-v1w_U@$vD2fx!o9 z`41mH-nTE()zvp8C5y>q`uhi@rKM})^|od0CK#C6*}IaRJdI3tL`KDgghV`l{xUU{ zR$N@t+S+AqVduMd->X-zjxx%or=O9WyklbHJiP*pjLkeeeO%qVZrte2$;l5138hec z;}g=h5r{FdshOF%v2pP}yD4!8=mtjS0f7+*;*<0U#>02-6>+OvTzy`>5+x_68k^V% zg;NGb7EETL`F0z72Pb_46E63Jr8Q}%oh#AIK0PhR(~IKfu{Ss*($dPoW~cqzx9{lb z`OYq`7CUU`=RdBm|MlJ-u*1r+|Mp;Lc--2?IyEx!#ECj57aundZyQ@@FYmyr)4avS zFNd-Vv63>;(W&d}8~dqone?N!JIUFH@&bdRoLoFM);B1=L4tnLxZ{MNp!+!pu(b2JAzy7|R;(Ffg)z|9$`fwx5aH+}zau1OAr-fYJZM|8D|7Z33HUbq_vo zfQ^zf2p{7&3>D#Yz0P`cHQqg@ygl*dSl5No6L{wmbYS?&p^ZjaK^u4p5 zS1&%Sv-JD)a{TJ0N9RdOZ`Hl7wM<^{U>ii-yLQ>{qQ?cVdM|~KPuha7Ccb*kZ=LC+ zUP#y2b)!AxROFM^h@C&$U)-d<%ZlA~Gc~j~`^TqOi8njnwC2GiH2Z&a&JDSs4fj0= z)_pr#{=zaa*t@nXYQkjCYjx}HkB^L0ZV2=eLt6bWRvXI&v~!YX?rz*Yo#M^wx^JBN z=yXK;@1)tgyMN!w#|o~eDfD~x%y&3-C}}*XS`apXSkvId_(wk{TnqEHofw;r?^wQ^ z`!_Q)_U%!;mN&L8ua`7n9MbK7yHaH+Fu5)^-gx1Vcgo$DabZa>#YhSIJdYhA+1n#> z0wABS?%}i*(A+@r!sB}o{EhDokPqcT7{n*Ofum(LR>_fZ8@>uPUZYoz$XH|MhB5X6 z_5@>SdgOI^$n677k>9pj?3XyXWg5K-_lx_J``orxL;AV)3u}N(hMnzJ{ z9Ac~xKuWegFfXbd+SdRx%|9Nsphh3AbXA;+@g24^>xsN4Ia@0`bmOJN$-8o9FBxvw zJ;Emv=y^NO#pch5=EYm|pF@|)kKRM}z$Dcf#rO|YC=>sY#~iT%7-TX=!OD1wGzI|+Hu&~BHH>0<}&9}g_pd2IVs zV#8?fXZ6{yj~oXK>7n0s{IND+<>sUMU$Jvi@M@Z1fFMsH4o^Fmc1!F?jh7kNIqw1N zN|1Rp0M(Af4;F8+qnjn`6yyJP$p)Qh{7mpFjp8UDT;6<`eDB-vk90+Ed2MNXSK)<~ z8y9CYSo+H`U2ZlC;u|KynhQIY=L5!f{+m1^hCuY6+6l;8tHkCdXuWGPCFq9X*CU^A z6+9lnxRwKt9Cl1W0mTZw@0k3V(#c9A=fs?q;r)JKy`tCeYDHDLPH(@F9g<0b#ZiC5IBBPI=}X% z6Thm!zMN7Lc1bC`^{V1(5N0r;3(kAU}1&hzmt( zKa?3#Ehq8mYoi)J7DkTJ8K7K&E=ndGn6;Sd4R}X-VTONWV z{_KY-oe{8=nFvG<)$z00COON^rCuUu3rWIUSQPx7XPvfRFJ%bn?ah0D-hfbgZyIXN&>STAPz80S4svnL*td zy6_cVC2sk>otec_*j&2$j^1oy{(^2@hlfCMISm!iPQo6c4u9C2zI*p#rOcRta1S=_h)PW z;HS~68|?E?b#8w+FEHES6!TOwIoqIaB4@8`1FwEOHa5CWvi2=frlZ!@jt9{(5=nKe z+;vkDO=fH|=#U--5RxlGS_DUf?SQKSB@$skWk8bg&i0??V2a65kU?{iI^qShm6=8q z*%~yZT0Yby{;b{ea9(PeDQzueD*h4=R%U${*j_n#1tLsBDL#9)YR*U0e~EU4?kexy zfSuH6xnKfD71&KI9d+}#B!g3#Il9)F4kHuEHXrs6{Br(hjbj>73GV;1F;owseLRfT zF^yO;8(5B|0t+)IaA#-lD5E<{Bh8;Pm37f9IaWMA<)Cz$4n3&e%!D@`ZMMk~W~ zPWQhzQ-3>tMj5irYoJ7O45E-N7=SBNkott*P^Ii)yqC6L5^D(hC_ey2;>_&#b|%(oEsKbFGV@sds2zY}mC zyH5KRU->r}DZ7BoQoZ}T2~y(e{dDjCKH1U0idzFESmHS{yeKdLmsMRIcEXVmg{#Zv(EVuA7E7MUB!|Sh z-dp~%_9R2B2(>+!snjjpZu8f>qVdCISJYizgH_q58}r*8w(vjO9UD1#sPN~T zrupT|e|+9_?YnV2ub%eLwh0=hJ9qlZM$vYf(GvIE#8cG;CkR&tr1Bf2^EPQ5!&w0W z0SqY&U(r|EU_f>g@?e<)CUGAbL3jZ4?&bZ`>H%1Lm+5`40-bB?51HGKJ$N`}5$yM~ z>uXjR8M!D~QU2h}7PiC|;iZe#mkgxF5tro7gIfp=e-ie)42tl7eX^e^o%?i@ZtF?? zxD4?i!B9o@b8C9Hyi6S4mA(naosTct@toG@#}9n36FjJiA?MtS=Hc>MSo1sH6is9> zkp;n)YG>`C=3`WZ;{g)B;0nsT`pgRp;iSxJ!7D2Z1BqqSjKzf`smZ5@WCoR8Rigkl z^vjvHvwizNi2lAsZFIuEw(oqVivyUXKtVc^rZI$hYbP~3ur9u}`Aau-|EDJ!BjU0< zq#9|#Q5T*TQG8^`@AkpfyeyppQ#(DhtgVzSzR|fHrLYyy8aqw_qP^Lzw( zX&0rpFkqcLFo7ujso7-A3is9DL(L5eZ3;T>8UjaTXS!2ySss5gX^|fbEC7z$ulyoC z4kdp7kBlQlBZrDP@&7t&lnnQ_^F2047XKA(*BIJJL{czIfof z4&W=2O<5^STaeCJu=&<~)bcdgHBXktF}iRPXE%j#M-k8@kI2S>b%I^}r($ZkC|w+w zjgzS4Gn`;V3dWBIOQ3)x zo?2Ly%?Lr3V_n3w=B`tUKzXj=BzBBMx+la=tdz3GO2@7D6d`@}hau1fZaEip5um+J zqt7sqXK;u}9O%bK7l@9NMT{Z=ys-vtO+uh3B|2lkUJ^^MFLZSURY zvwbCE3xI0o!QPw#uQ?qY%|5BoRR(SW3>(TcY>L#!WuMFz-lLUe)s(S&$`EPUUvL;5 z5=I*5-9^tpdU)_kxfyl-oU}X zv#<~NvJZ$A`75W5%&H&G%BChL6>hWD5lN+q(Na9A3?W=q0IPRF1rX7d0yswmb1ANL z9)%ha(ReXRnSsLdA=XyVGa}Sp2H>4g5`H81{tkNd#gw?hxV#F)Q6~uk+yDL3DtkWa z1Py+b3fC56@7A0i=`Bn&tJxq{kBLt*Rpi*{8l#4y_3~L z;_IdueMpS{N^&~OgVb99=~%7gUP zUaASduMlSwfaz2|7Vsy96Xk!?L;A6WPpA+)CPoGk^TdFJO6Xbj+>6+`hAp;@Y#Xky z6 z+WAf1s~MR%)V+X|4nng*cARbZHqlf1p3w+ayjqSTkS-1}FJAeCOKimo370^N zMkuu`)8i7stL$oRTR!BRJO#+@1K=cID^-jXuSN#$B^R5dDdg(VG4eP}k^thsPsWl^ zx(rx4fT`?j@;Q@xIhfVHQ1aNd%InfLWKJ_(Y%Gx=?L&heqd}(e-~hi>;%Dn>EiP$M zTC2SN4yOL~AK9sA)rOJP>$r;4Kb`1Z(XgaTCbbQR@u;s9poWH&AVSn>Np@mDM*utf z2WhQ>+Dkz?jsxjDNSQU5Bmk?aC)5N$GY;$oc)U$f2lV+V$HmzFaVf&B5&o_81jW`H zAL+f>PzI^9Vx!dkMpGt#Ojw<#Z<=pYYlk!azyCiwMpJ8^qoV9#AG)mOP>ZdNg+%x^R_y&ZZf zS-GoGEF~e5+Al;aw*hJ8sN>@hDKXqh5!t}+(iBPYhaf3De@XFe&U~BG~Tu7+|s*`&qb2F+rk8O_0*=|jNXEtIw{xgYId(RnO-?&$QEz}XB zCijqso#M6y-seB;ZLEXdqLKi4K5%1Km<|c-;z9b`fR?+q>eQrN&Q4onl9YCU>Y^4k zBCNw5mB~-GO1j-TerkQ8iBg=>OuG`0TlKE3Dl{~g-iVPD+}YhG^ZVnSQpi6WjDIAT zP6isv<@6LGlKKoAhPFN*irKlR5kRm=5S$P&AcYN!q|h%BY2|36nabNwlm0=#!-a6~ z4D{i=CJKKblT>S!*Q0I6yTlFOU+6c#>St(u?Q?6D8RaSs4_45CC6fN0B@cM)5bNYo z^V4bfDKHiVT_cuI-~0*xLV}>xk<;zTA1VgDC3zk09x z<`t>ugzwbR3L2`%TTS*<)}03`0&M7@_k*u|U?;6>KLyYegz7QC^9-(LQ7= z&6l`(m8(puH5ZoD;ZSNq>A24wEp|MI-xZS;~u(-0Uk4o@%%zQx(Yn_>`CV%qy-WIq}uT0 zX&z%*)MDUxzj!KroNsvPDO|Ct(PTGT(u+k7?oRE?K- zxa4CvD>82IOwqnB+MGmZ)24$T zPHL*ZZYT2E$J1ZjhuTyDu?+-mtF2W|& z&*+=tTi>UC5~&oxSBV%$u|z!sy(Xt&CJ<{f!8!}w?C{n68SxMD9wlxYOC<|2!IPQpeA#-e@o_vGJLg$M^=dUjmc9 zxhLc9Qedkhz=a1L{X$72K~4~$Q4`VU-g|aNL*+JIA$zy)$lyQoH_o`?P(+s+d>c`s z{cwbm<0ouRajc>nL?D<9%;0NSY*PdFUvUXp>A`F1jaPlmZ6bK|(^CVN%035zbUTO=y* zQ6K>qE~b)@4dR+KMpuhJuxs5@`io%4qu**}fUW6A@YM7>EauO-T{=DgDlsNss~t1U z2IDA5217coTwH(b&q#vO-;SZM%?0S@#CrE9Syion)~Wn+rlxP+G@g+Eju0VvF_4mE z6rBpS6Ts3)VHkW2MzTLm1f&2sJ#U)wSmceBX z&!-msT72277ec2$1+<4;4^2^Y)#+}PySXa2^e@{55>%J}v&cK@DqnW=wEYXyFTwpe z@4V#uu*V!6rK0p#er}bxPKn4K4iUSOnOain!wJht=S}pW66v@>U~14oxyR#=_axo% zn4(qG%LQM=sdAlNPuo7S;hWsOezg8v&QR$E#}J+SA%(W*vaRIn6Id46KJdXIOFomepL@^179 z$*DjqOEe_sp(>&dcom9V{17l?DsN?2neKHpQRiLs=LuZq`Nx#?n!lunJzNY zjem(975WA35gc8W`84=?@>^M2_Zpmj2R~@u4hmrBf5r_;Sgp}w&#Wh?cx3n`;$gjANkX)ID`YcTz zl}^7!g)MQK1UyVf@BH&5lRL-rv$Qs5T`EHE%_@Po=Wz*s2DC8|6bT4ILWaq`Si2&O(1(_k<+x4d=`MOClEQ#xp^LHAzX10nLsPsVW^-Kt9ZNTi{U2 zl0fb1(Aa_4Q#=J$FbVTdwdB}IX&C_khqA4LCKB01Q*I*0>6Viqk~AGT`~n*rMS#iVbW7)#L)BJ^TzwBR;%rOAeZf`*`a=vUr&t8kM*Yri$4oAbkuecdLn1qIe z23)(4e>~79Dbz&6`Si@}DA5jw8B3Ewdx#haTvvg&cf;NS6jb~0Ewl-h*Obg~O8bE+ zh_cg#e&ZHtp5k+rbGMv}p=^VdMWR_jN!aH9|g1hKIn<25Bv+ zqUEh0yMz2fzN(qOk4^HE6Xg)xB6k2{PJuA*q@5m*C!4?i8>KAmdT0AY?5`u~SR<5^ zMj8ofwzdSwiA6WgC=bXpZXqo#lyA*!Rx!5-M5Q$G9Qxd%uHoK{T1h;w$Ls+&DMk=E z6<%=U7;X?U200e3KBUr`KVlY&Lo-K$Cx{o*>Zjx19p$g6sBqDAUr7|;*+9{z z8mYg;&ep0cPXMk29b7ZrK*@<+MD`$8I`qU4C-_po2E#tW>JL4VC^}FYsjD&y3@P;q zm`E^K1pC)GOztx#d%$p9CsLq$j(9?$^gk;aaKSh6kM|dQ5G@N}1ZYN2(+!gOs8yc;Lk*Y~p^da$!S6HJT8v$Qr&@k)kQNAl=Sz5`7N1N>UV*_{1%X=hT*U1m z(#PISB6MkYl$^4%ivog-vax$B`8OM~<$><|OKWD&H$w#Av8sq7UBRd4GS@XdN>FKf6e7x+anH)Up(oCFLX z6jX}wi(bPoC#V;9$-`p|u6}J(5@ybSr5%ss)h6$&BT;30sPG4;2C2X1AAa?gcJd zc9PA+!UKZBcn0WY%{HE88V8TkU6|Wvi}F2Kb^tq2RA7K&dlQFd-mz{)LvZ2svwvY& zJWP?s(SjCEmfKG!*ymM1aW$-tkUHsQrcb#|^-k+eODe=Eo)_s-pf7-_Q=sxxB!FTj zikUYfnOl`1mIO|QnBz_a4hADq+s7BbjT{6A@%}E+BE&8lBAC{EK>1#Szp;b?VuT6c zTA;5DJS?q=*jaX%e?99|Q<(RNsP@v!X!b0mkSrkCoZ5o3-l`?+AS*L{1njLmsEddh zTmuiFutTg_sn#rcF7kaJ2OAHB)WAtC1zLD(ly#9SgMkTlsq^+;8T1^2xi^#UMb#9V zo0r5cpbumh?TZ)SX*SPv3!KXBQSyS$0frNnNTC6ubx|Ooajs&j0FDO-og)1A($s;1i zKz~M!w-DSRgy?dSR@O*kA_L?yFt+#9Ly8W~GBw4VePhtPc(@ymGd{dq%BLiHa`(#LORKU;&n$ z80xmbP%3|%N!osnHy-y*t<<+G$^)@Gg*oqeHCoxv*S;ju?8zUeCl;J44{kx&LIF_( zU8(y=re;sLfD_^Ysx81nNbG}nMmnDX6LL@}CLmzR5<4+HoUn36QZNz#0z%TwcGnvy zyePKP(UsWSVO5Jrj)#PKzy;AaeKmp_NdX!5L3E#>%!r_@lo@}Hg5t5l12P5a@eGZ4 zj)wBn06u$*2u2jMWNCMl#0WHhAeviPipHd-m?>^Y6n^j@i8d{^_d3@SoDfpmd~dDz zU)`YN>*z!4!R3-6Cl#KRnIR6g0G{>!2PiH<<2DU7g$YCqH@5%GhbjDWu{q|+@KW%( zpR*^|LwJ(UPksq$G=8405ZdGu+I)BWg_O_>5uq(*&$BW^TRTGAZilu%3~iG{0XzQ( DY=_r+ literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_016.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_016.gif new file mode 100644 index 0000000000000000000000000000000000000000..bbfb08b27fdd0aa2c493323a7650488c3aedbfd3 GIT binary patch literal 6384 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_017.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_017.gif new file mode 100644 index 0000000000000000000000000000000000000000..90674f2ffc2c6c3e183b08eab4a72f2e20401b5a GIT binary patch literal 9991 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_018.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_018.gif new file mode 100644 index 0000000000000000000000000000000000000000..33ae19a8bbd61c289be5cd67bcbbe0412f03f393 GIT binary patch literal 2182 zcmV;12zmEMNk%w1VPgSX0CxZ}A^sXuZ)S9NVRB_UAWdmwa&L2QW^^D=W@c$)WdI@h z1OWg5001li0097F0a^fr00000000LD2MP!Y0|NsF1qBNV3I_%T3keDd2M7fO1PKTT z2nPoY3JU-}O#oA90AqXraEt(ZngE5T0GGW0kFo%t#{jL_0H)9Yy6FJ4;Q-A40KoA7 z|Nj930|5d91^-|tj$~<`XsWJk>%MR-&vb3yc&^V|@BhG{a7Zi~kH{o)$80*E(CAG` zty-_xtaQumdcUZwcuX!U!RWMl?J~RHa4~yMuXE%0ynbl!`~Na~f`fQ~hKGlQii>54 zj*o1Nl9N@CmX}hLnwvzJo}W3KqN5w2rl)PBs+0k!uCFAkvWx+(u(zhOx`ej4zL&ef zdbPjBj>5=swY|p8cFE9Y%g)qw(brgDI{MCt4CPVV$U z@bdVf_4^z5`TsQd?ehn);0uBE2pU|d0wFzx3?r5p6|N$X3Ckt~;V|Jrtp^i0_^3!y z6-0?BDgTnJ1;oKJ2S75otmr^wzm>~OYD39$gvymaE>yhmBLYqdJ#gkEby9@@aV07W z!1vU|00IFDlrZo#z|>=+mJY!ffUL%mwKVjwAQo)^T}@9II6y2#-2q;kAvhqHE>x^1 zo*F<9fG?t-MO?yE{9~qt3`W}Otm`5x0R45KKmZCnLRvUKC>2u$9%W?D ze6rMsnP}QAV<3Ja0H$1ubuBmo0tpmA3}rr|C}A&20%?noCO(-WkN0twTM2l5l}LGS z32_=us|ArkYXQInglweAa36>_<~U7|wq&VbE4leo=bKOF$s?Opim06lYtn(35D+K@ zK@X1gpn+^?a*3k~Yu<*WcTY0NC!I{6VYq#6*UN(nI+>w?SQ&s9rX%pGB(DAm*Xw`<=2xMBR6cs;l^xI}Z2th+ zp}Gm0Yz0sO5Eay7K@Ww}1lg=z)<|1rrRLgZvAY={9bSfYa1{Xw9Ldaog~^L-vi;6m z7zx+m>n>i^xeFq-#u*G&s!C!1&Pw6t@`hY=NQ?G7}>+2|l7A7-98_@b(M?80oYK!$KFp zU;`62fPzjF_SM`2lWn#MVSAJFzwbH%=dCShRaoHG1O??rFs{cmq0Tx^f;`>slu&4{u z_T6*|i|6z`*I~;70d!$i?*ROkV0{O1lYm#Y;Z?mml(CeKQ|d~ktCZ{N&Ey)z@e>t) zx_Rh+;s7fcR$)qnpyDj(L=EUb1C;cj2rY?19a_Mr6x5r^K~G^AYL*DDM!61f$bl#T zpS3iIoXc?VM|7zh0!whh5&VyF?pq1Q;^!8UU<^?>c|Z+qc$3w|Fa{}X0Rn&~oFNsd z7R`DP`J}|D9!Uu+1ppwfENG>6vCm%WV^fqsr2+y;h(T}DOqLpCxc{vw%_>z3A`JUS zt3}PHQLOWU8`DK52ZRX&iR$4G=7_FEZ%9mP1R**Ki$zFWwM=7`)ZWyGsFCK`J#82pBm&5LV?2}!Wd|UBbX>YQ?Li6$p5N`<^gF%T*s(4;^d>{ z#N|3uKs0TDhH3=Z(Y^9zi~pRBUkB*sWpMh>t`xvuS1BPS5q3c&4y-uc6D1ajQ!u5H zKmiGCm?-NaRd@yMl2u)zLOM#42c&MCr4cE6=vUHncJ-^Y^W#c&cDY}0wM%4aPaNOz zu^*Icc5A5xE$0(g`S34yYwbx}eeqU_p(dq6P-PuwhevVEbpz!(OIlSrSb0?T7KQDB z#R337AF6T#_N#~vAG=w!u2P+s)fqK1o3UD?(zA8_K?Y)UKg4bzTxCk=r zF+z$sPg?{FlnVlQeJpUr)1hamytNmO&hzAdp@JB(t&s@S;( zZZRfa{8kam_z{1lu{2J6<8kCz$Jtm(kJk}fAS*#BLyiZFjC|zyC0WV)i?WobOyw$D z`N~*+GCr`(zy?Oy?`d`ObLGv!3_d IlMny^JI0LT)Bpeg literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_019.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_019.gif new file mode 100644 index 0000000000000000000000000000000000000000..47fd86e14fb88e2af356a74377140b33dd4a5019 GIT binary patch literal 2909 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_020.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_020.gif new file mode 100644 index 0000000000000000000000000000000000000000..ce7126313ad3c3dbbc35ed0eadb8b88e443454cb GIT binary patch literal 9930 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 QhX|xY`?tPg0D#T^07KB|B>(^b literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_021.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_021.gif new file mode 100644 index 0000000000000000000000000000000000000000..571d8671635db0fce7c5d6dbeafcfead60a59538 GIT binary patch literal 9853 zcmWk!XHb)i68+K(0TMt6JrwCBfCZ3}(5nPNIvT1}4NX8r(+NchAksA;O#zL-RZ;W? zP@14Y0kK_!6?;Uzq6m5SogX_pbN1iP&e=J;-o9S;4sq{5QNT|C`1R}8*w~n6$o7VY zMhkWXi&d7B%dD=hQBl=wYimDzq?E<3G}vt3)YO`pc_=9teC^!Rw6qi$7)YhY z6&4nf$)5iqCMLG6t$Sxs6oA~x(9qpkS=l-SBjbZRP0VbZoIS~Iz7|$n*)jU@`T0jAw}8Z?WM9AC7M3x+npyF972E7dJDfa;HqO~ug}#0iFP~izk#XC$yEyD{e(~aE zZg!Eohv$~9j&I()U0+`d*tvV_cGsaBBT+HQe>T>sacLD5jcy)+UOoX1j_!T|VKt`& z@7{gNFW_S2aR~|g*Vi}pQj_y?k2&rj7vvuf3y*j6@Yz`3pah4D{vJ`pZ4wCDOwG2C z$nL*?{|*V+lV5NoBs3}^A?fqyFB|KBzJ2@VAF%7;!-t)nT?vV)(J}Gq8Cf~Gg-y+! zhDO%m5qmt`ee?5~=@|tZ|21-b{m-92idMQZ*@lXX>Bff4v?#>-_?|z1*4Nh7{!jkD zVtqpe3{73xxvmslLj^6wI`}bF`UghQ-tf;77TVInb zJ^TLcds*4>=;$zSZ=bhsmyaFeeE9HTb#?XS%U1^u9Ey(KckyC>dV0p;BS()Mq37h} z5{WiBx%uJYNvo^>*4Ebf{~tSthsXBr-3tJKU461lCe!-`{VxXqi~ooJ&jf&!0Wy@9 zk5DkoLMofZObA;>i?IfNO+J@eZ;Vy6bqg>?9w^=tOq^!7n_M1R_|$HMau zFH+BDYx`gBi98wi;C$?kZ#_@0&|V%)^1re_YOvtj`)6raE1W#9Mqo`w2lkx^RY`OuD9OXb}?ob-pcH*TNG3=mwp zW4Zs{so0*M>5I2_{=8X)5pB)hG~|2rO|M(8nx?pBQP={Nw~nBu+=JcnqINeP&FX)%$`%?hn^2!oui7$2s1*Wucbhl4ed*VDr{b0*Kxz%Ghd-T#R zwDZvDUHa(!*gyQp8~fVgzHZ*KSFY0VK{VfzR9$LQFTedsb%Q!2Fq1EN>Fu~ban|43 zd?=2k@CRe)+hqKMqxGDL?2Bp!B4O|;E>NQfzOC;vd}`!0Ilrnj)l zdNl)93wwi4H!-TM8_?#UfrGRCAJkm-Vxn7p}0YFmmj8o-sJT5kO_ z_VGIV{utV;;D#dRFM!T5%uuoQG)fq_kxP7*dzPi(hfTX8e@M|0{k?c)=HrypAeXBEMjX~1s!xpF%p(>@7`EnRVL>)^ z;u8n)tvD``ZGB`39(mGTZOtBHl?-64C~=r33CLO&u>jvJp5f_fGS6ht{&IbksaE{E z@$8{W`}D~X6>vIJ_mF@?`z}Fw5l7HdU%?iatbK`fRJRlo^8}OtPHiKQ!6MP0Ogel$ z#Xtul1Z`C?JRuVr=sa1ikmu7G;KG;S>RVo{#UMTAbOOxUXRh~v~4JzP%LgC;h~*w}sv zd2@()>9MNf;-lgkymU5oE;tR^T`!pZx*d`K+i z@1rpI*XKjfU0a|!ZOE-Y`>KB9WZ>MsoXYP_odB#9n|H9S3VGXijhL$GLX8I>$C6D< zNKnNBiAq2Y9cCe5?l{7z>HXv8cvA?FNdS0>PFEGv5l|sh&fkP(q(X*cRwarR6ezMo zT8guOp=ByYG_wVrZ%SGspQCGEc1(JvzkujI%J2kVrdPOk#lzyI5Cf~)s+?@IW9vK- zN!@3m=nam!(n^+31A@FaUh@Anc;y-+kjuN4bF5+uPi`cNe;wU+e0lmU$rl(VP5Jj| zF7MNU*o*0o2U{SFo*}J>MaJq@L)45#Ai-So2~Dix%1@d9xCD~N#)0xvZd==5qgQko zw8`;$31~6IRVEnLFrdOr&ePF$6c7YMg{Uu+6?KJFWdgu9$Oh&##OJ!U*{kf*+Z34k zuK+PWWE9#z2syG0QOFf|It@wNnu+`qDn04IzlWG(jte(dm}JtgMa5wy_JsqV#^K9d zatswv#kZBcxaCN;`_vEJjqax;XbjflMZREVz4*|h4}ZI@e7liUWKAAAFSlW}ddy(9 zhZi^Uh=DgiG4W%Hyg0|w({2!*RW`_j6s(v_R!YD_^bZcbw9$GoUXKSE`wgQNCP14C zM8hyV1!0Q$305n(Meu8hdD9^p9Dfzk(q^yN9(Cp1lD+7lG7ShksTaI`;&u``^lp_n zNOqwRb}8Iu`W!~hLoM@ohD#iZRS;m zoo^|3d`dxlqhdkWjM|ktUIm#1a7;CV<)YJx=ig4W_v$0;pHr7Ph?}(ItvdF*yPSdl`1jd;;L8 zL&MP{8xS=T1%1Xg|54gR_P3oKh)n|`! z^Zwk6(S+j}G?#lfmX7@U?M89iF!{Z|^jM+4!W&W3fp8YxH>v);>SBLd&WYf0;gRSAj!%Z$(HtOPT#hGY zaBAuT#;7Fi&7fT^IgFA{F!Fy`NlUN-&^E0cTy~s&YNs%&b5+1|qcN~-A*x-7Vo@_1MX+5Wz(Ndb=cnfp z!J$MjgAUYp781P`)kqm&9>ldhu`O)Iy_J5 za2+?lu6SL@h2$2S&tfKsq$x3Gtf0KWr+nCiQlJ)WHV69Q&ExW*9wLmKoU`hZq9pddJo3xvG;&ckH=S(((-a@k0CKa7O+oELxw0Rs;er z5#d}Da2x@#TY~->fe;DOFfx911_72$2kjOk>WRoNJajg(;(J%&Fqd(Rn6xcl!QMOc z$cW;d7Z$Jk4n5qhuq1%B3y|SNgeMjl2Uyra9i>R6;YB5=pjh8QIqjWd>N&1C4z|L? zObeB!#g#c%Pg#6Db$d}MGg9q~v7^33Axnx8I(`wss zumurCkRtJPBtZl+-VUypAa~ILugQ{tvBF!Mb3(WoVcev{Rq$hOawgTG_YcMz^&u;0 zuzo7cSc)04KQ%Im+c#L7Q(sx6uADhpYXK@=r_@>uW3qTnDTPf(QMCtgbyy+%vlNvt zMSZ5YHOT~^rY&H+5LGRKY}6KTs39&ANDLv{U^~1NXvo7tuj#{js11!1C04~1$A~EK za>LHajHqPTv4lq9gr~EhaeF)jN5jYj>Z6e@w@kT(tDp%7F5#Vn=DFI3k7{pqwdh?l zJ+d5`FLlfpfYDgAYCA}SgvlZzb+%U*iNIec!Cy-19iy`N;b&Uv&3_M`>3mc&;u#a% z5zOZX{!bSoF#(1@i~#2gX9TN6-bW+?1?HGx&mmxV4-ePXb)Lbn^ic1 zL5vyQR_gzl5#C{N_(g`(+no7%NZ28eH&L#H4vuluq8>W0qSvu5z)YlcK;~M&lJd-k z4*jX}UdQf7g{{hFjw)0j=NbT~1QRvT3e-BKAHFJ{X*xunK`vSai%u7VT=?l264HPU z$p+Bner?|83eWHutv;o9UY~U6G?pRTbETFLR9P7fG*5sIlg?u}=fD5P-u?x8P||J4 zZ6+=?6{^?%I)7^Qv0}#gi-wWd76asGDo{s5$Pq!>lr$$Ppf7^d{X*EPBX>~{4wFE( z0K~F~ri-Apk`r1YpdAanC^#b!^!_P4>F_Qw$SY&=ub4ntLr!GJxz2|<7gx`H(ZF02 zwS&L%e?$$yf}1uZO@`>!wT7ns_O*qDwJTM%ndb(qzt$rBvFAhx^cw2#^FSsIU8;`G zBEk;~5h77q<3wVj5J8}!FZILqh48Z!BrggbLWJcBq90H7KAXDiGj*)yF{8D%6nJEE z0S`Ix4UHF|-G~SjVW2r_;N)Sf&lAjPyK;k)4%^wvX=|$XjVU%(4Zm2ij9$d9CPP8325X8hmAr_4%L(DZ^;~KHsFNJR`tNn{)>> z-W+(}0nWPyBZ1^Z*LpXDJ+N{bgzIQ*RL=uY+vP2r6W!Xl!R}&E@f65TQplzt1{eCK z(;K`ZE4%*0W*BnrS&corX}nP1&~Ijt8CixI;Da!}cFZ4|>KUxl)lW5!DWWqo;2-4fP(4uE-<7?beVlqNdK~UqC)K`6e2xq9HE? zXl}CM4ovG@{&@6i&z;XgV24<^mkJnBqKxR!Gju3@6}V`ywP(~(Q7G51%)w#3p# zEK*CX7}L{x`so?Vx7iue-e5QwoYLR53?-x-vSdLRbh&rsiXVsrmtrWXt9L)(?x8re zK`jLj83FlIDY`>=5A?CyjCB2s6yifTHsUlV9)g<-;qF55e^%YZU$MUWTHT^iH3v#Kz6|Rt-6J@8w(lF7WS_%(6k?BJ3pj-!V-^D z4wb`}L~{TBk;|tclqIcA6qFBk!WKTK%kESpOgDQV(xt!<1tu`P9Vm|ua-LQBbfqh` zqN+6H_e4e4VuoHpXfg@@i!PUFc~imQPVTeE7uFvOwV(7kKS?Sa$Pe_jJq|-qP|9LJ zD-U7$9@NA~ay|tY%ZnF?p!MsEio_i)V)?2WP(bDkuIQ2S%+MNYta)(;k5AH;#oP!F zyP&rYZy>>w=yFLkAnRkUV&#I>jC$TIMi)CeB?YbQ82$91<=|DNJ6$)eXP>V=JC(P{ zjV$wxpn^Pzn48an8J|E25)kKERPi$f!oc5qrDU#!SWy7+vxL}fNA6soQ;Hp4oI$Ub zG-#^bun>d@KE+Tbod#$M*|dKeXuw0lsgzH5zZ8w9x0FNJn3d>`TLoN*T=T4{wT9WN z!h-I&$|tKtw5wFEnU1o!R@DS7c?MjE(|85HVP?dHQf)+k4s6yEGIkp#qC7j@KN)K= zuii6Ug+9~kaADumj4;B>0{TBo5_x+aoa4=x$N-s#QkG1y?A&9-J5K*cz5Q@;c1d$vbn6(Z*2d!RmbJ=&!+-smYI4cI4n9RK zP{FD~$pwE9b|1Jam!}|BP@pemNf$4=2R|dqC1Pi7Y41~AxEZG(?fo zIeAJkGa%HF_MuDK=}eJ}ZNS~!_;84_XGM{mqcIi=#VRZ(q20;NA0dy$3|P zq5=tOCV8T`386ya=?h+4EciBmcQhges}Qz^*deNJ%;|-{PnAu)QEPhESTGykbJD&h zW&$2+kGP+NMRxH&I8(e-{G{-|@wql1S9U!=dwmde;??BDXxYu1TQYup>K{n^dXz+0 z?4v5m5nh{7(Yay}w)0)jz-!z0jwa7RFzv0{G-x*UeT)cf>-ud|#_-JAn+mgY-+{Yp zye}@+hr9(S1`%9Lg$D{0_B4D?h*X2@=+K*LiMTiFYi@nFZke<5?DF@iKEbj1R(QzmITP8h|bJ`+=+;s=ZZ)GyPGKFkF-1|vr%jRkyCo+l%5DZesI

    JZ(wW$K%i9 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_022.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_022.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ff73499a5fe363c4c053dc9b131d45f0ddeb7c8 GIT binary patch literal 9241 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�Z8bCJ(=** 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_026.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_026.gif new file mode 100644 index 0000000000000000000000000000000000000000..8d70bb1716c59df35ef319c71b2231df55187e52 GIT binary patch literal 2907 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_027.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_027.gif new file mode 100644 index 0000000000000000000000000000000000000000..1f0e48787cb3eba9d75ef7e3b2046693f9daf643 GIT binary patch literal 9925 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 EAJRbJ@&Et; literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_028.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_028.gif new file mode 100644 index 0000000000000000000000000000000000000000..ede11fb40bf08f84ce3700114a35314c330113ca GIT binary patch literal 10555 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_029.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_029.gif new file mode 100644 index 0000000000000000000000000000000000000000..685daa481e85415faf9b64984858474011044770 GIT binary patch literal 10539 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 literal 0 HcmV?d00001 diff --git a/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_030.gif b/official/4.2/Demos/ClientServer/Server/htdocs/documentation/image/freepm_030.gif new file mode 100644 index 0000000000000000000000000000000000000000..56f287e1a75c96d5d6d197b6c63ea587db6370d5 GIT binary patch literal 3355 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